diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
| commit | b28028ac4082842143b0f528d6bc539da6ccb419 (patch) | |
| tree | 1e26ea969a781ed8e323fca4e3c76345113fc694 /www/lib/localforage/src/utils/isIndexedDBValid.js | |
| parent | 676270d21beed31d767a06c89522198c77d5d865 (diff) | |
mega changes, including updates and X
Diffstat (limited to 'www/lib/localforage/src/utils/isIndexedDBValid.js')
| -rw-r--r-- | www/lib/localforage/src/utils/isIndexedDBValid.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/www/lib/localforage/src/utils/isIndexedDBValid.js b/www/lib/localforage/src/utils/isIndexedDBValid.js new file mode 100644 index 00000000..aa14b6d8 --- /dev/null +++ b/www/lib/localforage/src/utils/isIndexedDBValid.js @@ -0,0 +1,37 @@ +import idb from './idb'; + +function isIndexedDBValid() { + try { + // Initialize IndexedDB; fall back to vendor-prefixed versions + // if needed. + if (!idb) { + return false; + } + // We mimic PouchDB here; just UA test for Safari (which, as of + // iOS 8/Yosemite, doesn't properly support IndexedDB). + // IndexedDB support is broken and different from Blink's. + // This is faster than the test case (and it's sync), so we just + // do this. *SIGH* + // http://bl.ocks.org/nolanlawson/raw/c83e9039edf2278047e9/ + // + // We test for openDatabase because IE Mobile identifies itself + // as Safari. Oh the lulz... + if (typeof openDatabase !== 'undefined' && typeof navigator !== 'undefined' && + navigator.userAgent && + /Safari/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent)) { + return false; + } + + return idb && + typeof idb.open === 'function' && + // Some Samsung/HTC Android 4.0-4.3 devices + // have older IndexedDB specs; if this isn't available + // their IndexedDB is too old for us to use. + // (Replaces the onupgradeneeded test.) + typeof IDBKeyRange !== 'undefined'; + } catch (e) { + return false; + } +} + +export default isIndexedDBValid; |
