Title: [171748] trunk/Source/WebKit2
Revision
171748
Author
commit-qu...@webkit.org
Date
2014-07-29 10:23:47 -0700 (Tue, 29 Jul 2014)

Log Message

Unreviewed, rolling out r171704.
https://bugs.webkit.org/show_bug.cgi?id=135389

Broke two IndexedDB tests (Requested by ap on #webkit).

Reverted changeset:

"IDB transactions never reset if the Web Process ends before
cleaning up"
https://bugs.webkit.org/show_bug.cgi?id=135218
http://trac.webkit.org/changeset/171704

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (171747 => 171748)


--- trunk/Source/WebKit2/ChangeLog	2014-07-29 16:40:17 UTC (rev 171747)
+++ trunk/Source/WebKit2/ChangeLog	2014-07-29 17:23:47 UTC (rev 171748)
@@ -1,3 +1,17 @@
+2014-07-29  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r171704.
+        https://bugs.webkit.org/show_bug.cgi?id=135389
+
+        Broke two IndexedDB tests (Requested by ap on #webkit).
+
+        Reverted changeset:
+
+        "IDB transactions never reset if the Web Process ends before
+        cleaning up"
+        https://bugs.webkit.org/show_bug.cgi?id=135218
+        http://trac.webkit.org/changeset/171704
+
 2014-07-29  Daniel Bates  <daba...@apple.com>
 
         Use WTF::move() instead of std::move() to help ensure move semantics

Modified: trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp (171747 => 171748)


--- trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp	2014-07-29 16:40:17 UTC (rev 171747)
+++ trunk/Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.cpp	2014-07-29 17:23:47 UTC (rev 171748)
@@ -71,9 +71,7 @@
 
 void DatabaseToWebProcessConnection::didClose(IPC::Connection*)
 {
-    // The WebProcess has disconnected, close all of the connections associated with it
-    while (!m_idbConnections.isEmpty())
-        removeDatabaseProcessIDBConnection(m_idbConnections.begin()->key);
+
 }
 
 void DatabaseToWebProcessConnection::didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference messageReceiverName, IPC::StringReference messageName)

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp (171747 => 171748)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp	2014-07-29 16:40:17 UTC (rev 171747)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp	2014-07-29 17:23:47 UTC (rev 171748)
@@ -113,10 +113,9 @@
 void UniqueIDBDatabase::unregisterConnection(DatabaseProcessIDBConnection& connection)
 {
     ASSERT(m_connections.contains(&connection));
-    resetAllTransactions(connection);
     m_connections.remove(&connection);
 
-    if (m_connections.isEmpty() && m_pendingTransactionRollbacks.isEmpty()) {
+    if (m_connections.isEmpty()) {
         shutdown(UniqueIDBDatabaseShutdownType::NormalShutdown);
         DatabaseProcess::shared().removeUniqueIDBDatabase(*this);
     }
@@ -338,12 +337,10 @@
     ASSERT(RunLoop::isMain());
 
     RefPtr<AsyncRequest> request = m_pendingTransactionRequests.take(transactionIdentifier);
+    if (!request)
+        return;
 
-    if (request)
-        request->completeRequest(success);
-
-    if (m_pendingTransactionRollbacks.contains(transactionIdentifier))
-        finalizeRollback(transactionIdentifier);
+    request->completeRequest(success);
 }
 
 void UniqueIDBDatabase::changeDatabaseVersion(const IDBIdentifier& transactionIdentifier, uint64_t newVersion, std::function<void(bool)> successCallback)
@@ -717,7 +714,6 @@
 
     bool success = m_backingStore->establishTransaction(transactionIdentifier, objectStoreIDs, mode);
 
-    postMainThreadTask(createAsyncTask(*this, &UniqueIDBDatabase::didEstablishTransaction, transactionIdentifier, success));
     postMainThreadTask(createAsyncTask(*this, &UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
 }
 
@@ -748,7 +744,6 @@
 
     bool success = m_backingStore->resetTransaction(transactionIdentifier);
 
-    postMainThreadTask(createAsyncTask(*this, &UniqueIDBDatabase::didResetTransaction, transactionIdentifier, success));
     postMainThreadTask(createAsyncTask(*this, &UniqueIDBDatabase::didCompleteTransactionOperation, transactionIdentifier, success));
 }
 
@@ -1075,62 +1070,6 @@
     request->completeRequest(errorCode, errorMessage);
 }
 
-void UniqueIDBDatabase::didEstablishTransaction(const IDBIdentifier& transactionIdentifier, bool success)
-{
-    ASSERT(RunLoop::isMain());
-    if (!success)
-        return;
-
-    auto transactions = m_establishedTransactions.add(&transactionIdentifier.connection(), HashSet<IDBIdentifier>());
-    transactions.iterator->value.add(transactionIdentifier);
-}
-
-void UniqueIDBDatabase::didResetTransaction(const IDBIdentifier& transactionIdentifier, bool success)
-{
-    ASSERT(RunLoop::isMain());
-    if (!success)
-        return;
-
-    auto transactions = m_establishedTransactions.find(&transactionIdentifier.connection());
-    if (transactions != m_establishedTransactions.end())
-        transactions.get()->value.remove(transactionIdentifier);
-}
-
-void UniqueIDBDatabase::resetAllTransactions(const DatabaseProcessIDBConnection& connection)
-{
-    ASSERT(RunLoop::isMain());
-    auto transactions = m_establishedTransactions.find(&connection);
-    if (transactions == m_establishedTransactions.end() || !m_acceptingNewRequests)
-        return;
-
-    for (auto& transactionIdentifier : transactions.get()->value) {
-        m_pendingTransactionRollbacks.add(transactionIdentifier);
-        if (!m_pendingTransactionRequests.contains(transactionIdentifier))
-            finalizeRollback(transactionIdentifier);
-    }
-}
-
-void UniqueIDBDatabase::finalizeRollback(const WebKit::IDBIdentifier& transactionId)
-{
-    ASSERT(RunLoop::isMain());
-    ASSERT(m_pendingTransactionRollbacks.contains(transactionId));
-    ASSERT(!m_pendingTransactionRequests.contains(transactionId));
-    rollbackTransaction(transactionId, [this, transactionId](bool) {
-        ASSERT(RunLoop::isMain());
-        if (m_pendingTransactionRequests.contains(transactionId))
-            return;
-
-        ASSERT(m_pendingTransactionRollbacks.contains(transactionId));
-        m_pendingTransactionRollbacks.remove(transactionId);
-        resetTransaction(transactionId, [this, transactionId](bool) {
-            if (m_acceptingNewRequests && m_connections.isEmpty() && m_pendingTransactionRollbacks.isEmpty()) {
-                shutdown(UniqueIDBDatabaseShutdownType::NormalShutdown);
-                DatabaseProcess::shared().removeUniqueIDBDatabase(*this);
-            }
-        });
-    });
-}
-
 String UniqueIDBDatabase::absoluteDatabaseDirectory() const
 {
     ASSERT(RunLoop::isMain());

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h (171747 => 171748)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h	2014-07-29 16:40:17 UTC (rev 171747)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h	2014-07-29 17:23:47 UTC (rev 171748)
@@ -185,17 +185,10 @@
     void didShutdownBackingStore(UniqueIDBDatabaseShutdownType);
     void didCompleteBoolRequest(uint64_t requestID, bool success);
 
-    void didEstablishTransaction(const IDBIdentifier& transactionIdentifier, bool success);
-    void didResetTransaction(const IDBIdentifier& transactionIdentifier, bool success);
-    void resetAllTransactions(const DatabaseProcessIDBConnection&);
-    void finalizeRollback(const IDBIdentifier& transactionId);
-
     bool m_acceptingNewRequests;
 
-    HashMap<const DatabaseProcessIDBConnection*, HashSet<IDBIdentifier>> m_establishedTransactions;
     Deque<RefPtr<AsyncRequest>> m_pendingMetadataRequests;
     HashMap<IDBIdentifier, RefPtr<AsyncRequest>> m_pendingTransactionRequests;
-    HashSet<IDBIdentifier> m_pendingTransactionRollbacks;
     HashMap<uint64_t, RefPtr<AsyncRequest>> m_pendingDatabaseTasks;
     RefPtr<AsyncRequest> m_pendingShutdownTask;
 

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp (171747 => 171748)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp	2014-07-29 16:40:17 UTC (rev 171747)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp	2014-07-29 17:23:47 UTC (rev 171748)
@@ -391,11 +391,6 @@
         return false;
     }
 
-    if (!transaction->inProgress()) {
-        LOG_ERROR("Attempt to rollback a transaction that hasn't begun");
-        return false;
-    }
-
     return transaction->rollback();
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to