v149 · IndexedDB · Storage

Migration Readiness Checker

Chrome 149's new SQLite-backed IndexedDB is transparent to the web API — but some usage patterns interact differently with the new engine. This checker runs live tests to verify your code is ready for the backend switch.

run checks to see readiness score
readiness checks 0 / 6 run

what changed in the backend

Chrome's IndexedDB used to store data in LevelDB (key-value pairs) plus separate blob files. The SQLite backend stores everything in a single .db file. The web API hasn't changed — IDBDatabase, IDBTransaction, cursors, and indexes all work identically. The benefit: fewer file handles, atomic commits across tables, and better error recovery (SQLite's WAL mode).

// No API change — this code works identically on both backends:
const db = await new Promise((res, rej) => {
  const req = indexedDB.open('mydb', 1);
  req.onupgradeneeded = e => e.target.result.createObjectStore('items');
  req.onsuccess = e => res(e.target.result);
  req.onerror = rej;
});

const tx = db.transaction('items', 'readwrite');
tx.objectStore('items').put({ value: 42 }, 'key1');
await new Promise(r => tx.oncomplete = r);

see also

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗