'How to use IndexedDB from Chrome Extension Service Workers
I'm "happily" rebuilding some of my Chrome Extensions to MV3. But I'm stuck because I can't understand how to use IndexedDB from service workers. To be more specific, I haven't found any working example of IndexedDB access from a JS service worker script.
Referring to this page, I used to open a db like this:
var idb = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
var dbName = "DatabaseName";
var open = idb.open(dbName, 1);
But as we all know, window is not accessible anymore from service workers in MV3.
To put it simply, background pages provide extension authors with an environment that lives independent of any other window or tab.
(https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/#state)
How am I supposed to do it?
Thanks for your help, time, and patience. Have a great weekend!
Solution 1:[1]
The answer is simpler than I thought. indexedDB is already defined when used in service workers and does not need to be related to the window object. It's ready-to-use.
var dbName = "DatabaseName";
var open = indexedDB.open(dbName, 1);
I'll leave this question in case someone else has the same doubt.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Iulsplus |
