WebKit Bugzilla
Attachment 358210 Details for
Bug 193090
: IndexedDB: When deleting databases, some open databases might be missed
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch
patch (text/plain), 2.37 KB, created by
Sihui Liu
on 2019-01-02 14:58:59 PST
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Sihui Liu
Created:
2019-01-02 14:58:59 PST
Size:
2.37 KB
patch
obsolete
>diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 081d6d7062e..87e3bccc639 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,17 @@ >+2019-01-02 Sihui Liu <sihui_liu@apple.com> >+ >+ IndexedDB: files should be deleted after databases being opened are closed >+ https://bugs.webkit.org/show_bug.cgi?id=193090 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ We should close all open databases instead of databases from open database connections, because database thread >+ will start accessing database file before there is a connection. >+ >+ * Modules/indexeddb/server/IDBServer.cpp: >+ (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince): >+ (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins): >+ > 2019-01-02 Simon Fraser <simon.fraser@apple.com> > > Rename LayerScrollCoordinationRole to ScrollCoordinationRole and make an enum class >diff --git a/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp b/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp >index cb17ba1d579..5d936c8bebb 100644 >--- a/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp >+++ b/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp >@@ -509,8 +509,8 @@ void IDBServer::closeAndDeleteDatabasesModifiedSince(WallTime modificationTime, > } > > HashSet<UniqueIDBDatabase*> openDatabases; >- for (auto* connection : m_databaseConnections.values()) >- openDatabases.add(connection->database()); >+ for (auto& database : m_uniqueIDBDatabaseMap.values()) >+ openDatabases.add(database.get()); > > for (auto& database : openDatabases) > database->immediateCloseForUserDelete(); >@@ -525,14 +525,11 @@ void IDBServer::closeAndDeleteDatabasesForOrigins(const Vector<SecurityOriginDat > ASSERT_UNUSED(addResult, addResult.isNewEntry); > > HashSet<UniqueIDBDatabase*> openDatabases; >- for (auto* connection : m_databaseConnections.values()) { >- auto database = connection->database(); >- ASSERT(database); >- >+ for (auto& database : m_uniqueIDBDatabaseMap.values()) { > const auto& identifier = database->identifier(); > for (auto& origin : origins) { > if (identifier.isRelatedToOrigin(origin)) { >- openDatabases.add(database); >+ openDatabases.add(database.get()); > break; > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193090
:
358210
|
359085