3 <script src="../../resources/js-test.js"></script>
4 <script src="resources/shared.js"></script>
9 description("Explicitly terminating worker with blocked call should allow later open calls to proceed");
13 removeVendorPrefixes();
15 if (self.location.search !== "?second") {
22 function firstOpen() {
23 request = evalAndLog("indexedDB.deleteDatabase(dbname)");
24 request.onblocked = unexpectedBlockedCallback;
25 request.onerror = unexpectedErrorCallback;
26 request.onsuccess = function() {
27 request = evalAndLog("indexedDB.open(dbname)");
28 request.onblocked = unexpectedBlockedCallback;
29 request.onerror = unexpectedErrorCallback;
30 request.onsuccess = startTheWorker;
34 function secondOpen() {
35 request = evalAndLog("indexedDB.open(dbname)");
36 request.onblocked = unexpectedBlockedCallback;
37 request.onerror = unexpectedErrorCallback;
38 request.onupgradeneeded = unexpectedUpgradeNeededCallback;
39 request.onsuccess = function() {
40 testPassed("Open worked after page reload.");
45 function startTheWorker()
47 worker = startWorker("resources/pending-version-change-stuck.js?" + encodeURIComponent(dbname));
48 worker.onerror = function(e) {
49 testFailed(e.message);
52 originalOnMessage = worker.onmessage;
53 worker.onmessage = function(event) {
54 if (event.data == "gotblocked") {
56 self.location = self.location + "?second";
60 originalOnMessage(event);