Title: [168889] trunk/Source/WebKit2
Revision
168889
Author
m...@apple.com
Date
2014-05-14 20:58:04 -0700 (Wed, 14 May 2014)

Log Message

Database Process crashes after loading html5test.com
https://bugs.webkit.org/show_bug.cgi?id=132938
<rdar://problem/16241419>

Reviewed by Ryosuke Niwa.

* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
(WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): Expand comment
about the null check.
(WebKit::DatabaseProcessIDBConnection::deleteDatabase): Call disconnectedFromWebProcess
to pick up its null check and to avoid duplicating code.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (168888 => 168889)


--- trunk/Source/WebKit2/ChangeLog	2014-05-15 03:29:12 UTC (rev 168888)
+++ trunk/Source/WebKit2/ChangeLog	2014-05-15 03:58:04 UTC (rev 168889)
@@ -1,3 +1,17 @@
+2014-05-14  Maciej Stachowiak  <m...@apple.com>
+
+        Database Process crashes after loading html5test.com
+        https://bugs.webkit.org/show_bug.cgi?id=132938
+        <rdar://problem/16241419>
+
+        Reviewed by Ryosuke Niwa.
+
+        * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
+        (WebKit::DatabaseProcessIDBConnection::disconnectedFromWebProcess): Expand comment
+        about the null check.
+        (WebKit::DatabaseProcessIDBConnection::deleteDatabase): Call disconnectedFromWebProcess
+        to pick up its null check and to avoid duplicating code.
+
 2014-05-14  Benjamin Poulain  <bpoul...@apple.com>
 
         [iOS][WK2] The top/bottom edges should not be sticky when restoring the scroll position from the dynamic size update history

Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp (168888 => 168889)


--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp	2014-05-15 03:29:12 UTC (rev 168888)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp	2014-05-15 03:58:04 UTC (rev 168889)
@@ -58,7 +58,8 @@
 void DatabaseProcessIDBConnection::disconnectedFromWebProcess()
 {
     // It's possible that the m_uniqueIDBDatabase pointer has already been cleared
-    // if the represented database was deleted.
+    // if the represented database was deleted, or if it was closed between delete
+    // and the delete callback
     if (!m_uniqueIDBDatabase)
         return;
 
@@ -97,11 +98,9 @@
 
     RefPtr<DatabaseProcessIDBConnection> connection(this);
     m_uniqueIDBDatabase->deleteDatabase([connection, this, requestID](bool success) {
-        if (success) {
-            // If the database was deleted, this connection should detach from it so it can be cleaned up.
-            m_uniqueIDBDatabase->unregisterConnection(*this);
-            m_uniqueIDBDatabase = nullptr;
-        }
+        if (success)
+            disconnectedFromWebProcess();
+
         connection->send(Messages::WebIDBServerConnection::DidDeleteDatabase(requestID, success));
     });
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to