зеркало из https://github.com/mozilla/gecko-dev.git
46 строки
1.1 KiB
HTML
46 строки
1.1 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<body>
|
|
<script>
|
|
function createDb() {
|
|
return new Promise((resolve, reject) => {
|
|
const openRequest = indexedDB.open("test-abort-on-reload", 1);
|
|
openRequest.onsuccess = () => {
|
|
const db = openRequest.result;
|
|
// This would throw when db is corrupted.
|
|
db.transaction("databases", "readwrite");
|
|
db.onversionchange = () => {
|
|
db.close();
|
|
};
|
|
resolve();
|
|
};
|
|
openRequest.onupgradeneeded = (evt) => {
|
|
// Interrupt upgrade
|
|
window.location.reload();
|
|
opener.info('reload requested\n');
|
|
openRequest.result.createObjectStore("databases");
|
|
};
|
|
});
|
|
}
|
|
|
|
function reset() {
|
|
return new Promise((resolve, reject) => {
|
|
const request = indexedDB.deleteDatabase("test-abort-on-reload");
|
|
request.onsuccess = resolve;
|
|
});
|
|
}
|
|
|
|
async function test() {
|
|
opener.postMessage("message", "*");
|
|
|
|
for (let i = 0; i < 10; ++i) {
|
|
opener.info(`iteration ${i}`);
|
|
await createDb();
|
|
await reset();
|
|
}
|
|
}
|
|
|
|
test();
|
|
</script>
|
|
</body>
|