| <script> | |
| var request = window.indexedDB.deleteDatabase("WebProcessKillIDBCleanup"); | |
| request.onsuccess = function(e) | |
| { | |
| continueTest(); | |
| } | |
| request.onerror = function(e) | |
| { | |
| // Unexpected error | |
| window.webkit.messageHandlers.testHandler.postMessage('Error deleting database'); | |
| } | |
| var database; | |
| function continueTest() | |
| { | |
| var request = window.indexedDB.open("WebProcessKillIDBCleanup"); | |
| request.onsuccess = function() | |
| { | |
| window.webkit.messageHandlers.testHandler.postMessage('Open success'); | |
| setTimeout(continueTest2, 0); | |
| } | |
| request.onerror = function() | |
| { | |
| // Unexpected error | |
| window.webkit.messageHandlers.testHandler.postMessage('Unexpected error opening database'); | |
| } | |
| request.onupgradeneeded = function(event) | |
| { | |
| window.webkit.messageHandlers.testHandler.postMessage('UpgradeNeeded'); | |
| database = event.target.result; | |
| var store = database.createObjectStore("TestObjectStore"); | |
| event.target.transaction.oncomplete = function() { | |
| window.webkit.messageHandlers.testHandler.postMessage('Transaction complete'); | |
| } | |
| event.target.transaction.onerror = function() { | |
| window.webkit.messageHandlers.testHandler.postMessage('Transaction errored!'); | |
| } | |
| store.put("bar", "foo"); | |
| } | |
| } | |
| function continueTest2() | |
| { | |
| var objectStore = database.transaction("TestObjectStore", "readonly").objectStore("TestObjectStore"); | |
| // Start a get-loop to keep this transaction active. | |
| var shouldMessageClose = true; | |
| function success() { | |
| objectStore.get("foo").onsuccess = success; | |
| if (shouldMessageClose) { | |
| window.webkit.messageHandlers.testHandler.postMessage('Infinite Transaction Started'); | |
| shouldMessageClose = false; | |
| } | |
| } | |
| objectStore.get("foo").onsuccess = success; | |
| } | |
| </script> |