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