From 8c2f2cfc0e75c08787be2a9a3bfa37642aebeba1 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 27 May 2017 13:00:31 +0530 Subject: [PATCH] Fix spurious idb error on startup in Safari --- src/pyj/read_book/db.pyj | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pyj/read_book/db.pyj b/src/pyj/read_book/db.pyj index 6933a478ef..f60210aad6 100644 --- a/src/pyj/read_book/db.pyj +++ b/src/pyj/read_book/db.pyj @@ -83,14 +83,17 @@ class DB: request.onsuccess = def(event): blob = Blob(['test'], {'type':"text/plain"}) idb = event.target.result + store = idb.transaction(['files'], 'readwrite').objectStore('files') try: - req = idb.transaction(['files'], 'readwrite').objectStore('files').put(blob, ':-test-blob-:') - except Exception: + req = store.put(blob, ':-test-blob-:') + except: self.initialize_stage2(idb, False) req.onsuccess = def(event): self.initialize_stage2(idb, True) 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): self.idb = idb