blob: 676ef5093c023ffea082d1a036ca251a9a64b3fc [file] [log] [blame]
<!DOCTYPE html>
<title>Transaction from removed execution context</title>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
var script = `
var db = openDatabase('db' + Math.random() + Date.now(), '1.0', 'test database', 2*1024);
db.transaction(tx => {
tx.executeSql('DROP TABLE IF EXISTS TestTable');
tx.executeSql('CREATE TABLE IF NOT EXISTS TestTable (id unique,text)');
tx.executeSql('DELETE FROM TestTable WHERE id=?', [1]);
frameElement.remove();
});
`;
window.addEventListener('DOMContentLoaded', e => {
var srcdoc = '<script>' + script + '<\/script>';
var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
iframe.srcdoc = srcdoc;
waitUntil(
() => iframe.parentNode === null,
() => window.testRunner && testRunner.notifyDone()
);
});
// Poll (10ms) until testFunc returns true, then execute callback().
function waitUntil(testFunc, callback) {
setTimeout(() => {
if (testFunc())
callback();
else
waitUntil(testFunc, callback);
}, 10);
}
</script>
<body>
If it doesn't crash, this test has passed.
</body>