In Upgrading a database step 11 is supposed to wait for the transaction to finish.
A transaction is finished once it enters the finished
state (after commit
or abort
)
Calling indexedDB.open("test", 1)
will cause an upgrade, and then step 10.5 could change the state (via autocommit, or user action), but then we instantly set it back to inactive in step 10.6
Given the following snippet:
let db; const open_rq = indexedDB.open(undefined, 9); open_rq.onupgradeneeded = function (e) { db = e.target.result; }; open_rq.onsuccess = function (e) { db.close(); let open_rq2 = indexedDB.open(db.name, 10); };
Once we get to close a database connection step 3. we will be stuck in an infinite loop, because at no point has the transaction gone to the finished state. (The onupgradeneeded
callback does nothing that would cause an abort or commit)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3