Skip to content

Instantly share code, notes, and snippets.

@zeroliu
Created September 29, 2020 23:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeroliu/76cc3077f4eea678f4955e7f748484c2 to your computer and use it in GitHub Desktop.
Save zeroliu/76cc3077f4eea678f4955e7f748484c2 to your computer and use it in GitHub Desktop.
FF IDB object store not found
<!DOCTYPE html>
<body>
<script>
function createDb() {
return new Promise((resolve, reject) => {
const openRequest = indexedDB.open("test-idb-ff-error", 1);
openRequest.addEventListener("success", () => {
console.log('open succeeded');
const db = openRequest.result;
console.log(db.objectStoreNames);
// This would throw when db is corrupted.
db.transaction("databases", "readwrite");
db.addEventListener("versionchange", () => {
db.close();
});
resolve();
});
openRequest.addEventListener("upgradeneeded", (evt) => {
// Interrupt upgrade
window.location.reload();
console.log('reload');
openRequest.result.createObjectStore("databases");
});
});
}
function reset() {
return new Promise((resolve, reject) => {
const request = indexedDB.deleteDatabase("test-idb-ff-error");
request.addEventListener("success", () => {
console.log('delete succeeded.');
resolve();
});
});
}
async function test() {
for (let i = 0; i < 1000; ++i) {
console.log(`iteration ${i}`);
await createDb();
await reset();
}
}
test();
</script>
</body>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment