| <script> |
| |
| var request = window.indexedDB.open("IndexedDBMultiProcess", 2); |
| |
| request.onsuccess = function(event) |
| { |
| var req = event.target.result.transaction("TestObjectStore").objectStore("TestObjectStore").get("foo"); |
| |
| req.onsuccess = function(event) |
| { |
| window.webkit.messageHandlers.testHandler.postMessage('Value of foo: ' + req.result); |
| continueTest1(); |
| } |
| |
| req.onerror = function(event) |
| { |
| // Unexpected error |
| window.webkit.messageHandlers.testHandler.postMessage('Unexpected error getting value'); |
| } |
| } |
| |
| request.onerror = function() |
| { |
| // Unexpected error |
| window.webkit.messageHandlers.testHandler.postMessage('Unexpected error opening database'); |
| } |
| |
| request.onupgradeneeded = function(event) |
| { |
| // Unexpected upgrade needed |
| window.webkit.messageHandlers.testHandler.postMessage('Unexpected UpgradeNeeded'); |
| } |
| |
| function continueTest1() |
| { |
| var request = window.indexedDB.deleteDatabase("ProcessCloseIDBCleanup"); |
| request.onsuccess = function(e) |
| { |
| continueTest2(); |
| } |
| request.onerror = function(e) |
| { |
| // Unexpected error |
| window.webkit.messageHandlers.testHandler.postMessage('Error deleting ProcessCloseIDBCleanup database'); |
| } |
| } |
| |
| function startGetLoop() |
| { |
| var request = window.indexedDB.open("ProcessCloseIDBCleanup"); |
| request.onsuccess = function(e) |
| { |
| var req = e.target.result.transaction(["TestObjectStore"]).objectStore("TestObjectStore").get("foo"); |
| req.onsuccess = startGetLoop; |
| req.onerror = function(e) |
| { |
| // Unexpected error |
| window.webkit.messageHandlers.testHandler.postMessage('Error with a get loop'); |
| } |
| } |
| |
| request.onerror = function(e) |
| { |
| // Unexpected error |
| window.webkit.messageHandlers.testHandler.postMessage('Error with a get loop'); |
| } |
| } |
| |
| function continueTest2() |
| { |
| var request = window.indexedDB.open("ProcessCloseIDBCleanup"); |
| request.onsuccess = function(e) |
| { |
| for (var i = 0; i < 75; ++i) |
| startGetLoop(); |
| |
| setTimeout("window.webkit.messageHandlers.testHandler.postMessage('Get loops started');", 0); |
| } |
| |
| request.onerror = function(e) |
| { |
| // Unexpected error |
| window.webkit.messageHandlers.testHandler.postMessage('Error opening ProcessCloseIDBCleanup database'); |
| } |
| |
| request.onupgradeneeded = function(e) |
| { |
| e.target.result.createObjectStore("TestObjectStore").put("bar", "foo"); |
| } |
| } |
| |
| </script> |