Title: [241188] branches/safari-607-branch/Source/WebCore
Revision
241188
Author
[email protected]
Date
2019-02-07 22:39:38 -0800 (Thu, 07 Feb 2019)

Log Message

Cherry-pick r241170. rdar://problem/47909341

    REGRESSION(r239887): Crash under IDBConnectionToClient::didDeleteDatabase(WebCore::IDBResultData const&)
    https://bugs.webkit.org/show_bug.cgi?id=194402
    <rdar://problem/47858241>

    Reviewed by Geoffrey Garen.

    r239887 removed a reference cycle of IDBConnectionToClient so that IDBConnectionToClient would no longer be
    around forever. Therefore, ServerOpenRequest should keep a reference to IDBConnectionToClient to make sure it
    is valid during access.

    * Modules/indexeddb/server/ServerOpenDBRequest.cpp:
    (WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
    (WebCore::IDBServer::ServerOpenDBRequest::notifyDidDeleteDatabase):
    * Modules/indexeddb/server/ServerOpenDBRequest.h:

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241170 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-607-branch/Source/WebCore/ChangeLog (241187 => 241188)


--- branches/safari-607-branch/Source/WebCore/ChangeLog	2019-02-08 05:36:25 UTC (rev 241187)
+++ branches/safari-607-branch/Source/WebCore/ChangeLog	2019-02-08 06:39:38 UTC (rev 241188)
@@ -1,5 +1,44 @@
 2019-02-07  Babak Shafiei  <[email protected]>
 
+        Cherry-pick r241170. rdar://problem/47909341
+
+    REGRESSION(r239887): Crash under IDBConnectionToClient::didDeleteDatabase(WebCore::IDBResultData const&)
+    https://bugs.webkit.org/show_bug.cgi?id=194402
+    <rdar://problem/47858241>
+    
+    Reviewed by Geoffrey Garen.
+    
+    r239887 removed a reference cycle of IDBConnectionToClient so that IDBConnectionToClient would no longer be
+    around forever. Therefore, ServerOpenRequest should keep a reference to IDBConnectionToClient to make sure it
+    is valid during access.
+    
+    * Modules/indexeddb/server/ServerOpenDBRequest.cpp:
+    (WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
+    (WebCore::IDBServer::ServerOpenDBRequest::notifyDidDeleteDatabase):
+    * Modules/indexeddb/server/ServerOpenDBRequest.h:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@241170 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-02-07  Sihui Liu  <[email protected]>
+
+            REGRESSION(r239887): Crash under IDBConnectionToClient::didDeleteDatabase(WebCore::IDBResultData const&)
+            https://bugs.webkit.org/show_bug.cgi?id=194402
+            <rdar://problem/47858241>
+
+            Reviewed by Geoffrey Garen.
+
+            r239887 removed a reference cycle of IDBConnectionToClient so that IDBConnectionToClient would no longer be
+            around forever. Therefore, ServerOpenRequest should keep a reference to IDBConnectionToClient to make sure it
+            is valid during access.
+
+            * Modules/indexeddb/server/ServerOpenDBRequest.cpp:
+            (WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
+            (WebCore::IDBServer::ServerOpenDBRequest::notifyDidDeleteDatabase):
+            * Modules/indexeddb/server/ServerOpenDBRequest.h:
+
+2019-02-07  Babak Shafiei  <[email protected]>
+
         Cherry-pick r241150. rdar://problem/47908154
 
     Overflow element scrollbar is light for dark mode content.

Modified: branches/safari-607-branch/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.cpp (241187 => 241188)


--- branches/safari-607-branch/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.cpp	2019-02-08 05:36:25 UTC (rev 241187)
+++ branches/safari-607-branch/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.cpp	2019-02-08 06:39:38 UTC (rev 241188)
@@ -60,7 +60,7 @@
         return;
 
     uint64_t requestedVersion = isOpenRequest() ?  m_requestData.requestedVersion() : 0;
-    m_connection.notifyOpenDBRequestBlocked(m_requestData.requestIdentifier(), currentVersion, requestedVersion);
+    m_connection->notifyOpenDBRequestBlocked(m_requestData.requestIdentifier(), currentVersion, requestedVersion);
 
     m_notifiedBlocked = true;
 }
@@ -69,7 +69,7 @@
 {
     ASSERT(isDeleteRequest());
 
-    m_connection.didDeleteDatabase(IDBResultData::deleteDatabaseSuccess(m_requestData.requestIdentifier(), info));
+    m_connection->didDeleteDatabase(IDBResultData::deleteDatabaseSuccess(m_requestData.requestIdentifier(), info));
 }
 
 void ServerOpenDBRequest::notifiedConnectionsOfVersionChange(HashSet<uint64_t>&& connectionIdentifiers)

Modified: branches/safari-607-branch/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.h (241187 => 241188)


--- branches/safari-607-branch/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.h	2019-02-08 05:36:25 UTC (rev 241187)
+++ branches/safari-607-branch/Source/WebCore/Modules/indexeddb/server/ServerOpenDBRequest.h	2019-02-08 06:39:38 UTC (rev 241188)
@@ -63,7 +63,7 @@
 private:
     ServerOpenDBRequest(IDBConnectionToClient&, const IDBRequestData&);
 
-    IDBConnectionToClient& m_connection;
+    Ref<IDBConnectionToClient> m_connection;
     IDBRequestData m_requestData;
 
     bool m_notifiedBlocked { false };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to