(dbInfo, upgradeNeeded)
| 6666 | } |
| 6667 | |
| 6668 | function _getConnection(dbInfo, upgradeNeeded) { |
| 6669 | return new Promise(function (resolve, reject) { |
| 6670 | if (dbInfo.db) { |
| 6671 | if (upgradeNeeded) { |
| 6672 | dbInfo.db.close(); |
| 6673 | } else { |
| 6674 | return resolve(dbInfo.db); |
| 6675 | } |
| 6676 | } |
| 6677 | |
| 6678 | var dbArgs = [dbInfo.name]; |
| 6679 | |
| 6680 | if (upgradeNeeded) { |
| 6681 | dbArgs.push(dbInfo.version); |
| 6682 | } |
| 6683 | |
| 6684 | var openreq = indexedDB.open.apply(indexedDB, dbArgs); |
| 6685 | |
| 6686 | if (upgradeNeeded) { |
| 6687 | openreq.onupgradeneeded = function (e) { |
| 6688 | var db = openreq.result; |
| 6689 | try { |
| 6690 | db.createObjectStore(dbInfo.storeName); |
| 6691 | if (e.oldVersion <= 1) { |
| 6692 | // Added when support for blob shims was added |
| 6693 | db.createObjectStore(DETECT_BLOB_SUPPORT_STORE); |
| 6694 | } |
| 6695 | } catch (ex) { |
| 6696 | if (ex.name === 'ConstraintError') { |
| 6697 | globalObject.console.warn('The database "' + dbInfo.name + '"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage "' + dbInfo.storeName + '" already exists.'); |
| 6698 | } else { |
| 6699 | throw ex; |
| 6700 | } |
| 6701 | } |
| 6702 | }; |
| 6703 | } |
| 6704 | |
| 6705 | openreq.onerror = function () { |
| 6706 | reject(openreq.error); |
| 6707 | }; |
| 6708 | |
| 6709 | openreq.onsuccess = function () { |
| 6710 | resolve(openreq.result); |
| 6711 | }; |
| 6712 | }); |
| 6713 | } |
| 6714 | |
| 6715 | function _isUpgradeNeeded(dbInfo, defaultVersion) { |
| 6716 | if (!dbInfo.db) { |
no test coverage detected
searching dependent graphs…