56 lines
1.2 KiB
HTML
56 lines
1.2 KiB
HTML
<html>
|
|
<head>
|
|
<script src="../../resources/js-test.js"></script>
|
|
<script src="resources/shared.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
description("No crashes when there are event listeners in a worker on shutdown");
|
|
|
|
if (self.location.search == "?second") {
|
|
testPassed("Didn't crash!");
|
|
finishJSTest();
|
|
} else {
|
|
evalAndLog("workerGotBlocked = false");
|
|
evalAndLog("gotVersionChangeEvent = false");
|
|
indexedDBTest(prepareDatabase, startTheWorker);
|
|
}
|
|
|
|
function prepareDatabase()
|
|
{
|
|
debug("inside prepareDatabase");
|
|
preamble();
|
|
db = event.target.result;
|
|
db.onversionchange = onVersionChange;
|
|
}
|
|
|
|
function startTheWorker()
|
|
{
|
|
worker = startWorker("resources/pending-version-change-on-exit.js?" + encodeURIComponent(dbname));
|
|
realFinishJSTest = finishJSTest;
|
|
worker.onerror = function(e) {
|
|
testFailed(e.message);
|
|
realFinishJSTest();
|
|
};
|
|
finishJSTest = function() {
|
|
workerGotBlocked = true;
|
|
maybeReload();
|
|
}
|
|
}
|
|
|
|
function onVersionChange(e)
|
|
{
|
|
gotVersionChangeEvent = true;
|
|
maybeReload();
|
|
};
|
|
|
|
function maybeReload()
|
|
{
|
|
if (gotVersionChangeEvent && workerGotBlocked)
|
|
self.location = self.location + "?second";
|
|
};
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|