h2 shouldn't receive any blocked events, and h3 should open after h2 is open 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; indexedDB.deleteDatabase(dbname) indexedDB.open(dbname) blockedEventFired = false versionChangeComplete = false h2Opened = false openAnother(): h1 = event.target.result indexedDB.open(dbname, 2) indexedDB.open(dbname) h1.close() h2UpgradeNeeded(): h2 = event.target.result transactionOnComplete(): versionChangeComplete = true h2Success(): h2Opened = true h3Success(): h3 = event.target.result PASS h3.version is 2 PASS blockedEventFired is false PASS versionChangeComplete is true PASS h2Opened is true PASS successfullyParsed is true TEST COMPLETE