| if (this.importScripts) { | 
 |     importScripts('../../../resources/js-test.js'); | 
 |     importScripts('shared.js'); | 
 | } | 
 |  | 
 | description("Check processing of pending version change requests - increasing versions."); | 
 |  | 
 | indexedDBTest(null, function onConnection1Open(evt) { | 
 |     preamble(evt); | 
 |     db = event.target.result; | 
 |  | 
 |     request = evalAndLog("indexedDB.open(dbname, 2)"); | 
 |     request.onblocked = connection2Blocked; | 
 |     request.onupgradeneeded = connection2UpgradeNeeded; | 
 |     request.onsuccess = connection2OpenSuccess; | 
 |     request.onerror = unexpectedErrorCallback; | 
 |  | 
 |     request = evalAndLog("indexedDB.open(dbname, 3)"); | 
 |     request.onblocked = connection3Blocked; | 
 |     request.onupgradeneeded = connection3UpgradeNeeded; | 
 |     request.onsuccess = connection3OpenSuccess; | 
 |     request.onerror = unexpectedErrorCallback; | 
 |  | 
 |     debug(""); | 
 |     debug("FIXME: The open call with higher version should execute first."); | 
 | }); | 
 |  | 
 | function connection2Blocked(evt) | 
 | { | 
 |     preamble(evt); | 
 |     // Attempt to delay this until the third open has been processed; | 
 |     // not strictly necessary but will exercise IPC/event timing. | 
 |     setTimeout(function() { | 
 |         evalAndLog("db.close()"); | 
 |     }, 0); | 
 | } | 
 |  | 
 | function connection2UpgradeNeeded(evt) | 
 | { | 
 |     preamble(evt); | 
 |     shouldBe("event.oldVersion", "1"); | 
 |     shouldBe("event.newVersion", "2"); | 
 | } | 
 |  | 
 | function connection2OpenSuccess(evt) | 
 | { | 
 |     preamble(evt); | 
 |     evalAndLog("db2 = event.target.result"); | 
 |     shouldBe("db2.version", "2"); | 
 | } | 
 |  | 
 | function connection3Blocked(evt) | 
 | { | 
 |     preamble(evt); | 
 |     evalAndLog("db2.close()"); | 
 | } | 
 |  | 
 | function connection3UpgradeNeeded(evt) | 
 | { | 
 |     preamble(evt); | 
 |     shouldBe("event.oldVersion", "2"); | 
 |     shouldBe("event.newVersion", "3"); | 
 | } | 
 |  | 
 | function connection3OpenSuccess(evt) | 
 | { | 
 |     preamble(evt); | 
 |     evalAndLog("db3 = event.target.result"); | 
 |     shouldBe("db3.version", "3"); | 
 |     finishJSTest(); | 
 | } |