Changeset 223739 in webkit


Ignore:
Timestamp:
Oct 19, 2017 7:39:58 PM (7 years ago)
Author:
Chris Dumez
Message:

ServiceWorkerContextManager should be an IPC::MessageReceiver
https://bugs.webkit.org/show_bug.cgi?id=178552

Reviewed by Youenn Fablet.

ServiceWorkerContextManager should be an IPC::MessageReceiver, to avoid putting too many
ServiceWorker related methods on WebProcess class.

  • DerivedSources.make:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startServiceWorkerContext):
(WebKit::WebSWServerConnection::startFetch):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Storage/ServiceWorkerContextManager.cpp:

(WebKit::ServiceWorkerContextManager::startFetchInServiceWorker):
(WebKit::ServiceWorkerContextManager::startFetch): Deleted.

  • WebProcess/Storage/ServiceWorkerContextManager.h:
  • WebProcess/Storage/ServiceWorkerContextManager.messages.in: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didReceiveMessage):
(WebKit::WebProcess::getWorkerContextConnection):
(WebKit::WebProcess::startServiceWorkerContext): Deleted.
(WebKit::WebProcess::startFetchInServiceWorker): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
Location:
trunk/Source/WebKit
Files:
1 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/CMakeLists.txt

    r223718 r223739  
    685685
    686686    WebProcess/Storage/ServiceWorkerClientFetch.messages.in
     687    WebProcess/Storage/ServiceWorkerContextManager.messages.in
    687688    WebProcess/Storage/WebSWClientConnection.messages.in
    688689
  • trunk/Source/WebKit/ChangeLog

    r223737 r223739  
     12017-10-19  Chris Dumez  <cdumez@apple.com>
     2
     3        ServiceWorkerContextManager should be an IPC::MessageReceiver
     4        https://bugs.webkit.org/show_bug.cgi?id=178552
     5
     6        Reviewed by Youenn Fablet.
     7
     8        ServiceWorkerContextManager should be an IPC::MessageReceiver, to avoid putting too many
     9        ServiceWorker related methods on WebProcess class.
     10
     11        * DerivedSources.make:
     12        * StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
     13        (WebKit::WebSWServerConnection::startServiceWorkerContext):
     14        (WebKit::WebSWServerConnection::startFetch):
     15        * WebKit.xcodeproj/project.pbxproj:
     16        * WebProcess/Storage/ServiceWorkerContextManager.cpp:
     17        (WebKit::ServiceWorkerContextManager::startFetchInServiceWorker):
     18        (WebKit::ServiceWorkerContextManager::startFetch): Deleted.
     19        * WebProcess/Storage/ServiceWorkerContextManager.h:
     20        * WebProcess/Storage/ServiceWorkerContextManager.messages.in: Added.
     21        * WebProcess/WebProcess.cpp:
     22        (WebKit::WebProcess::didReceiveMessage):
     23        (WebKit::WebProcess::getWorkerContextConnection):
     24        (WebKit::WebProcess::startServiceWorkerContext): Deleted.
     25        (WebKit::WebProcess::startFetchInServiceWorker): Deleted.
     26        * WebProcess/WebProcess.h:
     27        * WebProcess/WebProcess.messages.in:
     28
    1292017-10-19  Alex Christensen  <achristensen@webkit.org>
    230
  • trunk/Source/WebKit/DerivedSources.make

    r223718 r223739  
    127127    SecItemShimProxy \
    128128    ServiceWorkerClientFetch \
     129    ServiceWorkerContextManager \
    129130    SmartMagnificationController \
    130131    StorageAreaMap \
  • trunk/Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.cpp

    r223718 r223739  
    3232#include "Logging.h"
    3333#include "ServiceWorkerClientFetchMessages.h"
     34#include "ServiceWorkerContextManagerMessages.h"
    3435#include "StorageProcess.h"
    3536#include "StorageToWebProcessConnectionMessages.h"
     
    8990void WebSWServerConnection::startServiceWorkerContext(const ServiceWorkerContextData& data)
    9091{
    91     if (sendToContextProcess(Messages::WebProcess::StartServiceWorkerContext(identifier(), data)))
     92    if (sendToContextProcess(Messages::ServiceWorkerContextManager::StartServiceWorker(identifier(), data)))
    9293        return;
    9394
     
    9798void WebSWServerConnection::startFetch(uint64_t fetchIdentifier, uint64_t serviceWorkerIdentifier, const ResourceRequest& request, const FetchOptions& options)
    9899{
    99     sendToContextProcess(Messages::WebProcess::StartFetchInServiceWorker(identifier(), fetchIdentifier, serviceWorkerIdentifier, request, options));
     100    sendToContextProcess(Messages::ServiceWorkerContextManager::StartFetch(identifier(), fetchIdentifier, serviceWorkerIdentifier, request, options));
    100101}
    101102
  • trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj

    r223718 r223739  
    917917                41FAF5F91E3C1025001AE678 /* LibWebRTCResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41FAF5F71E3C0B47001AE678 /* LibWebRTCResolver.cpp */; };
    918918                4450AEC01DC3FAE5009943F2 /* SharedMemoryCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4450AEBF1DC3FAE5009943F2 /* SharedMemoryCocoa.cpp */; };
     919                460F488F1F996F7100CF4B87 /* ServiceWorkerContextManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 460F488D1F996F6C00CF4B87 /* ServiceWorkerContextManagerMessageReceiver.cpp */; };
     920                460F48901F996F7100CF4B87 /* ServiceWorkerContextManagerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 460F488E1F996F6C00CF4B87 /* ServiceWorkerContextManagerMessages.h */; };
    919921                462107D81F38DBDB00DD7810 /* PingLoad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 462107D71F38DBD300DD7810 /* PingLoad.cpp */; };
    920922                463FD4801EB9459600A2982C /* WKProcessTerminationReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 463FD47F1EB9458400A2982C /* WKProcessTerminationReason.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    10331035                5179556D162877B100FA43B6 /* NetworkProcessProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 510CC7EA16138E7200D03ED3 /* NetworkProcessProxy.cpp */; };
    10341036                5179556E162877B300FA43B6 /* NetworkProcessProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 510CC7EB16138E7200D03ED3 /* NetworkProcessProxy.h */; };
    1035                 617A52D81F43A9DA00DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 617A52D71F43A9B600DCDC0A /* ServiceWorkerClientFetchConnectionMessageReceiver.cpp */; };
    10361037                517A52D81F43A9DA00DCDC0A /* WebSWServerConnectionMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517A52D71F43A9B600DCDC0A /* WebSWServerConnectionMessageReceiver.cpp */; };
    1037                 617A52D91F43A9DA00DCDC0A /* ServiceWorkerClientFetchMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 617A52D61F43A9B600DCDC0A /* ServiceWorkerClientFetchMessages.h */; };
    10381038                517A52D91F43A9DA00DCDC0A /* WebSWServerConnectionMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 517A52D61F43A9B600DCDC0A /* WebSWServerConnectionMessages.h */; };
    10391039                517A53041F4793C600DCDC0A /* WebSWClientConnection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 517A53031F4793B200DCDC0A /* WebSWClientConnection.cpp */; };
     
    12111211                5CE85B201C88E64B0070BFCE /* PingLoad.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CE85B1F1C88E6430070BFCE /* PingLoad.h */; };
    12121212                5CFECB041E1ED1CC00F88504 /* LegacyCustomProtocolManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5CFECB031E1ED1C800F88504 /* LegacyCustomProtocolManager.cpp */; };
     1213                617A52D81F43A9DA00DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 617A52D71F43A9B600DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp */; };
    12131214                636353A51E9858DF0009F8AF /* _WKGeolocationCoreLocationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 63FABE191E970D65003011D5 /* _WKGeolocationCoreLocationProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
    12141215                63C32C251E9810D900699BD0 /* _WKGeolocationPosition.mm in Sources */ = {isa = PBXBuildFile; fileRef = 63C32C231E9810D900699BD0 /* _WKGeolocationPosition.mm */; };
     
    32183219                41FAF5F71E3C0B47001AE678 /* LibWebRTCResolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LibWebRTCResolver.cpp; path = Network/webrtc/LibWebRTCResolver.cpp; sourceTree = "<group>"; };
    32193220                4450AEBF1DC3FAE5009943F2 /* SharedMemoryCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SharedMemoryCocoa.cpp; sourceTree = "<group>"; };
     3221                460F488D1F996F6C00CF4B87 /* ServiceWorkerContextManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerContextManagerMessageReceiver.cpp; sourceTree = "<group>"; };
     3222                460F488E1F996F6C00CF4B87 /* ServiceWorkerContextManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServiceWorkerContextManagerMessages.h; sourceTree = "<group>"; };
    32203223                462107D71F38DBD300DD7810 /* PingLoad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PingLoad.cpp; path = NetworkProcess/PingLoad.cpp; sourceTree = "<group>"; };
    32213224                463FD47F1EB9458400A2982C /* WKProcessTerminationReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKProcessTerminationReason.h; sourceTree = "<group>"; };
     
    33453348                517A33B3130B308C00F80CB5 /* WKApplicationCacheManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKApplicationCacheManager.cpp; sourceTree = "<group>"; };
    33463349                517A33B4130B308C00F80CB5 /* WKApplicationCacheManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKApplicationCacheManager.h; sourceTree = "<group>"; };
    3347                 617A52D61F43A9B600DCDC0A /* ServiceWorkerFetchClientMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSWServerConnectionMessages.h; sourceTree = "<group>"; };
    33483350                517A52D61F43A9B600DCDC0A /* WebSWServerConnectionMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSWServerConnectionMessages.h; sourceTree = "<group>"; };
    3349                 617A52D71F43A9B600DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerClientFetchMessageReceiver.cpp; sourceTree = "<group>"; };
    33503351                517A52D71F43A9B600DCDC0A /* WebSWServerConnectionMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebSWServerConnectionMessageReceiver.cpp; sourceTree = "<group>"; };
    33513352                517A53021F4793B200DCDC0A /* WebSWClientConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSWClientConnection.h; sourceTree = "<group>"; };
     
    35653566                5D442A5516D5856700AC3331 /* PluginService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PluginService.entitlements; sourceTree = "<group>"; };
    35663567                5DAD73F1116FF90C00EE5396 /* BaseTarget.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = BaseTarget.xcconfig; sourceTree = "<group>"; };
     3568                617A52D71F43A9B600DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ServiceWorkerClientFetchMessageReceiver.cpp; sourceTree = "<group>"; };
    35673569                63C32C231E9810D900699BD0 /* _WKGeolocationPosition.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKGeolocationPosition.mm; sourceTree = "<group>"; };
    35683570                63C32C241E9810D900699BD0 /* _WKGeolocationPosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKGeolocationPosition.h; sourceTree = "<group>"; };
     
    80288030                                E18E6913169B667B009B6670 /* SecItemShimProxyMessageReceiver.cpp */,
    80298031                                E18E6914169B667B009B6670 /* SecItemShimProxyMessages.h */,
    8030                                 617A52D71F43A9B600DCDC0A /* ServiceWorkerClientFetchConnectionMessageReceiver.cpp */,
     8032                                617A52D71F43A9B600DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp */,
     8033                                460F488D1F996F6C00CF4B87 /* ServiceWorkerContextManagerMessageReceiver.cpp */,
     8034                                460F488E1F996F6C00CF4B87 /* ServiceWorkerContextManagerMessages.h */,
    80318035                                2DE6943B18BD2A68005C15E5 /* SmartMagnificationControllerMessageReceiver.cpp */,
    80328036                                2DE6943C18BD2A68005C15E5 /* SmartMagnificationControllerMessages.h */,
     
    88018805                                514D9F5719119D35000063A7 /* ServicesController.h in Headers */,
    88028806                                4131F3D51F96E9350059995A /* ServiceWorkerContextManager.h in Headers */,
     8807                                460F48901F996F7100CF4B87 /* ServiceWorkerContextManagerMessages.h in Headers */,
    88038808                                1AFDE65A1954A42B00C48FFA /* SessionState.h in Headers */,
    88048809                                1A002D49196B345D00B9AD44 /* SessionStateCoding.h in Headers */,
     
    1039110396                                514D9F5819119D35000063A7 /* ServicesController.mm in Sources */,
    1039210397                                4131F3D11F96BCCC0059995A /* ServiceWorkerClientFetch.cpp in Sources */,
    10393                                 617A52D81F43A9DA00DCDC0A /* ServiceWorkerClientFetchConnectionMessageReceiver.cpp in Sources */,
     10398                                617A52D81F43A9DA00DCDC0A /* ServiceWorkerClientFetchMessageReceiver.cpp in Sources */,
    1039410399                                4131F3D41F96E9350059995A /* ServiceWorkerContextManager.cpp in Sources */,
     10400                                460F488F1F996F7100CF4B87 /* ServiceWorkerContextManagerMessageReceiver.cpp in Sources */,
    1039510401                                1AFDE6591954A42B00C48FFA /* SessionState.cpp in Sources */,
    1039610402                                1A002D48196B345D00B9AD44 /* SessionStateCoding.mm in Sources */,
  • trunk/Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.cpp

    r223718 r223739  
    4141namespace WebKit {
    4242
    43 void ServiceWorkerContextManager::startServiceWorkerContext(uint64_t serverConnectionIdentifier, const ServiceWorkerContextData& data)
     43void ServiceWorkerContextManager::startServiceWorker(uint64_t serverConnectionIdentifier, const ServiceWorkerContextData& data)
    4444{
    4545    // FIXME: Provide a sensical session ID.
  • trunk/Source/WebKit/WebProcess/Storage/ServiceWorkerContextManager.h

    r223718 r223739  
    2929
    3030#include "Connection.h"
     31#include "MessageReceiver.h"
    3132#include <WebCore/ServiceWorkerThread.h>
    3233#include <wtf/HashMap.h>
     
    4041namespace WebKit {
    4142
    42 class ServiceWorkerContextManager {
     43class ServiceWorkerContextManager : public IPC::MessageReceiver {
    4344public:
    4445    explicit ServiceWorkerContextManager(Ref<IPC::Connection>&& connection)
     
    4748    }
    4849
    49     void startServiceWorkerContext(uint64_t serverConnectionIdentifier, const WebCore::ServiceWorkerContextData&);
     50    void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
     51
     52private:
     53    void startServiceWorker(uint64_t serverConnectionIdentifier, const WebCore::ServiceWorkerContextData&);
    5054    void startFetch(uint64_t serverConnectionIdentifier, uint64_t fetchIdentifier, uint64_t serviceWorkerIdentifier, const WebCore::ResourceRequest&, const WebCore::FetchOptions&);
    5155
    52 private:
    5356    Ref<IPC::Connection> m_connectionToStorageProcess;
    5457    HashMap<uint64_t, RefPtr<WebCore::ServiceWorkerThread>> m_workerThreadMap;
  • trunk/Source/WebKit/WebProcess/WebProcess.cpp

    r223720 r223739  
    4242#include "PluginProcessConnectionManager.h"
    4343#include "ServiceWorkerContextManager.h"
     44#include "ServiceWorkerContextManagerMessages.h"
    4445#include "SessionTracker.h"
    4546#include "StatisticsData.h"
     
    664665    }
    665666
     667#if ENABLE(SERVICE_WORKER)
     668    if (decoder.messageReceiverName() == Messages::ServiceWorkerContextManager::messageReceiverName()) {
     669        ASSERT(m_serviceWorkerManager);
     670        if (m_serviceWorkerManager)
     671            m_serviceWorkerManager->didReceiveMessage(connection, decoder);
     672        return;
     673    }
     674#endif
     675
    666676    LOG_ERROR("Unhandled web process message '%s:%s'", decoder.messageReceiverName().toString().data(), decoder.messageName().toString().data());
    667677}
     
    16491659    WebProcess::singleton().parentProcessConnection()->send(Messages::WebProcessProxy::DidGetWorkerContextConnection(connectionClientPort), 0);
    16501660}
    1651 
    1652 void WebProcess::startServiceWorkerContext(uint64_t serverConnectionIdentifier, const ServiceWorkerContextData& data)
    1653 {
    1654     ASSERT(m_serviceWorkerManager);
    1655     if (!m_serviceWorkerManager)
    1656         return;
    1657 
    1658     m_serviceWorkerManager->startServiceWorkerContext(serverConnectionIdentifier, data);
    1659 }
    1660 
    1661 void WebProcess::startFetchInServiceWorker(uint64_t serverConnectionIdentifier, uint64_t fetchIdentifier, uint64_t serviceWorkerIdentifier, const ResourceRequest& request, const FetchOptions& options)
    1662 {
    1663     if (!m_serviceWorkerManager)
    1664         return;
    1665 
    1666     m_serviceWorkerManager->startFetch(serverConnectionIdentifier, fetchIdentifier, serviceWorkerIdentifier, request, options);
    1667 }
    1668 
    16691661#endif
    16701662
  • trunk/Source/WebKit/WebProcess/WebProcess.h

    r223718 r223739  
    301301#if ENABLE(SERVICE_WORKER)
    302302    void getWorkerContextConnection();
    303     void startServiceWorkerContext(uint64_t serverConnectionIdentifier, const WebCore::ServiceWorkerContextData&);
    304     void startFetchInServiceWorker(uint64_t serverConnectionIdentifier, uint64_t fetchIdentifier, uint64_t serviceWorkerIdentifier, const WebCore::ResourceRequest&, const WebCore::FetchOptions&);
    305303#endif
    306304
  • trunk/Source/WebKit/WebProcess/WebProcess.messages.in

    r223718 r223739  
    117117#if ENABLE(SERVICE_WORKER)
    118118    GetWorkerContextConnection()
    119     StartServiceWorkerContext(uint64_t serverConnectionIdentifier, struct WebCore::ServiceWorkerContextData contextData)
    120     StartFetchInServiceWorker(uint64_t serverConnectionIdentifier, uint64_t fetchIdentifier, uint64_t serviceWorkerIdentifier, WebCore::ResourceRequest request, struct WebCore::FetchOptions options)
    121119#endif
    122120}
Note: See TracChangeset for help on using the changeset viewer.