Check that a page reloaded during an in-flight upgradeneeded event doesn't hang. On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". indexedDB = self.indexedDB || self.webkitIndexedDB || self.mozIndexedDB || self.msIndexedDB || self.OIndexedDB; dbname1 = dbname + '1' dbname2 = dbname + '2' deleteDatabase1(): indexedDB.deleteDatabase(dbname1) In a multi process implementation this deleteDatabase may be blocked temporarily, so we don't check for either the presence or absence of a blocked event. deleteDatabase2(): indexedDB.deleteDatabase(dbname2) openDatabase1(): indexedDB.open(dbname1, 1) openOnUpgradeNeeded1(): db1 = event.target.result store1 = db1.createObjectStore('store') store1.put(0, 0) openOnSuccess1(): PASS isAfterReload() is true PASS successfullyParsed is true TEST COMPLETE