Title: [248665] trunk/Source/WebKit
Revision
248665
Author
you...@apple.com
Date
2019-08-14 03:11:11 -0700 (Wed, 14 Aug 2019)

Log Message

NetworkProcess::m_swServerConnections should use WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=200660

Reviewed by Geoffrey Garen.

Use WeakPtr for SWServer connections as an extra safety measure.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::postMessageToServiceWorker):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
* NetworkProcess/NetworkProcess.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (248664 => 248665)


--- trunk/Source/WebKit/ChangeLog	2019-08-14 09:40:17 UTC (rev 248664)
+++ trunk/Source/WebKit/ChangeLog	2019-08-14 10:11:11 UTC (rev 248665)
@@ -1,5 +1,21 @@
 2019-08-14  Youenn Fablet  <you...@apple.com>
 
+        NetworkProcess::m_swServerConnections should use WeakPtr
+        https://bugs.webkit.org/show_bug.cgi?id=200660
+
+        Reviewed by Geoffrey Garen.
+
+        Use WeakPtr for SWServer connections as an extra safety measure.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::postMessageToServiceWorkerClient):
+        (WebKit::NetworkProcess::postMessageToServiceWorker):
+        (WebKit::NetworkProcess::registerSWServerConnection):
+        (WebKit::NetworkProcess::unregisterSWServerConnection):
+        * NetworkProcess/NetworkProcess.h:
+
+2019-08-14  Youenn Fablet  <you...@apple.com>
+
         Move some WebRTC runtime flags from experimental to internal
         https://bugs.webkit.org/show_bug.cgi?id=200672
 

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp (248664 => 248665)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2019-08-14 09:40:17 UTC (rev 248664)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2019-08-14 10:11:11 UTC (rev 248665)
@@ -2484,13 +2484,13 @@
 
 void NetworkProcess::postMessageToServiceWorkerClient(const ServiceWorkerClientIdentifier& destinationIdentifier, MessageWithMessagePorts&& message, ServiceWorkerIdentifier sourceIdentifier, const String& sourceOrigin)
 {
-    if (auto* connection = m_swServerConnections.get(destinationIdentifier.serverConnectionIdentifier))
+    if (auto connection = m_swServerConnections.get(destinationIdentifier.serverConnectionIdentifier))
         connection->postMessageToServiceWorkerClient(destinationIdentifier.contextIdentifier, WTFMove(message), sourceIdentifier, sourceOrigin);
 }
 
 void NetworkProcess::postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destination, WebCore::MessageWithMessagePorts&& message, const WebCore::ServiceWorkerOrClientIdentifier& source, SWServerConnectionIdentifier connectionIdentifier)
 {
-    if (auto* connection = m_swServerConnections.get(connectionIdentifier))
+    if (auto connection = m_swServerConnections.get(connectionIdentifier))
         connection->postMessageToServiceWorker(destination, WTFMove(message), source);
 }
 
@@ -2498,7 +2498,7 @@
 {
     ASSERT(parentProcessHasServiceWorkerEntitlement());
     ASSERT(!m_swServerConnections.contains(connection.identifier()));
-    m_swServerConnections.add(connection.identifier(), &connection);
+    m_swServerConnections.add(connection.identifier(), makeWeakPtr(connection));
     auto* store = existingSWOriginStoreForSession(connection.sessionID());
     ASSERT(store);
     if (store)
@@ -2507,7 +2507,7 @@
 
 void NetworkProcess::unregisterSWServerConnection(WebSWServerConnection& connection)
 {
-    ASSERT(m_swServerConnections.get(connection.identifier()) == &connection);
+    ASSERT(m_swServerConnections.get(connection.identifier()).get() == &connection);
     m_swServerConnections.remove(connection.identifier());
     if (auto* store = existingSWOriginStoreForSession(connection.sessionID()))
         store->unregisterSWServerConnection(connection);

Modified: trunk/Source/WebKit/NetworkProcess/NetworkProcess.h (248664 => 248665)


--- trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2019-08-14 09:40:17 UTC (rev 248664)
+++ trunk/Source/WebKit/NetworkProcess/NetworkProcess.h	2019-08-14 10:11:11 UTC (rev 248665)
@@ -535,7 +535,7 @@
     bool m_shouldDisableServiceWorkerProcessTerminationDelay { false };
     HashMap<PAL::SessionID, String> m_swDatabasePaths;
     HashMap<PAL::SessionID, std::unique_ptr<WebCore::SWServer>> m_swServers;
-    HashMap<WebCore::SWServerConnectionIdentifier, WebSWServerConnection*> m_swServerConnections;
+    HashMap<WebCore::SWServerConnectionIdentifier, WeakPtr<WebSWServerConnection>> m_swServerConnections;
 #endif
 
 #if PLATFORM(COCOA)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to