Title: [259156] trunk/Source/WebCore
Revision
259156
Author
[email protected]
Date
2020-03-28 06:07:35 -0700 (Sat, 28 Mar 2020)

Log Message

Unreviewed, reverting r259034.
https://bugs.webkit.org/show_bug.cgi?id=209700

Break StressGC bot (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"IndexedDB: destroy UniqueIDBDatabase when it's not used"
https://bugs.webkit.org/show_bug.cgi?id=209532
https://trac.webkit.org/changeset/259034

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (259155 => 259156)


--- trunk/Source/WebCore/ChangeLog	2020-03-28 10:50:18 UTC (rev 259155)
+++ trunk/Source/WebCore/ChangeLog	2020-03-28 13:07:35 UTC (rev 259156)
@@ -1,3 +1,16 @@
+2020-03-28  Commit Queue  <[email protected]>
+
+        Unreviewed, reverting r259034.
+        https://bugs.webkit.org/show_bug.cgi?id=209700
+
+        Break StressGC bot (Requested by yusukesuzuki on #webkit).
+
+        Reverted changeset:
+
+        "IndexedDB: destroy UniqueIDBDatabase when it's not used"
+        https://bugs.webkit.org/show_bug.cgi?id=209532
+        https://trac.webkit.org/changeset/259034
+
 2020-03-27  Simon Fraser  <[email protected]>
 
         Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code

Modified: trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp (259155 => 259156)


--- trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp	2020-03-28 10:50:18 UTC (rev 259155)
+++ trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp	2020-03-28 13:07:35 UTC (rev 259156)
@@ -171,13 +171,15 @@
     database->handleDelete(*connection, requestData);
 }
 
-void IDBServer::removeUniqueIDBDatabase(const IDBDatabaseIdentifier& identifier)
+std::unique_ptr<UniqueIDBDatabase> IDBServer::closeAndTakeUniqueIDBDatabase(UniqueIDBDatabase& database)
 {
-    LOG(IndexedDB, "IDBServer::removeUniqueIDBDatabase");
-    ASSERT(!isMainThread());
+    LOG(IndexedDB, "IDBServer::closeUniqueIDBDatabase");
+    ASSERT(isMainThread());
 
-    auto removed = m_uniqueIDBDatabaseMap.remove(identifier);
-    ASSERT_UNUSED(removed, removed);
+    auto uniquePointer = m_uniqueIDBDatabaseMap.take(database.identifier());
+    ASSERT(uniquePointer);
+
+    return uniquePointer;
 }
 
 void IDBServer::abortTransaction(const IDBResourceIdentifier& transactionIdentifier)

Modified: trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.h (259155 => 259156)


--- trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.h	2020-03-28 10:50:18 UTC (rev 259155)
+++ trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.h	2020-03-28 13:07:35 UTC (rev 259156)
@@ -96,7 +96,7 @@
     void registerTransaction(UniqueIDBDatabaseTransaction&);
     void unregisterTransaction(UniqueIDBDatabaseTransaction&);
 
-    void removeUniqueIDBDatabase(const IDBDatabaseIdentifier&);
+    std::unique_ptr<UniqueIDBDatabase> closeAndTakeUniqueIDBDatabase(UniqueIDBDatabase&);
 
     std::unique_ptr<IDBBackingStore> createBackingStore(const IDBDatabaseIdentifier&);
 

Modified: trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp (259155 => 259156)


--- trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp	2020-03-28 10:50:18 UTC (rev 259155)
+++ trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp	2020-03-28 13:07:35 UTC (rev 259156)
@@ -379,8 +379,6 @@
 
     m_pendingOpenDBRequests.add(ServerOpenDBRequest::create(connection, requestData));
     handleDatabaseOperations();
-
-    tryCloseAndRemoveFromServer();
 }
 
 void UniqueIDBDatabase::startVersionChangeTransaction()
@@ -948,7 +946,6 @@
             handleDatabaseOperations();
             handleTransactions();
 
-            tryCloseAndRemoveFromServer();
             return;
         }
     }
@@ -964,8 +961,6 @@
     // Now that a database connection has closed, previously blocked operations might be runnable.
     handleDatabaseOperations();
     handleTransactions();
-
-    tryCloseAndRemoveFromServer();
 }
 
 void UniqueIDBDatabase::connectionClosedFromServer(UniqueIDBDatabaseConnection& connection)
@@ -1195,18 +1190,6 @@
     }
 }
 
-void UniqueIDBDatabase::tryCloseAndRemoveFromServer()
-{
-    if (m_backingStore && m_backingStore->isEphemeral())
-        return;
-
-    if (hasAnyOpenConnections() || m_versionChangeDatabaseConnection)
-        return;
-
-    close();
-    m_server.removeUniqueIDBDatabase(m_identifier);
-}
-
 RefPtr<ServerOpenDBRequest> UniqueIDBDatabase::takeNextRunnableRequest(RequestType requestType)
 {
     // Connection of request may be closed or lost.

Modified: trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h (259155 => 259156)


--- trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h	2020-03-28 10:50:18 UTC (rev 259155)
+++ trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h	2020-03-28 13:07:35 UTC (rev 259156)
@@ -136,7 +136,6 @@
     void deleteBackingStore();
     void didDeleteBackingStore(uint64_t deletedVersion);
     void close();
-    void tryCloseAndRemoveFromServer();
 
     bool isCurrentlyInUse() const;
     void clearStalePendingOpenDBRequests();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to