WebKit Bugzilla
Attachment 359085 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 for landing
bug-193090-20190114154046.patch (text/plain), 2.55 KB, created by
Sihui Liu
on 2019-01-14 15:40:47 PST
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
Sihui Liu
Created:
2019-01-14 15:40:47 PST
Size:
2.55 KB
patch
obsolete
>Subversion Revision: 239777 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 63394d701f2531582bcb2ddc2a6d087d7b10b596..96cb9439d0e0351b8e64f504d169c84ae30ae0fa 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2019-01-14 Sihui Liu <sihui_liu@apple.com> >+ >+ IndexedDB: When deleting databases, some open databases might be missed >+ https://bugs.webkit.org/show_bug.cgi?id=193090 >+ >+ Reviewed by Brady Eidson. >+ >+ We should close all databases with an open backing store instead of looking at which ones have an open database >+ connection. This is because a database might be in the process of getting a backing store before its connection >+ has been created. >+ >+ * Modules/indexeddb/server/IDBServer.cpp: >+ (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince): >+ (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins): >+ > 2019-01-09 Zalan Bujtas <zalan@apple.com> > > [LFC][BFC][MarginCollapsing] Add support for peculiar cases. >diff --git a/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp b/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp >index cb17ba1d579b6d2599ff4c5bcefdfe2faef4bea0..5d936c8bebbad8a6c52dfe43847f4a734e53444b 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