Estoy "felizmente" reconstruyendo algunas de mis extensiones de Chrome a MV3. Pero estoy atascado porque no puedo entender cómo usar IndexedDB de los trabajadores del servicio. Para ser más específicos, no he encontrado ningún ejemplo funcional de acceso a IndexedDB desde un script de trabajador de servicio JS.
Refiriéndose a esta página , solía abrir una base de datos como esta:
var idb = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB; var dbName = "DatabaseName"; var open = idb.open(dbName, 1);Pero como todos sabemos, los trabajadores de servicio ya no pueden acceder a la ventana en MV3.
En pocas palabras, las páginas de fondo brindan a los autores de extensiones un entorno independiente de cualquier otra ventana o pestaña.
( https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/#state )
¿Cómo se supone que debo hacerlo?
Gracias por su ayuda, tiempo y paciencia. ¡Ten un excelente fin de semana!
La respuesta es más sencilla de lo que pensaba. indexedDB ya está definido cuando se usa en trabajadores de servicio y no necesita estar relacionado con el objeto de ventana. Está listo para usar.
var dbName = "DatabaseName"; var open = indexedDB.open(dbName, 1);Dejo esta pregunta por si alguien más tiene la misma duda.