Fix spurious idb error on startup in Safari

This commit is contained in:
Kovid Goyal 2017-05-27 13:00:31 +05:30
parent 3de72fd9ca
commit 8c2f2cfc0e
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -83,14 +83,17 @@ class DB:
request.onsuccess = def(event): request.onsuccess = def(event):
blob = Blob(['test'], {'type':"text/plain"}) blob = Blob(['test'], {'type':"text/plain"})
idb = event.target.result idb = event.target.result
store = idb.transaction(['files'], 'readwrite').objectStore('files')
try: try:
req = idb.transaction(['files'], 'readwrite').objectStore('files').put(blob, ':-test-blob-:') req = store.put(blob, ':-test-blob-:')
except Exception: except:
self.initialize_stage2(idb, False) self.initialize_stage2(idb, False)
req.onsuccess = def(event): req.onsuccess = def(event):
self.initialize_stage2(idb, True) self.initialize_stage2(idb, True)
req.onerror = def(event): req.onerror = def(event):
self.initialize_stage2(idb, False) # We use setTimeout as otherwise the idb.onerror handler is
# called with this error on Safari
setTimeout(self.initialize_stage2.bind(None, idb, False), 0)
def initialize_stage2(self, idb, supports_blobs): def initialize_stage2(self, idb, supports_blobs):
self.idb = idb self.idb = idb