39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
if (this.importScripts) {
|
|
importScripts('../../../resources/js-test.js');
|
|
importScripts('shared.js');
|
|
}
|
|
|
|
description("Ensure that IDBDatabase objects are deleted when there are no retaining paths left");
|
|
|
|
indexedDBTest(prepareDatabase, openSuccess);
|
|
function prepareDatabase()
|
|
{
|
|
}
|
|
|
|
function openSuccess()
|
|
{
|
|
db = event.target.result;
|
|
evalAndLog("db.close()");
|
|
|
|
var openRequest = evalAndLog("indexedDB.open(dbname)");
|
|
openRequest.onblocked = unexpectedBlockedCallback;
|
|
openRequest.onupgradeneeded = unexpectedUpgradeNeededCallback;
|
|
openRequest.onerror = unexpectedErrorCallback;
|
|
openRequest.onsuccess = function() {
|
|
debug("Dropping references to new connection.");
|
|
// After leaving this function, there are no remaining references to the
|
|
// db, so it should get deleted.
|
|
setTimeout(setVersion, 2);
|
|
};
|
|
}
|
|
|
|
function setVersion()
|
|
{
|
|
evalAndLog("gc()");
|
|
debug("Open request should not receive a blocked event:");
|
|
var request = evalAndLog("indexedDB.open(dbname, 2)");
|
|
request.onerror = unexpectedErrorCallback;
|
|
request.onblocked = unexpectedBlockedCallback;
|
|
request.onsuccess = finishJSTest;
|
|
}
|