⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 283374 in webkit


Ignore:
Timestamp:
Oct 1, 2021, 9:48:07 AM (5 years ago)
Author:
pvollan@apple.com
Message:

Send Launch Services database to GPU process
https://bugs.webkit.org/show_bug.cgi?id=225151
<rdar://74749122>

Reviewed by Brent Fulgham.

Send Launch Services database to the GPU process after it has finished launching, like we do for WebContent processes.
The Launch Services database is represented as an XPC object, and needs to be sent over a dedicated XPC channel.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::didFinishLaunching):
(WebKit::GPUProcessProxy::addSession):

  • UIProcess/Network/NetworkProcessProxyCocoa.mm:

(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess): Deleted.
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
Location:
trunk/Source/WebKit
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r283369 r283374  
     12021-10-01  Per Arne Vollan  <pvollan@apple.com>
     2
     3        Send Launch Services database to GPU process
     4        https://bugs.webkit.org/show_bug.cgi?id=225151
     5        <rdar://74749122>
     6
     7        Reviewed by Brent Fulgham.
     8
     9        Send Launch Services database to the GPU process after it has finished launching, like we do for WebContent processes.
     10        The Launch Services database is represented as an XPC object, and needs to be sent over a dedicated XPC channel.
     11
     12        * GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
     13        * UIProcess/GPU/GPUProcessProxy.cpp:
     14        (WebKit::GPUProcessProxy::didFinishLaunching):
     15        (WebKit::GPUProcessProxy::addSession):
     16        * UIProcess/Network/NetworkProcessProxyCocoa.mm:
     17        (WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
     18        * UIProcess/WebProcessProxy.cpp:
     19        (WebKit::WebProcessProxy::setWebsiteDataStore):
     20        (WebKit::WebProcessProxy::didFinishLaunching):
     21        * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
     22        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const):
     23        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses):
     24        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess): Deleted.
     25        (WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses): Deleted.
     26        * UIProcess/WebsiteData/WebsiteDataStore.h:
     27
    1282021-10-01  Youenn Fablet  <youenn@apple.com>
    229
  • trunk/Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in

    r283328 r283374  
    696696       (global-name "com.apple.windowserver.active")
    697697#endif
     698#if __MAC_OS_X_VERSION_MIN_REQUIRED < 120000
    698699       (global-name "com.apple.lsd.mapdb")
     700#endif
    699701       (global-name "com.apple.fonts")
    700702       (global-name "com.apple.PowerManagement.control")
  • trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp

    r283116 r283374  
    433433        m_throttler.didConnectToProcess(xpc_connection_get_pid(connection));
    434434#endif
     435
     436#if PLATFORM(COCOA)
     437    auto it = m_sessionIDs.begin();
     438    if (it != m_sessionIDs.end()) {
     439        auto webSiteDataStore = WebsiteDataStore::existingDataStoreForSessionID(*m_sessionIDs.begin());
     440        webSiteDataStore->sendNetworkProcessXPCEndpointToProcess(*this);
     441    }
     442#endif
    435443}
    436444
  • trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxyCocoa.mm

    r276974 r283374  
    5555        m_networkProcess->m_endpointMessage = event;
    5656        for (auto& dataStore : copyToVectorOf<Ref<WebsiteDataStore>>(m_networkProcess->m_websiteDataStores))
    57             dataStore->sendNetworkProcessXPCEndpointToAllWebProcesses();
     57            dataStore->sendNetworkProcessXPCEndpointToAllProcesses();
    5858    }
    5959
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r282882 r283374  
    339339    m_websiteDataStore = &dataStore;
    340340#if PLATFORM(COCOA)
    341     dataStore.sendNetworkProcessXPCEndpointToWebProcess(*this);
     341    dataStore.sendNetworkProcessXPCEndpointToProcess(*this);
     342#if ENABLE(GPU_PROCESS)
     343    if (GPUProcessProxy::singletonIfCreated())
     344        dataStore.sendNetworkProcessXPCEndpointToProcess(*GPUProcessProxy::singletonIfCreated());
     345#endif
    342346#endif
    343347    updateRegistrationWithDataStore();
     
    10681072#if PLATFORM(COCOA)
    10691073    if (m_websiteDataStore)
    1070         m_websiteDataStore->sendNetworkProcessXPCEndpointToWebProcess(*this);
     1074        m_websiteDataStore->sendNetworkProcessXPCEndpointToProcess(*this);
    10711075#endif
    10721076
  • trunk/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm

    r282882 r283374  
    5050#import <wtf/text/cf/StringConcatenateCF.h>
    5151
     52#if ENABLE(GPU_PROCESS)
     53#import "GPUProcessProxy.h"
     54#endif
     55
    5256#if PLATFORM(IOS_FAMILY)
    5357#import <UIKit/UIApplication.h>
     
    595599}
    596600
    597 void WebsiteDataStore::sendNetworkProcessXPCEndpointToWebProcess(WebProcessProxy& process)
     601void WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess(AuxiliaryProcessProxy& process) const
    598602{
    599603    if (process.state() != AuxiliaryProcessProxy::State::Running)
     
    608612}
    609613
    610 void WebsiteDataStore::sendNetworkProcessXPCEndpointToAllWebProcesses()
     614void WebsiteDataStore::sendNetworkProcessXPCEndpointToAllProcesses()
    611615{
    612616    for (auto& process : m_processes)
    613         sendNetworkProcessXPCEndpointToWebProcess(process);
    614 }
    615 
    616 }
     617        sendNetworkProcessXPCEndpointToProcess(process);
     618#if ENABLE(GPU_PROCESS)
     619    if (GPUProcessProxy::singletonIfCreated())
     620        sendNetworkProcessXPCEndpointToProcess(*GPUProcessProxy::singletonIfCreated());
     621#endif
     622}
     623
     624}
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

    r282567 r283374  
    8383
    8484class AuthenticatorManager;
     85class AuxiliaryProcessProxy;
    8586class SecKeyProxyStore;
    8687class DeviceIdHashSaltStorage;
     
    279280
    280281#if PLATFORM(COCOA)
    281     void sendNetworkProcessXPCEndpointToWebProcess(WebProcessProxy&);
    282     void sendNetworkProcessXPCEndpointToAllWebProcesses();
     282    void sendNetworkProcessXPCEndpointToProcess(AuxiliaryProcessProxy&) const;
     283    void sendNetworkProcessXPCEndpointToAllProcesses();
    283284   
    284285    static bool useNetworkLoader();
Note: See TracChangeset for help on using the changeset viewer.