<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[185736] trunk/Source/WebKit2</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/185736">185736</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2015-06-18 22:59:43 -0700 (Thu, 18 Jun 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>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):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationh">trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoamm">trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolcpp">trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessPoolh">trunk/Source/WebKit2/UIProcess/WebProcessPool.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessgtkWebProcessPoolGtkcpp">trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (185735 => 185736)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -1,3 +1,50 @@
</span><ins>+2015-06-18  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
+
+        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):
+
</ins><span class="cx"> 2015-06-18  Jon Lee  &lt;jonlee@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Update AVKit usage of pip
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIProcessPoolConfigurationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (185735 => 185736)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -63,25 +63,25 @@
</span><span class="cx">     int64_t diskCacheSizeOverride() const { return m_diskCacheSizeOverride; }
</span><span class="cx">     void setDiskCacheSizeOverride(int64_t size) { m_diskCacheSizeOverride = size; }
</span><span class="cx"> 
</span><del>-    WTF::String applicationCacheDirectory() const { return m_applicationCacheDirectory; }
</del><ins>+    const WTF::String&amp; applicationCacheDirectory() const { return m_applicationCacheDirectory; }
</ins><span class="cx">     void setApplicationCacheDirectory(const WTF::String&amp; applicationCacheDirectory) { m_applicationCacheDirectory = applicationCacheDirectory; }
</span><span class="cx"> 
</span><del>-    WTF::String diskCacheDirectory() const { return m_diskCacheDirectory; }
</del><ins>+    const WTF::String&amp; diskCacheDirectory() const { return m_diskCacheDirectory; }
</ins><span class="cx">     void setDiskCacheDirectory(const WTF::String&amp; diskCacheDirectory) { m_diskCacheDirectory = diskCacheDirectory; }
</span><span class="cx"> 
</span><del>-    WTF::String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
</del><ins>+    const WTF::String&amp; indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
</ins><span class="cx">     void setIndexedDBDatabaseDirectory(const WTF::String&amp; indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
</span><span class="cx"> 
</span><del>-    WTF::String injectedBundlePath() const { return m_injectedBundlePath; }
</del><ins>+    const WTF::String&amp; injectedBundlePath() const { return m_injectedBundlePath; }
</ins><span class="cx">     void setInjectedBundlePath(const WTF::String&amp; injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
</span><span class="cx"> 
</span><del>-    WTF::String localStorageDirectory() const { return m_localStorageDirectory; }
</del><ins>+    const WTF::String&amp; localStorageDirectory() const { return m_localStorageDirectory; }
</ins><span class="cx">     void setLocalStorageDirectory(const WTF::String&amp; localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
</span><span class="cx"> 
</span><del>-    WTF::String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
</del><ins>+    const WTF::String&amp; webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
</ins><span class="cx">     void setWebSQLDatabaseDirectory(const WTF::String&amp; webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
</span><span class="cx"> 
</span><del>-    WTF::String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
</del><ins>+    const WTF::String&amp; mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
</ins><span class="cx">     void setMediaKeysStorageDirectory(const WTF::String&amp; mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
</span><span class="cx"> 
</span><span class="cx">     const Vector&lt;WTF::String&gt;&amp; cachePartitionedURLSchemes() { return m_cachePartitionedURLSchemes; }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (185735 => 185736)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -118,7 +118,7 @@
</span><span class="cx"> void WebProcessPool::updateProcessSuppressionState()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
</del><ins>+    if (usesNetworkProcess() &amp;&amp; m_networkProcess)
</ins><span class="cx">         m_networkProcess-&gt;setProcessSuppressionEnabled(processSuppressionEnabled());
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -192,7 +192,7 @@
</span><span class="cx">     parameters.uiProcessBundleIdentifier = String([[NSBundle mainBundle] bundleIdentifier]);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    if (!m_usesNetworkProcess) {
</del><ins>+    if (!usesNetworkProcess()) {
</ins><span class="cx"> #endif
</span><span class="cx">         for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
</span><span class="cx">             parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (185735 => 185736)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -140,12 +140,9 @@
</span><span class="cx"> 
</span><span class="cx"> WebProcessPool::WebProcessPool(API::ProcessPoolConfiguration&amp; configuration)
</span><span class="cx">     : m_configuration(configuration.copy())
</span><del>-    , m_processModel(m_configuration-&gt;processModel())
-    , m_webProcessCountLimit(!m_configuration-&gt;maximumProcessCount() ? UINT_MAX : m_configuration-&gt;maximumProcessCount())
</del><span class="cx">     , m_haveInitialEmptyProcess(false)
</span><span class="cx">     , m_processWithPageCache(0)
</span><span class="cx">     , m_defaultPageGroup(WebPageGroup::createNonNull())
</span><del>-    , m_injectedBundlePath(m_configuration-&gt;injectedBundlePath())
</del><span class="cx">     , m_downloadClient(std::make_unique&lt;API::DownloadClient&gt;())
</span><span class="cx">     , m_historyClient(std::make_unique&lt;API::LegacyContextHistoryClient&gt;())
</span><span class="cx">     , m_visitedLinkProvider(VisitedLinkProvider::create())
</span><span class="lines">@@ -153,23 +150,16 @@
</span><span class="cx">     , m_plugInAutoStartProvider(this)
</span><span class="cx">     , m_alwaysUsesComplexTextCodePath(false)
</span><span class="cx">     , m_shouldUseFontSmoothing(true)
</span><del>-    , m_cacheModel(m_configuration-&gt;cacheModel())
-    , m_diskCacheSizeOverride(m_configuration-&gt;diskCacheSizeOverride())
</del><span class="cx">     , m_memorySamplerEnabled(false)
</span><span class="cx">     , m_memorySamplerInterval(1400.0)
</span><span class="cx">     , m_websiteDataStore(m_configuration-&gt;shouldHaveLegacyDataStore() ? API::WebsiteDataStore::create(legacyWebsiteDataStoreConfiguration(m_configuration)) : nullptr)
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx">     , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
</span><span class="cx"> #endif
</span><del>-    , m_applicationCacheDirectory(configuration.applicationCacheDirectory())
-    , m_indexedDBDatabaseDirectory(configuration.indexedDBDatabaseDirectory())
-    , m_mediaKeysStorageDirectory(configuration.mediaKeysStorageDirectory())
-    , m_webSQLDatabaseDirectory(configuration.webSQLDatabaseDirectory())
</del><span class="cx">     , m_shouldUseTestingNetworkSession(false)
</span><span class="cx">     , m_processTerminationEnabled(true)
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx">     , m_canHandleHTTPSServerTrustEvaluation(true)
</span><del>-    , m_usesNetworkProcess(m_configuration-&gt;useNetworkProcess())
</del><span class="cx"> #endif
</span><span class="cx"> #if USE(SOUP)
</span><span class="cx">     , m_ignoreTLSErrors(true)
</span><span class="lines">@@ -304,7 +294,7 @@
</span><span class="cx">     if (processModel != ProcessModelSharedSecondaryProcess &amp;&amp; !m_messagesToInjectedBundlePostedToEmptyContext.isEmpty())
</span><span class="cx">         CRASH();
</span><span class="cx"> 
</span><del>-    m_processModel = processModel;
</del><ins>+    m_configuration-&gt;setProcessModel(processModel);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcessPool::setMaximumNumberOfProcesses(unsigned maximumNumberOfProcesses)
</span><span class="lines">@@ -313,24 +303,21 @@
</span><span class="cx">     if (!m_processes.isEmpty())
</span><span class="cx">         CRASH();
</span><span class="cx"> 
</span><del>-    if (maximumNumberOfProcesses == 0)
-        m_webProcessCountLimit = UINT_MAX;
-    else
-        m_webProcessCountLimit = maximumNumberOfProcesses;
</del><ins>+    m_configuration-&gt;setMaximumProcessCount(maximumNumberOfProcesses);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> IPC::Connection* WebProcessPool::networkingProcessConnection()
</span><span class="cx"> {
</span><del>-    switch (m_processModel) {
</del><ins>+    switch (processModel()) {
</ins><span class="cx">     case ProcessModelSharedSecondaryProcess:
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-        if (m_usesNetworkProcess)
</del><ins>+        if (usesNetworkProcess())
</ins><span class="cx">             return m_networkProcess-&gt;connection();
</span><span class="cx"> #endif
</span><span class="cx">         return m_processes[0]-&gt;connection();
</span><span class="cx">     case ProcessModelMultipleSecondaryProcesses:
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-        ASSERT(m_usesNetworkProcess);
</del><ins>+        ASSERT(usesNetworkProcess());
</ins><span class="cx">         return m_networkProcess-&gt;connection();
</span><span class="cx"> #else
</span><span class="cx">         break;
</span><span class="lines">@@ -349,7 +336,7 @@
</span><span class="cx"> {
</span><span class="cx">     sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(userPreferredLanguages()));
</span><span class="cx"> #if USE(SOUP) &amp;&amp; ENABLE(NETWORK_PROCESS)
</span><del>-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
</del><ins>+    if (usesNetworkProcess() &amp;&amp; m_networkProcess)
</ins><span class="cx">         m_networkProcess-&gt;send(Messages::NetworkProcess::UserPreferredLanguagesChanged(userPreferredLanguages()), 0);
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="lines">@@ -367,7 +354,7 @@
</span><span class="cx"> void WebProcessPool::setUsesNetworkProcess(bool usesNetworkProcess)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    m_usesNetworkProcess = usesNetworkProcess;
</del><ins>+    m_configuration-&gt;setUseNetworkProcess(usesNetworkProcess);
</ins><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(usesNetworkProcess);
</span><span class="cx"> #endif
</span><span class="lines">@@ -376,7 +363,7 @@
</span><span class="cx"> bool WebProcessPool::usesNetworkProcess() const
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    return m_usesNetworkProcess;
</del><ins>+    return m_configuration-&gt;useNetworkProcess();
</ins><span class="cx"> #else
</span><span class="cx">     return false;
</span><span class="cx"> #endif
</span><span class="lines">@@ -394,8 +381,8 @@
</span><span class="cx"> 
</span><span class="cx">     parameters.privateBrowsingEnabled = WebPreferences::anyPagesAreUsingPrivateBrowsing();
</span><span class="cx"> 
</span><del>-    parameters.cacheModel = m_cacheModel;
-    parameters.diskCacheSizeOverride = m_diskCacheSizeOverride;
</del><ins>+    parameters.cacheModel = cacheModel();
+    parameters.diskCacheSizeOverride = m_configuration-&gt;diskCacheSizeOverride();
</ins><span class="cx">     parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation;
</span><span class="cx"> 
</span><span class="cx">     parameters.diskCacheDirectory = m_configuration-&gt;diskCacheDirectory();
</span><span class="lines">@@ -470,13 +457,13 @@
</span><span class="cx"> 
</span><span class="cx">     m_databaseProcess = DatabaseProcessProxy::create(this);
</span><span class="cx"> 
</span><del>-    ASSERT(!m_indexedDBDatabaseDirectory.isEmpty());
</del><ins>+    ASSERT(!m_configuration-&gt;indexedDBDatabaseDirectory().isEmpty());
</ins><span class="cx"> 
</span><span class="cx">     // *********
</span><span class="cx">     // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (&lt;rdar://problem/17454712&gt;)
</span><span class="cx">     // *********
</span><span class="cx">     DatabaseProcessCreationParameters parameters;
</span><del>-    parameters.indexedDatabaseDirectory = m_indexedDBDatabaseDirectory;
</del><ins>+    parameters.indexedDatabaseDirectory = m_configuration-&gt;indexedDBDatabaseDirectory();
</ins><span class="cx"> 
</span><span class="cx">     SandboxExtension::createHandleForReadWriteDirectory(parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle);
</span><span class="cx"> 
</span><span class="lines">@@ -571,7 +558,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebProcessProxy&amp; WebProcessPool::ensureSharedWebProcess()
</span><span class="cx"> {
</span><del>-    ASSERT(m_processModel == ProcessModelSharedSecondaryProcess);
</del><ins>+    ASSERT(processModel() == ProcessModelSharedSecondaryProcess);
</ins><span class="cx">     if (m_processes.isEmpty())
</span><span class="cx">         createNewWebProcess();
</span><span class="cx">     return *m_processes[0];
</span><span class="lines">@@ -580,7 +567,7 @@
</span><span class="cx"> WebProcessProxy&amp; WebProcessPool::createNewWebProcess()
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    if (m_usesNetworkProcess)
</del><ins>+    if (usesNetworkProcess())
</ins><span class="cx">         ensureNetworkProcess();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -592,11 +579,11 @@
</span><span class="cx">     if (!parameters.injectedBundlePath.isEmpty())
</span><span class="cx">         SandboxExtension::createHandle(parameters.injectedBundlePath, SandboxExtension::ReadOnly, parameters.injectedBundlePathExtensionHandle);
</span><span class="cx"> 
</span><del>-    parameters.applicationCacheDirectory = m_applicationCacheDirectory;
</del><ins>+    parameters.applicationCacheDirectory = m_configuration-&gt;applicationCacheDirectory();
</ins><span class="cx">     if (!parameters.applicationCacheDirectory.isEmpty())
</span><span class="cx">         SandboxExtension::createHandleForReadWriteDirectory(parameters.applicationCacheDirectory, parameters.applicationCacheDirectoryExtensionHandle);
</span><span class="cx"> 
</span><del>-    parameters.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
</del><ins>+    parameters.webSQLDatabaseDirectory = m_configuration-&gt;webSQLDatabaseDirectory();
</ins><span class="cx">     if (!parameters.webSQLDatabaseDirectory.isEmpty())
</span><span class="cx">         SandboxExtension::createHandleForReadWriteDirectory(parameters.webSQLDatabaseDirectory, parameters.webSQLDatabaseDirectoryExtensionHandle);
</span><span class="cx"> 
</span><span class="lines">@@ -618,13 +605,13 @@
</span><span class="cx">         SandboxExtension::createHandleForReadWriteDirectory(containerTemporaryDirectory, parameters.containerTemporaryDirectoryExtensionHandle);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    parameters.mediaKeyStorageDirectory = m_mediaKeysStorageDirectory;
</del><ins>+    parameters.mediaKeyStorageDirectory = m_configuration-&gt;mediaKeysStorageDirectory();
</ins><span class="cx">     if (!parameters.mediaKeyStorageDirectory.isEmpty())
</span><span class="cx">         SandboxExtension::createHandleForReadWriteDirectory(parameters.mediaKeyStorageDirectory, parameters.mediaKeyStorageDirectoryExtensionHandle);
</span><span class="cx"> 
</span><span class="cx">     parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
</span><span class="cx"> 
</span><del>-    parameters.cacheModel = m_cacheModel;
</del><ins>+    parameters.cacheModel = cacheModel();
</ins><span class="cx">     parameters.languages = userPreferredLanguages();
</span><span class="cx"> 
</span><span class="cx">     copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegisteredAsEmptyDocument);
</span><span class="lines">@@ -646,7 +633,7 @@
</span><span class="cx">     // iconDatabasePath is non-empty by default, but m_iconDatabase isn't enabled in UI process unless setDatabasePath is called explicitly.
</span><span class="cx">     parameters.iconDatabaseEnabled = !iconDatabasePath().isEmpty();
</span><span class="cx"> 
</span><del>-    parameters.terminationTimeout = (m_processModel == ProcessModelSharedSecondaryProcess) ? sharedSecondaryProcessShutdownTimeout : 0;
</del><ins>+    parameters.terminationTimeout = (processModel() == ProcessModelSharedSecondaryProcess) ? sharedSecondaryProcessShutdownTimeout : 0;
</ins><span class="cx"> 
</span><span class="cx">     parameters.textCheckerState = TextChecker::state();
</span><span class="cx"> 
</span><span class="lines">@@ -660,7 +647,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    parameters.usesNetworkProcess = m_usesNetworkProcess;
</del><ins>+    parameters.usesNetworkProcess = usesNetworkProcess();
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     parameters.plugInAutoStartOriginHashes = m_plugInAutoStartProvider.autoStartOriginHashesCopy();
</span><span class="lines">@@ -706,7 +693,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_processes.append(process.ptr());
</span><span class="cx"> 
</span><del>-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
</del><ins>+    if (processModel() == ProcessModelSharedSecondaryProcess) {
</ins><span class="cx">         for (size_t i = 0; i != m_messagesToInjectedBundlePostedToEmptyContext.size(); ++i) {
</span><span class="cx">             auto&amp; messageNameAndBody = m_messagesToInjectedBundlePostedToEmptyContext[i];
</span><span class="cx"> 
</span><span class="lines">@@ -731,7 +718,7 @@
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (m_processes.size() &gt;= m_webProcessCountLimit)
</del><ins>+    if (m_processes.size() &gt;= maximumNumberOfProcesses())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     createNewWebProcess();
</span><span class="lines">@@ -795,7 +782,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; 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.
</span><span class="cx">     // Clearing everything causes assertion failures, so it's less trouble to skip that for now.
</span><del>-    if (m_processModel != ProcessModelSharedSecondaryProcess) {
</del><ins>+    if (processModel() != ProcessModelSharedSecondaryProcess) {
</ins><span class="cx">         RefPtr&lt;WebProcessProxy&gt; protect(process);
</span><span class="cx">         if (m_processWithPageCache == process)
</span><span class="cx">             m_processWithPageCache = 0;
</span><span class="lines">@@ -822,7 +809,7 @@
</span><span class="cx"> 
</span><span class="cx"> WebProcessProxy&amp; WebProcessPool::createNewWebProcessRespectingProcessCountLimit()
</span><span class="cx"> {
</span><del>-    if (m_processes.size() &lt; m_webProcessCountLimit)
</del><ins>+    if (m_processes.size() &lt; maximumNumberOfProcesses())
</ins><span class="cx">         return createNewWebProcess();
</span><span class="cx"> 
</span><span class="cx">     // Choose the process with fewest pages.
</span><span class="lines">@@ -848,7 +835,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebProcessProxy&gt; process;
</span><del>-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
</del><ins>+    if (processModel() == ProcessModelSharedSecondaryProcess) {
</ins><span class="cx">         process = &amp;ensureSharedWebProcess();
</span><span class="cx">     } else {
</span><span class="cx">         if (m_haveInitialEmptyProcess) {
</span><span class="lines">@@ -903,7 +890,7 @@
</span><span class="cx"> void WebProcessPool::postMessageToInjectedBundle(const String&amp; messageName, API::Object* messageBody)
</span><span class="cx"> {
</span><span class="cx">     if (m_processes.isEmpty()) {
</span><del>-        if (m_processModel == ProcessModelSharedSecondaryProcess)
</del><ins>+        if (processModel() == ProcessModelSharedSecondaryProcess)
</ins><span class="cx">             m_messagesToInjectedBundlePostedToEmptyContext.append(std::make_pair(messageName, messageBody));
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -986,7 +973,7 @@
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx">     m_canHandleHTTPSServerTrustEvaluation = value;
</span><del>-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess) {
</del><ins>+    if (usesNetworkProcess() &amp;&amp; m_networkProcess) {
</ins><span class="cx">         m_networkProcess-&gt;send(Messages::NetworkProcess::SetCanHandleHTTPSServerTrustEvaluation(value), 0);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1057,12 +1044,12 @@
</span><span class="cx"> 
</span><span class="cx"> void WebProcessPool::setCacheModel(CacheModel cacheModel)
</span><span class="cx"> {
</span><del>-    m_cacheModel = cacheModel;
-    sendToAllProcesses(Messages::WebProcess::SetCacheModel(m_cacheModel));
</del><ins>+    m_configuration-&gt;setCacheModel(cacheModel);
+    sendToAllProcesses(Messages::WebProcess::SetCacheModel(cacheModel));
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
-        m_networkProcess-&gt;send(Messages::NetworkProcess::SetCacheModel(m_cacheModel), 0);
</del><ins>+    if (usesNetworkProcess() &amp;&amp; m_networkProcess)
+        m_networkProcess-&gt;send(Messages::NetworkProcess::SetCacheModel(cacheModel), 0);
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1194,7 +1181,7 @@
</span><span class="cx"> void WebProcessPool::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String&amp; host)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess) {
</del><ins>+    if (usesNetworkProcess() &amp;&amp; m_networkProcess) {
</ins><span class="cx">         m_networkProcess-&gt;send(Messages::NetworkProcess::AllowSpecificHTTPSCertificateForHost(certificate-&gt;certificateInfo(), host), 0);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -1249,7 +1236,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebProcessPool::requestWebContentStatistics(StatisticsRequest* request)
</span><span class="cx"> {
</span><del>-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
</del><ins>+    if (processModel() == ProcessModelSharedSecondaryProcess) {
</ins><span class="cx">         if (m_processes.isEmpty())
</span><span class="cx">             return;
</span><span class="cx">         
</span><span class="lines">@@ -1266,7 +1253,7 @@
</span><span class="cx"> {
</span><span class="cx">     bool networkProcessUnavailable;
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    networkProcessUnavailable = !m_usesNetworkProcess || !m_networkProcess;
</del><ins>+    networkProcessUnavailable = !usesNetworkProcess() || !m_networkProcess;
</ins><span class="cx"> #else
</span><span class="cx">     networkProcessUnavailable = true;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (185735 => 185736)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIDictionary.h&quot;
</span><span class="cx"> #include &quot;APIObject.h&quot;
</span><ins>+#include &quot;APIProcessPoolConfiguration.h&quot;
</ins><span class="cx"> #include &quot;APIWebsiteDataStore.h&quot;
</span><span class="cx"> #include &quot;DownloadProxyMap.h&quot;
</span><span class="cx"> #include &quot;GenericCallback.h&quot;
</span><span class="lines">@@ -71,7 +72,6 @@
</span><span class="cx"> namespace API {
</span><span class="cx"> class DownloadClient;
</span><span class="cx"> class LegacyContextHistoryClient;
</span><del>-class ProcessPoolConfiguration;
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -139,10 +139,10 @@
</span><span class="cx">     void setDownloadClient(std::unique_ptr&lt;API::DownloadClient&gt;);
</span><span class="cx"> 
</span><span class="cx">     void setProcessModel(ProcessModel); // Can only be called when there are no processes running.
</span><del>-    ProcessModel processModel() const { return m_processModel; }
</del><ins>+    ProcessModel processModel() const { return m_configuration-&gt;processModel(); }
</ins><span class="cx"> 
</span><span class="cx">     void setMaximumNumberOfProcesses(unsigned); // Can only be called when there are no processes running.
</span><del>-    unsigned maximumNumberOfProcesses() const { return m_webProcessCountLimit; }
</del><ins>+    unsigned maximumNumberOfProcesses() const { return !m_configuration-&gt;maximumProcessCount() ? UINT_MAX : m_configuration-&gt;maximumProcessCount(); }
</ins><span class="cx"> 
</span><span class="cx">     const Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt;&amp; processes() const { return m_processes; }
</span><span class="cx"> 
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx"> 
</span><span class="cx">     PassRefPtr&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, WebPageConfiguration);
</span><span class="cx"> 
</span><del>-    const String&amp; injectedBundlePath() const { return m_injectedBundlePath; }
</del><ins>+    const String&amp; injectedBundlePath() const { return m_configuration-&gt;injectedBundlePath(); }
</ins><span class="cx"> 
</span><span class="cx">     DownloadProxy* download(WebPageProxy* initiatingPage, const WebCore::ResourceRequest&amp;);
</span><span class="cx">     DownloadProxy* resumeDownload(const API::Data* resumeData, const String&amp; path);
</span><span class="lines">@@ -212,7 +212,7 @@
</span><span class="cx">     VisitedLinkProvider&amp; visitedLinkProvider() { return m_visitedLinkProvider.get(); }
</span><span class="cx"> 
</span><span class="cx">     void setCacheModel(CacheModel);
</span><del>-    CacheModel cacheModel() const { return m_cacheModel; }
</del><ins>+    CacheModel cacheModel() const { return m_configuration-&gt;cacheModel(); }
</ins><span class="cx"> 
</span><span class="cx">     void setDefaultRequestTimeoutInterval(double);
</span><span class="cx"> 
</span><span class="lines">@@ -423,9 +423,6 @@
</span><span class="cx"> 
</span><span class="cx">     IPC::MessageReceiverMap m_messageReceiverMap;
</span><span class="cx"> 
</span><del>-    ProcessModel m_processModel;
-    unsigned m_webProcessCountLimit; // The limit has no effect when process model is ProcessModelSharedSecondaryProcess.
-    
</del><span class="cx">     Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt; m_processes;
</span><span class="cx">     bool m_haveInitialEmptyProcess;
</span><span class="cx"> 
</span><span class="lines">@@ -434,7 +431,6 @@
</span><span class="cx">     Ref&lt;WebPageGroup&gt; m_defaultPageGroup;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;API::Object&gt; m_injectedBundleInitializationUserData;
</span><del>-    String m_injectedBundlePath;
</del><span class="cx">     WebContextInjectedBundleClient m_injectedBundleClient;
</span><span class="cx"> 
</span><span class="cx">     WebContextClient m_client;
</span><span class="lines">@@ -471,9 +467,6 @@
</span><span class="cx">     // The client should use initialization messages instead, so that a restarted process would get the same state.
</span><span class="cx">     Vector&lt;std::pair&lt;String, RefPtr&lt;API::Object&gt;&gt;&gt; m_messagesToInjectedBundlePostedToEmptyContext;
</span><span class="cx"> 
</span><del>-    CacheModel m_cacheModel;
-    uint64_t m_diskCacheSizeOverride;
-
</del><span class="cx">     bool m_memorySamplerEnabled;
</span><span class="cx">     double m_memorySamplerInterval;
</span><span class="cx"> 
</span><span class="lines">@@ -499,18 +492,12 @@
</span><span class="cx">     String m_overrideIconDatabasePath;
</span><span class="cx">     String m_overrideCookieStorageDirectory;
</span><span class="cx"> 
</span><del>-    String m_applicationCacheDirectory;
-    String m_indexedDBDatabaseDirectory;
-    String m_mediaKeysStorageDirectory;
-    String m_webSQLDatabaseDirectory;
-
</del><span class="cx">     bool m_shouldUseTestingNetworkSession;
</span><span class="cx"> 
</span><span class="cx">     bool m_processTerminationEnabled;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx">     bool m_canHandleHTTPSServerTrustEvaluation;
</span><del>-    bool m_usesNetworkProcess;
</del><span class="cx">     RefPtr&lt;NetworkProcessProxy&gt; m_networkProcess;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="lines">@@ -547,10 +534,10 @@
</span><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> void WebProcessPool::sendToNetworkingProcess(T&amp;&amp; message)
</span><span class="cx"> {
</span><del>-    switch (m_processModel) {
</del><ins>+    switch (processModel()) {
</ins><span class="cx">     case ProcessModelSharedSecondaryProcess:
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-        if (m_usesNetworkProcess) {
</del><ins>+        if (usesNetworkProcess()) {
</ins><span class="cx">             if (m_networkProcess &amp;&amp; m_networkProcess-&gt;canSendMessage())
</span><span class="cx">                 m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
</span><span class="cx">             return;
</span><span class="lines">@@ -574,10 +561,10 @@
</span><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> void WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary(T&amp;&amp; message)
</span><span class="cx"> {
</span><del>-    switch (m_processModel) {
</del><ins>+    switch (processModel()) {
</ins><span class="cx">     case ProcessModelSharedSecondaryProcess:
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-        if (m_usesNetworkProcess) {
</del><ins>+        if (usesNetworkProcess()) {
</ins><span class="cx">             ensureNetworkProcess();
</span><span class="cx">             m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
</span><span class="cx">             return;
</span><span class="lines">@@ -624,7 +611,7 @@
</span><span class="cx"> void WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary(const T&amp; message)
</span><span class="cx"> {
</span><span class="cx">     // 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.
</span><del>-    if (m_processModel == ProcessModelSharedSecondaryProcess)
</del><ins>+    if (processModel() == ProcessModelSharedSecondaryProcess)
</ins><span class="cx">         ensureSharedWebProcess();
</span><span class="cx">     sendToAllProcesses(message);
</span><span class="cx"> }
</span><span class="lines">@@ -632,7 +619,7 @@
</span><span class="cx"> template&lt;typename T&gt;
</span><span class="cx"> void WebProcessPool::sendToOneProcess(T&amp;&amp; message)
</span><span class="cx"> {
</span><del>-    if (m_processModel == ProcessModelSharedSecondaryProcess)
</del><ins>+    if (processModel() == ProcessModelSharedSecondaryProcess)
</ins><span class="cx">         ensureSharedWebProcess();
</span><span class="cx"> 
</span><span class="cx">     bool messageSent = false;
</span><span class="lines">@@ -646,7 +633,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    if (!messageSent &amp;&amp; m_processModel == ProcessModelMultipleSecondaryProcesses) {
</del><ins>+    if (!messageSent &amp;&amp; processModel() == ProcessModelMultipleSecondaryProcesses) {
</ins><span class="cx">         warmInitialProcess();
</span><span class="cx">         RefPtr&lt;WebProcessProxy&gt; process = m_processes.last();
</span><span class="cx">         if (process-&gt;canSendMessage())
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessgtkWebProcessPoolGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/gtk/WebProcessPoolGtk.cpp (185735 => 185736)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx">         parameters.diskCacheDirectory = m_configuration-&gt;diskCacheDirectory();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    parameters.memoryCacheDisabled = m_memoryCacheDisabled || m_cacheModel == CacheModelDocumentViewer;
</del><ins>+    parameters.memoryCacheDisabled = m_memoryCacheDisabled || cacheModel() == CacheModelDocumentViewer;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcessPool::platformInvalidateContext()
</span></span></pre>
</div>
</div>

</body>
</html>