Skip to content

Commit 4f47f0f

Browse files
committed
simple_db.ts: log warning when "close" event is received
1 parent a9cd57a commit 4f47f0f

File tree

1 file changed

+36
-21
lines changed

1 file changed

+36
-21
lines changed

packages/firestore/src/local/simple_db.ts

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)