Changeset 248665 in webkit


Ignore:
Timestamp:
Aug 14, 2019 3:11:11 AM (5 years ago)
Author:
youenn@apple.com
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:
Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r248664 r248665  
     12019-08-14  Youenn Fablet  <youenn@apple.com>
     2
     3        NetworkProcess::m_swServerConnections should use WeakPtr
     4        https://bugs.webkit.org/show_bug.cgi?id=200660
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        Use WeakPtr for SWServer connections as an extra safety measure.
     9
     10        * NetworkProcess/NetworkProcess.cpp:
     11        (WebKit::NetworkProcess::postMessageToServiceWorkerClient):
     12        (WebKit::NetworkProcess::postMessageToServiceWorker):
     13        (WebKit::NetworkProcess::registerSWServerConnection):
     14        (WebKit::NetworkProcess::unregisterSWServerConnection):
     15        * NetworkProcess/NetworkProcess.h:
     16
    1172019-08-14  Youenn Fablet  <youenn@apple.com>
    218
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r248640 r248665  
    24852485void NetworkProcess::postMessageToServiceWorkerClient(const ServiceWorkerClientIdentifier& destinationIdentifier, MessageWithMessagePorts&& message, ServiceWorkerIdentifier sourceIdentifier, const String& sourceOrigin)
    24862486{
    2487     if (auto* connection = m_swServerConnections.get(destinationIdentifier.serverConnectionIdentifier))
     2487    if (auto connection = m_swServerConnections.get(destinationIdentifier.serverConnectionIdentifier))
    24882488        connection->postMessageToServiceWorkerClient(destinationIdentifier.contextIdentifier, WTFMove(message), sourceIdentifier, sourceOrigin);
    24892489}
     
    24912491void NetworkProcess::postMessageToServiceWorker(WebCore::ServiceWorkerIdentifier destination, WebCore::MessageWithMessagePorts&& message, const WebCore::ServiceWorkerOrClientIdentifier& source, SWServerConnectionIdentifier connectionIdentifier)
    24922492{
    2493     if (auto* connection = m_swServerConnections.get(connectionIdentifier))
     2493    if (auto connection = m_swServerConnections.get(connectionIdentifier))
    24942494        connection->postMessageToServiceWorker(destination, WTFMove(message), source);
    24952495}
     
    24992499    ASSERT(parentProcessHasServiceWorkerEntitlement());
    25002500    ASSERT(!m_swServerConnections.contains(connection.identifier()));
    2501     m_swServerConnections.add(connection.identifier(), &connection);
     2501    m_swServerConnections.add(connection.identifier(), makeWeakPtr(connection));
    25022502    auto* store = existingSWOriginStoreForSession(connection.sessionID());
    25032503    ASSERT(store);
     
    25082508void NetworkProcess::unregisterSWServerConnection(WebSWServerConnection& connection)
    25092509{
    2510     ASSERT(m_swServerConnections.get(connection.identifier()) == &connection);
     2510    ASSERT(m_swServerConnections.get(connection.identifier()).get() == &connection);
    25112511    m_swServerConnections.remove(connection.identifier());
    25122512    if (auto* store = existingSWOriginStoreForSession(connection.sessionID()))
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.h

    r248640 r248665  
    536536    HashMap<PAL::SessionID, String> m_swDatabasePaths;
    537537    HashMap<PAL::SessionID, std::unique_ptr<WebCore::SWServer>> m_swServers;
    538     HashMap<WebCore::SWServerConnectionIdentifier, WebSWServerConnection*> m_swServerConnections;
     538    HashMap<WebCore::SWServerConnectionIdentifier, WeakPtr<WebSWServerConnection>> m_swServerConnections;
    539539#endif
    540540
Note: See TracChangeset for help on using the changeset viewer.