Changeset 215778 in webkit


Ignore:
Timestamp:
Apr 25, 2017 5:52:44 PM (7 years ago)
Author:
beidson@apple.com
Message:

Update WebProcess(Pool) to assume there's always a WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=171299

Reviewed by Alex Christensen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_userMediaCaptureManagerProxy):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::websiteDataStore):

Location:
trunk/Source/WebKit2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r215772 r215778  
     12017-04-25  Brady Eidson  <beidson@apple.com>
     2
     3        Update WebProcess(Pool) to assume there's always a WebsiteDataStore
     4        https://bugs.webkit.org/show_bug.cgi?id=171299
     5
     6        Reviewed by Alex Christensen.
     7
     8        * UIProcess/WebPageProxy.cpp:
     9        (WebKit::WebPageProxy::reattachToWebProcess):
     10        * UIProcess/WebProcessPool.cpp:
     11        (WebKit::WebProcessPool::createNewWebProcess):
     12        (WebKit::WebProcessPool::warmInitialProcess):
     13        (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
     14        (WebKit::WebProcessPool::createWebPage):
     15        * UIProcess/WebProcessPool.h:
     16        * UIProcess/WebProcessProxy.cpp:
     17        (WebKit::WebProcessProxy::create):
     18        (WebKit::WebProcessProxy::WebProcessProxy):
     19        (WebKit::m_userMediaCaptureManagerProxy):
     20        * UIProcess/WebProcessProxy.h:
     21        (WebKit::WebProcessProxy::websiteDataStore):
     22
    1232017-04-25  Ryan Haddad  <ryanhaddad@apple.com>
    224
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r215771 r215778  
    716716    m_process->removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID);
    717717
    718     m_process = m_process->processPool().createNewWebProcessRespectingProcessCountLimit(m_websiteDataStore.ptr());
     718    m_process = m_process->processPool().createNewWebProcessRespectingProcessCountLimit(m_websiteDataStore.get());
    719719
    720720    ASSERT(m_process->state() != ChildProcessProxy::State::Terminated);
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp

    r215707 r215778  
    622622}
    623623
    624 WebProcessProxy& WebProcessPool::createNewWebProcess(WebsiteDataStore* websiteDataStore)
     624WebProcessProxy& WebProcessPool::createNewWebProcess(WebsiteDataStore& websiteDataStore)
    625625{
    626626    ensureNetworkProcess();
     
    630630    WebProcessCreationParameters parameters;
    631631
    632     if (websiteDataStore)
    633         websiteDataStore->resolveDirectoriesIfNecessary();
     632    websiteDataStore.resolveDirectoriesIfNecessary();
    634633
    635634    parameters.injectedBundlePath = m_resolvedPaths.injectedBundlePath;
     
    641640        SandboxExtension::createHandleWithoutResolvingPath(m_resolvedPaths.additionalWebProcessSandboxExtensionPaths[i], SandboxExtension::ReadOnly, parameters.additionalSandboxExtensionHandles[i]);
    642641
    643     parameters.applicationCacheDirectory = websiteDataStore ? websiteDataStore->resolvedApplicationCacheDirectory() : m_resolvedPaths.applicationCacheDirectory;
     642    parameters.applicationCacheDirectory = websiteDataStore.resolvedApplicationCacheDirectory();
    644643    if (parameters.applicationCacheDirectory.isEmpty())
    645644        parameters.applicationCacheDirectory = m_resolvedPaths.applicationCacheDirectory;
     
    649648    parameters.applicationCacheFlatFileSubdirectoryName = m_configuration->applicationCacheFlatFileSubdirectoryName();
    650649
    651     parameters.webSQLDatabaseDirectory = websiteDataStore ? websiteDataStore->resolvedDatabaseDirectory() : m_resolvedPaths.webSQLDatabaseDirectory;
     650    parameters.webSQLDatabaseDirectory = websiteDataStore.resolvedDatabaseDirectory();
    652651    if (parameters.webSQLDatabaseDirectory.isEmpty())
    653652        parameters.webSQLDatabaseDirectory = m_resolvedPaths.webSQLDatabaseDirectory;
     
    655654        SandboxExtension::createHandleWithoutResolvingPath(parameters.webSQLDatabaseDirectory, SandboxExtension::ReadWrite, parameters.webSQLDatabaseDirectoryExtensionHandle);
    656655
    657     parameters.mediaCacheDirectory = websiteDataStore ? websiteDataStore->resolvedMediaCacheDirectory() : m_resolvedPaths.mediaCacheDirectory;
     656    parameters.mediaCacheDirectory = websiteDataStore.resolvedMediaCacheDirectory();
    658657    if (parameters.mediaCacheDirectory.isEmpty())
    659658        parameters.mediaCacheDirectory = m_resolvedPaths.mediaCacheDirectory;
     
    661660        SandboxExtension::createHandleWithoutResolvingPath(parameters.mediaCacheDirectory, SandboxExtension::ReadWrite, parameters.mediaCacheDirectoryExtensionHandle);
    662661
    663     parameters.mediaKeyStorageDirectory = websiteDataStore ? websiteDataStore->resolvedMediaKeysDirectory() : m_resolvedPaths.mediaKeyStorageDirectory;
     662    parameters.mediaKeyStorageDirectory = websiteDataStore.resolvedMediaKeysDirectory();
    664663    if (parameters.mediaKeyStorageDirectory.isEmpty())
    665664        parameters.mediaKeyStorageDirectory = m_resolvedPaths.mediaKeyStorageDirectory;
     
    672671
    673672    if (javaScriptConfigurationFileEnabled()) {
    674         parameters.javaScriptConfigurationDirectory = websiteDataStore ? websiteDataStore->resolvedJavaScriptConfigurationDirectory() : String();
     673        parameters.javaScriptConfigurationDirectory = websiteDataStore.resolvedJavaScriptConfigurationDirectory();
    675674        if (!parameters.javaScriptConfigurationDirectory.isEmpty())
    676675            SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle);
     
    786785        return;
    787786
    788     createNewWebProcess(nullptr);
     787    createNewWebProcess(m_websiteDataStore->websiteDataStore());
    789788    m_haveInitialEmptyProcess = true;
    790789}
     
    862861}
    863862
    864 WebProcessProxy& WebProcessPool::createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore* websiteDataStore)
     863WebProcessProxy& WebProcessPool::createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore& websiteDataStore)
    865864{
    866865    // FIXME: https://bugs.webkit.org/show_bug.cgi?id=168676
    867     // Once WebsiteDataStores are not per-process, remove this nonsense.
     866    // Once WebsiteDataStores are truly per-view instead of per-process, remove this nonsense.
    868867
    869868#if PLATFORM(COCOA)
    870     bool mustMatchDataStore = websiteDataStore && websiteDataStore != &API::WebsiteDataStore::defaultDataStore()->websiteDataStore();
     869    bool mustMatchDataStore = &websiteDataStore != &API::WebsiteDataStore::defaultDataStore()->websiteDataStore();
    871870#else
    872871    bool mustMatchDataStore = false;
     
    879878    if (mustMatchDataStore) {
    880879        for (auto& process : m_processes) {
    881             if (process->websiteDataStore() == websiteDataStore)
     880            if (&process->websiteDataStore() == &websiteDataStore)
    882881                processesMatchingDataStore.append(process);
    883882        }
     
    922921        process = &pageConfiguration->relatedPage()->process();
    923922    } else
    924         process = &createNewWebProcessRespectingProcessCountLimit(&pageConfiguration->websiteDataStore()->websiteDataStore());
     923        process = &createNewWebProcessRespectingProcessCountLimit(pageConfiguration->websiteDataStore()->websiteDataStore());
    925924
    926925    return process->createWebPage(pageClient, WTFMove(pageConfiguration));
  • trunk/Source/WebKit2/UIProcess/WebProcessPool.h

    r215707 r215778  
    266266    void allowSpecificHTTPSCertificateForHost(const WebCertificateInfo*, const String& host);
    267267
    268     WebProcessProxy& createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore*); // Will return an existing one if limit is met.
     268    WebProcessProxy& createNewWebProcessRespectingProcessCountLimit(WebsiteDataStore&); // Will return an existing one if limit is met.
    269269    void warmInitialProcess();
    270270
     
    415415    void platformInvalidateContext();
    416416
    417     WebProcessProxy& createNewWebProcess(WebsiteDataStore*);
     417    WebProcessProxy& createNewWebProcess(WebsiteDataStore&);
    418418
    419419    void requestWebContentStatistics(StatisticsRequest*);
  • trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp

    r215699 r215778  
    9191}
    9292
    93 Ref<WebProcessProxy> WebProcessProxy::create(WebProcessPool& processPool, WebsiteDataStore* websiteDataStore)
     93Ref<WebProcessProxy> WebProcessProxy::create(WebProcessPool& processPool, WebsiteDataStore& websiteDataStore)
    9494{
    9595    return adoptRef(*new WebProcessProxy(processPool, websiteDataStore));
    9696}
    9797
    98 WebProcessProxy::WebProcessProxy(WebProcessPool& processPool, WebsiteDataStore* websiteDataStore)
     98WebProcessProxy::WebProcessProxy(WebProcessPool& processPool, WebsiteDataStore& websiteDataStore)
    9999    : ChildProcessProxy(processPool.alwaysRunsAtBackgroundPriority())
    100100    , m_responsivenessTimer(*this)
     
    112112{
    113113    WebPasteboardProxy::singleton().addWebProcessProxy(*this);
    114 
    115 
    116114
    117115    connect();
  • trunk/Source/WebKit2/UIProcess/WebProcessProxy.h

    r215491 r215778  
    7979    typedef HashMap<uint64_t, RefPtr<API::UserInitiatedAction>> UserInitiatedActionMap;
    8080
    81     static Ref<WebProcessProxy> create(WebProcessPool&, WebsiteDataStore*);
     81    static Ref<WebProcessProxy> create(WebProcessPool&, WebsiteDataStore&);
    8282    ~WebProcessProxy();
    8383
     
    8787
    8888    // FIXME: WebsiteDataStores should be made per-WebPageProxy throughout WebKit2
    89     WebsiteDataStore* websiteDataStore() const { return m_websiteDataStore.get(); }
     89    WebsiteDataStore& websiteDataStore() const { return m_websiteDataStore.get(); }
    9090
    9191    static WebPageProxy* webPage(uint64_t pageID);
     
    178178
    179179private:
    180     explicit WebProcessProxy(WebProcessPool&, WebsiteDataStore*);
     180    explicit WebProcessProxy(WebProcessPool&, WebsiteDataStore&);
    181181
    182182    // From ChildProcessProxy
     
    283283
    284284    // FIXME: WebsiteDataStores should be made per-WebPageProxy throughout WebKit2. Get rid of this member.
    285     RefPtr<WebsiteDataStore> m_websiteDataStore;
     285    Ref<WebsiteDataStore> m_websiteDataStore;
    286286
    287287    bool m_isUnderMemoryPressure { false };
Note: See TracChangeset for help on using the changeset viewer.