@@ -476,31 +476,46 @@ export class SimpleDb {
476476 ) ;
477477 } ) ;
478478 } ;
479+ } ) ;
480+
481+ db . addEventListener (
482+ 'versionchange' ,
483+ event => {
484+ logDebug (
485+ dbDebugId ,
486+ `IDBDatabase "versionchange" event: ` +
487+ `oldVersion=${ event . oldVersion } newVersion=${ event . newVersion } `
488+ ) ;
479489
480- db . addEventListener (
481- 'versionchange' ,
482- event => {
483- logDebug (
490+ // Notify the listener if another tab attempted to delete the IndexedDb
491+ // database, such as by calling clearIndexedDbPersistence().
492+ if ( event . newVersion === null ) {
493+ logWarn (
484494 dbDebugId ,
485- `IDBOpenDBRequest.versionchange oldVersion=${ event . oldVersion } newVersion=${ event . newVersion } `
495+ `Received "versionchange" event with newVersion===null; ` +
496+ 'notifying the registered DatabaseDeletedListener, if any'
486497 ) ;
487-
488- // Notify the listener if another tab attempted to delete the IndexedDb
489- // database, such as by calling clearIndexedDbPersistence().
490- if ( event . newVersion === null ) {
491- logWarn (
492- dbDebugId ,
493- `Received "versionchange" event with newVersion===null; ` +
494- 'notifying the registered DatabaseDeletedListener, if any'
495- ) ;
496- if ( 'databaseDeletedListener' in this . state ) {
497- this . state . databaseDeletedListener ?.( ) ;
498- }
498+ if ( 'databaseDeletedListener' in this . state ) {
499+ this . state . databaseDeletedListener ?.( ) ;
499500 }
500- } ,
501- { passive : true }
502- ) ;
503- } ) ;
501+ }
502+ } ,
503+ { passive : true }
504+ ) ;
505+
506+ db . addEventListener (
507+ 'close' ,
508+ ( ) => {
509+ logWarn (
510+ dbDebugId ,
511+ `IDBDatabase "close" event received, ` +
512+ `indicating that the IDBDatabase was abnormally closed. ` +
513+ `One possible cause is clicking the "Clear Site Data" button ` +
514+ `in a web browser.`
515+ ) ;
516+ } ,
517+ { passive : true }
518+ ) ;
504519
505520 return { idbDatabase : db , debugId : dbDebugId } ;
506521 }
0 commit comments