Title: [185736] trunk/Source/WebKit2
Revision
185736
Author
[email protected]
Date
2015-06-18 22:59:43 -0700 (Thu, 18 Jun 2015)

Log Message

Do not store configuration parameters twice in WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=146102

Reviewed by Sam Weinig.

Since we are copying the given WebProcessPoolConfiguration and
keeping it as a member, we don't need to keep an additional copy
of its contents as extra members. This also prevents
inconsistencies between the values in the configuration and the
members when any of them are modified by WebProcessPool API.

* UIProcess/API/APIProcessPoolConfiguration.h: Return a const
reference instead of a temporary in methods returning a String.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::updateProcessSuppressionState):
(WebKit::WebProcessPool::platformInitializeWebProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setProcessModel):
(WebKit::WebProcessPool::setMaximumNumberOfProcesses):
(WebKit::WebProcessPool::networkingProcessConnection):
(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::setUsesNetworkProcess):
(WebKit::WebProcessPool::usesNetworkProcess):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureDatabaseProcess):
(WebKit::WebProcessPool::ensureSharedWebProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::postMessageToInjectedBundle):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
(WebKit::WebProcessPool::setCacheModel):
(WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
(WebKit::WebProcessPool::requestWebContentStatistics):
(WebKit::WebProcessPool::requestNetworkingStatistics):
* UIProcess/WebProcessPool.h:
(WebKit::WebProcessPool::sendToNetworkingProcess):
(WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):
(WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary):
(WebKit::WebProcessPool::sendToOneProcess):
* UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (185735 => 185736)


--- trunk/Source/WebKit2/ChangeLog	2015-06-19 05:48:24 UTC (rev 185735)
+++ trunk/Source/WebKit2/ChangeLog	2015-06-19 05:59:43 UTC (rev 185736)
@@ -1,3 +1,50 @@
+2015-06-18  Carlos Garcia Campos  <[email protected]>
+
+        Do not store configuration parameters twice in WebProcessPool
+        https://bugs.webkit.org/show_bug.cgi?id=146102
+
+        Reviewed by Sam Weinig.
+
+        Since we are copying the given WebProcessPoolConfiguration and
+        keeping it as a member, we don't need to keep an additional copy
+        of its contents as extra members. This also prevents
+        inconsistencies between the values in the configuration and the
+        members when any of them are modified by WebProcessPool API.
+
+        * UIProcess/API/APIProcessPoolConfiguration.h: Return a const
+        reference instead of a temporary in methods returning a String.
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::updateProcessSuppressionState):
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::setProcessModel):
+        (WebKit::WebProcessPool::setMaximumNumberOfProcesses):
+        (WebKit::WebProcessPool::networkingProcessConnection):
+        (WebKit::WebProcessPool::languageChanged):
+        (WebKit::WebProcessPool::setUsesNetworkProcess):
+        (WebKit::WebProcessPool::usesNetworkProcess):
+        (WebKit::WebProcessPool::ensureNetworkProcess):
+        (WebKit::WebProcessPool::ensureDatabaseProcess):
+        (WebKit::WebProcessPool::ensureSharedWebProcess):
+        (WebKit::WebProcessPool::createNewWebProcess):
+        (WebKit::WebProcessPool::warmInitialProcess):
+        (WebKit::WebProcessPool::disconnectProcess):
+        (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
+        (WebKit::WebProcessPool::createWebPage):
+        (WebKit::WebProcessPool::postMessageToInjectedBundle):
+        (WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
+        (WebKit::WebProcessPool::setCacheModel):
+        (WebKit::WebProcessPool::allowSpecificHTTPSCertificateForHost):
+        (WebKit::WebProcessPool::requestWebContentStatistics):
+        (WebKit::WebProcessPool::requestNetworkingStatistics):
+        * UIProcess/WebProcessPool.h:
+        (WebKit::WebProcessPool::sendToNetworkingProcess):
+        (WebKit::WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary):
+        (WebKit::WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary):
+        (WebKit::WebProcessPool::sendToOneProcess):
+        * UIProcess/gtk/WebProcessPoolGtk.cpp:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+
 2015-06-18  Jon Lee  <[email protected]>
 
         Update AVKit usage of pip

Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (185735 => 185736)


--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h	2015-06-19 05:48:24 UTC (rev 185735)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h	2015-06-19 05:59:43 UTC (rev 185736)
@@ -63,25 +63,25 @@
     int64_t diskCacheSizeOverride() const { return m_diskCacheSizeOverride; }
     void setDiskCacheSizeOverride(int64_t size) { m_diskCacheSizeOverride = size; }
 
-    WTF::String applicationCacheDirectory() const { return m_applicationCacheDirectory; }
+    const WTF::String& applicationCacheDirectory() const { return m_applicationCacheDirectory; }
     void setApplicationCacheDirectory(const WTF::String& applicationCacheDirectory) { m_applicationCacheDirectory = applicationCacheDirectory; }
 
-    WTF::String diskCacheDirectory() const { return m_diskCacheDirectory; }
+    const WTF::String& diskCacheDirectory() const { return m_diskCacheDirectory; }
     void setDiskCacheDirectory(const WTF::String& diskCacheDirectory) { m_diskCacheDirectory = diskCacheDirectory; }
 
-    WTF::String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
+    const WTF::String& indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
     void setIndexedDBDatabaseDirectory(const WTF::String& indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
 
-    WTF::String injectedBundlePath() const { return m_injectedBundlePath; }
+    const WTF::String& injectedBundlePath() const { return m_injectedBundlePath; }
     void setInjectedBundlePath(const WTF::String& injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
 
-    WTF::String localStorageDirectory() const { return m_localStorageDirectory; }
+    const WTF::String& localStorageDirectory() const { return m_localStorageDirectory; }
     void setLocalStorageDirectory(const WTF::String& localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
 
-    WTF::String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
+    const WTF::String& webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
     void setWebSQLDatabaseDirectory(const WTF::String& webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
 
-    WTF::String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
+    const WTF::String& mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
     void setMediaKeysStorageDirectory(const WTF::String& mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
 
     const Vector<WTF::String>& cachePartitionedURLSchemes() { return m_cachePartitionedURLSchemes; }

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (185735 => 185736)


--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-06-19 05:48:24 UTC (rev 185735)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2015-06-19 05:59:43 UTC (rev 185736)
@@ -118,7 +118,7 @@
 void WebProcessPool::updateProcessSuppressionState()
 {
 #if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess && m_networkProcess)
+    if (usesNetworkProcess() && m_networkProcess)
         m_networkProcess->setProcessSuppressionEnabled(processSuppressionEnabled());
 #endif
 
@@ -192,7 +192,7 @@
     parameters.uiProcessBundleIdentifier = String([[NSBundle mainBundle] bundleIdentifier]);
 
 #if ENABLE(NETWORK_PROCESS)
-    if (!m_usesNetworkProcess) {
+    if (!usesNetworkProcess()) {
 #endif
         for (const auto& scheme : globalURLSchemesWithCustomProtocolHandlers())
             parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (185735 => 185736)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2015-06-19 05:48:24 UTC (rev 185735)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2015-06-19 05:59:43 UTC (rev 185736)
@@ -140,12 +140,9 @@
 
 WebProcessPool::WebProcessPool(API::ProcessPoolConfiguration& configuration)
     : m_configuration(configuration.copy())
-    , m_processModel(m_configuration->processModel())
-    , m_webProcessCountLimit(!m_configuration->maximumProcessCount() ? UINT_MAX : m_configuration->maximumProcessCount())
     , m_haveInitialEmptyProcess(false)
     , m_processWithPageCache(0)
     , m_defaultPageGroup(WebPageGroup::createNonNull())
-    , m_injectedBundlePath(m_configuration->injectedBundlePath())
     , m_downloadClient(std::make_unique<API::DownloadClient>())
     , m_historyClient(std::make_unique<API::LegacyContextHistoryClient>())
     , m_visitedLinkProvider(VisitedLinkProvider::create())
@@ -153,23 +150,16 @@
     , m_plugInAutoStartProvider(this)
     , m_alwaysUsesComplexTextCodePath(false)
     , m_shouldUseFontSmoothing(true)
-    , m_cacheModel(m_configuration->cacheModel())
-    , m_diskCacheSizeOverride(m_configuration->diskCacheSizeOverride())
     , m_memorySamplerEnabled(false)
     , m_memorySamplerInterval(1400.0)
     , m_websiteDataStore(m_configuration->shouldHaveLegacyDataStore() ? API::WebsiteDataStore::create(legacyWebsiteDataStoreConfiguration(m_configuration)) : nullptr)
 #if USE(SOUP)
     , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
 #endif
-    , m_applicationCacheDirectory(configuration.applicationCacheDirectory())
-    , m_indexedDBDatabaseDirectory(configuration.indexedDBDatabaseDirectory())
-    , m_mediaKeysStorageDirectory(configuration.mediaKeysStorageDirectory())
-    , m_webSQLDatabaseDirectory(configuration.webSQLDatabaseDirectory())
     , m_shouldUseTestingNetworkSession(false)
     , m_processTerminationEnabled(true)
 #if ENABLE(NETWORK_PROCESS)
     , m_canHandleHTTPSServerTrustEvaluation(true)
-    , m_usesNetworkProcess(m_configuration->useNetworkProcess())
 #endif
 #if USE(SOUP)
     , m_ignoreTLSErrors(true)
@@ -304,7 +294,7 @@
     if (processModel != ProcessModelSharedSecondaryProcess && !m_messagesToInjectedBundlePostedToEmptyContext.isEmpty())
         CRASH();
 
-    m_processModel = processModel;
+    m_configuration->setProcessModel(processModel);
 }
 
 void WebProcessPool::setMaximumNumberOfProcesses(unsigned maximumNumberOfProcesses)
@@ -313,24 +303,21 @@
     if (!m_processes.isEmpty())
         CRASH();
 
-    if (maximumNumberOfProcesses == 0)
-        m_webProcessCountLimit = UINT_MAX;
-    else
-        m_webProcessCountLimit = maximumNumberOfProcesses;
+    m_configuration->setMaximumProcessCount(maximumNumberOfProcesses);
 }
 
 IPC::Connection* WebProcessPool::networkingProcessConnection()
 {
-    switch (m_processModel) {
+    switch (processModel()) {
     case ProcessModelSharedSecondaryProcess:
 #if ENABLE(NETWORK_PROCESS)
-        if (m_usesNetworkProcess)
+        if (usesNetworkProcess())
             return m_networkProcess->connection();
 #endif
         return m_processes[0]->connection();
     case ProcessModelMultipleSecondaryProcesses:
 #if ENABLE(NETWORK_PROCESS)
-        ASSERT(m_usesNetworkProcess);
+        ASSERT(usesNetworkProcess());
         return m_networkProcess->connection();
 #else
         break;
@@ -349,7 +336,7 @@
 {
     sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(userPreferredLanguages()));
 #if USE(SOUP) && ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess && m_networkProcess)
+    if (usesNetworkProcess() && m_networkProcess)
         m_networkProcess->send(Messages::NetworkProcess::UserPreferredLanguagesChanged(userPreferredLanguages()), 0);
 #endif
 }
@@ -367,7 +354,7 @@
 void WebProcessPool::setUsesNetworkProcess(bool usesNetworkProcess)
 {
 #if ENABLE(NETWORK_PROCESS)
-    m_usesNetworkProcess = usesNetworkProcess;
+    m_configuration->setUseNetworkProcess(usesNetworkProcess);
 #else
     UNUSED_PARAM(usesNetworkProcess);
 #endif
@@ -376,7 +363,7 @@
 bool WebProcessPool::usesNetworkProcess() const
 {
 #if ENABLE(NETWORK_PROCESS)
-    return m_usesNetworkProcess;
+    return m_configuration->useNetworkProcess();
 #else
     return false;
 #endif
@@ -394,8 +381,8 @@
 
     parameters.privateBrowsingEnabled = WebPreferences::anyPagesAreUsingPrivateBrowsing();
 
-    parameters.cacheModel = m_cacheModel;
-    parameters.diskCacheSizeOverride = m_diskCacheSizeOverride;
+    parameters.cacheModel = cacheModel();
+    parameters.diskCacheSizeOverride = m_configuration->diskCacheSizeOverride();
     parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation;
 
     parameters.diskCacheDirectory = m_configuration->diskCacheDirectory();
@@ -470,13 +457,13 @@
 
     m_databaseProcess = DatabaseProcessProxy::create(this);
 
-    ASSERT(!m_indexedDBDatabaseDirectory.isEmpty());
+    ASSERT(!m_configuration->indexedDBDatabaseDirectory().isEmpty());
 
     // *********
     // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (<rdar://problem/17454712>)
     // *********
     DatabaseProcessCreationParameters parameters;
-    parameters.indexedDatabaseDirectory = m_indexedDBDatabaseDirectory;
+    parameters.indexedDatabaseDirectory = m_configuration->indexedDBDatabaseDirectory();
 
     SandboxExtension::createHandleForReadWriteDirectory(parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle);
 
@@ -571,7 +558,7 @@
 
 WebProcessProxy& WebProcessPool::ensureSharedWebProcess()
 {
-    ASSERT(m_processModel == ProcessModelSharedSecondaryProcess);
+    ASSERT(processModel() == ProcessModelSharedSecondaryProcess);
     if (m_processes.isEmpty())
         createNewWebProcess();
     return *m_processes[0];
@@ -580,7 +567,7 @@
 WebProcessProxy& WebProcessPool::createNewWebProcess()
 {
 #if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess)
+    if (usesNetworkProcess())
         ensureNetworkProcess();
 #endif
 
@@ -592,11 +579,11 @@
     if (!parameters.injectedBundlePath.isEmpty())
         SandboxExtension::createHandle(parameters.injectedBundlePath, SandboxExtension::ReadOnly, parameters.injectedBundlePathExtensionHandle);
 
-    parameters.applicationCacheDirectory = m_applicationCacheDirectory;
+    parameters.applicationCacheDirectory = m_configuration->applicationCacheDirectory();
     if (!parameters.applicationCacheDirectory.isEmpty())
         SandboxExtension::createHandleForReadWriteDirectory(parameters.applicationCacheDirectory, parameters.applicationCacheDirectoryExtensionHandle);
 
-    parameters.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
+    parameters.webSQLDatabaseDirectory = m_configuration->webSQLDatabaseDirectory();
     if (!parameters.webSQLDatabaseDirectory.isEmpty())
         SandboxExtension::createHandleForReadWriteDirectory(parameters.webSQLDatabaseDirectory, parameters.webSQLDatabaseDirectoryExtensionHandle);
 
@@ -618,13 +605,13 @@
         SandboxExtension::createHandleForReadWriteDirectory(containerTemporaryDirectory, parameters.containerTemporaryDirectoryExtensionHandle);
 #endif
 
-    parameters.mediaKeyStorageDirectory = m_mediaKeysStorageDirectory;
+    parameters.mediaKeyStorageDirectory = m_configuration->mediaKeysStorageDirectory();
     if (!parameters.mediaKeyStorageDirectory.isEmpty())
         SandboxExtension::createHandleForReadWriteDirectory(parameters.mediaKeyStorageDirectory, parameters.mediaKeyStorageDirectoryExtensionHandle);
 
     parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
 
-    parameters.cacheModel = m_cacheModel;
+    parameters.cacheModel = cacheModel();
     parameters.languages = userPreferredLanguages();
 
     copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegisteredAsEmptyDocument);
@@ -646,7 +633,7 @@
     // iconDatabasePath is non-empty by default, but m_iconDatabase isn't enabled in UI process unless setDatabasePath is called explicitly.
     parameters.iconDatabaseEnabled = !iconDatabasePath().isEmpty();
 
-    parameters.terminationTimeout = (m_processModel == ProcessModelSharedSecondaryProcess) ? sharedSecondaryProcessShutdownTimeout : 0;
+    parameters.terminationTimeout = (processModel() == ProcessModelSharedSecondaryProcess) ? sharedSecondaryProcessShutdownTimeout : 0;
 
     parameters.textCheckerState = TextChecker::state();
 
@@ -660,7 +647,7 @@
 #endif
 
 #if ENABLE(NETWORK_PROCESS)
-    parameters.usesNetworkProcess = m_usesNetworkProcess;
+    parameters.usesNetworkProcess = usesNetworkProcess();
 #endif
 
     parameters.plugInAutoStartOriginHashes = m_plugInAutoStartProvider.autoStartOriginHashesCopy();
@@ -706,7 +693,7 @@
 
     m_processes.append(process.ptr());
 
-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
+    if (processModel() == ProcessModelSharedSecondaryProcess) {
         for (size_t i = 0; i != m_messagesToInjectedBundlePostedToEmptyContext.size(); ++i) {
             auto& messageNameAndBody = m_messagesToInjectedBundlePostedToEmptyContext[i];
 
@@ -731,7 +718,7 @@
         return;
     }
 
-    if (m_processes.size() >= m_webProcessCountLimit)
+    if (m_processes.size() >= maximumNumberOfProcesses())
         return;
 
     createNewWebProcess();
@@ -795,7 +782,7 @@
 
     // FIXME (Multi-WebProcess): <rdar://problem/12239765> Some of the invalidation calls below are still necessary in multi-process mode, but they should only affect data structures pertaining to the process being disconnected.
     // Clearing everything causes assertion failures, so it's less trouble to skip that for now.
-    if (m_processModel != ProcessModelSharedSecondaryProcess) {
+    if (processModel() != ProcessModelSharedSecondaryProcess) {
         RefPtr<WebProcessProxy> protect(process);
         if (m_processWithPageCache == process)
             m_processWithPageCache = 0;
@@ -822,7 +809,7 @@
 
 WebProcessProxy& WebProcessPool::createNewWebProcessRespectingProcessCountLimit()
 {
-    if (m_processes.size() < m_webProcessCountLimit)
+    if (m_processes.size() < maximumNumberOfProcesses())
         return createNewWebProcess();
 
     // Choose the process with fewest pages.
@@ -848,7 +835,7 @@
     }
 
     RefPtr<WebProcessProxy> process;
-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
+    if (processModel() == ProcessModelSharedSecondaryProcess) {
         process = &ensureSharedWebProcess();
     } else {
         if (m_haveInitialEmptyProcess) {
@@ -903,7 +890,7 @@
 void WebProcessPool::postMessageToInjectedBundle(const String& messageName, API::Object* messageBody)
 {
     if (m_processes.isEmpty()) {
-        if (m_processModel == ProcessModelSharedSecondaryProcess)
+        if (processModel() == ProcessModelSharedSecondaryProcess)
             m_messagesToInjectedBundlePostedToEmptyContext.append(std::make_pair(messageName, messageBody));
         return;
     }
@@ -986,7 +973,7 @@
 {
 #if ENABLE(NETWORK_PROCESS)
     m_canHandleHTTPSServerTrustEvaluation = value;
-    if (m_usesNetworkProcess && m_networkProcess) {
+    if (usesNetworkProcess() && m_networkProcess) {
         m_networkProcess->send(Messages::NetworkProcess::SetCanHandleHTTPSServerTrustEvaluation(value), 0);
         return;
     }
@@ -1057,12 +1044,12 @@
 
 void WebProcessPool::setCacheModel(CacheModel cacheModel)
 {
-    m_cacheModel = cacheModel;
-    sendToAllProcesses(Messages::WebProcess::SetCacheModel(m_cacheModel));
+    m_configuration->setCacheModel(cacheModel);
+    sendToAllProcesses(Messages::WebProcess::SetCacheModel(cacheModel));
 
 #if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess && m_networkProcess)
-        m_networkProcess->send(Messages::NetworkProcess::SetCacheModel(m_cacheModel), 0);
+    if (usesNetworkProcess() && m_networkProcess)
+        m_networkProcess->send(Messages::NetworkProcess::SetCacheModel(cacheModel), 0);
 #endif
 }
 
@@ -1194,7 +1181,7 @@
 void WebProcessPool::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String& host)
 {
 #if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess && m_networkProcess) {
+    if (usesNetworkProcess() && m_networkProcess) {
         m_networkProcess->send(Messages::NetworkProcess::AllowSpecificHTTPSCertificateForHost(certificate->certificateInfo(), host), 0);
         return;
     }
@@ -1249,7 +1236,7 @@
 
 void WebProcessPool::requestWebContentStatistics(StatisticsRequest* request)
 {
-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
+    if (processModel() == ProcessModelSharedSecondaryProcess) {
         if (m_processes.isEmpty())
             return;
         
@@ -1266,7 +1253,7 @@
 {
     bool networkProcessUnavailable;
 #if ENABLE(NETWORK_PROCESS)
-    networkProcessUnavailable = !m_usesNetworkProcess || !m_networkProcess;
+    networkProcessUnavailable = !usesNetworkProcess() || !m_networkProcess;
 #else
     networkProcessUnavailable = true;
 #endif

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (185735 => 185736)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2015-06-19 05:48:24 UTC (rev 185735)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2015-06-19 05:59:43 UTC (rev 185736)
@@ -28,6 +28,7 @@
 
 #include "APIDictionary.h"
 #include "APIObject.h"
+#include "APIProcessPoolConfiguration.h"
 #include "APIWebsiteDataStore.h"
 #include "DownloadProxyMap.h"
 #include "GenericCallback.h"
@@ -71,7 +72,6 @@
 namespace API {
 class DownloadClient;
 class LegacyContextHistoryClient;
-class ProcessPoolConfiguration;
 }
 
 namespace WebKit {
@@ -139,10 +139,10 @@
     void setDownloadClient(std::unique_ptr<API::DownloadClient>);
 
     void setProcessModel(ProcessModel); // Can only be called when there are no processes running.
-    ProcessModel processModel() const { return m_processModel; }
+    ProcessModel processModel() const { return m_configuration->processModel(); }
 
     void setMaximumNumberOfProcesses(unsigned); // Can only be called when there are no processes running.
-    unsigned maximumNumberOfProcesses() const { return m_webProcessCountLimit; }
+    unsigned maximumNumberOfProcesses() const { return !m_configuration->maximumProcessCount() ? UINT_MAX : m_configuration->maximumProcessCount(); }
 
     const Vector<RefPtr<WebProcessProxy>>& processes() const { return m_processes; }
 
@@ -169,7 +169,7 @@
 
     PassRefPtr<WebPageProxy> createWebPage(PageClient&, WebPageConfiguration);
 
-    const String& injectedBundlePath() const { return m_injectedBundlePath; }
+    const String& injectedBundlePath() const { return m_configuration->injectedBundlePath(); }
 
     DownloadProxy* download(WebPageProxy* initiatingPage, const WebCore::ResourceRequest&);
     DownloadProxy* resumeDownload(const API::Data* resumeData, const String& path);
@@ -212,7 +212,7 @@
     VisitedLinkProvider& visitedLinkProvider() { return m_visitedLinkProvider.get(); }
 
     void setCacheModel(CacheModel);
-    CacheModel cacheModel() const { return m_cacheModel; }
+    CacheModel cacheModel() const { return m_configuration->cacheModel(); }
 
     void setDefaultRequestTimeoutInterval(double);
 
@@ -423,9 +423,6 @@
 
     IPC::MessageReceiverMap m_messageReceiverMap;
 
-    ProcessModel m_processModel;
-    unsigned m_webProcessCountLimit; // The limit has no effect when process model is ProcessModelSharedSecondaryProcess.
-    
     Vector<RefPtr<WebProcessProxy>> m_processes;
     bool m_haveInitialEmptyProcess;
 
@@ -434,7 +431,6 @@
     Ref<WebPageGroup> m_defaultPageGroup;
 
     RefPtr<API::Object> m_injectedBundleInitializationUserData;
-    String m_injectedBundlePath;
     WebContextInjectedBundleClient m_injectedBundleClient;
 
     WebContextClient m_client;
@@ -471,9 +467,6 @@
     // The client should use initialization messages instead, so that a restarted process would get the same state.
     Vector<std::pair<String, RefPtr<API::Object>>> m_messagesToInjectedBundlePostedToEmptyContext;
 
-    CacheModel m_cacheModel;
-    uint64_t m_diskCacheSizeOverride;
-
     bool m_memorySamplerEnabled;
     double m_memorySamplerInterval;
 
@@ -499,18 +492,12 @@
     String m_overrideIconDatabasePath;
     String m_overrideCookieStorageDirectory;
 
-    String m_applicationCacheDirectory;
-    String m_indexedDBDatabaseDirectory;
-    String m_mediaKeysStorageDirectory;
-    String m_webSQLDatabaseDirectory;
-
     bool m_shouldUseTestingNetworkSession;
 
     bool m_processTerminationEnabled;
 
 #if ENABLE(NETWORK_PROCESS)
     bool m_canHandleHTTPSServerTrustEvaluation;
-    bool m_usesNetworkProcess;
     RefPtr<NetworkProcessProxy> m_networkProcess;
 #endif
 
@@ -547,10 +534,10 @@
 template<typename T>
 void WebProcessPool::sendToNetworkingProcess(T&& message)
 {
-    switch (m_processModel) {
+    switch (processModel()) {
     case ProcessModelSharedSecondaryProcess:
 #if ENABLE(NETWORK_PROCESS)
-        if (m_usesNetworkProcess) {
+        if (usesNetworkProcess()) {
             if (m_networkProcess && m_networkProcess->canSendMessage())
                 m_networkProcess->send(std::forward<T>(message), 0);
             return;
@@ -574,10 +561,10 @@
 template<typename T>
 void WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary(T&& message)
 {
-    switch (m_processModel) {
+    switch (processModel()) {
     case ProcessModelSharedSecondaryProcess:
 #if ENABLE(NETWORK_PROCESS)
-        if (m_usesNetworkProcess) {
+        if (usesNetworkProcess()) {
             ensureNetworkProcess();
             m_networkProcess->send(std::forward<T>(message), 0);
             return;
@@ -624,7 +611,7 @@
 void WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary(const T& message)
 {
     // FIXME (Multi-WebProcess): WebProcessPool doesn't track processes that have exited, so it cannot relaunch these. Perhaps this functionality won't be needed in this mode.
-    if (m_processModel == ProcessModelSharedSecondaryProcess)
+    if (processModel() == ProcessModelSharedSecondaryProcess)
         ensureSharedWebProcess();
     sendToAllProcesses(message);
 }
@@ -632,7 +619,7 @@
 template<typename T>
 void WebProcessPool::sendToOneProcess(T&& message)
 {
-    if (m_processModel == ProcessModelSharedSecondaryProcess)
+    if (processModel() == ProcessModelSharedSecondaryProcess)
         ensureSharedWebProcess();
 
     bool messageSent = false;
@@ -646,7 +633,7 @@
         }
     }
 
-    if (!messageSent && m_processModel == ProcessModelMultipleSecondaryProcesses) {
+    if (!messageSent && processModel() == ProcessModelMultipleSecondaryProcesses) {
         warmInitialProcess();
         RefPtr<WebProcessProxy> process = m_processes.last();
         if (process->canSendMessage())

Modified: trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp (185735 => 185736)


--- trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp	2015-06-19 05:48:24 UTC (rev 185735)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp	2015-06-19 05:59:43 UTC (rev 185736)
@@ -109,7 +109,7 @@
         parameters.diskCacheDirectory = m_configuration->diskCacheDirectory();
     }
 
-    parameters.memoryCacheDisabled = m_memoryCacheDisabled || m_cacheModel == CacheModelDocumentViewer;
+    parameters.memoryCacheDisabled = m_memoryCacheDisabled || cacheModel() == CacheModelDocumentViewer;
 }
 
 void WebProcessPool::platformInvalidateContext()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to