<script>

var request = window.indexedDB.open("WebProcessKillIDBCleanup");

request.onsuccess = function(event)
{
    window.webkit.messageHandlers.testHandler.postMessage('Second open success');

    event.target.result.transaction("TestObjectStore", "readonly").objectStore("TestObjectStore").get("foo").onsuccess = function() {
        window.webkit.messageHandlers.testHandler.postMessage('Second WebView Transaction Started');
    }
}

request.onerror = function()
{
    // Unexpected error
    window.webkit.messageHandlers.testHandler.postMessage('Unexpected error opening database');
}

request.onupgradeneeded = function(event)
{
    // Unexpected error
    window.webkit.messageHandlers.testHandler.postMessage('Unexpected UpgradeNeeded opening database');
}
</script>
