<!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>[177692] trunk/Source</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/177692">177692</a></dd>
<dt>Author</dt> <dd>weinig@apple.com</dd>
<dt>Date</dt> <dd>2014-12-23 12:29:26 -0800 (Tue, 23 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rename WebContext to WebProcessPool
https://bugs.webkit.org/show_bug.cgi?id=139909

Rubber-stamped by Anders Carlsson.

Source/WebCore:

Merge SessionID and SessionIDHash into one file to make auto-generation of
HashMaps with SessionIDs easier.

* WebCore.xcodeproj/project.pbxproj:
* loader/cache/MemoryCache.h:
* page/SessionID.h:
(WTF::SessionIDHash::hash):
(WTF::SessionIDHash::equal):
(WTF::HashTraits&lt;WebCore::SessionID&gt;::emptyValue):
(WTF::HashTraits&lt;WebCore::SessionID&gt;::constructDeletedValue):
(WTF::HashTraits&lt;WebCore::SessionID&gt;::isDeletedValue):
* page/SessionIDHash.h: Removed.

Source/WebKit2:

- Major renames:
    WebContext -&gt; WebProcessPool
    WebContextConfiguration -&gt; WebProcessPoolConfiguration
    API::ContextConfiguration -&gt; API::ProcessPoolConfiguration

* File list elided *</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreloadercacheMemoryCacheh">trunk/Source/WebCore/loader/cache/MemoryCache.h</a></li>
<li><a href="#trunkSourceWebCorepageSessionIDh">trunk/Source/WebCore/page/SessionID.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2DerivedSourcesmake">trunk/Source/WebKit2/DerivedSources.make</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcessNetworkProcesscpp">trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIAPIObjecth">trunk/Source/WebKit2/Shared/API/APIObject.h</a></li>
<li><a href="#trunkSourceWebKit2SharedAPIAPIURLRequestcpp">trunk/Source/WebKit2/Shared/API/APIURLRequest.cpp</a></li>
<li><a href="#trunkSourceWebKit2SharedCocoaAPIObjectmm">trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm</a></li>
<li><a href="#trunkSourceWebKit2SharedSessionTrackerh">trunk/Source/WebKit2/Shared/SessionTracker.h</a></li>
<li><a href="#trunkSourceWebKit2SharedWebProcessCreationParametersh">trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h</a></li>
<li><a href="#trunkSourceWebKit2SharedmacObjCObjectGraphCodersmm">trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIDownloadClienth">trunk/Source/WebKit2/UIProcess/API/APIDownloadClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPILegacyContextHistoryClienth">trunk/Source/WebKit2/UIProcess/API/APILegacyContextHistoryClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKAPICasth">trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefcpp">trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagecpp">trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencescpp">trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICmacWKContextPrivateMacmm">trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICmacWKPagePrivateMaccpp">trunk/Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKBrowsingContextControllermm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKProcessGroupmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolInternalh">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewmm">trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPImacWKViewInternalh">trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaDownloadClienth">trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaDownloadClientmm">trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDatabasesDatabaseProcessProxycpp">trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDatabasesDatabaseProcessProxyh">trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDownloadsDownloadProxycpp">trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDownloadsDownloadProxyh">trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDownloadsDownloadProxyMapcpp">trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessDownloadsDownloadProxyMaph">trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessNetworkCustomProtocolsCustomProtocolManagerProxyh">trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessNetworkCustomProtocolsmacCustomProtocolManagerProxyMacmm">trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessNetworkNetworkProcessProxycpp">trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessNetworkNetworkProcessProxyh">trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessNotificationsWebNotificationManagerProxycpp">trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessNotificationsWebNotificationManagerProxyh">trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsPlugInAutoStartProvidercpp">trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsPlugInAutoStartProviderh">trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsPluginProcessManagercpp">trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsPluginProcessProxycpp">trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsWebPluginSiteDataManagercpp">trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessPluginsWebPluginSiteDataManagerh">trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessVisitedLinkProvidercpp">trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessVisitedLinkProviderh">trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebApplicationCacheManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebApplicationCacheManagerProxyh">trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextClientcpp">trunk/Source/WebKit2/UIProcess/WebContextClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextClienth">trunk/Source/WebKit2/UIProcess/WebContextClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextConnectionClientcpp">trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextConnectionClienth">trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextInjectedBundleClientcpp">trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextInjectedBundleClienth">trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextSupplementh">trunk/Source/WebKit2/UIProcess/WebContextSupplement.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextUserMessageCodersh">trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebCookieManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebCookieManagerProxyh">trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebDatabaseManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebDatabaseManagerProxyh">trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebFrameProxycpp">trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebGeolocationManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebGeolocationManagerProxyh">trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebIconDatabasecpp">trunk/Source/WebKit2/UIProcess/WebIconDatabase.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebIconDatabaseh">trunk/Source/WebKit2/UIProcess/WebIconDatabase.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxycpp">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebInspectorProxyh">trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebKeyValueStorageManagercpp">trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebKeyValueStorageManagerh">trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebMediaCacheManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebMediaCacheManagerProxyh">trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebOriginDataManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebOriginDataManagerProxyh">trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPreferencescpp">trunk/Source/WebKit2/UIProcess/WebPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessProxycpp">trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessProxyh">trunk/Source/WebKit2/UIProcess/WebProcessProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebResourceCacheManagerProxycpp">trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebResourceCacheManagerProxyh">trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataStorecpp">trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosPageClientImplIOSmm">trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewh">trunk/Source/WebKit2/UIProcess/ios/WKContentView.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewmm">trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKGeolocationProviderIOSh">trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKGeolocationProviderIOSmm">trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebProcessProxyIOSmm">trunk/Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacServicesControllerh">trunk/Source/WebKit2/UIProcess/mac/ServicesController.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacServicesControllermm">trunk/Source/WebKit2/UIProcess/mac/ServicesController.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWKActionMenuControllermm">trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWKFullKeyboardAccessWatchermm">trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebContextMenuProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebInspectorProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebPageProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebProcessProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWindowServerConnectionmm">trunk/Source/WebKit2/UIProcess/mac/WindowServerConnection.mm</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm">trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcesscpp">trunk/Source/WebKit2/WebProcess/WebProcess.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebProcessh">trunk/Source/WebKit2/WebProcess/WebProcess.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessAPIProcessPoolConfigurationcpp">trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIProcessPoolConfigurationh">trunk/Source/WebKit2/UIProcess/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="#trunkSourceWebKit2UIProcessWebProcessPoolmessagesin">trunk/Source/WebKit2/UIProcess/WebProcessPool.messages.in</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorepageSessionIDHashh">trunk/Source/WebCore/page/SessionIDHash.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIContextConfigurationcpp">trunk/Source/WebKit2/UIProcess/APIContextConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIContextConfigurationh">trunk/Source/WebKit2/UIProcess/APIContextConfiguration.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextcpp">trunk/Source/WebKit2/UIProcess/WebContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContexth">trunk/Source/WebKit2/UIProcess/WebContext.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebContextmessagesin">trunk/Source/WebKit2/UIProcess/WebContext.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebContextMacmm">trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebCore/ChangeLog        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2014-12-23  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        Rename WebContext to WebProcessPool
+        https://bugs.webkit.org/show_bug.cgi?id=139909
+
+        Rubber-stamped by Anders Carlsson.
+
+        Merge SessionID and SessionIDHash into one file to make auto-generation of
+        HashMaps with SessionIDs easier.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/cache/MemoryCache.h:
+        * page/SessionID.h:
+        (WTF::SessionIDHash::hash):
+        (WTF::SessionIDHash::equal):
+        (WTF::HashTraits&lt;WebCore::SessionID&gt;::emptyValue):
+        (WTF::HashTraits&lt;WebCore::SessionID&gt;::constructDeletedValue):
+        (WTF::HashTraits&lt;WebCore::SessionID&gt;::isDeletedValue):
+        * page/SessionIDHash.h: Removed.
+
</ins><span class="cx"> 2014-12-23  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         platform/mac/editing/input/devanagari-ligature.html is flaky on Yosemite, ligature fails to form
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -2335,7 +2335,6 @@
</span><span class="cx">                 75793ED40D0CE85B007FC0AC /* DOMMessageEvent.mm in Sources */ = {isa = PBXBuildFile; fileRef = 75793ED10D0CE85B007FC0AC /* DOMMessageEvent.mm */; };
</span><span class="cx">                 75793ED50D0CE85B007FC0AC /* DOMMessageEventInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 75793ED20D0CE85B007FC0AC /* DOMMessageEventInternal.h */; };
</span><span class="cx">                 759CB837192DA9190012BC64 /* ControlStates.h in Headers */ = {isa = PBXBuildFile; fileRef = 311C08BC18E35D6800B65615 /* ControlStates.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                75DCC7B818B81C8800A57128 /* SessionIDHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 75DCC7B718B81C8800A57128 /* SessionIDHash.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 760847CE19A6A27800428CCC /* AutocompleteErrorEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 760847CD19A6A27700428CCC /* AutocompleteErrorEvent.h */; };
</span><span class="cx">                 7633A72613D8B33A008501B6 /* LocaleToScriptMapping.h in Headers */ = {isa = PBXBuildFile; fileRef = 7633A72413D8B33A008501B6 /* LocaleToScriptMapping.h */; };
</span><span class="cx">                 7633A72713D8B33A008501B6 /* LocaleToScriptMappingDefault.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7633A72513D8B33A008501B6 /* LocaleToScriptMappingDefault.cpp */; };
</span><span class="lines">@@ -9527,7 +9526,6 @@
</span><span class="cx">                 75793ED00D0CE85B007FC0AC /* DOMMessageEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMMessageEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 75793ED10D0CE85B007FC0AC /* DOMMessageEvent.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMMessageEvent.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 75793ED20D0CE85B007FC0AC /* DOMMessageEventInternal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DOMMessageEventInternal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                75DCC7B718B81C8800A57128 /* SessionIDHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionIDHash.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 760847CD19A6A27700428CCC /* AutocompleteErrorEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutocompleteErrorEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 760847CF19A6A28600428CCC /* AutocompleteErrorEvent.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = AutocompleteErrorEvent.idl; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7633A72413D8B33A008501B6 /* LocaleToScriptMapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocaleToScriptMapping.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -16763,7 +16761,6 @@
</span><span class="cx">                                 974D2DA2146A535D00D51F8B /* SecurityPolicy.cpp */,
</span><span class="cx">                                 974D2DA3146A535D00D51F8B /* SecurityPolicy.h */,
</span><span class="cx">                                 756B2CE018B7101600FECFAA /* SessionID.h */,
</span><del>-                                75DCC7B718B81C8800A57128 /* SessionIDHash.h */,
</del><span class="cx">                                 14C9A5E90B3D105F005A0232 /* Settings.cpp */,
</span><span class="cx">                                 F587863A02DE3A1401EA4122 /* Settings.h */,
</span><span class="cx">                                 BC59DEF8169DEDC30016AC34 /* Settings.in */,
</span><span class="lines">@@ -26115,7 +26112,6 @@
</span><span class="cx">                                 A75E497610752ACB00C9B896 /* SerializedScriptValue.h in Headers */,
</span><span class="cx">                                 2D93AEE319DF5641002A86C3 /* ServicesOverlayController.h in Headers */,
</span><span class="cx">                                 756B2CE118B7101600FECFAA /* SessionID.h in Headers */,
</span><del>-                                75DCC7B818B81C8800A57128 /* SessionIDHash.h in Headers */,
</del><span class="cx">                                 93309E10099E64920056E581 /* SetNodeAttributeCommand.h in Headers */,
</span><span class="cx">                                 B8DBDB4C130B0F8A00F5CDB1 /* SetSelectionCommand.h in Headers */,
</span><span class="cx">                                 93F1994F08245E59001E9ABC /* Settings.h in Headers */,
</span></span></pre></div>
<a id="trunkSourceWebCoreloadercacheMemoryCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/cache/MemoryCache.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/cache/MemoryCache.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebCore/loader/cache/MemoryCache.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;NativeImagePtr.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginHash.h&quot;
</span><del>-#include &quot;SessionIDHash.h&quot;
</del><ins>+#include &quot;SessionID.h&quot;
</ins><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorepageSessionIDh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/SessionID.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SessionID.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebCore/page/SessionID.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,6 +26,9 @@
</span><span class="cx"> #ifndef SessionID_h
</span><span class="cx"> #define SessionID_h
</span><span class="cx"> 
</span><ins>+#include &lt;wtf/HashFunctions.h&gt;
+#include &lt;wtf/HashTraits.h&gt;
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="cx"> class SessionID {
</span><span class="lines">@@ -47,6 +50,28 @@
</span><span class="cx">     uint64_t m_sessionID;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-} // namespace WebCore
</del><ins>+}
</ins><span class="cx"> 
</span><ins>+namespace WTF {
+
+// The empty value is emptySessionID(), the deleted value is (-1)
+struct SessionIDHash {
+    static unsigned hash(const WebCore::SessionID&amp; p) { return (unsigned)p.sessionID(); }
+    static bool equal(const WebCore::SessionID&amp; a, const WebCore::SessionID&amp; b) { return a == b; }
+    static const bool safeToCompareToEmptyOrDeleted = true;
+};
+template&lt;&gt; struct HashTraits&lt;WebCore::SessionID&gt; : GenericHashTraits&lt;WebCore::SessionID&gt; {
+    static const uint64_t deletedValueIdentifier = 0xffffffffffffffff;
+    static const bool needsDestruction = false;
+    static WebCore::SessionID emptyValue() { return WebCore::SessionID::emptySessionID(); }
+
+    static void constructDeletedValue(WebCore::SessionID&amp; slot) { slot = WebCore::SessionID(deletedValueIdentifier); }
+    static bool isDeletedValue(const WebCore::SessionID&amp; slot) { return slot == WebCore::SessionID(deletedValueIdentifier); }
+};
+template&lt;&gt; struct DefaultHash&lt;WebCore::SessionID&gt; {
+    typedef SessionIDHash Hash;
+};
+
+}
+
</ins><span class="cx"> #endif // SessionID_h
</span></span></pre></div>
<a id="trunkSourceWebCorepageSessionIDHashh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/page/SessionIDHash.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/SessionIDHash.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebCore/page/SessionIDHash.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,55 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef SessionIDHash_h
-#define SessionIDHash_h
-
-#include &quot;SessionID.h&quot;
-#include &lt;wtf/HashFunctions.h&gt;
-#include &lt;wtf/HashTraits.h&gt;
-
-namespace WTF {
-
-// The empty value is emptySessionID(), the deleted value is (-1)
-struct SessionIDHash {
-    static unsigned hash(const WebCore::SessionID&amp; p) { return (unsigned)p.sessionID(); }
-    static bool equal(const WebCore::SessionID&amp; a, const WebCore::SessionID&amp; b) { return a == b; }
-    static const bool safeToCompareToEmptyOrDeleted = true;
-};
-template&lt;&gt; struct HashTraits&lt;WebCore::SessionID&gt; : GenericHashTraits&lt;WebCore::SessionID&gt; {
-    static const uint64_t deletedValueIdentifier = 0xffffffffffffffff;
-    static const bool needsDestruction = false;
-    static WebCore::SessionID emptyValue() { return WebCore::SessionID::emptySessionID(); }
-
-    static void constructDeletedValue(WebCore::SessionID&amp; slot) { slot = WebCore::SessionID(deletedValueIdentifier); }
-    static bool isDeletedValue(const WebCore::SessionID&amp; slot) { return slot == WebCore::SessionID(deletedValueIdentifier); }
-};
-template&lt;&gt; struct DefaultHash&lt;WebCore::SessionID&gt; {
-    typedef SessionIDHash Hash;
-};
-
-}
-
-#endif // SessionIDHash_h
</del></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/ChangeLog        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-12-23  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        Rename WebContext to WebProcessPool
+        https://bugs.webkit.org/show_bug.cgi?id=139909
+
+        Rubber-stamped by Anders Carlsson.
+
+        - Major renames:
+            WebContext -&gt; WebProcessPool
+            WebContextConfiguration -&gt; WebProcessPoolConfiguration
+            API::ContextConfiguration -&gt; API::ProcessPoolConfiguration
+
+        * File list elided *
+
</ins><span class="cx"> 2014-12-23  Anders Carlsson  &lt;andersca@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Only call shouldTransformGraph once per graph
</span></span></pre></div>
<a id="trunkSourceWebKit2DerivedSourcesmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DerivedSources.make (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DerivedSources.make        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/DerivedSources.make        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -107,7 +107,6 @@
</span><span class="cx">     WebApplicationCacheManager \
</span><span class="cx">     WebApplicationCacheManagerProxy \
</span><span class="cx">     WebConnection \
</span><del>-    WebContext \
</del><span class="cx">     WebCookieManager \
</span><span class="cx">     WebCookieManagerProxy \
</span><span class="cx">     WebDatabaseManager \
</span><span class="lines">@@ -132,6 +131,7 @@
</span><span class="cx">     WebPageProxy \
</span><span class="cx">     WebProcess \
</span><span class="cx">     WebProcessConnection \
</span><ins>+    WebProcessPool \
</ins><span class="cx">     WebProcessProxy \
</span><span class="cx">     WebResourceCacheManager \
</span><span class="cx">     WebResourceCacheManagerProxy \
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcessNetworkProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcess.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -41,8 +41,8 @@
</span><span class="cx"> #include &quot;RemoteNetworkingContext.h&quot;
</span><span class="cx"> #include &quot;SessionTracker.h&quot;
</span><span class="cx"> #include &quot;StatisticsData.h&quot;
</span><del>-#include &quot;WebContextMessages.h&quot;
</del><span class="cx"> #include &quot;WebCookieManager.h&quot;
</span><ins>+#include &quot;WebProcessPoolMessages.h&quot;
</ins><span class="cx"> #include &quot;WebsiteDataTypes.h&quot;
</span><span class="cx"> #include &lt;WebCore/Logging.h&gt;
</span><span class="cx"> #include &lt;WebCore/MemoryPressureHandler.h&gt;
</span><span class="lines">@@ -297,7 +297,7 @@
</span><span class="cx">     data.statisticsNumbers.set(&quot;DownloadsActiveCount&quot;, shared().downloadManager().activeDownloadCount());
</span><span class="cx">     data.statisticsNumbers.set(&quot;OutstandingAuthenticationChallengesCount&quot;, shared().authenticationManager().outstandingAuthenticationChallengeCount());
</span><span class="cx"> 
</span><del>-    parentProcessConnection()-&gt;send(Messages::WebContext::DidGetStatistics(data, callbackID), 0);
</del><ins>+    parentProcessConnection()-&gt;send(Messages::WebProcessPool::DidGetStatistics(data, callbackID), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkProcess::terminate()
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIAPIObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/APIObject.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/APIObject.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/Shared/API/APIObject.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -102,8 +102,6 @@
</span><span class="cx">         BatteryStatus,
</span><span class="cx">         CacheManager,
</span><span class="cx">         ColorPickerResultListener,
</span><del>-        Context,
-        ContextConfiguration,
</del><span class="cx">         CookieManager,
</span><span class="cx">         DatabaseManager,
</span><span class="cx">         Download,
</span><span class="lines">@@ -129,6 +127,8 @@
</span><span class="cx">         OriginDataManager,
</span><span class="cx">         Page,
</span><span class="cx">         PageGroup,
</span><ins>+        ProcessPool,
+        ProcessPoolConfiguration,
</ins><span class="cx">         PluginSiteDataManager,
</span><span class="cx">         Preferences,
</span><span class="cx">         Session,
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedAPIAPIURLRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/API/APIURLRequest.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/API/APIURLRequest.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/Shared/API/APIURLRequest.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,8 +26,8 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;APIURLRequest.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> using namespace WebKit;
</span><span class="lines">@@ -44,14 +44,13 @@
</span><span class="cx">     return ResourceRequest::defaultTimeoutInterval();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-// FIXME: This function should really be on WebContext.
</del><ins>+// FIXME: This function should really be on WebProcessPool or WebPageProxy.
</ins><span class="cx"> void URLRequest::setDefaultTimeoutInterval(double timeoutInterval)
</span><span class="cx"> {
</span><span class="cx">     ResourceRequest::setDefaultTimeoutInterval(timeoutInterval);
</span><span class="cx"> 
</span><del>-    const Vector&lt;WebContext*&gt;&amp; contexts = WebContext::allContexts();
-    for (size_t i = 0; i &lt; contexts.size(); ++i)
-        contexts[i]-&gt;setDefaultRequestTimeoutInterval(timeoutInterval);
</del><ins>+    for (auto* processPool : WebProcessPool::allProcessPools())
+        processPool-&gt;setDefaultRequestTimeoutInterval(timeoutInterval);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void URLRequest::encode(IPC::ArgumentEncoder&amp; encoder) const
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCocoaAPIObjectmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/Shared/Cocoa/APIObject.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">         wrapper = NSAllocateObject([WKConnection self], size, nullptr);
</span><span class="cx">         break;
</span><span class="cx"> 
</span><del>-    case Type::Context:
</del><ins>+    case Type::ProcessPool:
</ins><span class="cx">         wrapper = [WKProcessPool alloc];
</span><span class="cx">         break;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedSessionTrackerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/SessionTracker.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/SessionTracker.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/Shared/SessionTracker.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,7 +27,7 @@
</span><span class="cx"> #define SessionTracker_h
</span><span class="cx"> 
</span><span class="cx"> #include &lt;WebCore/NetworkStorageSession.h&gt;
</span><del>-#include &lt;WebCore/SessionIDHash.h&gt;
</del><ins>+#include &lt;WebCore/SessionID.h&gt;
</ins><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebProcessCreationParametersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> #include &quot;CacheModel.h&quot;
</span><span class="cx"> #include &quot;SandboxExtension.h&quot;
</span><span class="cx"> #include &quot;TextCheckerState.h&quot;
</span><del>-#include &lt;WebCore/SessionIDHash.h&gt;
</del><ins>+#include &lt;WebCore/SessionID.h&gt;
</ins><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacObjCObjectGraphCodersmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/Shared/mac/ObjCObjectGraphCoders.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -261,7 +261,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-// WebContext Additions
</del><ins>+// ProcessPool Additions
</ins><span class="cx"> 
</span><span class="cx"> class WebContextObjCObjectGraphEncoderImpl : public ObjCObjectGraphEncoder&lt;WebContextObjCObjectGraphEncoderImpl&gt; {
</span><span class="cx"> public:
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIDownloadClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIDownloadClient.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIDownloadClient.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/APIDownloadClient.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> class AuthenticationChallengeProxy;
</span><span class="cx"> class DownloadProxy;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace API {
</span><span class="lines">@@ -45,17 +45,17 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual ~DownloadClient() { }
</span><span class="cx"> 
</span><del>-    virtual void didStart(WebKit::WebContext*, WebKit::DownloadProxy*) { }
-    virtual void didReceiveAuthenticationChallenge(WebKit::WebContext*, WebKit::DownloadProxy*, WebKit::AuthenticationChallengeProxy*) { }
-    virtual void didReceiveResponse(WebKit::WebContext*, WebKit::DownloadProxy*, const WebCore::ResourceResponse&amp;) { }
-    virtual void didReceiveData(WebKit::WebContext*, WebKit::DownloadProxy*, uint64_t) { }
-    virtual bool shouldDecodeSourceDataOfMIMEType(WebKit::WebContext*, WebKit::DownloadProxy*, const WTF::String&amp;) { return true; }
-    virtual WTF::String decideDestinationWithSuggestedFilename(WebKit::WebContext*, WebKit::DownloadProxy*, const WTF::String&amp;, bool&amp;) { return { }; }
-    virtual void didCreateDestination(WebKit::WebContext*, WebKit::DownloadProxy*, const WTF::String&amp;) { }
-    virtual void didFinish(WebKit::WebContext*, WebKit::DownloadProxy*) { }
-    virtual void didFail(WebKit::WebContext*, WebKit::DownloadProxy*, const WebCore::ResourceError&amp;) { }
-    virtual void didCancel(WebKit::WebContext*, WebKit::DownloadProxy*) { }
-    virtual void processDidCrash(WebKit::WebContext*, WebKit::DownloadProxy*) { }
</del><ins>+    virtual void didStart(WebKit::WebProcessPool*, WebKit::DownloadProxy*) { }
+    virtual void didReceiveAuthenticationChallenge(WebKit::WebProcessPool*, WebKit::DownloadProxy*, WebKit::AuthenticationChallengeProxy*) { }
+    virtual void didReceiveResponse(WebKit::WebProcessPool*, WebKit::DownloadProxy*, const WebCore::ResourceResponse&amp;) { }
+    virtual void didReceiveData(WebKit::WebProcessPool*, WebKit::DownloadProxy*, uint64_t) { }
+    virtual bool shouldDecodeSourceDataOfMIMEType(WebKit::WebProcessPool*, WebKit::DownloadProxy*, const WTF::String&amp;) { return true; }
+    virtual WTF::String decideDestinationWithSuggestedFilename(WebKit::WebProcessPool*, WebKit::DownloadProxy*, const WTF::String&amp;, bool&amp;) { return { }; }
+    virtual void didCreateDestination(WebKit::WebProcessPool*, WebKit::DownloadProxy*, const WTF::String&amp;) { }
+    virtual void didFinish(WebKit::WebProcessPool*, WebKit::DownloadProxy*) { }
+    virtual void didFail(WebKit::WebProcessPool*, WebKit::DownloadProxy*, const WebCore::ResourceError&amp;) { }
+    virtual void didCancel(WebKit::WebProcessPool*, WebKit::DownloadProxy*) { }
+    virtual void processDidCrash(WebKit::WebProcessPool*, WebKit::DownloadProxy*) { }
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPILegacyContextHistoryClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APILegacyContextHistoryClient.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APILegacyContextHistoryClient.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/APILegacyContextHistoryClient.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -29,9 +29,9 @@
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><del>-class WebContext;
</del><span class="cx"> class WebFrameProxy;
</span><span class="cx"> class WebPageProxy;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> struct WebNavigationDataStore;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -41,11 +41,11 @@
</span><span class="cx"> public:
</span><span class="cx">     virtual ~LegacyContextHistoryClient() { }
</span><span class="cx"> 
</span><del>-    virtual void didNavigateWithNavigationData(WebKit::WebContext&amp;, WebKit::WebPageProxy&amp;, const WebKit::WebNavigationDataStore&amp;, WebKit::WebFrameProxy&amp;) { }
-    virtual void didPerformClientRedirect(WebKit::WebContext&amp;, WebKit::WebPageProxy&amp;, const WTF::String&amp;, const WTF::String&amp;, WebKit::WebFrameProxy&amp;) { }
-    virtual void didPerformServerRedirect(WebKit::WebContext&amp;, WebKit::WebPageProxy&amp;, const WTF::String&amp;, const WTF::String&amp;, WebKit::WebFrameProxy&amp;) { }
-    virtual void didUpdateHistoryTitle(WebKit::WebContext&amp;, WebKit::WebPageProxy&amp;, const WTF::String&amp;, const WTF::String&amp;, WebKit::WebFrameProxy&amp;) { }
-    virtual void populateVisitedLinks(WebKit::WebContext&amp;) { }
</del><ins>+    virtual void didNavigateWithNavigationData(WebKit::WebProcessPool&amp;, WebKit::WebPageProxy&amp;, const WebKit::WebNavigationDataStore&amp;, WebKit::WebFrameProxy&amp;) { }
+    virtual void didPerformClientRedirect(WebKit::WebProcessPool&amp;, WebKit::WebPageProxy&amp;, const WTF::String&amp;, const WTF::String&amp;, WebKit::WebFrameProxy&amp;) { }
+    virtual void didPerformServerRedirect(WebKit::WebProcessPool&amp;, WebKit::WebPageProxy&amp;, const WTF::String&amp;, const WTF::String&amp;, WebKit::WebFrameProxy&amp;) { }
+    virtual void didUpdateHistoryTitle(WebKit::WebProcessPool&amp;, WebKit::WebPageProxy&amp;, const WTF::String&amp;, const WTF::String&amp;, WebKit::WebFrameProxy&amp;) { }
+    virtual void populateVisitedLinks(WebKit::WebProcessPool&amp;) { }
</ins><span class="cx">     virtual bool addsVisitedLinks() const { return false; }
</span><span class="cx"> };
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKAPICasth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKAPICast.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -51,8 +51,8 @@
</span><span class="cx"> #include &lt;WebCore/Settings.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace API {
</span><del>-class ContextConfiguration;
</del><span class="cx"> class NavigationData;
</span><ins>+class ProcessPoolConfiguration;
</ins><span class="cx"> class SessionState;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -71,7 +71,6 @@
</span><span class="cx"> class WebBatteryStatus;
</span><span class="cx"> class WebResourceCacheManagerProxy;
</span><span class="cx"> class WebColorPickerResultListenerProxy;
</span><del>-class WebContext;
</del><span class="cx"> class WebCookieManagerProxy;
</span><span class="cx"> class WebCredential;
</span><span class="cx"> class WebDatabaseManagerProxy;
</span><span class="lines">@@ -96,6 +95,7 @@
</span><span class="cx"> class WebPageProxy;
</span><span class="cx"> class WebPluginSiteDataManager;
</span><span class="cx"> class WebPreferences;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProtectionSpace;
</span><span class="cx"> class WebRenderLayer;
</span><span class="cx"> class WebRenderObject;
</span><span class="lines">@@ -113,8 +113,8 @@
</span><span class="cx"> WK_ADD_API_MAPPING(WKBundleHitTestResultMediaType, BundleHitTestResultMediaType)
</span><span class="cx"> WK_ADD_API_MAPPING(WKResourceCacheManagerRef, WebResourceCacheManagerProxy)
</span><span class="cx"> WK_ADD_API_MAPPING(WKColorPickerResultListenerRef, WebColorPickerResultListenerProxy)
</span><del>-WK_ADD_API_MAPPING(WKContextRef, WebContext)
-WK_ADD_API_MAPPING(WKContextConfigurationRef, API::ContextConfiguration)
</del><ins>+WK_ADD_API_MAPPING(WKContextRef, WebProcessPool)
+WK_ADD_API_MAPPING(WKContextConfigurationRef, API::ProcessPoolConfiguration)
</ins><span class="cx"> WK_ADD_API_MAPPING(WKCookieManagerRef, WebCookieManagerProxy)
</span><span class="cx"> WK_ADD_API_MAPPING(WKCredentialRef, WebCredential)
</span><span class="cx"> WK_ADD_API_MAPPING(WKDatabaseManagerRef, WebDatabaseManagerProxy)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,10 +27,10 @@
</span><span class="cx"> #include &quot;WKContextPrivate.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIClient.h&quot;
</span><del>-#include &quot;APIContextConfiguration.h&quot;
</del><span class="cx"> #include &quot;APIDownloadClient.h&quot;
</span><span class="cx"> #include &quot;APILegacyContextHistoryClient.h&quot;
</span><span class="cx"> #include &quot;APINavigationData.h&quot;
</span><ins>+#include &quot;APIProcessPoolConfiguration.h&quot;
</ins><span class="cx"> #include &quot;APIURLRequest.h&quot;
</span><span class="cx"> #include &quot;AuthenticationChallengeProxy.h&quot;
</span><span class="cx"> #include &quot;DownloadProxy.h&quot;
</span><span class="lines">@@ -38,9 +38,9 @@
</span><span class="cx"> #include &quot;WKContextConfigurationRef.h&quot;
</span><span class="cx"> #include &quot;WKRetainPtr.h&quot;
</span><span class="cx"> #include &quot;WebCertificateInfo.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebIconDatabase.h&quot;
</span><span class="cx"> #include &quot;WebPluginSiteDataManager.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> 
</span><span class="cx"> WKTypeID WKContextGetTypeID()
</span><span class="cx"> {
</span><del>-    return toAPI(WebContext::APIType);
</del><ins>+    return toAPI(WebProcessPool::APIType);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WKContextRef WKContextCreate()
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx"> 
</span><span class="cx"> WKContextRef WKContextCreateWithConfiguration(WKContextConfigurationRef configuration)
</span><span class="cx"> {
</span><del>-    return toAPI(WebContext::create(toImpl(configuration)-&gt;webContextConfiguration()).leakRef());
</del><ins>+    return toAPI(WebProcessPool::create(toImpl(configuration)-&gt;webProcessPoolConfiguration()).leakRef());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKContextSetClient(WKContextRef contextRef, const WKContextClientBase* wkClient)
</span><span class="lines">@@ -116,45 +116,45 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">     private:
</span><del>-        virtual void didNavigateWithNavigationData(WebContext&amp; context, WebPageProxy&amp; page, const WebNavigationDataStore&amp; navigationDataStore, WebFrameProxy&amp; frame) override
</del><ins>+        virtual void didNavigateWithNavigationData(WebProcessPool&amp; processPool, WebPageProxy&amp; page, const WebNavigationDataStore&amp; navigationDataStore, WebFrameProxy&amp; frame) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didNavigateWithNavigationData)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><span class="cx">             RefPtr&lt;API::NavigationData&gt; navigationData = API::NavigationData::create(navigationDataStore);
</span><del>-            m_client.didNavigateWithNavigationData(toAPI(&amp;context), toAPI(&amp;page), toAPI(navigationData.get()), toAPI(&amp;frame), m_client.base.clientInfo);
</del><ins>+            m_client.didNavigateWithNavigationData(toAPI(&amp;processPool), toAPI(&amp;page), toAPI(navigationData.get()), toAPI(&amp;frame), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didPerformClientRedirect(WebContext&amp; context, WebPageProxy&amp; page, const String&amp; sourceURL, const String&amp; destinationURL, WebFrameProxy&amp; frame) override
</del><ins>+        virtual void didPerformClientRedirect(WebProcessPool&amp; processPool, WebPageProxy&amp; page, const String&amp; sourceURL, const String&amp; destinationURL, WebFrameProxy&amp; frame) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didPerformClientRedirect)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didPerformClientRedirect(toAPI(&amp;context), toAPI(&amp;page), toURLRef(sourceURL.impl()), toURLRef(destinationURL.impl()), toAPI(&amp;frame), m_client.base.clientInfo);
</del><ins>+            m_client.didPerformClientRedirect(toAPI(&amp;processPool), toAPI(&amp;page), toURLRef(sourceURL.impl()), toURLRef(destinationURL.impl()), toAPI(&amp;frame), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didPerformServerRedirect(WebContext&amp; context, WebPageProxy&amp; page, const String&amp; sourceURL, const String&amp; destinationURL, WebFrameProxy&amp; frame) override
</del><ins>+        virtual void didPerformServerRedirect(WebProcessPool&amp; processPool, WebPageProxy&amp; page, const String&amp; sourceURL, const String&amp; destinationURL, WebFrameProxy&amp; frame) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didPerformServerRedirect)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didPerformServerRedirect(toAPI(&amp;context), toAPI(&amp;page), toURLRef(sourceURL.impl()), toURLRef(destinationURL.impl()), toAPI(&amp;frame), m_client.base.clientInfo);
</del><ins>+            m_client.didPerformServerRedirect(toAPI(&amp;processPool), toAPI(&amp;page), toURLRef(sourceURL.impl()), toURLRef(destinationURL.impl()), toAPI(&amp;frame), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didUpdateHistoryTitle(WebContext&amp; context, WebPageProxy&amp; page, const String&amp; title, const String&amp; url, WebFrameProxy&amp; frame) override
</del><ins>+        virtual void didUpdateHistoryTitle(WebProcessPool&amp; processPool, WebPageProxy&amp; page, const String&amp; title, const String&amp; url, WebFrameProxy&amp; frame) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didUpdateHistoryTitle)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didUpdateHistoryTitle(toAPI(&amp;context), toAPI(&amp;page), toAPI(title.impl()), toURLRef(url.impl()), toAPI(&amp;frame), m_client.base.clientInfo);
</del><ins>+            m_client.didUpdateHistoryTitle(toAPI(&amp;processPool), toAPI(&amp;page), toAPI(title.impl()), toURLRef(url.impl()), toAPI(&amp;frame), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void populateVisitedLinks(WebContext&amp; context) override
</del><ins>+        virtual void populateVisitedLinks(WebProcessPool&amp; processPool) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.populateVisitedLinks)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.populateVisitedLinks(toAPI(&amp;context), m_client.base.clientInfo);
</del><ins>+            m_client.populateVisitedLinks(toAPI(&amp;processPool), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         virtual bool addsVisitedLinks() const override
</span><span class="lines">@@ -163,12 +163,12 @@
</span><span class="cx">         }
</span><span class="cx">     };
</span><span class="cx"> 
</span><del>-    WebKit::WebContext&amp; context = *toImpl(contextRef);
-    context.setHistoryClient(std::make_unique&lt;HistoryClient&gt;(wkClient));
</del><ins>+    WebProcessPool&amp; processPool = *toImpl(contextRef);
+    processPool.setHistoryClient(std::make_unique&lt;HistoryClient&gt;(wkClient));
</ins><span class="cx"> 
</span><del>-    bool addsVisitedLinks = context.historyClient().addsVisitedLinks();
</del><ins>+    bool addsVisitedLinks = processPool.historyClient().addsVisitedLinks();
</ins><span class="cx"> 
</span><del>-    for (auto&amp; process : context.processes()) {
</del><ins>+    for (auto&amp; process : processPool.processes()) {
</ins><span class="cx">         for (auto&amp; page : process-&gt;pages())
</span><span class="cx">             page-&gt;setAddsVisitedLinks(addsVisitedLinks);
</span><span class="cx">     }
</span><span class="lines">@@ -183,93 +183,93 @@
</span><span class="cx">             initialize(client);
</span><span class="cx">         }
</span><span class="cx">     private:
</span><del>-        virtual void didStart(WebContext* webContext, DownloadProxy* downloadProxy) override
</del><ins>+        virtual void didStart(WebProcessPool* processPool, DownloadProxy* downloadProxy) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didStart)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didStart(toAPI(webContext), toAPI(downloadProxy), m_client.base.clientInfo);
</del><ins>+            m_client.didStart(toAPI(processPool), toAPI(downloadProxy), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didReceiveAuthenticationChallenge(WebContext* webContext, DownloadProxy* downloadProxy, AuthenticationChallengeProxy* authenticationChallengeProxy) override
</del><ins>+        virtual void didReceiveAuthenticationChallenge(WebProcessPool* processPool, DownloadProxy* downloadProxy, AuthenticationChallengeProxy* authenticationChallengeProxy) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didReceiveAuthenticationChallenge)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didReceiveAuthenticationChallenge(toAPI(webContext), toAPI(downloadProxy), toAPI(authenticationChallengeProxy), m_client.base.clientInfo);
</del><ins>+            m_client.didReceiveAuthenticationChallenge(toAPI(processPool), toAPI(downloadProxy), toAPI(authenticationChallengeProxy), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didReceiveResponse(WebContext* webContext, DownloadProxy* downloadProxy, const ResourceResponse&amp; response) override
</del><ins>+        virtual void didReceiveResponse(WebProcessPool* processPool, DownloadProxy* downloadProxy, const ResourceResponse&amp; response) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didReceiveResponse)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didReceiveResponse(toAPI(webContext), toAPI(downloadProxy), toAPI(API::URLResponse::create(response).get()), m_client.base.clientInfo);
</del><ins>+            m_client.didReceiveResponse(toAPI(processPool), toAPI(downloadProxy), toAPI(API::URLResponse::create(response).get()), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didReceiveData(WebContext* webContext, DownloadProxy* downloadProxy, uint64_t length) override
</del><ins>+        virtual void didReceiveData(WebProcessPool* processPool, DownloadProxy* downloadProxy, uint64_t length) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didReceiveData)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didReceiveData(toAPI(webContext), toAPI(downloadProxy), length, m_client.base.clientInfo);
</del><ins>+            m_client.didReceiveData(toAPI(processPool), toAPI(downloadProxy), length, m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual bool shouldDecodeSourceDataOfMIMEType(WebContext* webContext, DownloadProxy* downloadProxy, const String&amp; mimeType) override
</del><ins>+        virtual bool shouldDecodeSourceDataOfMIMEType(WebProcessPool* processPool, DownloadProxy* downloadProxy, const String&amp; mimeType) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.shouldDecodeSourceDataOfMIMEType)
</span><span class="cx">                 return true;
</span><span class="cx"> 
</span><del>-            return m_client.shouldDecodeSourceDataOfMIMEType(toAPI(webContext), toAPI(downloadProxy), toAPI(mimeType.impl()), m_client.base.clientInfo);
</del><ins>+            return m_client.shouldDecodeSourceDataOfMIMEType(toAPI(processPool), toAPI(downloadProxy), toAPI(mimeType.impl()), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual String decideDestinationWithSuggestedFilename(WebContext* webContext, DownloadProxy* downloadProxy, const String&amp; filename, bool&amp; allowOverwrite) override
</del><ins>+        virtual String decideDestinationWithSuggestedFilename(WebProcessPool* processPool, DownloadProxy* downloadProxy, const String&amp; filename, bool&amp; allowOverwrite) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.decideDestinationWithSuggestedFilename)
</span><span class="cx">                 return String();
</span><span class="cx"> 
</span><del>-            WKRetainPtr&lt;WKStringRef&gt; destination(AdoptWK, m_client.decideDestinationWithSuggestedFilename(toAPI(webContext), toAPI(downloadProxy), toAPI(filename.impl()), &amp;allowOverwrite, m_client.base.clientInfo));
</del><ins>+            WKRetainPtr&lt;WKStringRef&gt; destination(AdoptWK, m_client.decideDestinationWithSuggestedFilename(toAPI(processPool), toAPI(downloadProxy), toAPI(filename.impl()), &amp;allowOverwrite, m_client.base.clientInfo));
</ins><span class="cx">             return toWTFString(destination.get());
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didCreateDestination(WebContext* webContext, DownloadProxy* downloadProxy, const String&amp; path) override
</del><ins>+        virtual void didCreateDestination(WebProcessPool* processPool, DownloadProxy* downloadProxy, const String&amp; path) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didCreateDestination)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didCreateDestination(toAPI(webContext), toAPI(downloadProxy), toAPI(path.impl()), m_client.base.clientInfo);
</del><ins>+            m_client.didCreateDestination(toAPI(processPool), toAPI(downloadProxy), toAPI(path.impl()), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didFinish(WebContext* webContext, DownloadProxy* downloadProxy) override
</del><ins>+        virtual void didFinish(WebProcessPool* processPool, DownloadProxy* downloadProxy) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didFinish)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didFinish(toAPI(webContext), toAPI(downloadProxy), m_client.base.clientInfo);
</del><ins>+            m_client.didFinish(toAPI(processPool), toAPI(downloadProxy), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        virtual void didFail(WebContext* webContext, DownloadProxy* downloadProxy, const ResourceError&amp; error) override
</del><ins>+        virtual void didFail(WebProcessPool* processPool, DownloadProxy* downloadProxy, const ResourceError&amp; error) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didFail)
</span><span class="cx">                 return;
</span><span class="cx"> 
</span><del>-            m_client.didFail(toAPI(webContext), toAPI(downloadProxy), toAPI(error), m_client.base.clientInfo);
</del><ins>+            m_client.didFail(toAPI(processPool), toAPI(downloadProxy), toAPI(error), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx">         
</span><del>-        virtual void didCancel(WebContext* webContext, DownloadProxy* downloadProxy) override
</del><ins>+        virtual void didCancel(WebProcessPool* processPool, DownloadProxy* downloadProxy) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.didCancel)
</span><span class="cx">                 return;
</span><span class="cx">             
</span><del>-            m_client.didCancel(toAPI(webContext), toAPI(downloadProxy), m_client.base.clientInfo);
</del><ins>+            m_client.didCancel(toAPI(processPool), toAPI(downloadProxy), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx">         
</span><del>-        virtual void processDidCrash(WebContext* webContext, DownloadProxy* downloadProxy) override
</del><ins>+        virtual void processDidCrash(WebProcessPool* processPool, DownloadProxy* downloadProxy) override
</ins><span class="cx">         {
</span><span class="cx">             if (!m_client.processDidCrash)
</span><span class="cx">                 return;
</span><span class="cx">             
</span><del>-            m_client.processDidCrash(toAPI(webContext), toAPI(downloadProxy), m_client.base.clientInfo);
</del><ins>+            m_client.processDidCrash(toAPI(processPool), toAPI(downloadProxy), m_client.base.clientInfo);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">     };
</span><span class="lines">@@ -304,7 +304,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WKContextGetGlobalStatistics(WKContextStatistics* statistics)
</span><span class="cx"> {
</span><del>-    const WebContext::Statistics&amp; webContextStatistics = WebContext::statistics();
</del><ins>+    const WebProcessPool::Statistics&amp; webContextStatistics = WebProcessPool::statistics();
</ins><span class="cx"> 
</span><span class="cx">     statistics-&gt;wkViewCount = webContextStatistics.wkViewCount;
</span><span class="cx">     statistics-&gt;wkPageCount = webContextStatistics.wkPageCount;
</span><span class="lines">@@ -588,7 +588,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WKContextSetInvalidMessageFunction(WKContextInvalidMessageFunction invalidMessageFunction)
</span><span class="cx"> {
</span><del>-    WebContext::setInvalidMessageCallback(invalidMessageFunction);
</del><ins>+    WebProcessPool::setInvalidMessageCallback(invalidMessageFunction);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKContextSetMemoryCacheDisabled(WKContextRef contextRef, bool disabled)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKContextConfigurationRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContextConfigurationRef.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,14 +26,14 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WKContextConfigurationRef.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;APIContextConfiguration.h&quot;
</del><ins>+#include &quot;APIProcessPoolConfiguration.h&quot;
</ins><span class="cx"> #include &quot;WKAPICast.h&quot;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebKit;
</span><span class="cx"> 
</span><span class="cx"> WKContextConfigurationRef WKContextConfigurationCreate()
</span><span class="cx"> {
</span><del>-    return toAPI(API::ContextConfiguration::create().leakRef());
</del><ins>+    return toAPI(API::ProcessPoolConfiguration::create().leakRef());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WKStringRef WKContextConfigurationCopyIndexedDBDatabaseDirectory(WKContextConfigurationRef configuration)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -46,7 +46,6 @@
</span><span class="cx"> #include &quot;WKPagePolicyClientInternal.h&quot;
</span><span class="cx"> #include &quot;WKPluginInformation.h&quot;
</span><span class="cx"> #include &quot;WebBackForwardList.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebFormClient.h&quot;
</span><span class="cx"> #include &quot;WebInspectorProxy.h&quot;
</span><span class="cx"> #include &quot;WebOpenPanelParameters.h&quot;
</span><span class="lines">@@ -54,6 +53,7 @@
</span><span class="cx"> #include &quot;WebPageGroup.h&quot;
</span><span class="cx"> #include &quot;WebPageMessages.h&quot;
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #include &quot;WebProtectionSpace.h&quot;
</span><span class="cx"> #include &lt;WebCore/Page.h&gt;
</span><span class="lines">@@ -92,7 +92,7 @@
</span><span class="cx"> 
</span><span class="cx"> WKContextRef WKPageGetContext(WKPageRef pageRef)
</span><span class="cx"> {
</span><del>-    return toAPI(&amp;toImpl(pageRef)-&gt;process().context());
</del><ins>+    return toAPI(&amp;toImpl(pageRef)-&gt;process().processPool());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WKPageGroupRef WKPageGetPageGroup(WKPageRef pageRef)
</span><span class="lines">@@ -1019,7 +1019,7 @@
</span><span class="cx"> 
</span><span class="cx">         virtual PassRefPtr&lt;API::Data&gt; webCryptoMasterKey(WebPageProxy&amp; page) override
</span><span class="cx">         {
</span><del>-            return page.process().context().client().copyWebCryptoMasterKey(&amp;page.process().context());
</del><ins>+            return page.process().processPool().client().copyWebCryptoMasterKey(&amp;page.process().processPool());
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> #include &quot;WKPreferencesRef.h&quot;
</span><span class="cx"> #include &quot;WKPreferencesRefPrivate.h&quot;
</span><span class="cx"> #include &quot;WKAPICast.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><span class="cx"> #include &lt;WebCore/Settings.h&gt;
</span><span class="cx"> #include &lt;wtf/PassRefPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICmacWKContextPrivateMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/mac/WKContextPrivateMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> #import &quot;WKPluginInformation.h&quot;
</span><span class="cx"> #import &quot;WKSharedAPICast.h&quot;
</span><span class="cx"> #import &quot;WKStringCF.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &lt;WebKitSystemInterface.h&gt;
</span><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -97,12 +97,12 @@
</span><span class="cx"> 
</span><span class="cx"> void WKContextRegisterSchemeForCustomProtocol(WKContextRef context, WKStringRef scheme)
</span><span class="cx"> {
</span><del>-    WebContext::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(toWTFString(scheme));
</del><ins>+    WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(toWTFString(scheme));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WKContextUnregisterSchemeForCustomProtocol(WKContextRef context, WKStringRef scheme)
</span><span class="cx"> {
</span><del>-    WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(toWTFString(scheme));
</del><ins>+    WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(toWTFString(scheme));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> /* DEPRECATED -  Please use constants from WKPluginInformation instead. */
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICmacWKPagePrivateMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,10 +27,10 @@
</span><span class="cx"> #include &quot;WKPagePrivateMac.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WKAPICast.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebPageGroup.h&quot;
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebKit;
</span><span class="cx"> 
</span><span class="lines">@@ -44,5 +44,5 @@
</span><span class="cx">     WebPageProxy* webPageProxy = toImpl(page);
</span><span class="cx">     bool privateBrowsingEnabled = webPageProxy-&gt;pageGroup().preferences().privateBrowsingEnabled();
</span><span class="cx"> 
</span><del>-    return webPageProxy-&gt;process().context().isURLKnownHSTSHost(toImpl(url)-&gt;string(), privateBrowsingEnabled);
</del><ins>+    return webPageProxy-&gt;process().processPool().isURLKnownHSTSHost(toImpl(url)-&gt;string(), privateBrowsingEnabled);
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKBrowsingContextControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -53,8 +53,8 @@
</span><span class="cx"> #import &quot;WKURLResponseNS.h&quot;
</span><span class="cx"> #import &quot;WeakObjCPtr.h&quot;
</span><span class="cx"> #import &quot;WebCertificateInfo.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;WebProtectionSpace.h&quot;
</span><span class="cx"> #import &quot;_WKRemoteObjectRegistryInternal.h&quot;
</span><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="lines">@@ -173,12 +173,12 @@
</span><span class="cx"> 
</span><span class="cx"> + (void)registerSchemeForCustomProtocol:(NSString *)scheme
</span><span class="cx"> {
</span><del>-    WebContext::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(scheme);
</del><ins>+    WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(scheme);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> + (void)unregisterSchemeForCustomProtocol:(NSString *)scheme
</span><span class="cx"> {
</span><del>-    WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(scheme);
</del><ins>+    WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(scheme);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)loadRequest:(NSURLRequest *)request
</span><span class="lines">@@ -855,7 +855,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!_remoteObjectRegistry) {
</span><span class="cx">         _remoteObjectRegistry = adoptNS([[_WKRemoteObjectRegistry alloc] _initWithMessageSender:*_page]);
</span><del>-        _page-&gt;process().context().addMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page-&gt;pageID(), [_remoteObjectRegistry remoteObjectRegistry]);
</del><ins>+        _page-&gt;process().processPool().addMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page-&gt;pageID(), [_remoteObjectRegistry remoteObjectRegistry]);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return _remoteObjectRegistry.get();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKProcessGroupmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroup.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -41,8 +41,8 @@
</span><span class="cx"> #import &quot;WKStringCF.h&quot;
</span><span class="cx"> #import &quot;WeakObjCPtr.h&quot;
</span><span class="cx"> #import &quot;WebCertificateInfo.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebFrameProxy.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> using namespace WebKit;
</span><span class="cx"> 
</span><span class="cx"> @implementation WKProcessGroup {
</span><del>-    RefPtr&lt;WebContext&gt; _context;
</del><ins>+    RefPtr&lt;WebProcessPool&gt; _processPool;
</ins><span class="cx"> 
</span><span class="cx">     WeakObjCPtr&lt;id &lt;WKProcessGroupDelegate&gt;&gt; _delegate;
</span><span class="cx"> 
</span><span class="lines">@@ -189,19 +189,19 @@
</span><span class="cx">     InitWebCoreThreadSystemInterface();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    WebContextConfiguration webContextConfiguration;
-    webContextConfiguration.injectedBundlePath = bundleURL ? String(bundleURL.path) : String();
</del><ins>+    WebProcessPoolConfiguration configuration;
+    configuration.injectedBundlePath = bundleURL ? String(bundleURL.path) : String();
</ins><span class="cx"> 
</span><del>-    WebContext::applyPlatformSpecificConfigurationDefaults(webContextConfiguration);
</del><ins>+    WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
</ins><span class="cx"> 
</span><del>-    _context = WebContext::create(WTF::move(webContextConfiguration));
</del><ins>+    _processPool = WebProcessPool::create(WTF::move(configuration));
</ins><span class="cx"> 
</span><del>-    setUpConnectionClient(self, toAPI(_context.get()));
-    setUpInectedBundleClient(self, toAPI(_context.get()));
-    setUpHistoryClient(self, toAPI(_context.get()));
</del><ins>+    setUpConnectionClient(self, toAPI(_processPool.get()));
+    setUpInectedBundleClient(self, toAPI(_processPool.get()));
+    setUpHistoryClient(self, toAPI(_processPool.get()));
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-    _context-&gt;setUsesNetworkProcess(true);
-    _context-&gt;setProcessModel(ProcessModelMultipleSecondaryProcesses);
</del><ins>+    _processPool-&gt;setUsesNetworkProcess(true);
+    _processPool-&gt;setProcessModel(ProcessModelMultipleSecondaryProcesses);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     return self;
</span><span class="lines">@@ -223,12 +223,12 @@
</span><span class="cx"> 
</span><span class="cx"> - (WKContextRef)_contextRef
</span><span class="cx"> {
</span><del>-    return toAPI(_context.get());
</del><ins>+    return toAPI(_processPool.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_setAllowsSpecificHTTPSCertificate:(NSArray *)certificateChain forHost:(NSString *)host
</span><span class="cx"> {
</span><del>-    _context-&gt;allowSpecificHTTPSCertificateForHost(WebCertificateInfo::create(WebCore::CertificateInfo((CFArrayRef)certificateChain)).get(), host);
</del><ins>+    _processPool-&gt;allowSpecificHTTPSCertificateForHost(WebCertificateInfo::create(WebCore::CertificateInfo((CFArrayRef)certificateChain)).get(), host);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPool.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -35,9 +35,9 @@
</span><span class="cx"> #import &quot;WKObject.h&quot;
</span><span class="cx"> #import &quot;WeakObjCPtr.h&quot;
</span><span class="cx"> #import &quot;WebCertificateInfo.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebCookieManagerProxy.h&quot;
</span><span class="cx"> #import &quot;WebProcessMessages.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;_WKDownloadDelegate.h&quot;
</span><span class="cx"> #import &quot;_WKProcessPoolConfiguration.h&quot;
</span><span class="cx"> #import &lt;WebCore/CFNetworkSPI.h&gt;
</span><span class="lines">@@ -64,7 +64,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)dealloc
</span><span class="cx"> {
</span><del>-    _context-&gt;~WebContext();
</del><ins>+    _processPool-&gt;~WebProcessPool();
</ins><span class="cx"> 
</span><span class="cx">     [super dealloc];
</span><span class="cx"> }
</span><span class="lines">@@ -81,14 +81,14 @@
</span><span class="cx"> 
</span><span class="cx"> - (API::Object&amp;)_apiObject
</span><span class="cx"> {
</span><del>-    return *_context;
</del><ins>+    return *_processPool;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> - (WKGeolocationProviderIOS *)_geolocationProvider
</span><span class="cx"> {
</span><span class="cx">     if (!_geolocationProvider)
</span><del>-        _geolocationProvider = adoptNS([[WKGeolocationProviderIOS alloc] initWithContext:_context.get()]);
</del><ins>+        _geolocationProvider = adoptNS([[WKGeolocationProviderIOS alloc] initWithProcessPool:*_processPool]);
</ins><span class="cx">     return _geolocationProvider.get();
</span><span class="cx"> }
</span><span class="cx"> #endif // PLATFORM(IOS)
</span><span class="lines">@@ -154,44 +154,44 @@
</span><span class="cx">     InitWebCoreThreadSystemInterface();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    WebKit::WebContextConfiguration webContextConfiguration;
</del><ins>+    WebKit::WebProcessPoolConfiguration processPoolConfiguration;
</ins><span class="cx"> 
</span><span class="cx">     if (NSURL *bundleURL = [_configuration injectedBundleURL]) {
</span><span class="cx">         if (!bundleURL.isFileURL)
</span><span class="cx">             [NSException raise:NSInvalidArgumentException format:@&quot;Injected Bundle URL must be a file URL&quot;];
</span><span class="cx"> 
</span><del>-        webContextConfiguration.injectedBundlePath = bundleURL.path;
</del><ins>+        processPoolConfiguration.injectedBundlePath = bundleURL.path;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    webContextConfiguration.localStorageDirectory = websiteDataDirectoryURL(@&quot;LocalStorage&quot;).absoluteURL.path.fileSystemRepresentation;
-    webContextConfiguration.webSQLDatabaseDirectory = websiteDataDirectoryURL(@&quot;WebSQL&quot;).absoluteURL.path.fileSystemRepresentation;
-    webContextConfiguration.indexedDBDatabaseDirectory = websiteDataDirectoryURL(@&quot;IndexedDB&quot;).absoluteURL.path.fileSystemRepresentation;
-    webContextConfiguration.mediaKeysStorageDirectory = websiteDataDirectoryURL(@&quot;MediaKeys&quot;).absoluteURL.path.fileSystemRepresentation;
</del><ins>+    processPoolConfiguration.localStorageDirectory = websiteDataDirectoryURL(@&quot;LocalStorage&quot;).absoluteURL.path.fileSystemRepresentation;
+    processPoolConfiguration.webSQLDatabaseDirectory = websiteDataDirectoryURL(@&quot;WebSQL&quot;).absoluteURL.path.fileSystemRepresentation;
+    processPoolConfiguration.indexedDBDatabaseDirectory = websiteDataDirectoryURL(@&quot;IndexedDB&quot;).absoluteURL.path.fileSystemRepresentation;
+    processPoolConfiguration.mediaKeysStorageDirectory = websiteDataDirectoryURL(@&quot;MediaKeys&quot;).absoluteURL.path.fileSystemRepresentation;
</ins><span class="cx"> 
</span><del>-    API::Object::constructInWrapper&lt;WebKit::WebContext&gt;(self, WTF::move(webContextConfiguration));
-    _context-&gt;setUsesNetworkProcess(true);
-    _context-&gt;setProcessModel(WebKit::ProcessModelMultipleSecondaryProcesses);
-    _context-&gt;setMaximumNumberOfProcesses([_configuration maximumProcessCount]);
</del><ins>+    API::Object::constructInWrapper&lt;WebKit::WebProcessPool&gt;(self, WTF::move(processPoolConfiguration));
+    _processPool-&gt;setUsesNetworkProcess(true);
+    _processPool-&gt;setProcessModel(WebKit::ProcessModelMultipleSecondaryProcesses);
+    _processPool-&gt;setMaximumNumberOfProcesses([_configuration maximumProcessCount]);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(CACHE_PARTITIONING)
</span><span class="cx">     for (NSString *urlScheme in [_configuration cachePartitionedURLSchemes])
</span><del>-        _context-&gt;registerURLSchemeAsCachePartitioned(urlScheme);
</del><ins>+        _processPool-&gt;registerURLSchemeAsCachePartitioned(urlScheme);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Add a way to configure the cache model, see &lt;rdar://problem/16206857&gt;.
</span><del>-    _context-&gt;setCacheModel(WebKit::CacheModelPrimaryWebBrowser);
</del><ins>+    _processPool-&gt;setCacheModel(WebKit::CacheModelPrimaryWebBrowser);
</ins><span class="cx"> 
</span><span class="cx">     return self;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_setAllowsSpecificHTTPSCertificate:(NSArray *)certificateChain forHost:(NSString *)host
</span><span class="cx"> {
</span><del>-    _context-&gt;allowSpecificHTTPSCertificateForHost(WebKit::WebCertificateInfo::create(WebCore::CertificateInfo((CFArrayRef)certificateChain)).get(), host);
</del><ins>+    _processPool-&gt;allowSpecificHTTPSCertificateForHost(WebKit::WebCertificateInfo::create(WebCore::CertificateInfo((CFArrayRef)certificateChain)).get(), host);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_setCanHandleHTTPSServerTrustEvaluation:(BOOL)value
</span><span class="cx"> {
</span><del>-    _context-&gt;setCanHandleHTTPSServerTrustEvaluation(value);
</del><ins>+    _processPool-&gt;setCanHandleHTTPSServerTrustEvaluation(value);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static WebKit::HTTPCookieAcceptPolicy toHTTPCookieAcceptPolicy(NSHTTPCookieAcceptPolicy policy)
</span><span class="lines">@@ -213,12 +213,12 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)_setCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)policy
</span><span class="cx"> {
</span><del>-    _context-&gt;supplement&lt;WebKit::WebCookieManagerProxy&gt;()-&gt;setHTTPCookieAcceptPolicy(toHTTPCookieAcceptPolicy(policy));
</del><ins>+    _processPool-&gt;supplement&lt;WebKit::WebCookieManagerProxy&gt;()-&gt;setHTTPCookieAcceptPolicy(toHTTPCookieAcceptPolicy(policy));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (id)_objectForBundleParameter:(NSString *)parameter
</span><span class="cx"> {
</span><del>-    return [_context-&gt;bundleParameters() objectForKey:parameter];
</del><ins>+    return [_processPool-&gt;bundleParameters() objectForKey:parameter];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_setObject:(id &lt;NSCopying, NSSecureCoding&gt;)object forBundleParameter:(NSString *)parameter
</span><span class="lines">@@ -237,11 +237,11 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (copy)
</span><del>-        [_context-&gt;ensureBundleParameters() setObject:copy.get() forKey:parameter];
</del><ins>+        [_processPool-&gt;ensureBundleParameters() setObject:copy.get() forKey:parameter];
</ins><span class="cx">     else
</span><del>-        [_context-&gt;ensureBundleParameters() removeObjectForKey:parameter];
</del><ins>+        [_processPool-&gt;ensureBundleParameters() removeObjectForKey:parameter];
</ins><span class="cx"> 
</span><del>-    _context-&gt;sendToAllProcesses(Messages::WebProcess::SetInjectedBundleParameter(parameter, IPC::DataReference(static_cast&lt;const uint8_t*&gt;([data bytes]), [data length])));
</del><ins>+    _processPool-&gt;sendToAllProcesses(Messages::WebProcess::SetInjectedBundleParameter(parameter, IPC::DataReference(static_cast&lt;const uint8_t*&gt;([data bytes]), [data length])));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (id &lt;_WKDownloadDelegate&gt;)_downloadDelegate
</span><span class="lines">@@ -252,7 +252,7 @@
</span><span class="cx"> - (void)_setDownloadDelegate:(id &lt;_WKDownloadDelegate&gt;)downloadDelegate
</span><span class="cx"> {
</span><span class="cx">     _downloadDelegate = downloadDelegate;
</span><del>-    _context-&gt;setDownloadClient(std::make_unique&lt;WebKit::DownloadClient&gt;(downloadDelegate));
</del><ins>+    _processPool-&gt;setDownloadClient(std::make_unique&lt;WebKit::DownloadClient&gt;(downloadDelegate));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKProcessPoolInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKProcessPoolInternal.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx"> 
</span><span class="cx"> #import &quot;WKObject.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> #if TARGET_OS_IPHONE
</span><span class="cx"> @class WKGeolocationProviderIOS;
</span><span class="lines">@@ -36,10 +36,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-inline WKProcessPool *wrapper(WebContext&amp; context)
</del><ins>+inline WKProcessPool *wrapper(WebProcessPool&amp; processPool)
</ins><span class="cx"> {
</span><del>-    ASSERT([context.wrapper() isKindOfClass:[WKProcessPool class]]);
-    return (WKProcessPool *)context.wrapper();
</del><ins>+    ASSERT([processPool.wrapper() isKindOfClass:[WKProcessPool class]]);
+    return (WKProcessPool *)processPool.wrapper();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> @package
</span><span class="cx">     RetainPtr&lt;_WKProcessPoolConfiguration&gt; _configuration;
</span><span class="cx"> 
</span><del>-    API::ObjectStorage&lt;WebKit::WebContext&gt; _context;
</del><ins>+    API::ObjectStorage&lt;WebKit::WebProcessPool&gt; _processPool;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if TARGET_OS_IPHONE
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -59,12 +59,12 @@
</span><span class="cx"> #import &quot;WKWebViewContentProvider.h&quot;
</span><span class="cx"> #import &quot;WebBackForwardList.h&quot;
</span><span class="cx"> #import &quot;WebCertificateInfo.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebFormSubmissionListenerProxy.h&quot;
</span><span class="cx"> #import &quot;WebKitSystemInterface.h&quot;
</span><span class="cx"> #import &quot;WebPageGroup.h&quot;
</span><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><span class="cx"> #import &quot;WebPreferencesKeys.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &quot;_WKFindDelegate.h&quot;
</span><span class="cx"> #import &quot;_WKFormDelegate.h&quot;
</span><span class="lines">@@ -278,7 +278,7 @@
</span><span class="cx"> 
</span><span class="cx">     CGRect bounds = self.bounds;
</span><span class="cx"> 
</span><del>-    WebKit::WebContext&amp; context = *[_configuration processPool]-&gt;_context;
</del><ins>+    WebKit::WebProcessPool&amp; processPool = *[_configuration processPool]-&gt;_processPool;
</ins><span class="cx"> 
</span><span class="cx">     WebKit::WebPageConfiguration webPageConfiguration;
</span><span class="cx">     webPageConfiguration.preferences = [_configuration preferences]-&gt;_preferences.get();
</span><span class="lines">@@ -314,7 +314,7 @@
</span><span class="cx"> 
</span><span class="cx">     [self addSubview:_scrollView.get()];
</span><span class="cx"> 
</span><del>-    _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds context:context configuration:WTF::move(webPageConfiguration) webView:self]);
</del><ins>+    _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(webPageConfiguration) webView:self]);
</ins><span class="cx"> 
</span><span class="cx">     _page = [_contentView page];
</span><span class="cx">     _page-&gt;setDeviceOrientation(deviceOrientation());
</span><span class="lines">@@ -342,7 +342,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    _wkView = adoptNS([[WKView alloc] initWithFrame:bounds context:context configuration:WTF::move(webPageConfiguration) webView:self]);
</del><ins>+    _wkView = adoptNS([[WKView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(webPageConfiguration) webView:self]);
</ins><span class="cx">     [self addSubview:_wkView.get()];
</span><span class="cx">     _page = WebKit::toImpl([_wkView pageRef]);
</span><span class="cx"> 
</span><span class="lines">@@ -379,7 +379,7 @@
</span><span class="cx"> - (void)dealloc
</span><span class="cx"> {
</span><span class="cx">     if (_remoteObjectRegistry)
</span><del>-        _page-&gt;process().context().removeMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page-&gt;pageID());
</del><ins>+        _page-&gt;process().processPool().removeMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page-&gt;pageID());
</ins><span class="cx"> 
</span><span class="cx">     _page-&gt;close();
</span><span class="cx"> 
</span><span class="lines">@@ -1622,7 +1622,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (!_remoteObjectRegistry) {
</span><span class="cx">         _remoteObjectRegistry = adoptNS([[_WKRemoteObjectRegistry alloc] _initWithMessageSender:*_page]);
</span><del>-        _page-&gt;process().context().addMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page-&gt;pageID(), [_remoteObjectRegistry remoteObjectRegistry]);
</del><ins>+        _page-&gt;process().processPool().addMessageReceiver(Messages::RemoteObjectRegistry::messageReceiverName(), _page-&gt;pageID(), [_remoteObjectRegistry remoteObjectRegistry]);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return _remoteObjectRegistry.get();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -66,13 +66,13 @@
</span><span class="cx"> #import &quot;WKViewInternal.h&quot;
</span><span class="cx"> #import &quot;WKViewPrivate.h&quot;
</span><span class="cx"> #import &quot;WebBackForwardList.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebEventFactory.h&quot;
</span><span class="cx"> #import &quot;WebKit2Initialize.h&quot;
</span><span class="cx"> #import &quot;WebPage.h&quot;
</span><span class="cx"> #import &quot;WebPageGroup.h&quot;
</span><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><span class="cx"> #import &quot;WebPreferences.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &quot;WebSystemInterface.h&quot;
</span><span class="cx"> #import &quot;_WKThumbnailViewInternal.h&quot;
</span><span class="lines">@@ -339,7 +339,7 @@
</span><span class="cx">     if (canLoadLUNotificationPopoverWillClose())
</span><span class="cx">         [[NSNotificationCenter defaultCenter] removeObserver:self name:getLUNotificationPopoverWillClose() object:nil];
</span><span class="cx"> 
</span><del>-    WebContext::statistics().wkViewCount--;
</del><ins>+    WebProcessPool::statistics().wkViewCount--;
</ins><span class="cx"> 
</span><span class="cx">     [super dealloc];
</span><span class="cx"> }
</span><span class="lines">@@ -2712,7 +2712,7 @@
</span><span class="cx"> 
</span><span class="cx"> - (void)_applicationWillTerminate:(NSNotification *)notification
</span><span class="cx"> {
</span><del>-    _data-&gt;_page-&gt;process().context().applicationWillTerminate();
</del><ins>+    _data-&gt;_page-&gt;process().processPool().applicationWillTerminate();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)_dictionaryLookupPopoverWillClose:(NSNotification *)notification
</span><span class="lines">@@ -3558,7 +3558,7 @@
</span><span class="cx">     [self addTrackingArea:trackingArea];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(NSRect)frame context:(WebContext&amp;)context configuration:(WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</del><ins>+- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&amp;)processPool configuration:(WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</ins><span class="cx"> {
</span><span class="cx">     self = [super initWithFrame:frame];
</span><span class="cx">     if (!self)
</span><span class="lines">@@ -3580,8 +3580,8 @@
</span><span class="cx">     [self addTrackingArea:_data-&gt;_primaryTrackingArea.get()];
</span><span class="cx"> 
</span><span class="cx">     _data-&gt;_pageClient = std::make_unique&lt;PageClientImpl&gt;(self, webView);
</span><del>-    _data-&gt;_page = context.createWebPage(*_data-&gt;_pageClient, WTF::move(webPageConfiguration));
-    _data-&gt;_page-&gt;setAddsVisitedLinks(context.historyClient().addsVisitedLinks());
</del><ins>+    _data-&gt;_page = processPool.createWebPage(*_data-&gt;_pageClient, WTF::move(webPageConfiguration));
+    _data-&gt;_page-&gt;setAddsVisitedLinks(processPool.historyClient().addsVisitedLinks());
</ins><span class="cx"> 
</span><span class="cx">     _data-&gt;_page-&gt;setIntrinsicDeviceScaleFactor([self _intrinsicDeviceScaleFactor]);
</span><span class="cx">     _data-&gt;_page-&gt;initializeWebPage();
</span><span class="lines">@@ -3603,7 +3603,7 @@
</span><span class="cx">     // Explicitly set the layer contents placement so AppKit will make sure that our layer has masksToBounds set to YES.
</span><span class="cx">     self.layerContentsPlacement = NSViewLayerContentsPlacementTopLeft;
</span><span class="cx"> 
</span><del>-    WebContext::statistics().wkViewCount++;
</del><ins>+    WebProcessPool::statistics().wkViewCount++;
</ins><span class="cx"> 
</span><span class="cx">     NSNotificationCenter* workspaceNotificationCenter = [[NSWorkspace sharedWorkspace] notificationCenter];
</span><span class="cx">     [workspaceNotificationCenter addObserver:self selector:@selector(_activeSpaceDidChange:) name:NSWorkspaceActiveSpaceDidChangeNotification object:nil];
</span><span class="lines">@@ -3794,7 +3794,7 @@
</span><span class="cx">     webPageConfiguration.pageGroup = toImpl(pageGroupRef);
</span><span class="cx">     webPageConfiguration.relatedPage = toImpl(relatedPage);
</span><span class="cx"> 
</span><del>-    return [self initWithFrame:frame context:*toImpl(contextRef) configuration:webPageConfiguration webView:nil];
</del><ins>+    return [self initWithFrame:frame processPool:*toImpl(contextRef) configuration:webPageConfiguration webView:nil];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1080
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx"> class DrawingAreaProxy;
</span><span class="cx"> class LayerTreeContext;
</span><span class="cx"> class ViewSnapshot;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> struct ActionMenuHitTestResult;
</span><span class="cx"> struct ColorSpaceData;
</span><span class="cx"> struct EditorState;
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx"> @interface WKView ()
</span><span class="cx"> #if WK_API_ENABLED
</span><del>-- (instancetype)initWithFrame:(CGRect)frame context:(WebKit::WebContext&amp;)context configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> - (std::unique_ptr&lt;WebKit::DrawingAreaProxy&gt;)_createDrawingAreaProxy;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIContextConfigurationcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/APIContextConfiguration.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/APIContextConfiguration.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/APIContextConfiguration.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,56 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;APIContextConfiguration.h&quot;
-
-#include &quot;WebContext.h&quot;
-
-namespace API {
-
-ContextConfiguration::ContextConfiguration()
-{
-}
-
-ContextConfiguration::~ContextConfiguration()
-{
-}
-
-WebKit::WebContextConfiguration ContextConfiguration::webContextConfiguration() const
-{
-    WebKit::WebContextConfiguration configuration;
-
-    configuration.indexedDBDatabaseDirectory = m_indexedDBDatabaseDirectory;
-    configuration.injectedBundlePath = m_injectedBundlePath;
-    configuration.localStorageDirectory = m_localStorageDirectory;
-    configuration.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
-    configuration.mediaKeysStorageDirectory = m_mediaKeysStorageDirectory;
-
-    WebKit::WebContext::applyPlatformSpecificConfigurationDefaults(configuration);
-
-    return configuration;
-}
-
-} // namespace API
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIContextConfigurationh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/APIContextConfiguration.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/APIContextConfiguration.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/APIContextConfiguration.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,75 +0,0 @@
</span><del>-/*
- * Copyright (C) 2014 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef APIContextConfiguration_h
-#define APIContextConfiguration_h
-
-#include &quot;APIObject.h&quot;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebKit {
-struct WebContextConfiguration;
-}
-
-namespace API {
-
-class ContextConfiguration : public ObjectImpl&lt;Object::Type::ContextConfiguration&gt; {
-public:
-    static PassRefPtr&lt;ContextConfiguration&gt; create()
-    {
-        return adoptRef(new ContextConfiguration);
-    }
-    virtual ~ContextConfiguration();
-
-    String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
-    void setIndexedDBDatabaseDirectory(const String&amp; indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
-
-    String injectedBundlePath() const { return m_injectedBundlePath; }
-    void setInjectedBundlePath(const String&amp; injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
-
-    String localStorageDirectory() const { return m_localStorageDirectory; }
-    void setLocalStorageDirectory(const String&amp; localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
-
-    String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
-    void setWebSQLDatabaseDirectory(const String&amp; webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
-
-    String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
-    void setMediaKeysStorageDirectory(const String&amp; mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
-
-    WebKit::WebContextConfiguration webContextConfiguration() const;
-
-private:
-    ContextConfiguration();
-
-    String m_indexedDBDatabaseDirectory;
-    String m_injectedBundlePath;
-    String m_localStorageDirectory;
-    String m_webSQLDatabaseDirectory;
-    String m_mediaKeysStorageDirectory;
-};
-
-} // namespace API
-
-#endif // APIContextConfiguration_h
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIProcessPoolConfigurationcppfromrev177635trunkSourceWebKit2UIProcessAPIContextConfigurationcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.cpp (from rev 177635, trunk/Source/WebKit2/UIProcess/APIContextConfiguration.cpp) (0 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.cpp                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;APIProcessPoolConfiguration.h&quot;
+
+#include &quot;WebProcessPool.h&quot;
+
+namespace API {
+
+ProcessPoolConfiguration::ProcessPoolConfiguration()
+{
+}
+
+ProcessPoolConfiguration::~ProcessPoolConfiguration()
+{
+}
+
+WebKit::WebProcessPoolConfiguration ProcessPoolConfiguration::webProcessPoolConfiguration() const
+{
+    WebKit::WebProcessPoolConfiguration configuration;
+
+    configuration.indexedDBDatabaseDirectory = m_indexedDBDatabaseDirectory;
+    configuration.injectedBundlePath = m_injectedBundlePath;
+    configuration.localStorageDirectory = m_localStorageDirectory;
+    configuration.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
+    configuration.mediaKeysStorageDirectory = m_mediaKeysStorageDirectory;
+
+    WebKit::WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
+
+    return configuration;
+}
+
+} // namespace API
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIProcessPoolConfigurationhfromrev177635trunkSourceWebKit2UIProcessAPIContextConfigurationh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.h (from rev 177635, trunk/Source/WebKit2/UIProcess/APIContextConfiguration.h) (0 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.h                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/APIProcessPoolConfiguration.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -0,0 +1,75 @@
</span><ins>+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef APIContextConfiguration_h
+#define APIContextConfiguration_h
+
+#include &quot;APIObject.h&quot;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WebKit {
+struct WebProcessPoolConfiguration;
+}
+
+namespace API {
+
+class ProcessPoolConfiguration : public ObjectImpl&lt;Object::Type::ProcessPoolConfiguration&gt; {
+public:
+    static PassRefPtr&lt;ProcessPoolConfiguration&gt; create()
+    {
+        return adoptRef(new ProcessPoolConfiguration);
+    }
+    virtual ~ProcessPoolConfiguration();
+
+    String indexedDBDatabaseDirectory() const { return m_indexedDBDatabaseDirectory; }
+    void setIndexedDBDatabaseDirectory(const String&amp; indexedDBDatabaseDirectory) { m_indexedDBDatabaseDirectory = indexedDBDatabaseDirectory; }
+
+    String injectedBundlePath() const { return m_injectedBundlePath; }
+    void setInjectedBundlePath(const String&amp; injectedBundlePath) { m_injectedBundlePath = injectedBundlePath; }
+
+    String localStorageDirectory() const { return m_localStorageDirectory; }
+    void setLocalStorageDirectory(const String&amp; localStorageDirectory) { m_localStorageDirectory = localStorageDirectory; }
+
+    String webSQLDatabaseDirectory() const { return m_webSQLDatabaseDirectory; }
+    void setWebSQLDatabaseDirectory(const String&amp; webSQLDatabaseDirectory) { m_webSQLDatabaseDirectory = webSQLDatabaseDirectory; }
+
+    String mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
+    void setMediaKeysStorageDirectory(const String&amp; mediaKeysStorageDirectory) { m_mediaKeysStorageDirectory = mediaKeysStorageDirectory; }
+
+    WebKit::WebProcessPoolConfiguration webProcessPoolConfiguration() const;
+
+private:
+    ProcessPoolConfiguration();
+
+    String m_indexedDBDatabaseDirectory;
+    String m_injectedBundlePath;
+    String m_localStorageDirectory;
+    String m_webSQLDatabaseDirectory;
+    String m_mediaKeysStorageDirectory;
+};
+
+} // namespace API
+
+#endif // APIContextConfiguration_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaDownloadClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -48,13 +48,13 @@
</span><span class="cx">     
</span><span class="cx"> private:
</span><span class="cx">     // From API::DownloadClient
</span><del>-    virtual void didStart(WebContext*, DownloadProxy*);
-    virtual void didReceiveResponse(WebContext*, DownloadProxy*, const WebCore::ResourceResponse&amp;);
-    virtual void didReceiveData(WebContext*, DownloadProxy*, uint64_t length);
-    virtual String decideDestinationWithSuggestedFilename(WebContext*, DownloadProxy*, const String&amp; filename, bool&amp; allowOverwriteParam);
-    virtual void didFinish(WebContext*, DownloadProxy*);
-    virtual void didFail(WebContext*, DownloadProxy*, const WebCore::ResourceError&amp;);
-    virtual void didCancel(WebContext*, DownloadProxy*);
</del><ins>+    virtual void didStart(WebProcessPool*, DownloadProxy*);
+    virtual void didReceiveResponse(WebProcessPool*, DownloadProxy*, const WebCore::ResourceResponse&amp;);
+    virtual void didReceiveData(WebProcessPool*, DownloadProxy*, uint64_t length);
+    virtual String decideDestinationWithSuggestedFilename(WebProcessPool*, DownloadProxy*, const String&amp; filename, bool&amp; allowOverwriteParam);
+    virtual void didFinish(WebProcessPool*, DownloadProxy*);
+    virtual void didFail(WebProcessPool*, DownloadProxy*, const WebCore::ResourceError&amp;);
+    virtual void didCancel(WebProcessPool*, DownloadProxy*);
</ins><span class="cx"> 
</span><span class="cx">     WeakObjCPtr&lt;id &lt;_WKDownloadDelegate&gt;&gt; m_delegate;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaDownloadClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/DownloadClient.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -54,25 +54,25 @@
</span><span class="cx">     m_delegateMethods.downloadDidCancel = [delegate respondsToSelector:@selector(_downloadDidCancel:)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadClient::didStart(WebContext*, DownloadProxy* downloadProxy)
</del><ins>+void DownloadClient::didStart(WebProcessPool*, DownloadProxy* downloadProxy)
</ins><span class="cx"> {
</span><span class="cx">     if (m_delegateMethods.downloadDidStart)
</span><span class="cx">         [m_delegate.get() _downloadDidStart:wrapper(*downloadProxy)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadClient::didReceiveResponse(WebContext*, DownloadProxy* downloadProxy, const WebCore::ResourceResponse&amp; response)
</del><ins>+void DownloadClient::didReceiveResponse(WebProcessPool*, DownloadProxy* downloadProxy, const WebCore::ResourceResponse&amp; response)
</ins><span class="cx"> {
</span><span class="cx">     if (m_delegateMethods.downloadDidReceiveResponse)
</span><span class="cx">         [m_delegate.get() _download:wrapper(*downloadProxy) didReceiveResponse:response.nsURLResponse()];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadClient::didReceiveData(WebContext*, DownloadProxy* downloadProxy, uint64_t length)
</del><ins>+void DownloadClient::didReceiveData(WebProcessPool*, DownloadProxy* downloadProxy, uint64_t length)
</ins><span class="cx"> {
</span><span class="cx">     if (m_delegateMethods.downloadDidReceiveData)
</span><span class="cx">         [m_delegate.get() _download:wrapper(*downloadProxy) didReceiveData:length];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-String DownloadClient::decideDestinationWithSuggestedFilename(WebContext*, DownloadProxy* downloadProxy, const String&amp; filename, bool&amp; allowOverwriteParam)
</del><ins>+String DownloadClient::decideDestinationWithSuggestedFilename(WebProcessPool*, DownloadProxy* downloadProxy, const String&amp; filename, bool&amp; allowOverwriteParam)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_delegateMethods.downloadDecideDestinationWithSuggestedFilenameAllowOverwrite)
</span><span class="cx">         return String();
</span><span class="lines">@@ -83,19 +83,19 @@
</span><span class="cx">     return destination;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadClient::didFinish(WebContext*, DownloadProxy* downloadProxy)
</del><ins>+void DownloadClient::didFinish(WebProcessPool*, DownloadProxy* downloadProxy)
</ins><span class="cx"> {
</span><span class="cx">     if (m_delegateMethods.downloadDidFinish)
</span><span class="cx">         [m_delegate.get() _downloadDidFinish:wrapper(*downloadProxy)];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadClient::didFail(WebContext*, DownloadProxy* downloadProxy, const WebCore::ResourceError&amp; error)
</del><ins>+void DownloadClient::didFail(WebProcessPool*, DownloadProxy* downloadProxy, const WebCore::ResourceError&amp; error)
</ins><span class="cx"> {
</span><span class="cx">     if (m_delegateMethods.downloadDidFail)
</span><span class="cx">         [m_delegate.get() _download:wrapper(*downloadProxy) didFailWithError:error.nsError()];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void DownloadClient::didCancel(WebContext*, DownloadProxy* downloadProxy)
</del><ins>+void DownloadClient::didCancel(WebProcessPool*, DownloadProxy* downloadProxy)
</ins><span class="cx"> {
</span><span class="cx">     if (m_delegateMethods.downloadDidCancel)
</span><span class="cx">         [m_delegate.get() _downloadDidCancel:wrapper(*downloadProxy)];
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoammfromrev177635trunkSourceWebKit2UIProcessmacWebContextMacmm"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (from rev 177635, trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm) (0 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -0,0 +1,623 @@
</span><ins>+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import &quot;config.h&quot;
+#import &quot;WebProcessPool.h&quot;
+
+#import &quot;PluginProcessManager.h&quot;
+#import &quot;SandboxUtilities.h&quot;
+#import &quot;TextChecker.h&quot;
+#import &quot;WKBrowsingContextControllerInternal.h&quot;
+#import &quot;WKBrowsingContextControllerInternal.h&quot;
+#import &quot;WebKitSystemInterface.h&quot;
+#import &quot;WebMemoryPressureHandlerIOS.h&quot;
+#import &quot;WebPageGroup.h&quot;
+#import &quot;WebPreferencesKeys.h&quot;
+#import &quot;WebProcessCreationParameters.h&quot;
+#import &quot;WebProcessMessages.h&quot;
+#import &quot;WindowServerConnection.h&quot;
+#import &lt;WebCore/CFNetworkSPI.h&gt;
+#import &lt;WebCore/Color.h&gt;
+#import &lt;WebCore/FileSystem.h&gt;
+#import &lt;WebCore/NotImplemented.h&gt;
+#import &lt;WebCore/PlatformPasteboard.h&gt;
+#import &lt;WebCore/SharedBuffer.h&gt;
+#import &lt;sys/param.h&gt;
+
+#if ENABLE(NETWORK_PROCESS)
+#import &quot;NetworkProcessCreationParameters.h&quot;
+#import &quot;NetworkProcessProxy.h&quot;
+#endif
+
+#if PLATFORM(IOS)
+#import &lt;WebCore/RuntimeApplicationChecksIOS.h&gt;
+#else
+#import &lt;QuartzCore/CARemoteLayerServer.h&gt;
+#endif
+
+using namespace WebCore;
+
+NSString *WebDatabaseDirectoryDefaultsKey = @&quot;WebDatabaseDirectory&quot;;
+NSString *WebKitLocalCacheDefaultsKey = @&quot;WebKitLocalCache&quot;;
+NSString *WebStorageDirectoryDefaultsKey = @&quot;WebKitLocalStorageDatabasePathPreferenceKey&quot;;
+NSString *WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey = @&quot;WebKitKerningAndLigaturesEnabledByDefault&quot;;
+NSString *WebKitJSCJITEnabledDefaultsKey = @&quot;WebKitJSCJITEnabledDefaultsKey&quot;;
+NSString *WebKitJSCFTLJITEnabledDefaultsKey = @&quot;WebKitJSCFTLJITEnabledDefaultsKey&quot;;
+NSString *WebKitMediaKeysStorageDirectoryDefaultsKey = @&quot;WebKitMediaKeysStorageDirectory&quot;;
+
+#if !PLATFORM(IOS)
+static NSString *WebKitApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification = @&quot;NSApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification&quot;;
+#endif
+
+// FIXME: &lt;rdar://problem/9138817&gt; - After this &quot;backwards compatibility&quot; radar is removed, this code should be removed to only return an empty String.
+NSString *WebIconDatabaseDirectoryDefaultsKey = @&quot;WebIconDatabaseDirectoryDefaultsKey&quot;;
+
+#if ENABLE(NETWORK_PROCESS)
+static NSString * const WebKit2HTTPProxyDefaultsKey = @&quot;WebKit2HTTPProxy&quot;;
+static NSString * const WebKit2HTTPSProxyDefaultsKey = @&quot;WebKit2HTTPSProxy&quot;;
+#endif
+
+namespace WebKit {
+
+NSString *SchemeForCustomProtocolRegisteredNotificationName = @&quot;WebKitSchemeForCustomProtocolRegisteredNotification&quot;;
+NSString *SchemeForCustomProtocolUnregisteredNotificationName = @&quot;WebKitSchemeForCustomProtocolUnregisteredNotification&quot;;
+
+static void registerUserDefaultsIfNeeded()
+{
+    static bool didRegister;
+    if (didRegister)
+        return;
+
+    didRegister = true;
+    NSMutableDictionary *registrationDictionary = [NSMutableDictionary dictionary];
+    
+    [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitJSCJITEnabledDefaultsKey];
+    [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitJSCFTLJITEnabledDefaultsKey];
+    
+#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey];
+#endif
+
+    [[NSUserDefaults standardUserDefaults] registerDefaults:registrationDictionary];
+}
+
+void WebProcessPool::updateProcessSuppressionState()
+{
+#if ENABLE(NETWORK_PROCESS)
+    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
+        m_networkProcess-&gt;setProcessSuppressionEnabled(processSuppressionEnabled());
+#endif
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    if (!m_processSuppressionDisabledForPageCounter.value())
+        m_pluginProcessManagerProcessSuppressionDisabledToken = nullptr;
+    else if (!m_pluginProcessManagerProcessSuppressionDisabledToken)
+        m_pluginProcessManagerProcessSuppressionDisabledToken = PluginProcessManager::shared().processSuppressionDisabledToken();
+#endif
+}
+
+NSMutableDictionary *WebProcessPool::ensureBundleParameters()
+{
+    if (!m_bundleParameters)
+        m_bundleParameters = adoptNS([[NSMutableDictionary alloc] init]);
+
+    return m_bundleParameters.get();
+}
+
+void WebProcessPool::platformInitialize()
+{
+    registerUserDefaultsIfNeeded();
+    registerNotificationObservers();
+
+#if PLATFORM(IOS)
+    WebKit::WebMemoryPressureHandler::shared();
+#endif
+}
+
+String WebProcessPool::platformDefaultApplicationCacheDirectory() const
+{
+    NSString *appName = [[NSBundle mainBundle] bundleIdentifier];
+    if (!appName)
+        appName = [[NSProcessInfo processInfo] processName];
+#if PLATFORM(IOS)
+    // This quirk used to make these apps share application cache storage, but doesn't accomplish that any more.
+    // Preserving it avoids the need to migrate data when upgrading.
+    if (applicationIsMobileSafari() || applicationIsWebApp())
+        appName = @&quot;com.apple.WebAppCache&quot;;
+#endif
+
+    ASSERT(appName);
+
+#if PLATFORM(IOS)
+    NSString *cacheDir = [NSHomeDirectory() stringByAppendingPathComponent:@&quot;Library/Caches&quot;];
+#else
+    char cacheDirectory[MAXPATHLEN];
+    size_t cacheDirectoryLen = confstr(_CS_DARWIN_USER_CACHE_DIR, cacheDirectory, MAXPATHLEN);
+    if (!cacheDirectoryLen)
+        return String();
+
+    NSString *cacheDir = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:cacheDirectory length:cacheDirectoryLen - 1];
+#endif
+    NSString* cachePath = [cacheDir stringByAppendingPathComponent:appName];
+    return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]);
+}
+
+void WebProcessPool::platformInitializeWebProcess(WebProcessCreationParameters&amp; parameters)
+{
+    parameters.presenterApplicationPid = getpid();
+
+#if PLATFORM(MAC)
+    parameters.accessibilityEnhancedUserInterfaceEnabled = [[NSApp accessibilityAttributeValue:@&quot;AXEnhancedUserInterface&quot;] boolValue];
+#else
+    parameters.accessibilityEnhancedUserInterfaceEnabled = false;
+#endif
+
+    NSURLCache *urlCache = [NSURLCache sharedURLCache];
+    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
+    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
+
+#if !PLATFORM(IOS) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    parameters.shouldForceScreenFontSubstitution = [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;NSFontDefaultScreenFontSubstitutionEnabled&quot;];
+#endif
+    parameters.shouldEnableKerningAndLigaturesByDefault = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey];
+    parameters.shouldEnableJIT = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitJSCJITEnabledDefaultsKey];
+    parameters.shouldEnableFTLJIT = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitJSCFTLJITEnabledDefaultsKey];
+    parameters.shouldEnableMemoryPressureReliefLogging = [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;LogMemoryJetsamDetails&quot;];
+    
+#if HAVE(HOSTED_CORE_ANIMATION)
+#if !PLATFORM(IOS)
+    parameters.acceleratedCompositingPort = MachSendRight::create([CARemoteLayerServer sharedServer].serverPort);
+#endif
+#endif
+
+    // FIXME: This should really be configurable; we shouldn't just blindly allow read access to the UI process bundle.
+    parameters.uiProcessBundleResourcePath = [[NSBundle mainBundle] resourcePath];
+    SandboxExtension::createHandle(parameters.uiProcessBundleResourcePath, SandboxExtension::ReadOnly, parameters.uiProcessBundleResourcePathExtensionHandle);
+
+    parameters.uiProcessBundleIdentifier = String([[NSBundle mainBundle] bundleIdentifier]);
+
+#if ENABLE(NETWORK_PROCESS)
+    if (!m_usesNetworkProcess) {
+#endif
+        for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
+            parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
+#if ENABLE(NETWORK_PROCESS)
+    }
+#endif
+
+    if (m_bundleParameters) {
+        auto data = adoptNS([[NSMutableData alloc] init]);
+        auto keyedArchiver = adoptNS([[NSKeyedArchiver alloc] initForWritingWithMutableData:data.get()]);
+
+        [keyedArchiver setRequiresSecureCoding:YES];
+
+        @try {
+            [keyedArchiver encodeObject:m_bundleParameters.get() forKey:@&quot;parameters&quot;];
+            [keyedArchiver finishEncoding];
+        } @catch (NSException *exception) {
+            LOG_ERROR(&quot;Failed to encode bundle parameters: %@&quot;, exception);
+        }
+
+        parameters.bundleParameterData = API::Data::createWithoutCopying((const unsigned char*)[data bytes], [data length], [] (unsigned char*, const void* data) {
+            [(NSData *)data release];
+        }, data.leakRef());
+    }
+}
+
+#if ENABLE(NETWORK_PROCESS)
+void WebProcessPool::platformInitializeNetworkProcess(NetworkProcessCreationParameters&amp; parameters)
+{
+    NSURLCache *urlCache = [NSURLCache sharedURLCache];
+    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
+    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
+
+    parameters.parentProcessName = [[NSProcessInfo processInfo] processName];
+    parameters.uiProcessBundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
+
+    for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
+        parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
+
+    parameters.httpProxy = [[NSUserDefaults standardUserDefaults] stringForKey:WebKit2HTTPProxyDefaultsKey];
+    parameters.httpsProxy = [[NSUserDefaults standardUserDefaults] stringForKey:WebKit2HTTPSProxyDefaultsKey];
+}
+#endif
+
+void WebProcessPool::platformInvalidateContext()
+{
+    unregisterNotificationObservers();
+}
+
+String WebProcessPool::platformDefaultDiskCacheDirectory() const
+{
+    RetainPtr&lt;NSString&gt; cachePath = adoptNS((NSString *)WKCopyFoundationCacheDirectory());
+    if (!cachePath)
+        cachePath = @&quot;~/Library/Caches/com.apple.WebKit.WebProcess&quot;;
+    return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]);
+}
+
+String WebProcessPool::platformDefaultCookieStorageDirectory() const
+{
+#if PLATFORM(IOS)
+    String path = pathForProcessContainer();
+    if (path.isEmpty())
+        path = NSHomeDirectory();
+
+    path = path + &quot;/Library/Cookies&quot;;
+    path = stringByResolvingSymlinksInPath(path);
+    return path;
+#else
+    notImplemented();
+    return [@&quot;&quot; stringByStandardizingPath];
+#endif
+}
+
+#if PLATFORM(IOS)
+String WebProcessPool::openGLCacheDirectory() const
+{
+    String path = pathForProcessContainer();
+    if (path.isEmpty())
+        path = NSHomeDirectory();
+
+    path = path + &quot;/Library/Caches/com.apple.WebKit.WebContent/com.apple.opengl/&quot;;
+    return stringByResolvingSymlinksInPath(path);
+}
+
+String WebProcessPool::parentBundleDirectory() const
+{
+    return [[[NSBundle mainBundle] bundlePath] stringByStandardizingPath];
+}
+
+String WebProcessPool::networkingHSTSDatabasePath() const
+{
+    String path = pathForProcessContainer();
+    if (path.isEmpty())
+        path = NSHomeDirectory();
+
+    path = path + &quot;/Library/Caches/com.apple.WebKit.Networking/&quot;;
+    path = stringByResolvingSymlinksInPath(path);
+
+    NSError *error = nil;
+    NSString* nsPath = path;
+    if (![[NSFileManager defaultManager] createDirectoryAtPath:nsPath withIntermediateDirectories:YES attributes:nil error:&amp;error]) {
+        NSLog(@&quot;could not create \&quot;%@\&quot;, error %@&quot;, nsPath, error);
+        return String();
+    }
+
+    return path + &quot;/HSTS.plist&quot;;
+}
+
+String WebProcessPool::webContentHSTSDatabasePath() const
+{
+    String path = pathForProcessContainer();
+    if (path.isEmpty())
+        path = NSHomeDirectory();
+
+    path = path + &quot;/Library/Caches/com.apple.WebKit.WebContent/&quot;;
+    path = stringByResolvingSymlinksInPath(path);
+
+    NSError *error = nil;
+    NSString* nsPath = path;
+    if (![[NSFileManager defaultManager] createDirectoryAtPath:nsPath withIntermediateDirectories:YES attributes:nil error:&amp;error]) {
+        NSLog(@&quot;could not create \&quot;%@\&quot;, error %@&quot;, nsPath, error);
+        return String();
+    }
+
+    return path + &quot;/HSTS.plist&quot;;
+}
+
+String WebProcessPool::containerTemporaryDirectory() const
+{
+    String path = NSTemporaryDirectory();
+    return stringByResolvingSymlinksInPath(path);
+}
+#endif
+
+String WebProcessPool::platformDefaultWebSQLDatabaseDirectory()
+{
+    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
+    if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
+        databasesDirectory = @&quot;~/Library/WebKit/Databases&quot;;
+    return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
+}
+
+String WebProcessPool::platformDefaultIndexedDBDatabaseDirectory()
+{
+    // Indexed databases exist in a subdirectory of the &quot;database directory path.&quot;
+    // Currently, the top level of that directory contains entities related to WebSQL databases.
+    // We should fix this, and move WebSQL into a subdirectory (https://bugs.webkit.org/show_bug.cgi?id=124807)
+    // In the meantime, an entity name prefixed with three underscores will not conflict with any WebSQL entities.
+    return pathByAppendingComponent(platformDefaultWebSQLDatabaseDirectory(), &quot;___IndexedDB&quot;);
+}
+
+String WebProcessPool::platformDefaultIconDatabasePath() const
+{
+    // FIXME: &lt;rdar://problem/9138817&gt; - After this &quot;backwards compatibility&quot; radar is removed, this code should be removed to only return an empty String.
+    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebIconDatabaseDirectoryDefaultsKey];
+    if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
+        databasesDirectory = @&quot;~/Library/Icons/WebpageIcons.db&quot;;
+    return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
+}
+
+String WebProcessPool::platformDefaultLocalStorageDirectory()
+{
+    NSString *localStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebStorageDirectoryDefaultsKey];
+    if (!localStorageDirectory || ![localStorageDirectory isKindOfClass:[NSString class]])
+        localStorageDirectory = @&quot;~/Library/WebKit/LocalStorage&quot;;
+    return stringByResolvingSymlinksInPath([localStorageDirectory stringByStandardizingPath]);
+}
+
+String WebProcessPool::platformDefaultMediaKeysStorageDirectory()
+{
+    NSString *mediaKeysStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebKitMediaKeysStorageDirectoryDefaultsKey];
+    if (!mediaKeysStorageDirectory || ![mediaKeysStorageDirectory isKindOfClass:[NSString class]])
+        mediaKeysStorageDirectory = @&quot;~/Library/WebKit/MediaKeys&quot;;
+    return stringByResolvingSymlinksInPath([mediaKeysStorageDirectory stringByStandardizingPath]);
+}
+
+bool WebProcessPool::omitPDFSupport()
+{
+    // Since this is a &quot;secret default&quot; we don't bother registering it.
+    return [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;WebKitOmitPDFSupport&quot;];
+}
+
+void WebProcessPool::getPasteboardTypes(const String&amp; pasteboardName, Vector&lt;String&gt;&amp; pasteboardTypes)
+{
+    PlatformPasteboard(pasteboardName).getTypes(pasteboardTypes);
+}
+
+void WebProcessPool::getPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, Vector&lt;String&gt;&amp; pathnames)
+{
+    PlatformPasteboard(pasteboardName).getPathnamesForType(pathnames, pasteboardType);
+}
+
+void WebProcessPool::getPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, String&amp; string)
+{
+    string = PlatformPasteboard(pasteboardName).stringForType(pasteboardType);
+}
+
+void WebProcessPool::getPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, SharedMemory::Handle&amp; handle, uint64_t&amp; size)
+{
+    RefPtr&lt;SharedBuffer&gt; buffer = PlatformPasteboard(pasteboardName).bufferForType(pasteboardType);
+    if (!buffer)
+        return;
+    size = buffer-&gt;size();
+    RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(size);
+    if (!sharedMemoryBuffer)
+        return;
+    memcpy(sharedMemoryBuffer-&gt;data(), buffer-&gt;data(), size);
+    sharedMemoryBuffer-&gt;createHandle(handle, SharedMemory::ReadOnly);
+}
+
+void WebProcessPool::pasteboardCopy(const String&amp; fromPasteboard, const String&amp; toPasteboard, uint64_t&amp; newChangeCount)
+{
+    newChangeCount = PlatformPasteboard(toPasteboard).copy(fromPasteboard);
+}
+
+void WebProcessPool::getPasteboardChangeCount(const String&amp; pasteboardName, uint64_t&amp; changeCount)
+{
+    changeCount = PlatformPasteboard(pasteboardName).changeCount();
+}
+
+void WebProcessPool::getPasteboardUniqueName(String&amp; pasteboardName)
+{
+    pasteboardName = PlatformPasteboard::uniqueName();
+}
+
+void WebProcessPool::getPasteboardColor(const String&amp; pasteboardName, WebCore::Color&amp; color)
+{
+    color = PlatformPasteboard(pasteboardName).color();    
+}
+
+void WebProcessPool::getPasteboardURL(const String&amp; pasteboardName, WTF::String&amp; urlString)
+{
+    urlString = PlatformPasteboard(pasteboardName).url().string();
+}
+
+void WebProcessPool::addPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount)
+{
+    newChangeCount = PlatformPasteboard(pasteboardName).addTypes(pasteboardTypes);
+}
+
+void WebProcessPool::setPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount)
+{
+    newChangeCount = PlatformPasteboard(pasteboardName).setTypes(pasteboardTypes);
+}
+
+void WebProcessPool::setPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const Vector&lt;String&gt;&amp; pathnames, uint64_t&amp; newChangeCount)
+{
+    newChangeCount = PlatformPasteboard(pasteboardName).setPathnamesForType(pathnames, pasteboardType);
+}
+
+void WebProcessPool::setPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const String&amp; string, uint64_t&amp; newChangeCount)
+{
+    newChangeCount = PlatformPasteboard(pasteboardName).setStringForType(string, pasteboardType);
+}
+
+void WebProcessPool::setPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const SharedMemory::Handle&amp; handle, uint64_t size, uint64_t&amp; newChangeCount)
+{
+    if (handle.isNull()) {
+        newChangeCount = PlatformPasteboard(pasteboardName).setBufferForType(0, pasteboardType);
+        return;
+    }
+    RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(handle, SharedMemory::ReadOnly);
+    RefPtr&lt;SharedBuffer&gt; buffer = SharedBuffer::create(static_cast&lt;unsigned char *&gt;(sharedMemoryBuffer-&gt;data()), size);
+    newChangeCount = PlatformPasteboard(pasteboardName).setBufferForType(buffer, pasteboardType);
+}
+
+#if PLATFORM(IOS)
+void WebProcessPool::writeWebContentToPasteboard(const WebCore::PasteboardWebContent&amp; content)
+{
+    PlatformPasteboard().write(content);
+}
+
+void WebProcessPool::writeImageToPasteboard(const WebCore::PasteboardImage&amp; pasteboardImage)
+{
+    PlatformPasteboard().write(pasteboardImage);
+}
+
+void WebProcessPool::writeStringToPasteboard(const String&amp; pasteboardType, const String&amp; text)
+{
+    PlatformPasteboard().write(pasteboardType, text);
+}
+
+void WebProcessPool::readStringFromPasteboard(uint64_t index, const String&amp; pasteboardType, WTF::String&amp; value)
+{
+    value = PlatformPasteboard().readString(index, pasteboardType);
+}
+
+void WebProcessPool::readURLFromPasteboard(uint64_t index, const String&amp; pasteboardType, String&amp; url)
+{
+    url = PlatformPasteboard().readURL(index, pasteboardType);
+}
+
+void WebProcessPool::readBufferFromPasteboard(uint64_t index, const String&amp; pasteboardType, SharedMemory::Handle&amp; handle, uint64_t&amp; size)
+{
+    RefPtr&lt;SharedBuffer&gt; buffer = PlatformPasteboard().readBuffer(index, pasteboardType);
+    if (!buffer)
+        return;
+    size = buffer-&gt;size();
+    RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(size);
+    if (!sharedMemoryBuffer)
+        return;
+    memcpy(sharedMemoryBuffer-&gt;data(), buffer-&gt;data(), size);
+    sharedMemoryBuffer-&gt;createHandle(handle, SharedMemory::ReadOnly);
+}
+
+void WebProcessPool::getPasteboardItemsCount(uint64_t&amp; itemsCount)
+{
+    itemsCount = PlatformPasteboard().count();
+}
+
+#endif
+
+bool WebProcessPool::processSuppressionEnabled() const
+{
+    return !m_userObservablePageCounter.value() &amp;&amp; !m_processSuppressionDisabledForPageCounter.value();
+}
+
+void WebProcessPool::registerNotificationObservers()
+{
+#if !PLATFORM(IOS)
+    // Listen for enhanced accessibility changes and propagate them to the WebProcess.
+    m_enhancedAccessibilityObserver = [[NSNotificationCenter defaultCenter] addObserverForName:WebKitApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *note) {
+        setEnhancedAccessibility([[[note userInfo] objectForKey:@&quot;AXEnhancedUserInterface&quot;] boolValue]);
+    }];
+
+    m_automaticTextReplacementNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticTextReplacementNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
+        TextChecker::didChangeAutomaticTextReplacementEnabled();
+        textCheckerStateChanged();
+    }];
+    
+    m_automaticSpellingCorrectionNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticSpellingCorrectionNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
+        TextChecker::didChangeAutomaticSpellingCorrectionEnabled();
+        textCheckerStateChanged();
+    }];
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    m_automaticQuoteSubstitutionNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticQuoteSubstitutionNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
+        TextChecker::didChangeAutomaticQuoteSubstitutionEnabled();
+        textCheckerStateChanged();
+    }];
+
+    m_automaticDashSubstitutionNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticDashSubstitutionNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
+        TextChecker::didChangeAutomaticDashSubstitutionEnabled();
+        textCheckerStateChanged();
+    }];
+#endif
+#endif // !PLATFORM(IOS)
+}
+
+void WebProcessPool::unregisterNotificationObservers()
+{
+#if !PLATFORM(IOS)
+    [[NSNotificationCenter defaultCenter] removeObserver:m_enhancedAccessibilityObserver.get()];    
+    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticTextReplacementNotificationObserver.get()];
+    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticSpellingCorrectionNotificationObserver.get()];
+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticQuoteSubstitutionNotificationObserver.get()];
+    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticDashSubstitutionNotificationObserver.get()];
+#endif
+#endif // !PLATFORM(IOS)
+}
+
+#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+static CFURLStorageSessionRef privateBrowsingSession()
+{
+    static CFURLStorageSessionRef session;
+    static dispatch_once_t once;
+    dispatch_once(&amp;once, ^{
+        NSString *identifier = [NSString stringWithFormat:@&quot;%@.PrivateBrowsing&quot;, [[NSBundle mainBundle] bundleIdentifier]];
+
+        session = WKCreatePrivateStorageSession((CFStringRef)identifier);
+    });
+
+    return session;
+}
+#endif
+
+bool WebProcessPool::isURLKnownHSTSHost(const String&amp; urlString, bool privateBrowsingEnabled) const
+{
+#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    RetainPtr&lt;CFURLRef&gt; url = URL(URL(), urlString).createCFURL();
+
+    return _CFNetworkIsKnownHSTSHostWithSession(url.get(), privateBrowsingEnabled ? privateBrowsingSession() : nullptr);
+#else
+    return false;
+#endif
+}
+
+void WebProcessPool::resetHSTSHosts()
+{
+#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    _CFNetworkResetHSTSHostsWithSession(nullptr);
+    _CFNetworkResetHSTSHostsWithSession(privateBrowsingSession());
+#endif
+}
+
+int networkProcessLatencyQOS()
+{
+    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitNetworkProcessLatencyQOS&quot;];
+    return qos;
+}
+
+int networkProcessThroughputQOS()
+{
+    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitNetworkProcessThroughputQOS&quot;];
+    return qos;
+}
+
+int webProcessLatencyQOS()
+{
+    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitWebProcessLatencyQOS&quot;];
+    return qos;
+}
+
+int webProcessThroughputQOS()
+{
+    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitWebProcessThroughputQOS&quot;];
+    return qos;
+}
+
+} // namespace WebKit
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDatabasesDatabaseProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,9 +28,9 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;DatabaseProcessMessages.h&quot;
</span><span class="cx"> #include &quot;DatabaseProcessProxyMessages.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebOriginDataManagerProxy.h&quot;
</span><span class="cx"> #include &quot;WebOriginDataManagerProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span><span class="cx"> 
</span><span class="lines">@@ -38,13 +38,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;DatabaseProcessProxy&gt; DatabaseProcessProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;DatabaseProcessProxy&gt; DatabaseProcessProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new DatabaseProcessProxy(context));
</del><ins>+    return adoptRef(new DatabaseProcessProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-DatabaseProcessProxy::DatabaseProcessProxy(WebContext* context)
-    : m_webContext(context)
</del><ins>+DatabaseProcessProxy::DatabaseProcessProxy(WebProcessPool* processPool)
+    : m_processPool(processPool)
</ins><span class="cx">     , m_numPendingConnectionRequests(0)
</span><span class="cx"> {
</span><span class="cx">     connect();
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (decoder.messageReceiverName() == Messages::WebOriginDataManagerProxy::messageReceiverName()) {
</span><del>-        m_webContext-&gt;supplement&lt;WebOriginDataManagerProxy&gt;()-&gt;didReceiveMessage(connection, decoder);
</del><ins>+        m_processPool-&gt;supplement&lt;WebOriginDataManagerProxy&gt;()-&gt;didReceiveMessage(connection, decoder);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -109,9 +109,8 @@
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    // Tell WebContext to forget about this database process. This may cause us to be deleted.
-    m_webContext-&gt;databaseProcessCrashed(this);
-    
</del><ins>+    // Tell ProcessPool to forget about this database process. This may cause us to be deleted.
+    m_processPool-&gt;databaseProcessCrashed(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DatabaseProcessProxy::didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference messageReceiverName, IPC::StringReference messageName)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDatabasesDatabaseProcessProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Databases/DatabaseProcessProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -35,17 +35,17 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class DatabaseProcessProxy : public ChildProcessProxy {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;DatabaseProcessProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;DatabaseProcessProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     ~DatabaseProcessProxy();
</span><span class="cx"> 
</span><span class="cx">     void getDatabaseProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt;);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    DatabaseProcessProxy(WebContext*);
</del><ins>+    DatabaseProcessProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     // ChildProcessProxy
</span><span class="cx">     virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&amp;) override;
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx"> 
</span><span class="cx">     void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&amp;);
</span><span class="cx"> 
</span><del>-    WebContext* m_webContext;
</del><ins>+    WebProcessPool* m_processPool;
</ins><span class="cx"> 
</span><span class="cx">     unsigned m_numPendingConnectionRequests;
</span><span class="cx">     Deque&lt;RefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt;&gt; m_pendingConnectionReplies;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDownloadsDownloadProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -31,8 +31,8 @@
</span><span class="cx"> #include &quot;AuthenticationChallengeProxy.h&quot;
</span><span class="cx"> #include &quot;DataReference.h&quot;
</span><span class="cx"> #include &quot;DownloadProxyMap.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -51,14 +51,14 @@
</span><span class="cx">     return ++uniqueDownloadID;
</span><span class="cx"> }
</span><span class="cx">     
</span><del>-PassRefPtr&lt;DownloadProxy&gt; DownloadProxy::create(DownloadProxyMap&amp; downloadProxyMap, WebContext&amp; webContext, const ResourceRequest&amp; resourceRequest)
</del><ins>+PassRefPtr&lt;DownloadProxy&gt; DownloadProxy::create(DownloadProxyMap&amp; downloadProxyMap, WebProcessPool&amp; processPool, const ResourceRequest&amp; resourceRequest)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new DownloadProxy(downloadProxyMap, webContext, resourceRequest));
</del><ins>+    return adoptRef(new DownloadProxy(downloadProxyMap, processPool, resourceRequest));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-DownloadProxy::DownloadProxy(DownloadProxyMap&amp; downloadProxyMap, WebContext&amp; webContext, const ResourceRequest&amp; resourceRequest)
</del><ins>+DownloadProxy::DownloadProxy(DownloadProxyMap&amp; downloadProxyMap, WebProcessPool&amp; processPool, const ResourceRequest&amp; resourceRequest)
</ins><span class="cx">     : m_downloadProxyMap(downloadProxyMap)
</span><del>-    , m_webContext(&amp;webContext)
</del><ins>+    , m_processPool(&amp;processPool)
</ins><span class="cx">     , m_downloadID(generateDownloadID())
</span><span class="cx">     , m_request(resourceRequest)
</span><span class="cx"> {
</span><span class="lines">@@ -66,93 +66,93 @@
</span><span class="cx"> 
</span><span class="cx"> DownloadProxy::~DownloadProxy()
</span><span class="cx"> {
</span><del>-    ASSERT(!m_webContext);
</del><ins>+    ASSERT(!m_processPool);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::cancel()
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    if (m_webContext-&gt;usesNetworkProcess()) {
-        if (NetworkProcessProxy* networkProcess = m_webContext-&gt;networkProcess())
</del><ins>+    if (m_processPool-&gt;usesNetworkProcess()) {
+        if (NetworkProcessProxy* networkProcess = m_processPool-&gt;networkProcess())
</ins><span class="cx">             networkProcess-&gt;connection()-&gt;send(Messages::NetworkProcess::CancelDownload(m_downloadID), 0);
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;sendToAllProcesses(Messages::WebProcess::CancelDownload(m_downloadID));
</del><ins>+    m_processPool-&gt;sendToAllProcesses(Messages::WebProcess::CancelDownload(m_downloadID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::invalidate()
</span><span class="cx"> {
</span><del>-    ASSERT(m_webContext);
-    m_webContext = 0;
</del><ins>+    ASSERT(m_processPool);
+    m_processPool = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::processDidClose()
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().processDidCrash(m_webContext.get(), this);
</del><ins>+    m_processPool-&gt;downloadClient().processDidCrash(m_processPool.get(), this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didStart(const ResourceRequest&amp; request)
</span><span class="cx"> {
</span><span class="cx">     m_request = request;
</span><span class="cx"> 
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didStart(m_webContext.get(), this);
</del><ins>+    m_processPool-&gt;downloadClient().didStart(m_processPool.get(), this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didReceiveAuthenticationChallenge(const AuthenticationChallenge&amp; authenticationChallenge, uint64_t challengeID)
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;AuthenticationChallengeProxy&gt; authenticationChallengeProxy = AuthenticationChallengeProxy::create(authenticationChallenge, challengeID, m_webContext-&gt;networkingProcessConnection());
</del><ins>+    RefPtr&lt;AuthenticationChallengeProxy&gt; authenticationChallengeProxy = AuthenticationChallengeProxy::create(authenticationChallenge, challengeID, m_processPool-&gt;networkingProcessConnection());
</ins><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didReceiveAuthenticationChallenge(m_webContext.get(), this, authenticationChallengeProxy.get());
</del><ins>+    m_processPool-&gt;downloadClient().didReceiveAuthenticationChallenge(m_processPool.get(), this, authenticationChallengeProxy.get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didReceiveResponse(const ResourceResponse&amp; response)
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didReceiveResponse(m_webContext.get(), this, response);
</del><ins>+    m_processPool-&gt;downloadClient().didReceiveResponse(m_processPool.get(), this, response);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didReceiveData(uint64_t length)
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didReceiveData(m_webContext.get(), this, length);
</del><ins>+    m_processPool-&gt;downloadClient().didReceiveData(m_processPool.get(), this, length);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::shouldDecodeSourceDataOfMIMEType(const String&amp; mimeType, bool&amp; result)
</span><span class="cx"> {
</span><span class="cx">     result = false;
</span><span class="cx"> 
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    result = m_webContext-&gt;downloadClient().shouldDecodeSourceDataOfMIMEType(m_webContext.get(), this, mimeType);
</del><ins>+    result = m_processPool-&gt;downloadClient().shouldDecodeSourceDataOfMIMEType(m_processPool.get(), this, mimeType);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::decideDestinationWithSuggestedFilename(const String&amp; filename, String&amp; destination, bool&amp; allowOverwrite, SandboxExtension::Handle&amp; sandboxExtensionHandle)
</span><span class="cx"> {
</span><span class="cx">     allowOverwrite = false;
</span><span class="cx"> 
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    destination = m_webContext-&gt;downloadClient().decideDestinationWithSuggestedFilename(m_webContext.get(), this, filename, allowOverwrite);
</del><ins>+    destination = m_processPool-&gt;downloadClient().decideDestinationWithSuggestedFilename(m_processPool.get(), this, filename, allowOverwrite);
</ins><span class="cx"> 
</span><span class="cx">     if (!destination.isNull())
</span><span class="cx">         SandboxExtension::createHandle(destination, SandboxExtension::ReadWrite, sandboxExtensionHandle);
</span><span class="lines">@@ -160,18 +160,18 @@
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didCreateDestination(const String&amp; path)
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didCreateDestination(m_webContext.get(), this, path);
</del><ins>+    m_processPool-&gt;downloadClient().didCreateDestination(m_processPool.get(), this, path);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didFinish()
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didFinish(m_webContext.get(), this);
</del><ins>+    m_processPool-&gt;downloadClient().didFinish(m_processPool.get(), this);
</ins><span class="cx"> 
</span><span class="cx">     // This can cause the DownloadProxy object to be deleted.
</span><span class="cx">     m_downloadProxyMap.downloadFinished(this);
</span><span class="lines">@@ -187,12 +187,12 @@
</span><span class="cx"> 
</span><span class="cx"> void DownloadProxy::didFail(const ResourceError&amp; error, const IPC::DataReference&amp; resumeData)
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     m_resumeData = createData(resumeData);
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didFail(m_webContext.get(), this, error);
</del><ins>+    m_processPool-&gt;downloadClient().didFail(m_processPool.get(), this, error);
</ins><span class="cx"> 
</span><span class="cx">     // This can cause the DownloadProxy object to be deleted.
</span><span class="cx">     m_downloadProxyMap.downloadFinished(this);
</span><span class="lines">@@ -202,7 +202,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_resumeData = createData(resumeData);
</span><span class="cx"> 
</span><del>-    m_webContext-&gt;downloadClient().didCancel(m_webContext.get(), this);
</del><ins>+    m_processPool-&gt;downloadClient().didCancel(m_processPool.get(), this);
</ins><span class="cx"> 
</span><span class="cx">     // This can cause the DownloadProxy object to be deleted.
</span><span class="cx">     m_downloadProxyMap.downloadFinished(this);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDownloadsDownloadProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -46,12 +46,12 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> class DownloadProxyMap;
</span><del>-class WebContext;
</del><span class="cx"> class WebPageProxy;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class DownloadProxy : public API::ObjectImpl&lt;API::Object::Type::Download&gt;, public IPC::MessageReceiver {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;DownloadProxy&gt; create(DownloadProxyMap&amp;, WebContext&amp;, const WebCore::ResourceRequest&amp;);
</del><ins>+    static PassRefPtr&lt;DownloadProxy&gt; create(DownloadProxyMap&amp;, WebProcessPool&amp;, const WebCore::ResourceRequest&amp;);
</ins><span class="cx">     ~DownloadProxy();
</span><span class="cx"> 
</span><span class="cx">     uint64_t downloadID() const { return m_downloadID; }
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">     void didReceiveSyncDownloadProxyMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;);
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit DownloadProxy(DownloadProxyMap&amp;, WebContext&amp;, const WebCore::ResourceRequest&amp;);
</del><ins>+    explicit DownloadProxy(DownloadProxyMap&amp;, WebProcessPool&amp;, const WebCore::ResourceRequest&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // IPC::MessageReceiver
</span><span class="cx">     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">     void didCancel(const IPC::DataReference&amp; resumeData);
</span><span class="cx"> 
</span><span class="cx">     DownloadProxyMap&amp; m_downloadProxyMap;
</span><del>-    RefPtr&lt;WebContext&gt; m_webContext;
</del><ins>+    RefPtr&lt;WebProcessPool&gt; m_processPool;
</ins><span class="cx">     uint64_t m_downloadID;
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;API::Data&gt; m_resumeData;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDownloadsDownloadProxyMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -44,9 +44,9 @@
</span><span class="cx">     ASSERT(m_downloads.isEmpty());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-DownloadProxy* DownloadProxyMap::createDownloadProxy(WebContext&amp; webContext, const WebCore::ResourceRequest&amp; resourceRequest)
</del><ins>+DownloadProxy* DownloadProxyMap::createDownloadProxy(WebProcessPool&amp; processPool, const WebCore::ResourceRequest&amp; resourceRequest)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;DownloadProxy&gt; downloadProxy = DownloadProxy::create(*this, webContext, resourceRequest);
</del><ins>+    RefPtr&lt;DownloadProxy&gt; downloadProxy = DownloadProxy::create(*this, processPool, resourceRequest);
</ins><span class="cx">     m_downloads.set(downloadProxy-&gt;downloadID(), downloadProxy);
</span><span class="cx"> 
</span><span class="cx">     m_process-&gt;addMessageReceiver(Messages::DownloadProxy::messageReceiverName(), downloadProxy-&gt;downloadID(), *downloadProxy);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessDownloadsDownloadProxyMaph"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Downloads/DownloadProxyMap.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> class ChildProcessProxy;
</span><span class="cx"> class DownloadProxy;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class DownloadProxyMap {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(DownloadProxyMap);
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx">     explicit DownloadProxyMap(ChildProcessProxy*);
</span><span class="cx">     ~DownloadProxyMap();
</span><span class="cx"> 
</span><del>-    DownloadProxy* createDownloadProxy(WebContext&amp;, const WebCore::ResourceRequest&amp;);
</del><ins>+    DownloadProxy* createDownloadProxy(WebProcessPool&amp;, const WebCore::ResourceRequest&amp;);
</ins><span class="cx">     void downloadFinished(DownloadProxy*);
</span><span class="cx"> 
</span><span class="cx">     bool isEmpty() const { return m_downloads.isEmpty(); }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessNetworkCustomProtocolsCustomProtocolManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -41,11 +41,11 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> class ChildProcessProxy;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class CustomProtocolManagerProxy : public IPC::MessageReceiver {
</span><span class="cx"> public:
</span><del>-    explicit CustomProtocolManagerProxy(ChildProcessProxy*, WebContext&amp;);
</del><ins>+    explicit CustomProtocolManagerProxy(ChildProcessProxy*, WebProcessPool&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void startLoading(uint64_t customProtocolID, const WebCore::ResourceRequest&amp;);
</span><span class="cx">     void stopLoading(uint64_t customProtocolID);
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx">     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
</span><span class="cx"> 
</span><span class="cx">     ChildProcessProxy* m_childProcessProxy;
</span><del>-    WebContext&amp; m_webContext;
</del><ins>+    WebProcessPool&amp; m_processPool;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     typedef HashMap&lt;uint64_t, RetainPtr&lt;WKCustomProtocolLoader&gt;&gt; LoaderMap;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessNetworkCustomProtocolsmacCustomProtocolManagerProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -120,9 +120,9 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy, WebContext&amp; webContext)
</del><ins>+CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy, WebProcessPool&amp; processPool)
</ins><span class="cx">     : m_childProcessProxy(childProcessProxy)
</span><del>-    , m_webContext(webContext)
</del><ins>+    , m_processPool(processPool)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(m_childProcessProxy);
</span><span class="cx">     m_childProcessProxy-&gt;addMessageReceiver(Messages::CustomProtocolManagerProxy::messageReceiverName(), *this);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessNetworkNetworkProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -33,8 +33,8 @@
</span><span class="cx"> #include &quot;DownloadProxyMessages.h&quot;
</span><span class="cx"> #include &quot;NetworkProcessCreationParameters.h&quot;
</span><span class="cx"> #include &quot;NetworkProcessMessages.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/RunLoop.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SEC_ITEM_SHIM)
</span><span class="lines">@@ -58,15 +58,15 @@
</span><span class="cx">     return ++callbackID;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;NetworkProcessProxy&gt; NetworkProcessProxy::create(WebContext&amp; webContext)
</del><ins>+PassRefPtr&lt;NetworkProcessProxy&gt; NetworkProcessProxy::create(WebProcessPool&amp; processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new NetworkProcessProxy(webContext));
</del><ins>+    return adoptRef(new NetworkProcessProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-NetworkProcessProxy::NetworkProcessProxy(WebContext&amp; webContext)
-    : m_webContext(webContext)
</del><ins>+NetworkProcessProxy::NetworkProcessProxy(WebProcessPool&amp; processPool)
+    : m_processPool(processPool)
</ins><span class="cx">     , m_numPendingConnectionRequests(0)
</span><del>-    , m_customProtocolManagerProxy(this, webContext)
</del><ins>+    , m_customProtocolManagerProxy(this, processPool)
</ins><span class="cx"> {
</span><span class="cx">     connect();
</span><span class="cx"> }
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx">     if (!m_downloadProxyMap)
</span><span class="cx">         m_downloadProxyMap = std::make_unique&lt;DownloadProxyMap&gt;(this);
</span><span class="cx"> 
</span><del>-    return m_downloadProxyMap-&gt;createDownloadProxy(m_webContext, resourceRequest);
</del><ins>+    return m_downloadProxyMap-&gt;createDownloadProxy(m_processPool, resourceRequest);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkProcessProxy::deleteWebsiteData(WebCore::SessionID sessionID, WebsiteDataTypes dataTypes, std::chrono::system_clock::time_point modifiedSince,  std::function&lt;void ()&gt; completionHandler)
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     m_pendingDeleteWebsiteDataCallbacks.clear();
</span><span class="cx"> 
</span><span class="cx">     // Tell the network process manager to forget about this network process proxy. This may cause us to be deleted.
</span><del>-    m_webContext.networkProcessCrashed(this);
</del><ins>+    m_processPool.networkProcessCrashed(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void NetworkProcessProxy::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder)
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx">     if (dispatchMessage(connection, decoder))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (m_webContext.dispatchMessage(connection, decoder))
</del><ins>+    if (m_processPool.dispatchMessage(connection, decoder))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     didReceiveNetworkProcessProxyMessage(connection, decoder);
</span><span class="lines">@@ -224,7 +224,7 @@
</span><span class="cx">     m_numPendingConnectionRequests = 0;
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><del>-    if (m_webContext.processSuppressionEnabled())
</del><ins>+    if (m_processPool.processSuppressionEnabled())
</ins><span class="cx">         setProcessSuppressionEnabled(true);
</span><span class="cx"> #endif
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessNetworkNetworkProcessProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -50,12 +50,12 @@
</span><span class="cx"> 
</span><span class="cx"> class DownloadProxy;
</span><span class="cx"> class DownloadProxyMap;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> struct NetworkProcessCreationParameters;
</span><span class="cx"> 
</span><span class="cx"> class NetworkProcessProxy : public ChildProcessProxy {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;NetworkProcessProxy&gt; create(WebContext&amp;);
</del><ins>+    static PassRefPtr&lt;NetworkProcessProxy&gt; create(WebProcessPool&amp;);
</ins><span class="cx">     ~NetworkProcessProxy();
</span><span class="cx"> 
</span><span class="cx">     void getNetworkProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt;);
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    NetworkProcessProxy(WebContext&amp;);
</del><ins>+    NetworkProcessProxy(WebProcessPool&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // ChildProcessProxy
</span><span class="cx">     virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&amp;) override;
</span><span class="lines">@@ -94,7 +94,7 @@
</span><span class="cx">     // ProcessLauncher::Client
</span><span class="cx">     virtual void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) override;
</span><span class="cx"> 
</span><del>-    WebContext&amp; m_webContext;
</del><ins>+    WebProcessPool&amp; m_processPool;
</ins><span class="cx">     
</span><span class="cx">     unsigned m_numPendingConnectionRequests;
</span><span class="cx">     Deque&lt;RefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt;&gt; m_pendingConnectionReplies;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessNotificationsWebNotificationManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -29,10 +29,10 @@
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;ImmutableDictionary.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebNotification.h&quot;
</span><span class="cx"> #include &quot;WebNotificationManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -50,13 +50,13 @@
</span><span class="cx">     return &quot;WebNotificationManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebNotificationManagerProxy&gt; WebNotificationManagerProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebNotificationManagerProxy&gt; WebNotificationManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebNotificationManagerProxy(context));
</del><ins>+    return adoptRef(new WebNotificationManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebNotificationManagerProxy::WebNotificationManagerProxy(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebNotificationManagerProxy::WebNotificationManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx"> 
</span><span class="cx"> // WebContextSupplement
</span><span class="cx"> 
</span><del>-void WebNotificationManagerProxy::contextDestroyed()
</del><ins>+void WebNotificationManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     m_provider.removeNotificationManager(this);
</span><span class="cx"> }
</span><span class="lines">@@ -232,15 +232,15 @@
</span><span class="cx"> 
</span><span class="cx"> void WebNotificationManagerProxy::providerDidUpdateNotificationPolicy(const API::SecurityOrigin* origin, bool allowed)
</span><span class="cx"> {
</span><del>-    if (!context())
</del><ins>+    if (!processPool())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToAllProcesses(Messages::WebNotificationManager::DidUpdateNotificationDecision(origin-&gt;securityOrigin().toString(), allowed));
</del><ins>+    processPool()-&gt;sendToAllProcesses(Messages::WebNotificationManager::DidUpdateNotificationDecision(origin-&gt;securityOrigin().toString(), allowed));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebNotificationManagerProxy::providerDidRemoveNotificationPolicies(API::Array* origins)
</span><span class="cx"> {
</span><del>-    if (!context())
</del><ins>+    if (!processPool())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     size_t size = origins-&gt;size();
</span><span class="lines">@@ -253,7 +253,7 @@
</span><span class="cx">     for (size_t i = 0; i &lt; size; ++i)
</span><span class="cx">         originStrings.append(origins-&gt;at&lt;API::SecurityOrigin&gt;(i)-&gt;securityOrigin().toString());
</span><span class="cx">     
</span><del>-    context()-&gt;sendToAllProcesses(Messages::WebNotificationManager::DidRemoveNotificationDecisions(originStrings));
</del><ins>+    processPool()-&gt;sendToAllProcesses(Messages::WebNotificationManager::DidRemoveNotificationDecisions(originStrings));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessNotificationsWebNotificationManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Notifications/WebNotificationManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -42,15 +42,15 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><span class="cx"> class WebPageProxy;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class WebNotificationManagerProxy : public API::ObjectImpl&lt;API::Object::Type::NotificationManager&gt;, public WebContextSupplement {
</span><span class="cx"> public:
</span><span class="cx"> 
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebNotificationManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebNotificationManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void initializeProvider(const WKNotificationProviderBase*);
</span><span class="cx">     void populateCopyOfNotificationPermissions(HashMap&lt;String, bool&gt;&amp;);
</span><span class="lines">@@ -71,13 +71,13 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebNotificationManagerProxy(WebContext*);
</del><ins>+    explicit WebNotificationManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     typedef bool (*NotificationFilterFunction)(uint64_t pageID, uint64_t pageNotificationID, uint64_t desiredPageID, const Vector&lt;uint64_t&gt;&amp; desiredPageNotificationIDs);
</span><span class="cx">     void clearNotifications(WebPageProxy*, const Vector&lt;uint64_t&gt;&amp; pageNotificationIDs, NotificationFilterFunction);
</span><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void refWebContextSupplement() override;
</span><span class="cx">     virtual void derefWebContextSupplement() override;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsPlugInAutoStartProvidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,9 +28,9 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;ImmutableDictionary.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebContextClient.h&quot;
</span><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -39,8 +39,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-PlugInAutoStartProvider::PlugInAutoStartProvider(WebContext* context)
-    : m_context(context)
</del><ins>+PlugInAutoStartProvider::PlugInAutoStartProvider(WebProcessPool* processPool)
+    : m_processPool(processPool)
</ins><span class="cx"> {
</span><span class="cx">     m_hashToOriginMap.add(SessionID::defaultSessionID(), HashMap&lt;unsigned, String&gt;());
</span><span class="cx">     m_autoStartTable.add(SessionID::defaultSessionID(), AutoStartTable());
</span><span class="lines">@@ -67,10 +67,10 @@
</span><span class="cx">     it-&gt;value.set(plugInOriginHash, expirationTime);
</span><span class="cx">     sessionIterator-&gt;value.set(plugInOriginHash, pageOrigin);
</span><span class="cx"> 
</span><del>-    m_context-&gt;sendToAllProcesses(Messages::WebProcess::DidAddPlugInAutoStartOriginHash(plugInOriginHash, expirationTime, sessionID));
</del><ins>+    m_processPool-&gt;sendToAllProcesses(Messages::WebProcess::DidAddPlugInAutoStartOriginHash(plugInOriginHash, expirationTime, sessionID));
</ins><span class="cx"> 
</span><span class="cx">     if (!sessionID.isEphemeral())
</span><del>-        m_context-&gt;client().plugInAutoStartOriginHashesChanged(m_context);
</del><ins>+        m_processPool-&gt;client().plugInAutoStartOriginHashesChanged(m_processPool);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> SessionPlugInAutoStartOriginMap PlugInAutoStartProvider::autoStartOriginHashesCopy() const
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx">             ast.set(strDict.key, hashes);
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_context-&gt;sendToAllProcesses(Messages::WebProcess::ResetPlugInAutoStartOriginDefaultHashes(hashMap));
</del><ins>+    m_processPool-&gt;sendToAllProcesses(Messages::WebProcess::ResetPlugInAutoStartOriginDefaultHashes(hashMap));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void PlugInAutoStartProvider::setAutoStartOriginsArray(API::Array&amp; originList)
</span><span class="lines">@@ -184,8 +184,8 @@
</span><span class="cx"> 
</span><span class="cx">     double newExpirationTime = expirationTimeFromNow();
</span><span class="cx">     m_autoStartTable.add(sessionID, AutoStartTable()).iterator-&gt;value.add(it-&gt;value, PlugInAutoStartOriginMap()).iterator-&gt;value.set(plugInOriginHash, newExpirationTime);
</span><del>-    m_context-&gt;sendToAllProcesses(Messages::WebProcess::DidAddPlugInAutoStartOriginHash(plugInOriginHash, newExpirationTime, sessionID));
-    m_context-&gt;client().plugInAutoStartOriginHashesChanged(m_context);
</del><ins>+    m_processPool-&gt;sendToAllProcesses(Messages::WebProcess::DidAddPlugInAutoStartOriginHash(plugInOriginHash, newExpirationTime, sessionID));
+    m_processPool-&gt;client().plugInAutoStartOriginHashesChanged(m_processPool);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsPlugInAutoStartProviderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PlugInAutoStartProvider.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #ifndef PlugInAutoStartProvider_h
</span><span class="cx"> #define PlugInAutoStartProvider_h
</span><span class="cx"> 
</span><del>-#include &lt;WebCore/SessionIDHash.h&gt;
</del><ins>+#include &lt;WebCore/SessionID.h&gt;
</ins><span class="cx"> #include &lt;functional&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/HashSet.h&gt;
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> class ImmutableDictionary;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> typedef HashMap&lt;unsigned, double&gt; PlugInAutoStartOriginMap;
</span><span class="cx"> typedef HashMap&lt;WebCore::SessionID, PlugInAutoStartOriginMap&gt; SessionPlugInAutoStartOriginMap;
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> class PlugInAutoStartProvider {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(PlugInAutoStartProvider);
</span><span class="cx"> public:
</span><del>-    explicit PlugInAutoStartProvider(WebContext*);
</del><ins>+    explicit PlugInAutoStartProvider(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void addAutoStartOriginHash(const String&amp; pageOrigin, unsigned plugInOriginHash, WebCore::SessionID);
</span><span class="cx">     void didReceiveUserInteraction(unsigned plugInOriginHash, WebCore::SessionID);
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx">     const PlugInAutoStartOrigins&amp; autoStartOrigins() const { return m_autoStartOrigins; }
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    WebContext* m_context;
</del><ins>+    WebProcessPool* m_processPool;
</ins><span class="cx"> 
</span><span class="cx">     void setAutoStartOriginsTableWithItemsPassingTest(ImmutableDictionary&amp;, std::function&lt;bool(double expirationTimestamp)&gt;);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsPluginProcessManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;PluginProcessProxy.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &lt;wtf/CryptographicallyRandomNumber.h&gt;
</span><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsPluginProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx"> #include &quot;PluginProcessCreationParameters.h&quot;
</span><span class="cx"> #include &quot;PluginProcessManager.h&quot;
</span><span class="cx"> #include &quot;PluginProcessMessages.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebPluginSiteDataManager.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #include &lt;WebCore/NotImplemented.h&gt;
</span><span class="cx"> #include &lt;wtf/RunLoop.h&gt;
</span><span class="lines">@@ -166,9 +166,9 @@
</span><span class="cx">         exitFullscreen();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    const Vector&lt;WebContext*&gt;&amp; contexts = WebContext::allContexts();
-    for (size_t i = 0; i &lt; contexts.size(); ++i)
-        contexts[i]-&gt;sendToAllProcesses(Messages::PluginProcessConnectionManager::PluginProcessCrashed(m_pluginProcessToken));
</del><ins>+    const Vector&lt;WebProcessPool*&gt;&amp; processPools = WebProcessPool::allProcessPools();
+    for (size_t i = 0; i &lt; processPools.size(); ++i)
+        processPools[i]-&gt;sendToAllProcesses(Messages::PluginProcessConnectionManager::PluginProcessCrashed(m_pluginProcessToken));
</ins><span class="cx"> 
</span><span class="cx">     // This will cause us to be deleted.
</span><span class="cx">     pluginProcessCrashedOrFailedToLaunch();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsWebPluginSiteDataManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,8 +30,8 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;PluginProcessManager.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx">     explicit GetSitesWithDataState(WebPluginSiteDataManager* webPluginSiteDataManager, uint64_t callbackID)
</span><span class="cx">         : m_webPluginSiteDataManager(webPluginSiteDataManager)
</span><span class="cx">         , m_callbackID(callbackID)
</span><del>-        , m_plugins(webPluginSiteDataManager-&gt;m_webContext-&gt;pluginInfoStore().plugins())
</del><ins>+        , m_plugins(webPluginSiteDataManager-&gt;m_processPool-&gt;pluginInfoStore().plugins())
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">         , m_flags(flags)
</span><span class="cx">         , m_maxAgeInSeconds(maxAgeInSeconds)
</span><span class="cx">         , m_callbackID(callbackID)
</span><del>-        , m_plugins(webPluginSiteDataManager-&gt;m_webContext-&gt;pluginInfoStore().plugins())
</del><ins>+        , m_plugins(webPluginSiteDataManager-&gt;m_processPool-&gt;pluginInfoStore().plugins())
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -112,13 +112,13 @@
</span><span class="cx">     Vector&lt;PluginModuleInfo&gt; m_plugins;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebPluginSiteDataManager&gt; WebPluginSiteDataManager::create(WebContext* webContext)
</del><ins>+PassRefPtr&lt;WebPluginSiteDataManager&gt; WebPluginSiteDataManager::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebPluginSiteDataManager(webContext));
</del><ins>+    return adoptRef(new WebPluginSiteDataManager(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebPluginSiteDataManager::WebPluginSiteDataManager(WebContext* webContext)
-    : m_webContext(webContext)
</del><ins>+WebPluginSiteDataManager::WebPluginSiteDataManager(WebProcessPool* processPool)
+    : m_processPool(processPool)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;ArrayCallback&gt; callback = ArrayCallback::create(WTF::move(callbackFunction));
</span><span class="cx"> 
</span><del>-    if (!m_webContext) {
</del><ins>+    if (!m_processPool) {
</ins><span class="cx">         callback-&gt;invalidate();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx"> void WebPluginSiteDataManager::clearSiteData(API::Array* sites, uint64_t flags, uint64_t maxAgeInSeconds, std::function&lt;void (CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;VoidCallback&gt; callback = VoidCallback::create(WTF::move(callbackFunction));
</span><del>-    if (!m_webContext) {
</del><ins>+    if (!m_processPool) {
</ins><span class="cx">         // FIXME: If the context is invalid we should not call the callback. It'd be better to just return false from clearSiteData.
</span><span class="cx">         callback-&gt;invalidate(CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx">         return;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessPluginsWebPluginSiteDataManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -37,18 +37,18 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProcessProxy;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="cx"> 
</span><span class="cx"> class WebPluginSiteDataManager : public API::ObjectImpl&lt;API::Object::Type::PluginSiteDataManager&gt; {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;WebPluginSiteDataManager&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebPluginSiteDataManager&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebPluginSiteDataManager();
</span><span class="cx"> 
</span><span class="cx">     void invalidate();
</span><del>-    void clearContext() { m_webContext = 0; }
</del><ins>+    void clearProcessPool() { m_processPool = nullptr; }
</ins><span class="cx"> 
</span><span class="cx">     void getSitesWithData(std::function&lt;void (API::Array*, CallbackBase::Error)&gt;);
</span><span class="cx">     void didGetSitesWithData(const Vector&lt;String&gt;&amp; sites, uint64_t callbackID);
</span><span class="lines">@@ -60,9 +60,9 @@
</span><span class="cx">     void didClearSiteDataForSinglePlugin(uint64_t callbackID);    
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebPluginSiteDataManager(WebContext*);
</del><ins>+    explicit WebPluginSiteDataManager(WebProcessPool*);
</ins><span class="cx"> 
</span><del>-    WebContext* m_webContext;
</del><ins>+    WebProcessPool* m_processPool;
</ins><span class="cx">     HashMap&lt;uint64_t, RefPtr&lt;ArrayCallback&gt;&gt; m_arrayCallbacks;
</span><span class="cx">     HashMap&lt;uint64_t, RefPtr&lt;VoidCallback&gt;&gt; m_voidCallbacks;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessVisitedLinkProvidercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,8 +30,9 @@
</span><span class="cx"> #include &quot;VisitedLinkProviderMessages.h&quot;
</span><span class="cx"> #include &quot;VisitedLinkTable.h&quot;
</span><span class="cx"> #include &quot;VisitedLinkTableControllerMessages.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
+#include &quot;WebProcessProxy.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="lines">@@ -99,7 +100,7 @@
</span><span class="cx">     m_table.clear();
</span><span class="cx"> 
</span><span class="cx">     for (WebProcessProxy* process : m_processes) {
</span><del>-        ASSERT(process-&gt;context().processes().contains(process));
</del><ins>+        ASSERT(process-&gt;processPool().processes().contains(process));
</ins><span class="cx">         process-&gt;connection()-&gt;send(Messages::VisitedLinkTableController::RemoveAllVisitedLinks(), m_identifier);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -178,7 +179,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     for (WebProcessProxy* process : m_processes) {
</span><del>-        ASSERT(process-&gt;context().processes().contains(process));
</del><ins>+        ASSERT(process-&gt;processPool().processes().contains(process));
</ins><span class="cx"> 
</span><span class="cx">         if (addedVisitedLinks.size() &gt; 20)
</span><span class="cx">             process-&gt;connection()-&gt;send(Messages::VisitedLinkTableController::AllVisitedLinkStateChanged(), m_identifier);
</span><span class="lines">@@ -234,7 +235,7 @@
</span><span class="cx"> 
</span><span class="cx"> void VisitedLinkProvider::sendTable(WebProcessProxy&amp; process)
</span><span class="cx"> {
</span><del>-    ASSERT(process.context().processes().contains(&amp;process));
</del><ins>+    ASSERT(process.processPool().processes().contains(&amp;process));
</ins><span class="cx"> 
</span><span class="cx">     SharedMemory::Handle handle;
</span><span class="cx">     if (!m_table.sharedMemory()-&gt;createHandle(handle, SharedMemory::ReadOnly))
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessVisitedLinkProviderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/VisitedLinkProvider.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -36,7 +36,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><span class="cx"> class WebPageProxy;
</span><span class="cx"> class WebProcessProxy;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebApplicationCacheManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><span class="cx"> #include &quot;WebApplicationCacheManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebApplicationCacheManagerProxyMessages.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -39,15 +39,15 @@
</span><span class="cx">     return &quot;WebApplicationCacheManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebApplicationCacheManagerProxy&gt; WebApplicationCacheManagerProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebApplicationCacheManagerProxy&gt; WebApplicationCacheManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebApplicationCacheManagerProxy(context));
</del><ins>+    return adoptRef(new WebApplicationCacheManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><del>-    context-&gt;addMessageReceiver(Messages::WebApplicationCacheManagerProxy::messageReceiverName(), *this);
</del><ins>+    processPool-&gt;addMessageReceiver(Messages::WebApplicationCacheManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebApplicationCacheManagerProxy::~WebApplicationCacheManagerProxy()
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void WebApplicationCacheManagerProxy::contextDestroyed()
</del><ins>+void WebApplicationCacheManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     invalidateCallbackMap(m_arrayCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx"> }
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;ArrayCallback&gt; callback = ArrayCallback::create(WTF::move(callbackFunction));
</span><span class="cx"> 
</span><del>-    if (!context()) {
</del><ins>+    if (!processPool()) {
</ins><span class="cx">         callback-&gt;invalidate();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -93,7 +93,7 @@
</span><span class="cx">     m_arrayCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; Make manipulating cache information work with per-tab WebProcess.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::GetApplicationCacheOrigins(callbackID));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::GetApplicationCacheOrigins(callbackID));
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void WebApplicationCacheManagerProxy::didGetApplicationCacheOrigins(const Vector&lt;SecurityOriginData&gt;&amp; originDatas, uint64_t callbackID)
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebApplicationCacheManagerProxy::deleteEntriesForOrigin(API::SecurityOrigin* origin)
</span><span class="cx"> {
</span><del>-    if (!context())
</del><ins>+    if (!processPool())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     SecurityOriginData securityOriginData;
</span><span class="lines">@@ -113,16 +113,16 @@
</span><span class="cx">     securityOriginData.port = origin-&gt;securityOrigin().port();
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; Make manipulating cache information work with per-tab WebProcess.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::DeleteEntriesForOrigin(securityOriginData));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::DeleteEntriesForOrigin(securityOriginData));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebApplicationCacheManagerProxy::deleteAllEntries()
</span><span class="cx"> {
</span><del>-    if (!context())
</del><ins>+    if (!processPool())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; Make manipulating cache information work with per-tab WebProcess.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::DeleteAllEntries());
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebApplicationCacheManager::DeleteAllEntries());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebApplicationCacheManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebApplicationCacheManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><ins>+class WebProcessPool;
</ins><span class="cx"> struct SecurityOriginData;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="lines">@@ -48,7 +49,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebApplicationCacheManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebApplicationCacheManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebApplicationCacheManagerProxy();
</span><span class="cx"> 
</span><span class="cx">     void getApplicationCacheOrigins(std::function&lt;void (API::Array*, CallbackBase::Error)&gt;);
</span><span class="lines">@@ -59,12 +60,12 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebApplicationCacheManagerProxy(WebContext*);
</del><ins>+    explicit WebApplicationCacheManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void didGetApplicationCacheOrigins(const Vector&lt;SecurityOriginData&gt;&amp;, uint64_t callbackID);
</span><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual bool shouldTerminate(WebProcessProxy*) const override;
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/WebContext.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContext.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,1496 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;WebContext.h&quot;
-
-#include &quot;APIArray.h&quot;
-#include &quot;APIDownloadClient.h&quot;
-#include &quot;APILegacyContextHistoryClient.h&quot;
-#include &quot;CustomProtocolManagerMessages.h&quot;
-#include &quot;DownloadProxy.h&quot;
-#include &quot;DownloadProxyMessages.h&quot;
-#include &quot;Logging.h&quot;
-#include &quot;MutableDictionary.h&quot;
-#include &quot;SandboxExtension.h&quot;
-#include &quot;StatisticsData.h&quot;
-#include &quot;TextChecker.h&quot;
-#include &quot;WKContextPrivate.h&quot;
-#include &quot;WebApplicationCacheManagerProxy.h&quot;
-#include &quot;WebContextMessageKinds.h&quot;
-#include &quot;WebContextMessages.h&quot;
-#include &quot;WebContextSupplement.h&quot;
-#include &quot;WebContextUserMessageCoders.h&quot;
-#include &quot;WebCookieManagerProxy.h&quot;
-#include &quot;WebCoreArgumentCoders.h&quot;
-#include &quot;WebDatabaseManagerProxy.h&quot;
-#include &quot;WebGeolocationManagerProxy.h&quot;
-#include &quot;WebIconDatabase.h&quot;
-#include &quot;WebKeyValueStorageManager.h&quot;
-#include &quot;WebKit2Initialize.h&quot;
-#include &quot;WebMediaCacheManagerProxy.h&quot;
-#include &quot;WebNotificationManagerProxy.h&quot;
-#include &quot;WebPluginSiteDataManager.h&quot;
-#include &quot;WebPageGroup.h&quot;
-#include &quot;WebPreferences.h&quot;
-#include &quot;WebMemorySampler.h&quot;
-#include &quot;WebProcessCreationParameters.h&quot;
-#include &quot;WebProcessMessages.h&quot;
-#include &quot;WebProcessProxy.h&quot;
-#include &quot;WebResourceCacheManagerProxy.h&quot;
-#include &quot;WebsiteDataStore.h&quot;
-#include &lt;WebCore/ApplicationCacheStorage.h&gt;
-#include &lt;WebCore/Language.h&gt;
-#include &lt;WebCore/LinkHash.h&gt;
-#include &lt;WebCore/Logging.h&gt;
-#include &lt;WebCore/ResourceRequest.h&gt;
-#include &lt;WebCore/SessionID.h&gt;
-#include &lt;runtime/JSCInlines.h&gt;
-#include &lt;wtf/CurrentTime.h&gt;
-#include &lt;wtf/MainThread.h&gt;
-#include &lt;wtf/NeverDestroyed.h&gt;
-#include &lt;wtf/RunLoop.h&gt;
-
-#if ENABLE(BATTERY_STATUS)
-#include &quot;WebBatteryManagerProxy.h&quot;
-#endif
-
-#if ENABLE(DATABASE_PROCESS)
-#include &quot;DatabaseProcessCreationParameters.h&quot;
-#include &quot;DatabaseProcessMessages.h&quot;
-#include &quot;WebOriginDataManagerProxy.h&quot;
-#endif
-
-#if ENABLE(NETWORK_PROCESS)
-#include &quot;NetworkProcessCreationParameters.h&quot;
-#include &quot;NetworkProcessMessages.h&quot;
-#include &quot;NetworkProcessProxy.h&quot;
-#endif
-
-#if ENABLE(SERVICE_CONTROLS)
-#include &quot;ServicesController.h&quot;
-#endif
-
-#if ENABLE(REMOTE_INSPECTOR)
-#include &lt;JavaScriptCore/RemoteInspector.h&gt;
-#endif
-
-#if USE(SOUP)
-#include &quot;WebSoupCustomProtocolRequestManager.h&quot;
-#endif
-
-#ifndef NDEBUG
-#include &lt;wtf/RefCountedLeakCounter.h&gt;
-#endif
-
-using namespace WebCore;
-
-namespace WebKit {
-
-static const double sharedSecondaryProcessShutdownTimeout = 60;
-
-DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, webContextCounter, (&quot;WebContext&quot;));
-
-void WebContext::applyPlatformSpecificConfigurationDefaults(WebContextConfiguration&amp; configuration)
-{
-    // FIXME: This function should not be needed; all ports should make sure that the configuration has the right
-    // values, and then we should get rid of the platform specific defaults inside WebContext.
-
-    if (!configuration.localStorageDirectory)
-        configuration.localStorageDirectory = platformDefaultLocalStorageDirectory();
-
-    if (!configuration.webSQLDatabaseDirectory)
-        configuration.webSQLDatabaseDirectory = platformDefaultWebSQLDatabaseDirectory();
-
-    // *********
-    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (&lt;rdar://problem/17454712&gt;)
-    // *********
-    if (!configuration.indexedDBDatabaseDirectory)
-        configuration.indexedDBDatabaseDirectory = platformDefaultIndexedDBDatabaseDirectory();
-
-    if (!configuration.mediaKeysStorageDirectory)
-        configuration.mediaKeysStorageDirectory = platformDefaultMediaKeysStorageDirectory();
-}
-
-PassRefPtr&lt;WebContext&gt; WebContext::create(WebContextConfiguration configuration)
-{
-    InitializeWebKit2();
-    return adoptRef(new WebContext(WTF::move(configuration)));
-}
-
-static Vector&lt;WebContext*&gt;&amp; contexts()
-{
-    static NeverDestroyed&lt;Vector&lt;WebContext*&gt;&gt; contexts;
-    return contexts;
-}
-
-const Vector&lt;WebContext*&gt;&amp; WebContext::allContexts()
-{
-    return contexts();
-}
-
-static WebsiteDataStore::Configuration websiteDataStoreConfiguration()
-{
-    WebsiteDataStore::Configuration configuration;
-
-    // FIXME: Fill in the configuration.
-    return configuration;
-}
-
-WebContext::WebContext(WebContextConfiguration configuration)
-    : m_processModel(ProcessModelSharedSecondaryProcess)
-    , m_webProcessCountLimit(UINT_MAX)
-    , m_haveInitialEmptyProcess(false)
-    , m_processWithPageCache(0)
-    , m_defaultPageGroup(WebPageGroup::createNonNull())
-    , m_injectedBundlePath(configuration.injectedBundlePath)
-    , m_downloadClient(std::make_unique&lt;API::DownloadClient&gt;())
-    , m_historyClient(std::make_unique&lt;API::LegacyContextHistoryClient&gt;())
-    , m_visitedLinkProvider(VisitedLinkProvider::create())
-    , m_visitedLinksPopulated(false)
-    , m_plugInAutoStartProvider(this)
-    , m_alwaysUsesComplexTextCodePath(false)
-    , m_shouldUseFontSmoothing(true)
-    , m_cacheModel(CacheModelDocumentViewer)
-    , m_memorySamplerEnabled(false)
-    , m_memorySamplerInterval(1400.0)
-    , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration()))
-    , m_storageManager(StorageManager::create(configuration.localStorageDirectory))
-#if USE(SOUP)
-    , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
-#endif
-    , m_webSQLDatabaseDirectory(WTF::move(configuration.webSQLDatabaseDirectory))
-    , m_indexedDBDatabaseDirectory(WTF::move(configuration.indexedDBDatabaseDirectory))
-    , m_mediaKeysStorageDirectory(WTF::move(configuration.mediaKeysStorageDirectory))
-    , m_shouldUseTestingNetworkSession(false)
-    , m_processTerminationEnabled(true)
-#if ENABLE(NETWORK_PROCESS)
-    , m_canHandleHTTPSServerTrustEvaluation(true)
-    , m_usesNetworkProcess(false)
-#endif
-#if USE(SOUP)
-    , m_ignoreTLSErrors(true)
-#endif
-    , m_memoryCacheDisabled(false)
-    , m_userObservablePageCounter([this](bool) { updateProcessSuppressionState(); })
-    , m_processSuppressionDisabledForPageCounter([this](bool) { updateProcessSuppressionState(); })
-{
-    platformInitialize();
-
-    addMessageReceiver(Messages::WebContext::messageReceiverName(), *this);
-    addMessageReceiver(WebContextLegacyMessages::messageReceiverName(), *this);
-
-    // NOTE: These sub-objects must be initialized after m_messageReceiverMap..
-    m_iconDatabase = WebIconDatabase::create(this);
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    m_pluginSiteDataManager = WebPluginSiteDataManager::create(this);
-#endif // ENABLE(NETSCAPE_PLUGIN_API)
-
-    addSupplement&lt;WebApplicationCacheManagerProxy&gt;();
-    addSupplement&lt;WebCookieManagerProxy&gt;();
-    addSupplement&lt;WebGeolocationManagerProxy&gt;();
-    addSupplement&lt;WebKeyValueStorageManager&gt;();
-    addSupplement&lt;WebMediaCacheManagerProxy&gt;();
-    addSupplement&lt;WebNotificationManagerProxy&gt;();
-    addSupplement&lt;WebResourceCacheManagerProxy&gt;();
-#if ENABLE(SQL_DATABASE)
-    addSupplement&lt;WebDatabaseManagerProxy&gt;();
-#endif
-#if USE(SOUP)
-    addSupplement&lt;WebSoupCustomProtocolRequestManager&gt;();
-#endif
-#if ENABLE(BATTERY_STATUS)
-    addSupplement&lt;WebBatteryManagerProxy&gt;();
-#endif
-#if ENABLE(DATABASE_PROCESS)
-    addSupplement&lt;WebOriginDataManagerProxy&gt;();
-#endif
-
-    contexts().append(this);
-
-    addLanguageChangeObserver(this, languageChanged);
-
-#if !LOG_DISABLED
-    WebCore::initializeLoggingChannelsIfNecessary();
-    WebKit::initializeLogChannelsIfNecessary();
-#endif // !LOG_DISABLED
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    m_pluginInfoStore.setClient(this);
-#endif
-
-#ifndef NDEBUG
-    webContextCounter.increment();
-#endif
-}
-
-#if !PLATFORM(COCOA)
-void WebContext::platformInitialize()
-{
-}
-#endif
-
-WebContext::~WebContext()
-{
-    ASSERT(contexts().find(this) != notFound);
-    contexts().remove(contexts().find(this));
-
-    removeLanguageChangeObserver(this);
-
-    m_messageReceiverMap.invalidate();
-
-    WebContextSupplementMap::const_iterator it = m_supplements.begin();
-    WebContextSupplementMap::const_iterator end = m_supplements.end();
-    for (; it != end; ++it) {
-        it-&gt;value-&gt;contextDestroyed();
-        it-&gt;value-&gt;clearContext();
-    }
-
-    m_iconDatabase-&gt;invalidate();
-    m_iconDatabase-&gt;clearContext();
-    WebIconDatabase* rawIconDatabase = m_iconDatabase.release().leakRef();
-    rawIconDatabase-&gt;derefWhenAppropriate();
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    m_pluginSiteDataManager-&gt;invalidate();
-    m_pluginSiteDataManager-&gt;clearContext();
-#endif
-
-    invalidateCallbackMap(m_dictionaryCallbacks, CallbackBase::Error::OwnerWasInvalidated);
-
-    platformInvalidateContext();
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    m_pluginInfoStore.setClient(0);
-#endif
-
-#ifndef NDEBUG
-    webContextCounter.decrement();
-#endif
-}
-
-void WebContext::initializeClient(const WKContextClientBase* client)
-{
-    m_client.initialize(client);
-}
-
-void WebContext::initializeInjectedBundleClient(const WKContextInjectedBundleClientBase* client)
-{
-    m_injectedBundleClient.initialize(client);
-}
-
-void WebContext::initializeConnectionClient(const WKContextConnectionClientBase* client)
-{
-    m_connectionClient.initialize(client);
-}
-
-void WebContext::setHistoryClient(std::unique_ptr&lt;API::LegacyContextHistoryClient&gt; historyClient)
-{
-    if (!historyClient)
-        m_historyClient = std::make_unique&lt;API::LegacyContextHistoryClient&gt;();
-    else
-        m_historyClient = WTF::move(historyClient);
-}
-
-void WebContext::setDownloadClient(std::unique_ptr&lt;API::DownloadClient&gt; downloadClient)
-{
-    if (!downloadClient)
-        m_downloadClient = std::make_unique&lt;API::DownloadClient&gt;();
-    else
-        m_downloadClient = WTF::move(downloadClient);
-}
-
-void WebContext::setProcessModel(ProcessModel processModel)
-{
-    // Guard against API misuse.
-    if (!m_processes.isEmpty())
-        CRASH();
-    if (processModel != ProcessModelSharedSecondaryProcess &amp;&amp; !m_messagesToInjectedBundlePostedToEmptyContext.isEmpty())
-        CRASH();
-
-    m_processModel = processModel;
-}
-
-void WebContext::setMaximumNumberOfProcesses(unsigned maximumNumberOfProcesses)
-{
-    // Guard against API misuse.
-    if (!m_processes.isEmpty())
-        CRASH();
-
-    if (maximumNumberOfProcesses == 0)
-        m_webProcessCountLimit = UINT_MAX;
-    else
-        m_webProcessCountLimit = maximumNumberOfProcesses;
-}
-
-IPC::Connection* WebContext::networkingProcessConnection()
-{
-    switch (m_processModel) {
-    case ProcessModelSharedSecondaryProcess:
-#if ENABLE(NETWORK_PROCESS)
-        if (m_usesNetworkProcess)
-            return m_networkProcess-&gt;connection();
-#endif
-        return m_processes[0]-&gt;connection();
-    case ProcessModelMultipleSecondaryProcesses:
-#if ENABLE(NETWORK_PROCESS)
-        ASSERT(m_usesNetworkProcess);
-        return m_networkProcess-&gt;connection();
-#else
-        break;
-#endif
-    }
-    ASSERT_NOT_REACHED();
-    return 0;
-}
-
-void WebContext::languageChanged(void* context)
-{
-    static_cast&lt;WebContext*&gt;(context)-&gt;languageChanged();
-}
-
-void WebContext::languageChanged()
-{
-    sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(userPreferredLanguages()));
-#if USE(SOUP) &amp;&amp; ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
-        m_networkProcess-&gt;send(Messages::NetworkProcess::UserPreferredLanguagesChanged(userPreferredLanguages()), 0);
-#endif
-}
-
-void WebContext::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled)
-{
-    sendToAllProcesses(Messages::WebProcess::FullKeyboardAccessModeChanged(fullKeyboardAccessEnabled));
-}
-
-void WebContext::textCheckerStateChanged()
-{
-    sendToAllProcesses(Messages::WebProcess::SetTextCheckerState(TextChecker::state()));
-}
-
-void WebContext::setUsesNetworkProcess(bool usesNetworkProcess)
-{
-#if ENABLE(NETWORK_PROCESS)
-    m_usesNetworkProcess = usesNetworkProcess;
-#else
-    UNUSED_PARAM(usesNetworkProcess);
-#endif
-}
-
-bool WebContext::usesNetworkProcess() const
-{
-#if ENABLE(NETWORK_PROCESS)
-    return m_usesNetworkProcess;
-#else
-    return false;
-#endif
-}
-
-#if ENABLE(NETWORK_PROCESS)
-void WebContext::ensureNetworkProcess()
-{
-    if (m_networkProcess)
-        return;
-
-    m_networkProcess = NetworkProcessProxy::create(*this);
-
-    NetworkProcessCreationParameters parameters;
-
-    parameters.privateBrowsingEnabled = WebPreferences::anyPagesAreUsingPrivateBrowsing();
-
-    parameters.cacheModel = m_cacheModel;
-    parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation;
-
-    parameters.diskCacheDirectory = stringByResolvingSymlinksInPath(diskCacheDirectory());
-    if (!parameters.diskCacheDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.diskCacheDirectory, parameters.diskCacheDirectoryExtensionHandle);
-
-    parameters.cookieStorageDirectory = cookieStorageDirectory();
-
-#if PLATFORM(IOS)
-    if (!parameters.cookieStorageDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
-
-    String hstsDatabasePath = networkingHSTSDatabasePath();
-    if (!hstsDatabasePath.isEmpty())
-        SandboxExtension::createHandle(hstsDatabasePath, SandboxExtension::ReadWrite, parameters.hstsDatabasePathExtensionHandle);
-
-    String parentBundleDirectory = this-&gt;parentBundleDirectory();
-    if (!parentBundleDirectory.isEmpty())
-        SandboxExtension::createHandle(parentBundleDirectory, SandboxExtension::ReadOnly, parameters.parentBundleDirectoryExtensionHandle);
-#endif
-
-    parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
-
-    // Add any platform specific parameters
-    platformInitializeNetworkProcess(parameters);
-
-    // Initialize the network process.
-    m_networkProcess-&gt;send(Messages::NetworkProcess::InitializeNetworkProcess(parameters), 0);
-
-#if PLATFORM(COCOA)
-    m_networkProcess-&gt;send(Messages::NetworkProcess::SetQOS(networkProcessLatencyQOS(), networkProcessThroughputQOS()), 0);
-#endif
-}
-
-void WebContext::networkProcessCrashed(NetworkProcessProxy* networkProcessProxy)
-{
-    ASSERT(m_networkProcess);
-    ASSERT(networkProcessProxy == m_networkProcess.get());
-
-    WebContextSupplementMap::const_iterator it = m_supplements.begin();
-    WebContextSupplementMap::const_iterator end = m_supplements.end();
-    for (; it != end; ++it)
-        it-&gt;value-&gt;processDidClose(networkProcessProxy);
-
-    m_networkProcess = nullptr;
-
-    m_client.networkProcessDidCrash(this);
-}
-
-void WebContext::getNetworkProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt; reply)
-{
-    ASSERT(reply);
-
-    ensureNetworkProcess();
-    ASSERT(m_networkProcess);
-
-    m_networkProcess-&gt;getNetworkProcessConnection(reply);
-}
-#endif
-
-#if ENABLE(DATABASE_PROCESS)
-void WebContext::ensureDatabaseProcess()
-{
-    if (m_databaseProcess)
-        return;
-
-    m_databaseProcess = DatabaseProcessProxy::create(this);
-
-    ASSERT(!m_indexedDBDatabaseDirectory.isEmpty());
-
-    // *********
-    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (&lt;rdar://problem/17454712&gt;)
-    // *********
-    DatabaseProcessCreationParameters parameters;
-    parameters.indexedDatabaseDirectory = m_indexedDBDatabaseDirectory;
-
-    SandboxExtension::createHandleForReadWriteDirectory(parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle);
-
-    m_databaseProcess-&gt;send(Messages::DatabaseProcess::InitializeDatabaseProcess(parameters), 0);
-}
-
-void WebContext::getDatabaseProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt; reply)
-{
-    ASSERT(reply);
-
-    ensureDatabaseProcess();
-
-    m_databaseProcess-&gt;getDatabaseProcessConnection(reply);
-}
-
-void WebContext::databaseProcessCrashed(DatabaseProcessProxy* databaseProcessProxy)
-{
-    ASSERT(m_databaseProcess);
-    ASSERT(databaseProcessProxy == m_databaseProcess.get());
-
-    for (auto&amp; supplement : m_supplements)
-        supplement.value-&gt;processDidClose(databaseProcessProxy);
-
-    m_databaseProcess = nullptr;
-}
-#endif
-
-void WebContext::willStartUsingPrivateBrowsing()
-{
-    const Vector&lt;WebContext*&gt;&amp; contexts = allContexts();
-    for (size_t i = 0, count = contexts.size(); i &lt; count; ++i)
-        contexts[i]-&gt;setAnyPageGroupMightHavePrivateBrowsingEnabled(true);
-}
-
-void WebContext::willStopUsingPrivateBrowsing()
-{
-    const Vector&lt;WebContext*&gt;&amp; contexts = allContexts();
-    for (size_t i = 0, count = contexts.size(); i &lt; count; ++i)
-        contexts[i]-&gt;setAnyPageGroupMightHavePrivateBrowsingEnabled(false);
-}
-
-void WebContext::windowServerConnectionStateChanged()
-{
-    size_t processCount = m_processes.size();
-    for (size_t i = 0; i &lt; processCount; ++i)
-        m_processes[i]-&gt;windowServerConnectionStateChanged();
-}
-
-void WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled(bool privateBrowsingEnabled)
-{
-    m_iconDatabase-&gt;setPrivateBrowsingEnabled(privateBrowsingEnabled);
-
-#if ENABLE(NETWORK_PROCESS)
-    if (usesNetworkProcess() &amp;&amp; networkProcess()) {
-        if (privateBrowsingEnabled)
-            networkProcess()-&gt;send(Messages::NetworkProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
-        else
-            networkProcess()-&gt;send(Messages::NetworkProcess::DestroyPrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
-    }
-#endif // ENABLED(NETWORK_PROCESS)
-
-    if (privateBrowsingEnabled)
-        sendToAllProcesses(Messages::WebProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()));
-    else
-        sendToAllProcesses(Messages::WebProcess::DestroyPrivateBrowsingSession(SessionID::legacyPrivateSessionID()));
-}
-
-void (*s_invalidMessageCallback)(WKStringRef messageName);
-
-void WebContext::setInvalidMessageCallback(void (*invalidMessageCallback)(WKStringRef messageName))
-{
-    s_invalidMessageCallback = invalidMessageCallback;
-}
-
-void WebContext::didReceiveInvalidMessage(const IPC::StringReference&amp; messageReceiverName, const IPC::StringReference&amp; messageName)
-{
-    if (!s_invalidMessageCallback)
-        return;
-
-    StringBuilder messageNameStringBuilder;
-    messageNameStringBuilder.append(messageReceiverName.data(), messageReceiverName.size());
-    messageNameStringBuilder.append(&quot;.&quot;);
-    messageNameStringBuilder.append(messageName.data(), messageName.size());
-
-    s_invalidMessageCallback(toAPI(API::String::create(messageNameStringBuilder.toString()).get()));
-}
-
-void WebContext::processDidCachePage(WebProcessProxy* process)
-{
-    if (m_processWithPageCache &amp;&amp; m_processWithPageCache != process)
-        m_processWithPageCache-&gt;releasePageCache();
-    m_processWithPageCache = process;
-}
-
-WebProcessProxy&amp; WebContext::ensureSharedWebProcess()
-{
-    ASSERT(m_processModel == ProcessModelSharedSecondaryProcess);
-    if (m_processes.isEmpty())
-        createNewWebProcess();
-    return *m_processes[0];
-}
-
-WebProcessProxy&amp; WebContext::createNewWebProcess()
-{
-#if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess)
-        ensureNetworkProcess();
-#endif
-
-    Ref&lt;WebProcessProxy&gt; process = WebProcessProxy::create(*this);
-
-    WebProcessCreationParameters parameters;
-
-    parameters.injectedBundlePath = injectedBundlePath();
-    if (!parameters.injectedBundlePath.isEmpty())
-        SandboxExtension::createHandle(parameters.injectedBundlePath, SandboxExtension::ReadOnly, parameters.injectedBundlePathExtensionHandle);
-
-    parameters.applicationCacheDirectory = applicationCacheDirectory();
-    if (!parameters.applicationCacheDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.applicationCacheDirectory, parameters.applicationCacheDirectoryExtensionHandle);
-
-    parameters.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
-    if (!parameters.webSQLDatabaseDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.webSQLDatabaseDirectory, parameters.webSQLDatabaseDirectoryExtensionHandle);
-
-    parameters.diskCacheDirectory = diskCacheDirectory();
-    if (!parameters.diskCacheDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.diskCacheDirectory, parameters.diskCacheDirectoryExtensionHandle);
-
-    parameters.cookieStorageDirectory = cookieStorageDirectory();
-
-#if PLATFORM(IOS)
-    if (!parameters.cookieStorageDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
-
-    String openGLCacheDirectory = this-&gt;openGLCacheDirectory();
-    if (!openGLCacheDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(openGLCacheDirectory, parameters.openGLCacheDirectoryExtensionHandle);
-
-    String containerTemporaryDirectory = this-&gt;containerTemporaryDirectory();
-    if (!containerTemporaryDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(containerTemporaryDirectory, parameters.containerTemporaryDirectoryExtensionHandle);
-
-    String hstsDatabasePath = webContentHSTSDatabasePath();
-    if (!hstsDatabasePath.isEmpty())
-        SandboxExtension::createHandle(hstsDatabasePath, SandboxExtension::ReadWrite, parameters.hstsDatabasePathExtensionHandle);
-#endif
-
-    parameters.mediaKeyStorageDirectory = m_mediaKeysStorageDirectory;
-    if (!parameters.mediaKeyStorageDirectory.isEmpty())
-        SandboxExtension::createHandleForReadWriteDirectory(parameters.mediaKeyStorageDirectory, parameters.mediaKeyStorageDirectoryExtensionHandle);
-
-    parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
-
-    parameters.cacheModel = m_cacheModel;
-    parameters.languages = userPreferredLanguages();
-
-    copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
-    copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
-    copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
-    copyToVector(m_schemesToRegisterAsLocal, parameters.urlSchemesRegisteredAsLocal);
-    copyToVector(m_schemesToRegisterAsNoAccess, parameters.urlSchemesRegisteredAsNoAccess);
-    copyToVector(m_schemesToRegisterAsDisplayIsolated, parameters.urlSchemesRegisteredAsDisplayIsolated);
-    copyToVector(m_schemesToRegisterAsCORSEnabled, parameters.urlSchemesRegisteredAsCORSEnabled);
-#if ENABLE(CACHE_PARTITIONING)
-    copyToVector(m_schemesToRegisterAsCachePartitioned, parameters.urlSchemesRegisteredAsCachePartitioned);
-#endif
-
-    parameters.shouldAlwaysUseComplexTextCodePath = m_alwaysUsesComplexTextCodePath;
-    parameters.shouldUseFontSmoothing = m_shouldUseFontSmoothing;
-
-    // FIXME: This leaves UI process and WebProcess disagreeing about the state if the client hasn't set the path.
-    // 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.textCheckerState = TextChecker::state();
-
-    parameters.fullKeyboardAccessEnabled = WebProcessProxy::fullKeyboardAccessEnabled();
-
-    parameters.defaultRequestTimeoutInterval = API::URLRequest::defaultTimeoutInterval();
-
-#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
-    // FIXME: There should be a generic way for supplements to add to the intialization parameters.
-    supplement&lt;WebNotificationManagerProxy&gt;()-&gt;populateCopyOfNotificationPermissions(parameters.notificationPermissions);
-#endif
-
-#if ENABLE(NETWORK_PROCESS)
-    parameters.usesNetworkProcess = m_usesNetworkProcess;
-#endif
-
-    parameters.plugInAutoStartOriginHashes = m_plugInAutoStartProvider.autoStartOriginHashesCopy();
-    copyToVector(m_plugInAutoStartProvider.autoStartOrigins(), parameters.plugInAutoStartOrigins);
-
-    parameters.memoryCacheDisabled = m_memoryCacheDisabled;
-
-#if ENABLE(SERVICE_CONTROLS)
-    parameters.hasImageServices = ServicesController::shared().hasImageServices();
-    parameters.hasSelectionServices = ServicesController::shared().hasSelectionServices();
-    parameters.hasRichContentServices = ServicesController::shared().hasRichContentServices();
-    ServicesController::shared().refreshExistingServices();
-#endif
-
-    // Add any platform specific parameters
-    platformInitializeWebProcess(parameters);
-
-    RefPtr&lt;API::Object&gt; injectedBundleInitializationUserData = m_injectedBundleClient.getInjectedBundleInitializationUserData(this);
-    if (!injectedBundleInitializationUserData)
-        injectedBundleInitializationUserData = m_injectedBundleInitializationUserData;
-    process-&gt;send(Messages::WebProcess::InitializeWebProcess(parameters, WebContextUserMessageEncoder(injectedBundleInitializationUserData.get(), process)), 0);
-
-#if PLATFORM(COCOA)
-    process-&gt;send(Messages::WebProcess::SetQOS(webProcessLatencyQOS(), webProcessThroughputQOS()), 0);
-#endif
-#if PLATFORM(IOS)
-    cacheStorage().setDefaultOriginQuota(25ULL * 1024 * 1024);
-#endif
-
-    if (WebPreferences::anyPagesAreUsingPrivateBrowsing())
-        process-&gt;send(Messages::WebProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
-
-    m_processes.append(process.ptr());
-
-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
-        for (size_t i = 0; i != m_messagesToInjectedBundlePostedToEmptyContext.size(); ++i) {
-            std::pair&lt;String, RefPtr&lt;API::Object&gt;&gt;&amp; message = m_messagesToInjectedBundlePostedToEmptyContext[i];
-
-            IPC::ArgumentEncoder messageData;
-
-            messageData.encode(message.first);
-            messageData.encode(WebContextUserMessageEncoder(message.second.get(), process));
-            process-&gt;send(Messages::WebProcess::PostInjectedBundleMessage(IPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
-        }
-        m_messagesToInjectedBundlePostedToEmptyContext.clear();
-    } else
-        ASSERT(m_messagesToInjectedBundlePostedToEmptyContext.isEmpty());
-
-#if ENABLE(REMOTE_INSPECTOR)
-    // Initialize remote inspector connection now that we have a sub-process that is hosting one of our web views.
-    Inspector::RemoteInspector::shared(); 
-#endif
-
-    return process;
-}
-
-void WebContext::warmInitialProcess()  
-{
-    if (m_haveInitialEmptyProcess) {
-        ASSERT(!m_processes.isEmpty());
-        return;
-    }
-
-    if (m_processes.size() &gt;= m_webProcessCountLimit)
-        return;
-
-    createNewWebProcess();
-    m_haveInitialEmptyProcess = true;
-}
-
-void WebContext::enableProcessTermination()
-{
-    m_processTerminationEnabled = true;
-    Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt; processes = m_processes;
-    for (size_t i = 0; i &lt; processes.size(); ++i) {
-        if (shouldTerminate(processes[i].get()))
-            processes[i]-&gt;terminate();
-    }
-}
-
-bool WebContext::shouldTerminate(WebProcessProxy* process)
-{
-    ASSERT(m_processes.contains(process));
-
-    if (!m_processTerminationEnabled)
-        return false;
-
-    for (const auto&amp; supplement : m_supplements.values()) {
-        if (!supplement-&gt;shouldTerminate(process))
-            return false;
-    }
-
-    return true;
-}
-
-void WebContext::processWillOpenConnection(WebProcessProxy* process)
-{
-    m_storageManager-&gt;processWillOpenConnection(process);
-}
-
-void WebContext::processWillCloseConnection(WebProcessProxy* process)
-{
-    m_storageManager-&gt;processWillCloseConnection(process);
-}
-
-void WebContext::applicationWillTerminate()
-{
-    m_storageManager-&gt;applicationWillTerminate();
-}
-
-void WebContext::processDidFinishLaunching(WebProcessProxy* process)
-{
-    ASSERT(m_processes.contains(process));
-
-    if (!m_visitedLinksPopulated) {
-        populateVisitedLinks();
-        m_visitedLinksPopulated = true;
-    }
-
-    // Sometimes the memorySampler gets initialized after process initialization has happened but before the process has finished launching
-    // so check if it needs to be started here
-    if (m_memorySamplerEnabled) {
-        SandboxExtension::Handle sampleLogSandboxHandle;        
-        double now = WTF::currentTime();
-        String sampleLogFilePath = String::format(&quot;WebProcess%llupid%d&quot;, static_cast&lt;unsigned long long&gt;(now), process-&gt;processIdentifier());
-        sampleLogFilePath = SandboxExtension::createHandleForTemporaryFile(sampleLogFilePath, SandboxExtension::ReadWrite, sampleLogSandboxHandle);
-        
-        process-&gt;send(Messages::WebProcess::StartMemorySampler(sampleLogSandboxHandle, sampleLogFilePath, m_memorySamplerInterval), 0);
-    }
-
-    m_connectionClient.didCreateConnection(this, process-&gt;webConnection());
-}
-
-void WebContext::disconnectProcess(WebProcessProxy* process)
-{
-    ASSERT(m_processes.contains(process));
-
-    if (m_haveInitialEmptyProcess &amp;&amp; process == m_processes.last())
-        m_haveInitialEmptyProcess = false;
-
-    // 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.
-    // Clearing everything causes assertion failures, so it's less trouble to skip that for now.
-    if (m_processModel != ProcessModelSharedSecondaryProcess) {
-        RefPtr&lt;WebProcessProxy&gt; protect(process);
-        if (m_processWithPageCache == process)
-            m_processWithPageCache = 0;
-
-        static_cast&lt;WebContextSupplement*&gt;(supplement&lt;WebGeolocationManagerProxy&gt;())-&gt;processDidClose(process);
-
-        m_processes.remove(m_processes.find(process));
-        return;
-    }
-
-    WebContextSupplementMap::const_iterator it = m_supplements.begin();
-    WebContextSupplementMap::const_iterator end = m_supplements.end();
-    for (; it != end; ++it)
-        it-&gt;value-&gt;processDidClose(process);
-
-    // The vector may have the last reference to process proxy, which in turn may have the last reference to the context.
-    // Since vector elements are destroyed in place, we would recurse into WebProcessProxy destructor
-    // if it were invoked from Vector::remove(). RefPtr delays destruction until it's safe.
-    RefPtr&lt;WebProcessProxy&gt; protect(process);
-    if (m_processWithPageCache == process)
-        m_processWithPageCache = 0;
-    m_processes.remove(m_processes.find(process));
-}
-
-WebProcessProxy&amp; WebContext::createNewWebProcessRespectingProcessCountLimit()
-{
-    if (m_processes.size() &lt; m_webProcessCountLimit)
-        return createNewWebProcess();
-
-    // Choose the process with fewest pages.
-    auto&amp; process = *std::min_element(m_processes.begin(), m_processes.end(), [](const RefPtr&lt;WebProcessProxy&gt;&amp; a, const RefPtr&lt;WebProcessProxy&gt;&amp; b) {
-        return a-&gt;pageCount() &lt; b-&gt;pageCount();
-    });
-
-    return *process;
-}
-
-PassRefPtr&lt;WebPageProxy&gt; WebContext::createWebPage(PageClient&amp; pageClient, WebPageConfiguration configuration)
-{
-    if (!configuration.pageGroup)
-        configuration.pageGroup = m_defaultPageGroup.ptr();
-    if (!configuration.preferences)
-        configuration.preferences = &amp;configuration.pageGroup-&gt;preferences();
-    if (!configuration.visitedLinkProvider)
-        configuration.visitedLinkProvider = m_visitedLinkProvider.get();
-    if (!configuration.websiteDataStore) {
-        ASSERT(!configuration.sessionID.isValid());
-        configuration.websiteDataStore = m_websiteDataStore.get();
-        configuration.sessionID = configuration.preferences-&gt;privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID();
-    }
-
-    RefPtr&lt;WebProcessProxy&gt; process;
-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
-        process = &amp;ensureSharedWebProcess();
-    } else {
-        if (m_haveInitialEmptyProcess) {
-            process = m_processes.last();
-            m_haveInitialEmptyProcess = false;
-        } else if (configuration.relatedPage) {
-            // Sharing processes, e.g. when creating the page via window.open().
-            process = &amp;configuration.relatedPage-&gt;process();
-        } else
-            process = &amp;createNewWebProcessRespectingProcessCountLimit();
-    }
-
-    return process-&gt;createWebPage(pageClient, WTF::move(configuration));
-}
-
-DownloadProxy* WebContext::download(WebPageProxy* initiatingPage, const ResourceRequest&amp; request)
-{
-    DownloadProxy* downloadProxy = createDownloadProxy(request);
-    uint64_t initiatingPageID = initiatingPage ? initiatingPage-&gt;pageID() : 0;
-
-#if ENABLE(NETWORK_PROCESS)
-    if (usesNetworkProcess() &amp;&amp; networkProcess()) {
-        // FIXME (NetworkProcess): Replicate whatever FrameLoader::setOriginalURLForDownloadRequest does with the request here.
-        networkProcess()-&gt;send(Messages::NetworkProcess::DownloadRequest(downloadProxy-&gt;downloadID(), request), 0);
-        return downloadProxy;
-    }
-#endif
-
-    m_processes[0]-&gt;send(Messages::WebProcess::DownloadRequest(downloadProxy-&gt;downloadID(), initiatingPageID, request), 0);
-    return downloadProxy;
-}
-
-DownloadProxy* WebContext::resumeDownload(const API::Data* resumeData, const String&amp; path)
-{
-    DownloadProxy* downloadProxy = createDownloadProxy(ResourceRequest());
-
-    SandboxExtension::Handle sandboxExtensionHandle;
-    if (!path.isEmpty())
-        SandboxExtension::createHandle(path, SandboxExtension::ReadWrite, sandboxExtensionHandle);
-
-#if ENABLE(NETWORK_PROCESS)
-    if (usesNetworkProcess() &amp;&amp; networkProcess()) {
-        networkProcess()-&gt;send(Messages::NetworkProcess::ResumeDownload(downloadProxy-&gt;downloadID(), resumeData-&gt;dataReference(), path, sandboxExtensionHandle), 0);
-        return downloadProxy;
-    }
-#endif
-
-    m_processes[0]-&gt;send(Messages::WebProcess::ResumeDownload(downloadProxy-&gt;downloadID(), resumeData-&gt;dataReference(), path, sandboxExtensionHandle), 0);
-    return downloadProxy;
-}
-
-void WebContext::postMessageToInjectedBundle(const String&amp; messageName, API::Object* messageBody)
-{
-    if (m_processes.isEmpty()) {
-        if (m_processModel == ProcessModelSharedSecondaryProcess)
-            m_messagesToInjectedBundlePostedToEmptyContext.append(std::make_pair(messageName, messageBody));
-        return;
-    }
-
-    for (auto&amp; process : m_processes) {
-        // FIXME: Return early if the message body contains any references to WKPageRefs/WKFrameRefs etc. since they're local to a process.
-        IPC::ArgumentEncoder messageData;
-        messageData.encode(messageName);
-        messageData.encode(WebContextUserMessageEncoder(messageBody, *process.get()));
-
-        process-&gt;send(Messages::WebProcess::PostInjectedBundleMessage(IPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
-    }
-}
-
-// InjectedBundle client
-
-void WebContext::didReceiveMessageFromInjectedBundle(const String&amp; messageName, API::Object* messageBody)
-{
-    m_injectedBundleClient.didReceiveMessageFromInjectedBundle(this, messageName, messageBody);
-}
-
-void WebContext::didReceiveSynchronousMessageFromInjectedBundle(const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData)
-{
-    m_injectedBundleClient.didReceiveSynchronousMessageFromInjectedBundle(this, messageName, messageBody, returnData);
-}
-
-void WebContext::populateVisitedLinks()
-{
-    m_historyClient-&gt;populateVisitedLinks(*this);
-}
-
-WebContext::Statistics&amp; WebContext::statistics()
-{
-    static Statistics statistics = Statistics();
-
-    return statistics;
-}
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-void WebContext::setAdditionalPluginsDirectory(const String&amp; directory)
-{
-    Vector&lt;String&gt; directories;
-    directories.append(directory);
-
-    m_pluginInfoStore.setAdditionalPluginsDirectories(directories);
-}
-#endif // ENABLE(NETSCAPE_PLUGIN_API)
-
-void WebContext::setAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
-{
-    m_alwaysUsesComplexTextCodePath = alwaysUseComplexText;
-    sendToAllProcesses(Messages::WebProcess::SetAlwaysUsesComplexTextCodePath(alwaysUseComplexText));
-}
-
-void WebContext::setShouldUseFontSmoothing(bool useFontSmoothing)
-{
-    m_shouldUseFontSmoothing = useFontSmoothing;
-    sendToAllProcesses(Messages::WebProcess::SetShouldUseFontSmoothing(useFontSmoothing));
-}
-
-void WebContext::registerURLSchemeAsEmptyDocument(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsEmptyDocument.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsEmptyDocument(urlScheme));
-}
-
-void WebContext::registerURLSchemeAsSecure(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsSecure.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsSecure(urlScheme));
-}
-
-void WebContext::setDomainRelaxationForbiddenForURLScheme(const String&amp; urlScheme)
-{
-    m_schemesToSetDomainRelaxationForbiddenFor.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::SetDomainRelaxationForbiddenForURLScheme(urlScheme));
-}
-
-void WebContext::setCanHandleHTTPSServerTrustEvaluation(bool value)
-{
-#if ENABLE(NETWORK_PROCESS)
-    m_canHandleHTTPSServerTrustEvaluation = value;
-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess) {
-        m_networkProcess-&gt;send(Messages::NetworkProcess::SetCanHandleHTTPSServerTrustEvaluation(value), 0);
-        return;
-    }
-#else
-    UNUSED_PARAM(value);
-#endif
-}
-
-void WebContext::registerURLSchemeAsLocal(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsLocal.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsLocal(urlScheme));
-}
-
-void WebContext::registerURLSchemeAsNoAccess(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsNoAccess.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsNoAccess(urlScheme));
-}
-
-void WebContext::registerURLSchemeAsDisplayIsolated(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsDisplayIsolated.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsDisplayIsolated(urlScheme));
-}
-
-void WebContext::registerURLSchemeAsCORSEnabled(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsCORSEnabled.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCORSEnabled(urlScheme));
-}
-
-HashSet&lt;String&gt;&amp; WebContext::globalURLSchemesWithCustomProtocolHandlers()
-{
-    static NeverDestroyed&lt;HashSet&lt;String&gt;&gt; set;
-    return set;
-}
-
-void WebContext::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp; urlScheme)
-{
-    if (!urlScheme)
-        return;
-
-    String schemeLower = urlScheme.lower();
-    globalURLSchemesWithCustomProtocolHandlers().add(schemeLower);
-    for (auto* context : allContexts())
-        context-&gt;registerSchemeForCustomProtocol(schemeLower);
-}
-
-void WebContext::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp; urlScheme)
-{
-    if (!urlScheme)
-        return;
-
-    String schemeLower = urlScheme.lower();
-    globalURLSchemesWithCustomProtocolHandlers().remove(schemeLower);
-    for (auto* context : allContexts())
-        context-&gt;unregisterSchemeForCustomProtocol(schemeLower);
-}
-
-#if ENABLE(CACHE_PARTITIONING)
-void WebContext::registerURLSchemeAsCachePartitioned(const String&amp; urlScheme)
-{
-    m_schemesToRegisterAsCachePartitioned.add(urlScheme);
-    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCachePartitioned(urlScheme));
-}
-#endif
-
-void WebContext::setCacheModel(CacheModel cacheModel)
-{
-    m_cacheModel = cacheModel;
-    sendToAllProcesses(Messages::WebProcess::SetCacheModel(static_cast&lt;uint32_t&gt;(m_cacheModel)));
-
-    // FIXME: Inform the Network Process if in use.
-}
-
-void WebContext::setDefaultRequestTimeoutInterval(double timeoutInterval)
-{
-    sendToAllProcesses(Messages::WebProcess::SetDefaultRequestTimeoutInterval(timeoutInterval));
-}
-
-DownloadProxy* WebContext::createDownloadProxy(const ResourceRequest&amp; request)
-{
-#if ENABLE(NETWORK_PROCESS)
-    if (usesNetworkProcess()) {
-        ensureNetworkProcess();
-        ASSERT(m_networkProcess);
-        return m_networkProcess-&gt;createDownloadProxy(request);
-    }
-#endif
-
-    return ensureSharedWebProcess().createDownloadProxy(request);
-}
-
-void WebContext::addMessageReceiver(IPC::StringReference messageReceiverName, IPC::MessageReceiver&amp; messageReceiver)
-{
-    m_messageReceiverMap.addMessageReceiver(messageReceiverName, messageReceiver);
-}
-
-void WebContext::addMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID, IPC::MessageReceiver&amp; messageReceiver)
-{
-    m_messageReceiverMap.addMessageReceiver(messageReceiverName, destinationID, messageReceiver);
-}
-
-void WebContext::removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID)
-{
-    m_messageReceiverMap.removeMessageReceiver(messageReceiverName, destinationID);
-}
-
-bool WebContext::dispatchMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder)
-{
-    return m_messageReceiverMap.dispatchMessage(connection, decoder);
-}
-
-bool WebContext::dispatchSyncMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp; replyEncoder)
-{
-    return m_messageReceiverMap.dispatchSyncMessage(connection, decoder, replyEncoder);
-}
-
-void WebContext::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder)
-{
-    if (decoder.messageReceiverName() == Messages::WebContext::messageReceiverName()) {
-        didReceiveWebContextMessage(connection, decoder);
-        return;
-    }
-
-    if (decoder.messageReceiverName() == WebContextLegacyMessages::messageReceiverName()
-        &amp;&amp; decoder.messageName() == WebContextLegacyMessages::postMessageMessageName()) {
-        String messageName;
-        RefPtr&lt;API::Object&gt; messageBody;
-        WebContextUserMessageDecoder messageBodyDecoder(messageBody, *WebProcessProxy::fromConnection(connection));
-        if (!decoder.decode(messageName))
-            return;
-        if (!decoder.decode(messageBodyDecoder))
-            return;
-
-        didReceiveMessageFromInjectedBundle(messageName, messageBody.get());
-        return;
-    }
-
-    ASSERT_NOT_REACHED();
-}
-
-void WebContext::didReceiveSyncMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp; replyEncoder)
-{
-    if (decoder.messageReceiverName() == Messages::WebContext::messageReceiverName()) {
-        didReceiveSyncWebContextMessage(connection, decoder, replyEncoder);
-        return;
-    }
-
-    if (decoder.messageReceiverName() == WebContextLegacyMessages::messageReceiverName()
-        &amp;&amp; decoder.messageName() == WebContextLegacyMessages::postSynchronousMessageMessageName()) {
-        // FIXME: We should probably encode something in the case that the arguments do not decode correctly.
-
-        WebProcessProxy* process = WebProcessProxy::fromConnection(connection);
-
-        String messageName;
-        RefPtr&lt;API::Object&gt; messageBody;
-        WebContextUserMessageDecoder messageBodyDecoder(messageBody, *process);
-        if (!decoder.decode(messageName))
-            return;
-        if (!decoder.decode(messageBodyDecoder))
-            return;
-
-        RefPtr&lt;API::Object&gt; returnData;
-        didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody.get(), returnData);
-        replyEncoder-&gt;encode(WebContextUserMessageEncoder(returnData.get(), *process));
-        return;
-    }
-
-    ASSERT_NOT_REACHED();
-}
-
-void WebContext::setEnhancedAccessibility(bool flag)
-{
-    sendToAllProcesses(Messages::WebProcess::SetEnhancedAccessibility(flag));
-}
-    
-void WebContext::startMemorySampler(const double interval)
-{    
-    // For new WebProcesses we will also want to start the Memory Sampler
-    m_memorySamplerEnabled = true;
-    m_memorySamplerInterval = interval;
-    
-    // For UIProcess
-#if ENABLE(MEMORY_SAMPLER)
-    WebMemorySampler::shared()-&gt;start(interval);
-#endif
-    
-    // For WebProcess
-    SandboxExtension::Handle sampleLogSandboxHandle;    
-    double now = WTF::currentTime();
-    String sampleLogFilePath = String::format(&quot;WebProcess%llu&quot;, static_cast&lt;unsigned long long&gt;(now));
-    sampleLogFilePath = SandboxExtension::createHandleForTemporaryFile(sampleLogFilePath, SandboxExtension::ReadWrite, sampleLogSandboxHandle);
-    
-    sendToAllProcesses(Messages::WebProcess::StartMemorySampler(sampleLogSandboxHandle, sampleLogFilePath, interval));
-}
-
-void WebContext::stopMemorySampler()
-{    
-    // For WebProcess
-    m_memorySamplerEnabled = false;
-    
-    // For UIProcess
-#if ENABLE(MEMORY_SAMPLER)
-    WebMemorySampler::shared()-&gt;stop();
-#endif
-
-    sendToAllProcesses(Messages::WebProcess::StopMemorySampler());
-}
-
-String WebContext::applicationCacheDirectory() const
-{
-    if (!m_overrideApplicationCacheDirectory.isEmpty())
-        return m_overrideApplicationCacheDirectory;
-
-    return platformDefaultApplicationCacheDirectory();
-}
-
-void WebContext::setIconDatabasePath(const String&amp; path)
-{
-    m_overrideIconDatabasePath = path;
-    if (!m_overrideIconDatabasePath.isEmpty()) {
-        // This implicitly enables the database on UI process side.
-        m_iconDatabase-&gt;setDatabasePath(path);
-    }
-}
-
-String WebContext::iconDatabasePath() const
-{
-    if (!m_overrideIconDatabasePath.isNull())
-        return m_overrideIconDatabasePath;
-
-    return platformDefaultIconDatabasePath();
-}
-
-String WebContext::diskCacheDirectory() const
-{
-    if (!m_overrideDiskCacheDirectory.isEmpty())
-        return m_overrideDiskCacheDirectory;
-
-    return platformDefaultDiskCacheDirectory();
-}
-
-String WebContext::cookieStorageDirectory() const
-{
-    if (!m_overrideCookieStorageDirectory.isEmpty())
-        return m_overrideCookieStorageDirectory;
-
-    return platformDefaultCookieStorageDirectory();
-}
-
-void WebContext::useTestingNetworkSession()
-{
-    ASSERT(m_processes.isEmpty());
-#if ENABLE(NETWORK_PROCESS)
-    ASSERT(!m_networkProcess);
-
-    if (m_networkProcess)
-        return;
-#endif
-
-    if (!m_processes.isEmpty())
-        return;
-
-    m_shouldUseTestingNetworkSession = true;
-}
-
-void WebContext::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String&amp; host)
-{
-#if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess) {
-        m_networkProcess-&gt;send(Messages::NetworkProcess::AllowSpecificHTTPSCertificateForHost(certificate-&gt;certificateInfo(), host), 0);
-        return;
-    }
-#endif
-
-#if USE(SOUP)
-    m_processes[0]-&gt;send(Messages::WebProcess::AllowSpecificHTTPSCertificateForHost(certificate-&gt;certificateInfo(), host), 0);
-    return;
-#else
-    UNUSED_PARAM(certificate);
-    UNUSED_PARAM(host);
-#endif
-
-#if !PLATFORM(IOS)
-    ASSERT_NOT_REACHED();
-#endif
-}
-
-void WebContext::setHTTPPipeliningEnabled(bool enabled)
-{
-#if PLATFORM(COCOA)
-    ResourceRequest::setHTTPPipeliningEnabled(enabled);
-#else
-    UNUSED_PARAM(enabled);
-#endif
-}
-
-bool WebContext::httpPipeliningEnabled() const
-{
-#if PLATFORM(COCOA)
-    return ResourceRequest::httpPipeliningEnabled();
-#else
-    return false;
-#endif
-}
-
-void WebContext::getStatistics(uint32_t statisticsMask, std::function&lt;void (ImmutableDictionary*, CallbackBase::Error)&gt; callbackFunction)
-{
-    if (!statisticsMask) {
-        callbackFunction(nullptr, CallbackBase::Error::Unknown);
-        return;
-    }
-
-    RefPtr&lt;StatisticsRequest&gt; request = StatisticsRequest::create(DictionaryCallback::create(WTF::move(callbackFunction)));
-
-    if (statisticsMask &amp; StatisticsRequestTypeWebContent)
-        requestWebContentStatistics(request.get());
-    
-    if (statisticsMask &amp; StatisticsRequestTypeNetworking)
-        requestNetworkingStatistics(request.get());
-}
-
-void WebContext::requestWebContentStatistics(StatisticsRequest* request)
-{
-    if (m_processModel == ProcessModelSharedSecondaryProcess) {
-        if (m_processes.isEmpty())
-            return;
-        
-        uint64_t requestID = request-&gt;addOutstandingRequest();
-        m_statisticsRequests.set(requestID, request);
-        m_processes[0]-&gt;send(Messages::WebProcess::GetWebCoreStatistics(requestID), 0);
-
-    } else {
-        // FIXME (Multi-WebProcess) &lt;rdar://problem/13200059&gt;: Make getting statistics from multiple WebProcesses work.
-    }
-}
-
-void WebContext::requestNetworkingStatistics(StatisticsRequest* request)
-{
-    bool networkProcessUnavailable;
-#if ENABLE(NETWORK_PROCESS)
-    networkProcessUnavailable = !m_usesNetworkProcess || !m_networkProcess;
-#else
-    networkProcessUnavailable = true;
-#endif
-
-    if (networkProcessUnavailable) {
-        LOG_ERROR(&quot;Attempt to get NetworkProcess statistics but the NetworkProcess is unavailable&quot;);
-        return;
-    }
-
-#if ENABLE(NETWORK_PROCESS)
-    uint64_t requestID = request-&gt;addOutstandingRequest();
-    m_statisticsRequests.set(requestID, request);
-    m_networkProcess-&gt;send(Messages::NetworkProcess::GetNetworkProcessStatistics(requestID), 0);
-#else
-    UNUSED_PARAM(request);
-#endif
-}
-
-#if !PLATFORM(COCOA)
-void WebContext::dummy(bool&amp;)
-{
-}
-#endif
-
-void WebContext::didGetStatistics(const StatisticsData&amp; statisticsData, uint64_t requestID)
-{
-    RefPtr&lt;StatisticsRequest&gt; request = m_statisticsRequests.take(requestID);
-    if (!request) {
-        LOG_ERROR(&quot;Cannot report networking statistics.&quot;);
-        return;
-    }
-
-    request-&gt;completedRequest(requestID, statisticsData);
-}
-
-void WebContext::garbageCollectJavaScriptObjects()
-{
-    sendToAllProcesses(Messages::WebProcess::GarbageCollectJavaScriptObjects());
-}
-
-void WebContext::setJavaScriptGarbageCollectorTimerEnabled(bool flag)
-{
-    sendToAllProcesses(Messages::WebProcess::SetJavaScriptGarbageCollectorTimerEnabled(flag));
-}
-
-void WebContext::addPlugInAutoStartOriginHash(const String&amp; pageOrigin, unsigned plugInOriginHash, SessionID sessionID)
-{
-    m_plugInAutoStartProvider.addAutoStartOriginHash(pageOrigin, plugInOriginHash, sessionID);
-}
-
-void WebContext::plugInDidReceiveUserInteraction(unsigned plugInOriginHash, SessionID sessionID)
-{
-    m_plugInAutoStartProvider.didReceiveUserInteraction(plugInOriginHash, sessionID);
-}
-
-PassRefPtr&lt;ImmutableDictionary&gt; WebContext::plugInAutoStartOriginHashes() const
-{
-    return m_plugInAutoStartProvider.autoStartOriginsTableCopy();
-}
-
-void WebContext::setPlugInAutoStartOriginHashes(ImmutableDictionary&amp; dictionary)
-{
-    m_plugInAutoStartProvider.setAutoStartOriginsTable(dictionary);
-}
-
-void WebContext::setPlugInAutoStartOrigins(API::Array&amp; array)
-{
-    m_plugInAutoStartProvider.setAutoStartOriginsArray(array);
-}
-
-void WebContext::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime(ImmutableDictionary&amp; dictionary, double time)
-{
-    m_plugInAutoStartProvider.setAutoStartOriginsFilteringOutEntriesAddedAfterTime(dictionary, time);
-}
-
-void WebContext::registerSchemeForCustomProtocol(const String&amp; scheme)
-{
-    sendToNetworkingProcess(Messages::CustomProtocolManager::RegisterScheme(scheme));
-}
-
-void WebContext::unregisterSchemeForCustomProtocol(const String&amp; scheme)
-{
-    sendToNetworkingProcess(Messages::CustomProtocolManager::UnregisterScheme(scheme));
-}
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-void WebContext::pluginInfoStoreDidLoadPlugins(PluginInfoStore* store)
-{
-#ifdef NDEBUG
-    UNUSED_PARAM(store);
-#endif
-    ASSERT(store == &amp;m_pluginInfoStore);
-
-    Vector&lt;PluginModuleInfo&gt; pluginModules = m_pluginInfoStore.plugins();
-
-    Vector&lt;RefPtr&lt;API::Object&gt;&gt; plugins;
-    plugins.reserveInitialCapacity(pluginModules.size());
-
-    for (const auto&amp; pluginModule : pluginModules) {
-        ImmutableDictionary::MapType map;
-        map.set(ASCIILiteral(&quot;path&quot;), API::String::create(pluginModule.path));
-        map.set(ASCIILiteral(&quot;name&quot;), API::String::create(pluginModule.info.name));
-        map.set(ASCIILiteral(&quot;file&quot;), API::String::create(pluginModule.info.file));
-        map.set(ASCIILiteral(&quot;desc&quot;), API::String::create(pluginModule.info.desc));
-
-        Vector&lt;RefPtr&lt;API::Object&gt;&gt; mimeTypes;
-        mimeTypes.reserveInitialCapacity(pluginModule.info.mimes.size());
-        for (const auto&amp; mimeClassInfo : pluginModule.info.mimes)
-            mimeTypes.uncheckedAppend(API::String::create(mimeClassInfo.type));
-        map.set(ASCIILiteral(&quot;mimes&quot;), API::Array::create(WTF::move(mimeTypes)));
-
-#if PLATFORM(COCOA)
-        map.set(ASCIILiteral(&quot;bundleId&quot;), API::String::create(pluginModule.bundleIdentifier));
-        map.set(ASCIILiteral(&quot;version&quot;), API::String::create(pluginModule.versionString));
-#endif
-
-        plugins.uncheckedAppend(ImmutableDictionary::create(WTF::move(map)));
-    }
-
-    m_client.plugInInformationBecameAvailable(this, API::Array::create(WTF::move(plugins)).get());
-}
-#endif
-    
-void WebContext::setMemoryCacheDisabled(bool disabled)
-{
-    m_memoryCacheDisabled = disabled;
-    sendToAllProcesses(Messages::WebProcess::SetMemoryCacheDisabled(disabled));
-}
-
-} // namespace WebKit
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContexth"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/WebContext.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContext.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,693 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebContext_h
-#define WebContext_h
-
-#include &quot;APIObject.h&quot;
-#include &quot;DownloadProxyMap.h&quot;
-#include &quot;GenericCallback.h&quot;
-#include &quot;ImmutableDictionary.h&quot;
-#include &quot;MessageReceiver.h&quot;
-#include &quot;MessageReceiverMap.h&quot;
-#include &quot;PlugInAutoStartProvider.h&quot;
-#include &quot;PluginInfoStore.h&quot;
-#include &quot;ProcessModel.h&quot;
-#include &quot;ProcessThrottler.h&quot;
-#include &quot;StatisticsRequest.h&quot;
-#include &quot;StorageManager.h&quot;
-#include &quot;VisitedLinkProvider.h&quot;
-#include &quot;WebContextClient.h&quot;
-#include &quot;WebContextConnectionClient.h&quot;
-#include &quot;WebContextInjectedBundleClient.h&quot;
-#include &quot;WebProcessProxy.h&quot;
-#include &lt;WebCore/LinkHash.h&gt;
-#include &lt;WebCore/SessionID.h&gt;
-#include &lt;wtf/Forward.h&gt;
-#include &lt;wtf/HashMap.h&gt;
-#include &lt;wtf/HashSet.h&gt;
-#include &lt;wtf/PassRefPtr.h&gt;
-#include &lt;wtf/RefCounter.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
-#include &lt;wtf/text/StringHash.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-#if ENABLE(DATABASE_PROCESS)
-#include &quot;DatabaseProcessProxy.h&quot;
-#endif
-
-#if ENABLE(NETWORK_PROCESS)
-#include &quot;NetworkProcessProxy.h&quot;
-#endif
-
-#if PLATFORM(COCOA)
-OBJC_CLASS NSMutableDictionary;
-OBJC_CLASS NSObject;
-OBJC_CLASS NSString;
-#endif
-
-namespace API {
-class DownloadClient;
-class LegacyContextHistoryClient;
-}
-
-namespace WebKit {
-
-class DownloadProxy;
-class WebContextSupplement;
-class WebIconDatabase;
-class WebPageGroup;
-class WebPageProxy;
-struct StatisticsData;
-struct WebPageConfiguration;
-struct WebProcessCreationParameters;
-    
-typedef GenericCallback&lt;ImmutableDictionary*&gt; DictionaryCallback;
-
-#if ENABLE(NETWORK_PROCESS)
-struct NetworkProcessCreationParameters;
-#endif
-
-#if PLATFORM(COCOA)
-int networkProcessLatencyQOS();
-int networkProcessThroughputQOS();
-int webProcessLatencyQOS();
-int webProcessThroughputQOS();
-#endif
-
-struct WebContextConfiguration {
-    String injectedBundlePath;
-    String localStorageDirectory;
-    String webSQLDatabaseDirectory;
-    String indexedDBDatabaseDirectory;
-    String mediaKeysStorageDirectory;
-};
-
-class WebContext : public API::ObjectImpl&lt;API::Object::Type::Context&gt;, private IPC::MessageReceiver
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    , private PluginInfoStoreClient
-#endif
-    {
-public:
-    static void applyPlatformSpecificConfigurationDefaults(WebContextConfiguration&amp;);
-
-    WebContext(WebContextConfiguration);
-        
-    static PassRefPtr&lt;WebContext&gt; create(WebContextConfiguration);
-    virtual ~WebContext();
-
-    static const Vector&lt;WebContext*&gt;&amp; allContexts();
-
-    template &lt;typename T&gt;
-    T* supplement()
-    {
-        return static_cast&lt;T*&gt;(m_supplements.get(T::supplementName()));
-    }
-
-    template &lt;typename T&gt;
-    void addSupplement()
-    {
-        m_supplements.add(T::supplementName(), T::create(this));
-    }
-
-    void addMessageReceiver(IPC::StringReference messageReceiverName, IPC::MessageReceiver&amp;);
-    void addMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID, IPC::MessageReceiver&amp;);
-    void removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID);
-
-    bool dispatchMessage(IPC::Connection*, IPC::MessageDecoder&amp;);
-    bool dispatchSyncMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;);
-
-    void initializeClient(const WKContextClientBase*);
-    void initializeInjectedBundleClient(const WKContextInjectedBundleClientBase*);
-    void initializeConnectionClient(const WKContextConnectionClientBase*);
-    void setHistoryClient(std::unique_ptr&lt;API::LegacyContextHistoryClient&gt;);
-    void setDownloadClient(std::unique_ptr&lt;API::DownloadClient&gt;);
-
-    void setProcessModel(ProcessModel); // Can only be called when there are no processes running.
-    ProcessModel processModel() const { return m_processModel; }
-
-    void setMaximumNumberOfProcesses(unsigned); // Can only be called when there are no processes running.
-    unsigned maximumNumberOfProcesses() const { return m_webProcessCountLimit; }
-
-    const Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt;&amp; processes() const { return m_processes; }
-
-    // WebProcess or NetworkProcess as approporiate for current process model. The connection must be non-null.
-    IPC::Connection* networkingProcessConnection();
-
-    template&lt;typename T&gt; void sendToAllProcesses(const T&amp; message);
-    template&lt;typename T&gt; void sendToAllProcessesRelaunchingThemIfNecessary(const T&amp; message);
-    template&lt;typename T&gt; void sendToOneProcess(T&amp;&amp; message);
-
-    // Sends the message to WebProcess or NetworkProcess as approporiate for current process model.
-    template&lt;typename T&gt; void sendToNetworkingProcess(T&amp;&amp; message);
-    template&lt;typename T&gt; void sendToNetworkingProcessRelaunchingIfNecessary(T&amp;&amp; message);
-
-    // Sends the message to WebProcess or DatabaseProcess as approporiate for current process model.
-    template&lt;typename T&gt; void sendToDatabaseProcessRelaunchingIfNecessary(T&amp;&amp; message);
-
-    void processWillOpenConnection(WebProcessProxy*);
-    void processWillCloseConnection(WebProcessProxy*);
-    void processDidFinishLaunching(WebProcessProxy*);
-
-    void applicationWillTerminate();
-    // Disconnect the process from the context.
-    void disconnectProcess(WebProcessProxy*);
-
-    StorageManager&amp; storageManager() const { return *m_storageManager; }
-
-    PassRefPtr&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, WebPageConfiguration);
-
-    const String&amp; injectedBundlePath() const { return m_injectedBundlePath; }
-
-    DownloadProxy* download(WebPageProxy* initiatingPage, const WebCore::ResourceRequest&amp;);
-    DownloadProxy* resumeDownload(const API::Data* resumeData, const String&amp; path);
-
-    void setInjectedBundleInitializationUserData(PassRefPtr&lt;API::Object&gt; userData) { m_injectedBundleInitializationUserData = userData; }
-
-    void postMessageToInjectedBundle(const String&amp;, API::Object*);
-
-    // InjectedBundle client
-    void didReceiveMessageFromInjectedBundle(const String&amp;, API::Object*);
-    void didReceiveSynchronousMessageFromInjectedBundle(const String&amp;, API::Object*, RefPtr&lt;API::Object&gt;&amp; returnData);
-
-    void populateVisitedLinks();
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    void setAdditionalPluginsDirectory(const String&amp;);
-
-    PluginInfoStore&amp; pluginInfoStore() { return m_pluginInfoStore; }
-#endif
-
-    void setAlwaysUsesComplexTextCodePath(bool);
-    void setShouldUseFontSmoothing(bool);
-    
-    void registerURLSchemeAsEmptyDocument(const String&amp;);
-    void registerURLSchemeAsSecure(const String&amp;);
-    void setDomainRelaxationForbiddenForURLScheme(const String&amp;);
-    void setCanHandleHTTPSServerTrustEvaluation(bool);
-    void registerURLSchemeAsLocal(const String&amp;);
-    void registerURLSchemeAsNoAccess(const String&amp;);
-    void registerURLSchemeAsDisplayIsolated(const String&amp;);
-    void registerURLSchemeAsCORSEnabled(const String&amp;);
-#if ENABLE(CACHE_PARTITIONING)
-    void registerURLSchemeAsCachePartitioned(const String&amp;);
-#endif
-
-    VisitedLinkProvider&amp; visitedLinkProvider() { return *m_visitedLinkProvider; }
-
-    // MessageReceiver.
-    virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
-    virtual void didReceiveSyncMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;) override;
-
-    void setCacheModel(CacheModel);
-    CacheModel cacheModel() const { return m_cacheModel; }
-
-    void setDefaultRequestTimeoutInterval(double);
-
-    void startMemorySampler(const double interval);
-    void stopMemorySampler();
-
-#if USE(SOUP)
-    void setInitialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy) { m_initialHTTPCookieAcceptPolicy = policy; }
-#endif
-    void setEnhancedAccessibility(bool);
-    
-    // Downloads.
-    DownloadProxy* createDownloadProxy(const WebCore::ResourceRequest&amp;);
-    API::DownloadClient&amp; downloadClient() { return *m_downloadClient; }
-
-    API::LegacyContextHistoryClient&amp; historyClient() { return *m_historyClient; }
-    WebContextClient&amp; client() { return m_client; }
-
-    WebIconDatabase* iconDatabase() const { return m_iconDatabase.get(); }
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    WebPluginSiteDataManager* pluginSiteDataManager() const { return m_pluginSiteDataManager.get(); }
-#endif
-
-    struct Statistics {
-        unsigned wkViewCount;
-        unsigned wkPageCount;
-        unsigned wkFrameCount;
-    };
-    static Statistics&amp; statistics();    
-
-    void setApplicationCacheDirectory(const String&amp; dir) { m_overrideApplicationCacheDirectory = dir; }
-    void setIconDatabasePath(const String&amp;);
-    String iconDatabasePath() const;
-    void setDiskCacheDirectory(const String&amp; dir) { m_overrideDiskCacheDirectory = dir; }
-    void setCookieStorageDirectory(const String&amp; dir) { m_overrideCookieStorageDirectory = dir; }
-
-    void useTestingNetworkSession();
-
-    void allowSpecificHTTPSCertificateForHost(const WebCertificateInfo*, const String&amp; host);
-
-    WebProcessProxy&amp; ensureSharedWebProcess();
-    WebProcessProxy&amp; createNewWebProcessRespectingProcessCountLimit(); // Will return an existing one if limit is met.
-    void warmInitialProcess();
-
-    bool shouldTerminate(WebProcessProxy*);
-
-    void disableProcessTermination() { m_processTerminationEnabled = false; }
-    void enableProcessTermination();
-
-    // Defaults to false.
-    void setHTTPPipeliningEnabled(bool);
-    bool httpPipeliningEnabled() const;
-
-    void getStatistics(uint32_t statisticsMask, std::function&lt;void (ImmutableDictionary*, CallbackBase::Error)&gt;);
-    
-    void garbageCollectJavaScriptObjects();
-    void setJavaScriptGarbageCollectorTimerEnabled(bool flag);
-
-#if PLATFORM(COCOA)
-    static bool omitPDFSupport();
-#endif
-
-    void fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled);
-
-    void textCheckerStateChanged();
-
-    PassRefPtr&lt;ImmutableDictionary&gt; plugInAutoStartOriginHashes() const;
-    void setPlugInAutoStartOriginHashes(ImmutableDictionary&amp;);
-    void setPlugInAutoStartOrigins(API::Array&amp;);
-    void setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime(ImmutableDictionary&amp;, double time);
-
-    // Network Process Management
-
-    void setUsesNetworkProcess(bool);
-    bool usesNetworkProcess() const;
-
-#if ENABLE(NETWORK_PROCESS)
-    void ensureNetworkProcess();
-    NetworkProcessProxy* networkProcess() { return m_networkProcess.get(); }
-    void networkProcessCrashed(NetworkProcessProxy*);
-
-    void getNetworkProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt;);
-#endif
-
-#if ENABLE(DATABASE_PROCESS)
-    void ensureDatabaseProcess();
-    void getDatabaseProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt;);
-    void databaseProcessCrashed(DatabaseProcessProxy*);
-#endif
-
-#if PLATFORM(COCOA)
-    bool processSuppressionEnabled() const;
-#endif
-
-    void windowServerConnectionStateChanged();
-
-    static void willStartUsingPrivateBrowsing();
-    static void willStopUsingPrivateBrowsing();
-
-    static bool isEphemeralSession(WebCore::SessionID);
-
-#if USE(SOUP)
-    void setIgnoreTLSErrors(bool);
-    bool ignoreTLSErrors() const { return m_ignoreTLSErrors; }
-#endif
-
-    static void setInvalidMessageCallback(void (*)(WKStringRef));
-    static void didReceiveInvalidMessage(const IPC::StringReference&amp; messageReceiverName, const IPC::StringReference&amp; messageName);
-
-    void processDidCachePage(WebProcessProxy*);
-
-    bool isURLKnownHSTSHost(const String&amp; urlString, bool privateBrowsingEnabled) const;
-    void resetHSTSHosts();
-
-    void registerSchemeForCustomProtocol(const String&amp;);
-    void unregisterSchemeForCustomProtocol(const String&amp;);
-
-    static HashSet&lt;String&gt;&amp; globalURLSchemesWithCustomProtocolHandlers();
-    static void registerGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp;);
-    static void unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp;);
-
-#if PLATFORM(COCOA)
-    void updateProcessSuppressionState();
-
-    NSMutableDictionary *ensureBundleParameters();
-    NSMutableDictionary *bundleParameters() { return m_bundleParameters.get(); }
-#else
-    void updateProcessSuppressionState() const { }
-#endif
-
-    void setMemoryCacheDisabled(bool);
-
-    UserObservablePageToken userObservablePageCount()
-    {
-        return m_userObservablePageCounter.token&lt;UserObservablePageTokenType&gt;();
-    }
-
-    ProcessSuppressionDisabledToken processSuppressionDisabledForPageCount()
-    {
-        return m_processSuppressionDisabledForPageCounter.token&lt;ProcessSuppressionDisabledTokenType&gt;();
-    }
-
-private:
-    void platformInitialize();
-
-    void platformInitializeWebProcess(WebProcessCreationParameters&amp;);
-    void platformInvalidateContext();
-
-    WebProcessProxy&amp; createNewWebProcess();
-
-    void requestWebContentStatistics(StatisticsRequest*);
-    void requestNetworkingStatistics(StatisticsRequest*);
-
-#if ENABLE(NETWORK_PROCESS)
-    void platformInitializeNetworkProcess(NetworkProcessCreationParameters&amp;);
-#endif
-
-#if PLATFORM(IOS)
-    void writeWebContentToPasteboard(const WebCore::PasteboardWebContent&amp;);
-    void writeImageToPasteboard(const WebCore::PasteboardImage&amp;);
-    void writeStringToPasteboard(const String&amp; pasteboardType, const String&amp;);
-    void readStringFromPasteboard(uint64_t index, const String&amp; pasteboardType, WTF::String&amp;);
-    void readURLFromPasteboard(uint64_t index, const String&amp; pasteboardType, String&amp;);
-    void readBufferFromPasteboard(uint64_t index, const String&amp; pasteboardType, SharedMemory::Handle&amp;, uint64_t&amp; size);
-    void getPasteboardItemsCount(uint64_t&amp; itemsCount);
-#endif
-#if PLATFORM(COCOA)
-    void getPasteboardTypes(const String&amp; pasteboardName, Vector&lt;String&gt;&amp; pasteboardTypes);
-    void getPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, Vector&lt;String&gt;&amp; pathnames);
-    void getPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, String&amp;);
-    void getPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, SharedMemory::Handle&amp;, uint64_t&amp; size);
-    void pasteboardCopy(const String&amp; fromPasteboard, const String&amp; toPasteboard, uint64_t&amp; newChangeCount);
-    void getPasteboardChangeCount(const String&amp; pasteboardName, uint64_t&amp; changeCount);
-    void getPasteboardUniqueName(String&amp; pasteboardName);
-    void getPasteboardColor(const String&amp; pasteboardName, WebCore::Color&amp;);
-    void getPasteboardURL(const String&amp; pasteboardName, WTF::String&amp;);
-    void addPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount);
-    void setPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount);
-    void setPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const Vector&lt;String&gt;&amp; pathnames, uint64_t&amp; newChangeCount);
-    void setPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const String&amp;, uint64_t&amp; newChangeCount);
-    void setPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const SharedMemory::Handle&amp;, uint64_t size, uint64_t&amp; newChangeCount);
-#endif
-
-#if !PLATFORM(COCOA)
-    // FIXME: This a dummy message, to avoid breaking the build for platforms that don't require
-    // any synchronous messages, and should be removed when &lt;rdar://problem/8775115&gt; is fixed.
-    void dummy(bool&amp;);
-#endif
-
-    void didGetStatistics(const StatisticsData&amp;, uint64_t callbackID);
-
-    // Implemented in generated WebContextMessageReceiver.cpp
-    void didReceiveWebContextMessage(IPC::Connection*, IPC::MessageDecoder&amp;);
-    void didReceiveSyncWebContextMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;);
-
-    static void languageChanged(void* context);
-    void languageChanged();
-
-    String applicationCacheDirectory() const;
-    String platformDefaultApplicationCacheDirectory() const;
-
-    String platformDefaultIconDatabasePath() const;
-
-    static String platformDefaultLocalStorageDirectory();
-    static String platformDefaultIndexedDBDatabaseDirectory();
-    static String platformDefaultWebSQLDatabaseDirectory();
-    static String platformDefaultMediaKeysStorageDirectory();
-
-    String diskCacheDirectory() const;
-    String platformDefaultDiskCacheDirectory() const;
-
-    String cookieStorageDirectory() const;
-    String platformDefaultCookieStorageDirectory() const;
-
-#if PLATFORM(IOS)
-    String openGLCacheDirectory() const;
-    String parentBundleDirectory() const;
-    String networkingHSTSDatabasePath() const;
-    String webContentHSTSDatabasePath() const;
-    String containerTemporaryDirectory() const;
-#endif
-
-#if PLATFORM(COCOA)
-    void registerNotificationObservers();
-    void unregisterNotificationObservers();
-#endif
-
-    void addPlugInAutoStartOriginHash(const String&amp; pageOrigin, unsigned plugInOriginHash, WebCore::SessionID);
-    void plugInDidReceiveUserInteraction(unsigned plugInOriginHash, WebCore::SessionID);
-
-    void setAnyPageGroupMightHavePrivateBrowsingEnabled(bool);
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    // PluginInfoStoreClient:
-    virtual void pluginInfoStoreDidLoadPlugins(PluginInfoStore*) override;
-#endif
-
-    IPC::MessageReceiverMap m_messageReceiverMap;
-
-    ProcessModel m_processModel;
-    unsigned m_webProcessCountLimit; // The limit has no effect when process model is ProcessModelSharedSecondaryProcess.
-    
-    Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt; m_processes;
-    bool m_haveInitialEmptyProcess;
-
-    WebProcessProxy* m_processWithPageCache;
-
-    Ref&lt;WebPageGroup&gt; m_defaultPageGroup;
-
-    RefPtr&lt;API::Object&gt; m_injectedBundleInitializationUserData;
-    String m_injectedBundlePath;
-    WebContextInjectedBundleClient m_injectedBundleClient;
-
-    WebContextClient m_client;
-    WebContextConnectionClient m_connectionClient;
-    std::unique_ptr&lt;API::DownloadClient&gt; m_downloadClient;
-    std::unique_ptr&lt;API::LegacyContextHistoryClient&gt; m_historyClient;
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    PluginInfoStore m_pluginInfoStore;
-#endif
-    RefPtr&lt;VisitedLinkProvider&gt; m_visitedLinkProvider;
-    bool m_visitedLinksPopulated;
-
-    PlugInAutoStartProvider m_plugInAutoStartProvider;
-        
-    HashSet&lt;String&gt; m_schemesToRegisterAsEmptyDocument;
-    HashSet&lt;String&gt; m_schemesToRegisterAsSecure;
-    HashSet&lt;String&gt; m_schemesToSetDomainRelaxationForbiddenFor;
-    HashSet&lt;String&gt; m_schemesToRegisterAsLocal;
-    HashSet&lt;String&gt; m_schemesToRegisterAsNoAccess;
-    HashSet&lt;String&gt; m_schemesToRegisterAsDisplayIsolated;
-    HashSet&lt;String&gt; m_schemesToRegisterAsCORSEnabled;
-#if ENABLE(CACHE_PARTITIONING)
-    HashSet&lt;String&gt; m_schemesToRegisterAsCachePartitioned;
-#endif
-
-    bool m_alwaysUsesComplexTextCodePath;
-    bool m_shouldUseFontSmoothing;
-
-    // Messages that were posted before any pages were created.
-    // The client should use initialization messages instead, so that a restarted process would get the same state.
-    Vector&lt;std::pair&lt;String, RefPtr&lt;API::Object&gt;&gt;&gt; m_messagesToInjectedBundlePostedToEmptyContext;
-
-    CacheModel m_cacheModel;
-
-    bool m_memorySamplerEnabled;
-    double m_memorySamplerInterval;
-
-    RefPtr&lt;WebIconDatabase&gt; m_iconDatabase;
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    RefPtr&lt;WebPluginSiteDataManager&gt; m_pluginSiteDataManager;
-#endif
-
-    RefPtr&lt;WebsiteDataStore&gt; m_websiteDataStore;
-    RefPtr&lt;StorageManager&gt; m_storageManager;
-
-    typedef HashMap&lt;const char*, RefPtr&lt;WebContextSupplement&gt;, PtrHash&lt;const char*&gt;&gt; WebContextSupplementMap;
-    WebContextSupplementMap m_supplements;
-
-#if USE(SOUP)
-    HTTPCookieAcceptPolicy m_initialHTTPCookieAcceptPolicy;
-#endif
-
-#if PLATFORM(MAC)
-    RetainPtr&lt;NSObject&gt; m_enhancedAccessibilityObserver;
-    RetainPtr&lt;NSObject&gt; m_automaticTextReplacementNotificationObserver;
-    RetainPtr&lt;NSObject&gt; m_automaticSpellingCorrectionNotificationObserver;
-#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    RetainPtr&lt;NSObject&gt; m_automaticQuoteSubstitutionNotificationObserver;
-    RetainPtr&lt;NSObject&gt; m_automaticDashSubstitutionNotificationObserver;
-#endif
-#endif
-
-    String m_overrideApplicationCacheDirectory;
-    String m_overrideIconDatabasePath;
-    String m_overrideDiskCacheDirectory;
-    String m_overrideCookieStorageDirectory;
-
-    String m_webSQLDatabaseDirectory;
-    String m_indexedDBDatabaseDirectory;
-    String m_mediaKeysStorageDirectory;
-
-    bool m_shouldUseTestingNetworkSession;
-
-    bool m_processTerminationEnabled;
-
-#if ENABLE(NETWORK_PROCESS)
-    bool m_canHandleHTTPSServerTrustEvaluation;
-    bool m_usesNetworkProcess;
-    RefPtr&lt;NetworkProcessProxy&gt; m_networkProcess;
-#endif
-
-#if ENABLE(DATABASE_PROCESS)
-    RefPtr&lt;DatabaseProcessProxy&gt; m_databaseProcess;
-#endif
-    
-    HashMap&lt;uint64_t, RefPtr&lt;DictionaryCallback&gt;&gt; m_dictionaryCallbacks;
-    HashMap&lt;uint64_t, RefPtr&lt;StatisticsRequest&gt;&gt; m_statisticsRequests;
-
-#if USE(SOUP)
-    bool m_ignoreTLSErrors;
-#endif
-
-    bool m_memoryCacheDisabled;
-
-    RefCounter m_userObservablePageCounter;
-    RefCounter m_processSuppressionDisabledForPageCounter;
-
-#if PLATFORM(COCOA)
-    RetainPtr&lt;NSMutableDictionary&gt; m_bundleParameters;
-    ProcessSuppressionDisabledToken m_pluginProcessManagerProcessSuppressionDisabledToken;
-#endif
-};
-
-template&lt;typename T&gt;
-void WebContext::sendToNetworkingProcess(T&amp;&amp; message)
-{
-    switch (m_processModel) {
-    case ProcessModelSharedSecondaryProcess:
-#if ENABLE(NETWORK_PROCESS)
-        if (m_usesNetworkProcess) {
-            if (m_networkProcess &amp;&amp; m_networkProcess-&gt;canSendMessage())
-                m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
-            return;
-        }
-#endif
-        if (!m_processes.isEmpty() &amp;&amp; m_processes[0]-&gt;canSendMessage())
-            m_processes[0]-&gt;send(std::forward&lt;T&gt;(message), 0);
-        return;
-    case ProcessModelMultipleSecondaryProcesses:
-#if ENABLE(NETWORK_PROCESS)
-        if (m_networkProcess &amp;&amp; m_networkProcess-&gt;canSendMessage())
-            m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
-        return;
-#else
-        break;
-#endif
-    }
-    ASSERT_NOT_REACHED();
-}
-
-template&lt;typename T&gt;
-void WebContext::sendToNetworkingProcessRelaunchingIfNecessary(T&amp;&amp; message)
-{
-    switch (m_processModel) {
-    case ProcessModelSharedSecondaryProcess:
-#if ENABLE(NETWORK_PROCESS)
-        if (m_usesNetworkProcess) {
-            ensureNetworkProcess();
-            m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
-            return;
-        }
-#endif
-        ensureSharedWebProcess();
-        m_processes[0]-&gt;send(std::forward&lt;T&gt;(message), 0);
-        return;
-    case ProcessModelMultipleSecondaryProcesses:
-#if ENABLE(NETWORK_PROCESS)
-        ensureNetworkProcess();
-        m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
-        return;
-#else
-        break;
-#endif
-    }
-    ASSERT_NOT_REACHED();
-}
-
-template&lt;typename T&gt;
-void WebContext::sendToDatabaseProcessRelaunchingIfNecessary(T&amp;&amp; message)
-{
-#if ENABLE(DATABASE_PROCESS)
-    ensureDatabaseProcess();
-    m_databaseProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
-#else
-    sendToAllProcessesRelaunchingThemIfNecessary(std::forward&lt;T&gt;(message));
-#endif
-}
-
-template&lt;typename T&gt;
-void WebContext::sendToAllProcesses(const T&amp; message)
-{
-    size_t processCount = m_processes.size();
-    for (size_t i = 0; i &lt; processCount; ++i) {
-        WebProcessProxy* process = m_processes[i].get();
-        if (process-&gt;canSendMessage())
-            process-&gt;send(T(message), 0);
-    }
-}
-
-template&lt;typename T&gt;
-void WebContext::sendToAllProcessesRelaunchingThemIfNecessary(const T&amp; message)
-{
-// FIXME (Multi-WebProcess): WebContext 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)
-        ensureSharedWebProcess();
-    sendToAllProcesses(message);
-}
-
-template&lt;typename T&gt;
-void WebContext::sendToOneProcess(T&amp;&amp; message)
-{
-    if (m_processModel == ProcessModelSharedSecondaryProcess)
-        ensureSharedWebProcess();
-
-    bool messageSent = false;
-    size_t processCount = m_processes.size();
-    for (size_t i = 0; i &lt; processCount; ++i) {
-        WebProcessProxy* process = m_processes[i].get();
-        if (process-&gt;canSendMessage()) {
-            process-&gt;send(std::forward&lt;T&gt;(message), 0);
-            messageSent = true;
-            break;
-        }
-    }
-
-    if (!messageSent &amp;&amp; m_processModel == ProcessModelMultipleSecondaryProcesses) {
-        warmInitialProcess();
-        RefPtr&lt;WebProcessProxy&gt; process = m_processes.last();
-        if (process-&gt;canSendMessage())
-            process-&gt;send(std::forward&lt;T&gt;(message), 0);
-    }
-}
-
-} // namespace WebKit
-
-#endif // WebContext_h
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextmessagesin"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/WebContext.messages.in (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContext.messages.in        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContext.messages.in        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,64 +0,0 @@
</span><del>-# Copyright (C) 2010 Apple Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1.  Redistributions of source code must retain the above copyright
-#     notice, this list of conditions and the following disclaimer.
-# 2.  Redistributions in binary form must reproduce the above copyright
-#     notice, this list of conditions and the following disclaimer in the
-#     documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-messages -&gt; WebContext LegacyReceiver {
-
-    DidGetStatistics(struct WebKit::StatisticsData statisticsData, uint64_t callbackID)
-
-#if PLATFORM(IOS)
-    WriteWebContentToPasteboard(struct WebCore::PasteboardWebContent content)
-    WriteImageToPasteboard(struct WebCore::PasteboardImage pasteboardImage)
-    WriteStringToPasteboard(String pasteboardType, String text) 
-    ReadStringFromPasteboard(uint64_t index, String pasteboardType) -&gt; (String string)
-    ReadURLFromPasteboard(uint64_t index, String pasteboardType) -&gt; (String string)
-    ReadBufferFromPasteboard(uint64_t index, String pasteboardType) -&gt; (WebKit::SharedMemory::Handle handle, uint64_t size)
-    GetPasteboardItemsCount() -&gt; (uint64_t itemsCount)
-#endif
-
-#if PLATFORM(COCOA)
-    # Pasteboard messages.
-    GetPasteboardTypes(String pasteboardName) -&gt; (Vector&lt;String&gt; types)
-    GetPasteboardPathnamesForType(String pasteboardName, String pasteboardType) -&gt; (Vector&lt;String&gt; pathnames)
-    GetPasteboardStringForType(String pasteboardName, String pasteboardType) -&gt; (String string)
-    GetPasteboardBufferForType(String pasteboardName, String pasteboardType) -&gt; (WebKit::SharedMemory::Handle handle, uint64_t size)
-    PasteboardCopy(String fromPasteboard, String toPasteboard) -&gt; (uint64_t changeCount)
-    GetPasteboardChangeCount(String pasteboardName) -&gt; (uint64_t changeCount)
-    GetPasteboardUniqueName() -&gt; (String pasteboardName)
-    GetPasteboardColor(String pasteboardName) -&gt; (WebCore::Color color)
-    GetPasteboardURL(String pasteboardName) -&gt; (String urlString)
-    AddPasteboardTypes(String pasteboardName, Vector&lt;String&gt; pasteboardTypes) -&gt; (uint64_t changeCount)
-    SetPasteboardTypes(String pasteboardName, Vector&lt;String&gt; pasteboardTypes) -&gt; (uint64_t changeCount)
-    SetPasteboardPathnamesForType(String pasteboardName, String pasteboardType, Vector&lt;String&gt; pathnames) -&gt; (uint64_t changeCount)
-    SetPasteboardStringForType(String pasteboardName, String pasteboardType, String string) -&gt; (uint64_t changeCount)
-    SetPasteboardBufferForType(String pasteboardName, String pasteboardType, WebKit::SharedMemory::Handle handle, uint64_t size) -&gt; (uint64_t changeCount)
-#endif
-
-#if !PLATFORM(COCOA)
-    // FIXME: This a dummy message, to avoid breaking the build for platforms that don't require
-    // any synchronous messages, and should be removed when &lt;rdar://problem/8775115&gt; is fixed.
-    Dummy() -&gt; (bool dummyReturn)
-#endif
-
-    # Plug-in messages.
-    void AddPlugInAutoStartOriginHash(String pageOrigin, uint32_t hash, WebCore::SessionID sessionID)
-    void PlugInDidReceiveUserInteraction(uint32_t hash, WebCore::SessionID sessionID)
-}
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextClient.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextClient.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextClient.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,27 +27,27 @@
</span><span class="cx"> #include &quot;WebContextClient.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-void WebContextClient::plugInAutoStartOriginHashesChanged(WebContext* context)
</del><ins>+void WebContextClient::plugInAutoStartOriginHashesChanged(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.plugInAutoStartOriginHashesChanged)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_client.plugInAutoStartOriginHashesChanged(toAPI(context), m_client.base.clientInfo);
</del><ins>+    m_client.plugInAutoStartOriginHashesChanged(toAPI(processPool), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebContextClient::networkProcessDidCrash(WebContext* context)
</del><ins>+void WebContextClient::networkProcessDidCrash(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.networkProcessDidCrash)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_client.networkProcessDidCrash(toAPI(context), m_client.base.clientInfo);
</del><ins>+    m_client.networkProcessDidCrash(toAPI(processPool), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebContextClient::plugInInformationBecameAvailable(WebContext* context, API::Array* plugInInfo)
</del><ins>+void WebContextClient::plugInInformationBecameAvailable(WebProcessPool* processPool, API::Array* plugInInfo)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.plugInInformationBecameAvailable)
</span><span class="cx">         return;
</span><span class="lines">@@ -55,15 +55,15 @@
</span><span class="cx">     // FIXME: The API contract expects us to hand a reference to the array here. This is wrong.
</span><span class="cx">     plugInInfo-&gt;ref();
</span><span class="cx"> 
</span><del>-    m_client.plugInInformationBecameAvailable(toAPI(context), toAPI(plugInInfo), m_client.base.clientInfo);
</del><ins>+    m_client.plugInInformationBecameAvailable(toAPI(processPool), toAPI(plugInInfo), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;API::Data&gt; WebContextClient::copyWebCryptoMasterKey(WebContext* context)
</del><ins>+PassRefPtr&lt;API::Data&gt; WebContextClient::copyWebCryptoMasterKey(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.copyWebCryptoMasterKey)
</span><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><del>-    return adoptRef(toImpl(m_client.copyWebCryptoMasterKey(toAPI(context), m_client.base.clientInfo)));
</del><ins>+    return adoptRef(toImpl(m_client.copyWebCryptoMasterKey(toAPI(processPool), m_client.base.clientInfo)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextClient.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextClient.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextClient.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -38,16 +38,17 @@
</span><span class="cx"> };
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class WebContextClient : public API::Client&lt;WKContextClientBase&gt; {
</span><span class="cx"> public:
</span><del>-    void plugInAutoStartOriginHashesChanged(WebContext*);
-    void networkProcessDidCrash(WebContext*);
-    void plugInInformationBecameAvailable(WebContext*, API::Array*);
-    PassRefPtr&lt;API::Data&gt; copyWebCryptoMasterKey(WebContext*);
</del><ins>+    void plugInAutoStartOriginHashesChanged(WebProcessPool*);
+    void networkProcessDidCrash(WebProcessPool*);
+    void plugInInformationBecameAvailable(WebProcessPool*, API::Array*);
+    PassRefPtr&lt;API::Data&gt; copyWebCryptoMasterKey(WebProcessPool*);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextConnectionClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,16 +27,16 @@
</span><span class="cx"> #include &quot;WebContextConnectionClient.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WKAPICast.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-void WebContextConnectionClient::didCreateConnection(WebContext* context, WebConnection* connection)
</del><ins>+void WebContextConnectionClient::didCreateConnection(WebProcessPool* processPool, WebConnection* connection)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.didCreateConnection)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_client.didCreateConnection(toAPI(context), toAPI(connection), m_client.base.clientInfo);
</del><ins>+    m_client.didCreateConnection(toAPI(processPool), toAPI(connection), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextConnectionClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextConnectionClient.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -38,11 +38,11 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> class WebConnection;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class WebContextConnectionClient : public API::Client&lt;WKContextConnectionClientBase&gt; {
</span><span class="cx"> public:
</span><del>-    void didCreateConnection(WebContext*, WebConnection*);
</del><ins>+    void didCreateConnection(WebProcessPool*, WebConnection*);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextInjectedBundleClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,37 +27,37 @@
</span><span class="cx"> #include &quot;WebContextInjectedBundleClient.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WKAPICast.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-void WebContextInjectedBundleClient::didReceiveMessageFromInjectedBundle(WebContext* context, const String&amp; messageName, API::Object* messageBody)
</del><ins>+void WebContextInjectedBundleClient::didReceiveMessageFromInjectedBundle(WebProcessPool* processPool, const String&amp; messageName, API::Object* messageBody)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.didReceiveMessageFromInjectedBundle)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    m_client.didReceiveMessageFromInjectedBundle(toAPI(context), toAPI(messageName.impl()), toAPI(messageBody), m_client.base.clientInfo);
</del><ins>+    m_client.didReceiveMessageFromInjectedBundle(toAPI(processPool), toAPI(messageName.impl()), toAPI(messageBody), m_client.base.clientInfo);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle(WebContext* context, const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData)
</del><ins>+void WebContextInjectedBundleClient::didReceiveSynchronousMessageFromInjectedBundle(WebProcessPool* processPool, const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.didReceiveSynchronousMessageFromInjectedBundle)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     WKTypeRef returnDataRef = 0;
</span><del>-    m_client.didReceiveSynchronousMessageFromInjectedBundle(toAPI(context), toAPI(messageName.impl()), toAPI(messageBody), &amp;returnDataRef, m_client.base.clientInfo);
</del><ins>+    m_client.didReceiveSynchronousMessageFromInjectedBundle(toAPI(processPool), toAPI(messageName.impl()), toAPI(messageBody), &amp;returnDataRef, m_client.base.clientInfo);
</ins><span class="cx">     returnData = adoptRef(toImpl(returnDataRef));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;API::Object&gt; WebContextInjectedBundleClient::getInjectedBundleInitializationUserData(WebContext* context)
</del><ins>+PassRefPtr&lt;API::Object&gt; WebContextInjectedBundleClient::getInjectedBundleInitializationUserData(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><span class="cx">     if (!m_client.getInjectedBundleInitializationUserData)
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><del>-    return toImpl(m_client.getInjectedBundleInitializationUserData(toAPI(context), m_client.base.clientInfo));
</del><ins>+    return toImpl(m_client.getInjectedBundleInitializationUserData(toAPI(processPool), m_client.base.clientInfo));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextInjectedBundleClienth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextInjectedBundleClient.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -40,13 +40,13 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class WebContextInjectedBundleClient : public API::Client&lt;WKContextInjectedBundleClientBase&gt; {
</span><span class="cx"> public:
</span><del>-    void didReceiveMessageFromInjectedBundle(WebContext*, const String&amp;, API::Object*);
-    void didReceiveSynchronousMessageFromInjectedBundle(WebContext*, const String&amp;, API::Object*, RefPtr&lt;API::Object&gt;&amp; returnData);
-    PassRefPtr&lt;API::Object&gt; getInjectedBundleInitializationUserData(WebContext*);
</del><ins>+    void didReceiveMessageFromInjectedBundle(WebProcessPool*, const String&amp;, API::Object*);
+    void didReceiveSynchronousMessageFromInjectedBundle(WebProcessPool*, const String&amp;, API::Object*, RefPtr&lt;API::Object&gt;&amp; returnData);
+    PassRefPtr&lt;API::Object&gt; getInjectedBundleInitializationUserData(WebProcessPool*);
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextSupplementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextSupplement.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextSupplement.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextSupplement.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,13 +30,13 @@
</span><span class="cx"> 
</span><span class="cx"> class DatabaseProcessProxy;
</span><span class="cx"> class NetworkProcessProxy;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProcessProxy;
</span><span class="cx"> 
</span><span class="cx"> class WebContextSupplement {
</span><span class="cx"> public:
</span><del>-    WebContextSupplement(WebContext* context)
-        : m_context(context)
</del><ins>+    WebContextSupplement(WebProcessPool* processPool)
+        : m_processPool(processPool)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -44,7 +44,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    virtual void contextDestroyed()
</del><ins>+    virtual void processPoolDestroyed()
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -65,8 +65,8 @@
</span><span class="cx">         return true;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    WebContext* context() const { return m_context; }
-    void clearContext() { m_context = 0; }
</del><ins>+    WebProcessPool* processPool() const { return m_processPool; }
+    void clearProcessPool() { m_processPool = nullptr; }
</ins><span class="cx"> 
</span><span class="cx">     void ref() { refWebContextSupplement(); }
</span><span class="cx">     void deref() { derefWebContextSupplement(); }
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     virtual void refWebContextSupplement() = 0;
</span><span class="cx">     virtual void derefWebContextSupplement() = 0;
</span><span class="cx"> 
</span><del>-    WebContext* m_context;
</del><ins>+    WebProcessPool* m_processPool;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebContextUserMessageCodersh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebContextUserMessageCoders.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="cx"> #include &quot;UserMessageCoders.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebFrameProxy.h&quot;
</span><span class="cx"> #include &quot;WebPageGroup.h&quot;
</span><span class="cx"> #include &quot;WebPageGroupData.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebCookieManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -29,9 +29,9 @@
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebCookieManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebCookieManagerProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -40,18 +40,18 @@
</span><span class="cx">     return &quot;WebCookieManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebCookieManagerProxy&gt; WebCookieManagerProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebCookieManagerProxy&gt; WebCookieManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebCookieManagerProxy(context));
</del><ins>+    return adoptRef(new WebCookieManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebCookieManagerProxy::WebCookieManagerProxy(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebCookieManagerProxy::WebCookieManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> #if USE(SOUP)
</span><span class="cx">     , m_cookiePersistentStorageType(SoupCookiePersistentStorageSQLite)
</span><span class="cx"> #endif
</span><span class="cx"> {
</span><del>-    WebContextSupplement::context()-&gt;addMessageReceiver(Messages::WebCookieManagerProxy::messageReceiverName(), *this);
</del><ins>+    WebContextSupplement::processPool()-&gt;addMessageReceiver(Messages::WebCookieManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebCookieManagerProxy::~WebCookieManagerProxy()
</span><span class="lines">@@ -65,7 +65,7 @@
</span><span class="cx"> 
</span><span class="cx"> // WebContextSupplement
</span><span class="cx"> 
</span><del>-void WebCookieManagerProxy::contextDestroyed()
</del><ins>+void WebCookieManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     invalidateCallbackMap(m_arrayCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx">     invalidateCallbackMap(m_httpCookieAcceptPolicyCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="lines">@@ -85,7 +85,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool WebCookieManagerProxy::shouldTerminate(WebProcessProxy*) const
</span><span class="cx"> {
</span><del>-    return context()-&gt;processModel() != ProcessModelSharedSecondaryProcess
</del><ins>+    return processPool()-&gt;processModel() != ProcessModelSharedSecondaryProcess
</ins><span class="cx">         || (m_arrayCallbacks.isEmpty() &amp;&amp; m_httpCookieAcceptPolicyCallbacks.isEmpty());
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     uint64_t callbackID = callback-&gt;callbackID();
</span><span class="cx">     m_arrayCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetHostnamesWithCookies(callbackID));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetHostnamesWithCookies(callbackID));
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void WebCookieManagerProxy::didGetHostnamesWithCookies(const Vector&lt;String&gt;&amp; hostnames, uint64_t callbackID)
</span><span class="lines">@@ -121,27 +121,27 @@
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::deleteCookiesForHostname(const String&amp; hostname)
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteCookiesForHostname(hostname));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteCookiesForHostname(hostname));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::deleteAllCookies()
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookies());
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookies());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::deleteAllCookiesModifiedSince(std::chrono::system_clock::time_point time)
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(time));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::DeleteAllCookiesModifiedSince(time));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::startObservingCookieChanges()
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StartObservingCookieChanges());
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StartObservingCookieChanges());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::stopObservingCookieChanges()
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StopObservingCookieChanges());
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::StopObservingCookieChanges());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::cookiesDidChange()
</span><span class="lines">@@ -155,10 +155,10 @@
</span><span class="cx">     persistHTTPCookieAcceptPolicy(policy);
</span><span class="cx"> #endif
</span><span class="cx"> #if USE(SOUP)
</span><del>-    context()-&gt;setInitialHTTPCookieAcceptPolicy(policy);
</del><ins>+    processPool()-&gt;setInitialHTTPCookieAcceptPolicy(policy);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(std::function&lt;void (HTTPCookieAcceptPolicy, CallbackBase::Error)&gt; callbackFunction)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">     uint64_t callbackID = callback-&gt;callbackID();
</span><span class="cx">     m_httpCookieAcceptPolicyCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::WebCookieManager::GetHTTPCookieAcceptPolicy(callbackID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebCookieManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -43,9 +43,10 @@
</span><span class="cx"> class Array;
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+
</ins><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProcessProxy;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="lines">@@ -55,7 +56,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebCookieManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebCookieManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebCookieManagerProxy();
</span><span class="cx"> 
</span><span class="cx">     void initializeClient(const WKCookieManagerClientBase*);
</span><span class="lines">@@ -80,7 +81,7 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    WebCookieManagerProxy(WebContext*);
</del><ins>+    WebCookieManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void didGetHostnamesWithCookies(const Vector&lt;String&gt;&amp;, uint64_t callbackID);
</span><span class="cx">     void didGetHTTPCookieAcceptPolicy(uint32_t policy, uint64_t callbackID);
</span><span class="lines">@@ -88,7 +89,7 @@
</span><span class="cx">     void cookiesDidChange();
</span><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual void processDidClose(NetworkProcessProxy*) override;
</span><span class="cx">     virtual bool shouldTerminate(WebProcessProxy*) const override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebDatabaseManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -31,9 +31,9 @@
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;ImmutableDictionary.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebDatabaseManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebDatabaseManagerProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -105,15 +105,15 @@
</span><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebDatabaseManagerProxy&gt; WebDatabaseManagerProxy::create(WebContext* webContext)
</del><ins>+PassRefPtr&lt;WebDatabaseManagerProxy&gt; WebDatabaseManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebDatabaseManagerProxy(webContext));
</del><ins>+    return adoptRef(new WebDatabaseManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebDatabaseManagerProxy::WebDatabaseManagerProxy(WebContext* webContext)
-    : WebContextSupplement(webContext)
</del><ins>+WebDatabaseManagerProxy::WebDatabaseManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><del>-    WebContextSupplement::context()-&gt;addMessageReceiver(Messages::WebDatabaseManagerProxy::messageReceiverName(), *this);
</del><ins>+    WebContextSupplement::processPool()-&gt;addMessageReceiver(Messages::WebDatabaseManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebDatabaseManagerProxy::~WebDatabaseManagerProxy()
</span><span class="lines">@@ -127,7 +127,7 @@
</span><span class="cx"> 
</span><span class="cx"> // WebContextSupplement
</span><span class="cx"> 
</span><del>-void WebDatabaseManagerProxy::contextDestroyed()
</del><ins>+void WebDatabaseManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     invalidateCallbackMap(m_arrayCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx"> }
</span><span class="lines">@@ -158,7 +158,7 @@
</span><span class="cx">     uint64_t callbackID = callback-&gt;callbackID();
</span><span class="cx">     m_arrayCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToOneProcess(Messages::WebDatabaseManager::GetDatabasesByOrigin(callbackID));
</del><ins>+    processPool()-&gt;sendToOneProcess(Messages::WebDatabaseManager::GetDatabasesByOrigin(callbackID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::didGetDatabasesByOrigin(const Vector&lt;OriginAndDatabases&gt;&amp; originAndDatabasesVector, uint64_t callbackID)
</span><span class="lines">@@ -211,7 +211,7 @@
</span><span class="cx">     uint64_t callbackID = callback-&gt;callbackID();
</span><span class="cx">     m_arrayCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToOneProcess(Messages::WebDatabaseManager::GetDatabaseOrigins(callbackID));
</del><ins>+    processPool()-&gt;sendToOneProcess(Messages::WebDatabaseManager::GetDatabaseOrigins(callbackID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::didGetDatabaseOrigins(const Vector&lt;String&gt;&amp; originIdentifiers, uint64_t callbackID)
</span><span class="lines">@@ -233,22 +233,22 @@
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin(const String&amp; databaseIdentifier, API::SecurityOrigin* origin)
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToOneProcess(Messages::WebDatabaseManager::DeleteDatabaseWithNameForOrigin(databaseIdentifier, origin-&gt;securityOrigin().databaseIdentifier()));
</del><ins>+    processPool()-&gt;sendToOneProcess(Messages::WebDatabaseManager::DeleteDatabaseWithNameForOrigin(databaseIdentifier, origin-&gt;securityOrigin().databaseIdentifier()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::deleteDatabasesForOrigin(API::SecurityOrigin* origin)
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToOneProcess(Messages::WebDatabaseManager::DeleteDatabasesForOrigin(origin-&gt;securityOrigin().databaseIdentifier()));
</del><ins>+    processPool()-&gt;sendToOneProcess(Messages::WebDatabaseManager::DeleteDatabasesForOrigin(origin-&gt;securityOrigin().databaseIdentifier()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::deleteAllDatabases()
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToOneProcess(Messages::WebDatabaseManager::DeleteAllDatabases());
</del><ins>+    processPool()-&gt;sendToOneProcess(Messages::WebDatabaseManager::DeleteAllDatabases());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::setQuotaForOrigin(API::SecurityOrigin* origin, uint64_t quota)
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToOneProcess(Messages::WebDatabaseManager::SetQuotaForOrigin(origin-&gt;securityOrigin().databaseIdentifier(), quota));
</del><ins>+    processPool()-&gt;sendToOneProcess(Messages::WebDatabaseManager::SetQuotaForOrigin(origin-&gt;securityOrigin().databaseIdentifier(), quota));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebDatabaseManagerProxy::didModifyOrigin(const String&amp; originIdentifier)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebDatabaseManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebDatabaseManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProcessProxy;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebDatabaseManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebDatabaseManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebDatabaseManagerProxy();
</span><span class="cx"> 
</span><span class="cx">     void initializeClient(const WKDatabaseManagerClientBase*);
</span><span class="lines">@@ -76,10 +76,10 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebDatabaseManagerProxy(WebContext*);
</del><ins>+    explicit WebDatabaseManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual bool shouldTerminate(WebProcessProxy*) const override;
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebFrameProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,11 +27,11 @@
</span><span class="cx"> #include &quot;WebFrameProxy.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebCertificateInfo.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebFormSubmissionListenerProxy.h&quot;
</span><span class="cx"> #include &quot;WebFramePolicyListenerProxy.h&quot;
</span><span class="cx"> #include &quot;WebPageMessages.h&quot;
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;WebCore/DOMImplementation.h&gt;
</span><span class="cx"> #include &lt;WebCore/Image.h&gt;
</span><span class="cx"> #include &lt;WebCore/MIMETypeRegistry.h&gt;
</span><span class="lines">@@ -47,12 +47,12 @@
</span><span class="cx">     , m_isFrameSet(false)
</span><span class="cx">     , m_frameID(frameID)
</span><span class="cx"> {
</span><del>-    WebContext::statistics().wkFrameCount++;
</del><ins>+    WebProcessPool::statistics().wkFrameCount++;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebFrameProxy::~WebFrameProxy()
</span><span class="cx"> {
</span><del>-    WebContext::statistics().wkFrameCount--;
</del><ins>+    WebProcessPool::statistics().wkFrameCount--;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameProxy::disconnect()
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebGeolocationManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,9 +26,9 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebGeolocationManagerProxy.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebGeolocationManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebGeolocationManagerProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -37,15 +37,15 @@
</span><span class="cx">     return &quot;WebGeolocationManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebGeolocationManagerProxy&gt; WebGeolocationManagerProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebGeolocationManagerProxy&gt; WebGeolocationManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebGeolocationManagerProxy(context));
</del><ins>+    return adoptRef(new WebGeolocationManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebGeolocationManagerProxy::WebGeolocationManagerProxy(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebGeolocationManagerProxy::WebGeolocationManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><del>-    WebContextSupplement::context()-&gt;addMessageReceiver(Messages::WebGeolocationManagerProxy::messageReceiverName(), *this);
</del><ins>+    WebContextSupplement::processPool()-&gt;addMessageReceiver(Messages::WebGeolocationManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebGeolocationManagerProxy::initializeProvider(const WKGeolocationProviderBase* provider)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx"> // WebContextSupplement
</span><span class="cx"> 
</span><del>-void WebGeolocationManagerProxy::contextDestroyed()
</del><ins>+void WebGeolocationManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     m_updateRequesters.clear();
</span><span class="cx">     m_provider.stopUpdating(this);
</span><span class="lines">@@ -78,24 +78,24 @@
</span><span class="cx"> 
</span><span class="cx"> void WebGeolocationManagerProxy::providerDidChangePosition(WebGeolocationPosition* position)
</span><span class="cx"> {
</span><del>-    if (!context())
</del><ins>+    if (!processPool())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToAllProcesses(Messages::WebGeolocationManager::DidChangePosition(position-&gt;data()));
</del><ins>+    processPool()-&gt;sendToAllProcesses(Messages::WebGeolocationManager::DidChangePosition(position-&gt;data()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebGeolocationManagerProxy::providerDidFailToDeterminePosition(const String&amp; errorMessage)
</span><span class="cx"> {
</span><del>-    if (!context())
</del><ins>+    if (!processPool())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    context()-&gt;sendToAllProcesses(Messages::WebGeolocationManager::DidFailToDeterminePosition(errorMessage));
</del><ins>+    processPool()-&gt;sendToAllProcesses(Messages::WebGeolocationManager::DidFailToDeterminePosition(errorMessage));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> void WebGeolocationManagerProxy::resetPermissions()
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToAllProcesses(Messages::WebGeolocationManager::ResetPermissions());
</del><ins>+    processPool()-&gt;sendToAllProcesses(Messages::WebGeolocationManager::ResetPermissions());
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebGeolocationManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebGeolocationManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -36,14 +36,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><span class="cx"> class WebGeolocationPosition;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class WebGeolocationManagerProxy : public API::ObjectImpl&lt;API::Object::Type::GeolocationManager&gt;, public WebContextSupplement, private IPC::MessageReceiver {
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebGeolocationManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebGeolocationManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void initializeProvider(const WKGeolocationProviderBase*);
</span><span class="cx"> 
</span><span class="lines">@@ -57,10 +57,10 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebGeolocationManagerProxy(WebContext*);
</del><ins>+    explicit WebGeolocationManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span><span class="cx">     virtual void derefWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebIconDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebIconDatabase.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebIconDatabase.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebIconDatabase.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,9 +27,9 @@
</span><span class="cx"> #include &quot;WebIconDatabase.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;Logging.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebIconDatabaseMessages.h&quot;
</span><span class="cx"> #include &quot;WebIconDatabaseProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;WebCore/FileSystem.h&gt;
</span><span class="cx"> #include &lt;WebCore/IconDatabase.h&gt;
</span><span class="cx"> #include &lt;WebCore/Image.h&gt;
</span><span class="lines">@@ -39,22 +39,22 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebIconDatabase&gt; WebIconDatabase::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebIconDatabase&gt; WebIconDatabase::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebIconDatabase(*context));
</del><ins>+    return adoptRef(new WebIconDatabase(*processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebIconDatabase::~WebIconDatabase()
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebIconDatabase::WebIconDatabase(WebContext&amp; context)
-    : m_webContext(&amp;context)
</del><ins>+WebIconDatabase::WebIconDatabase(WebProcessPool&amp; processPool)
+    : m_processPool(&amp;processPool)
</ins><span class="cx">     , m_urlImportCompleted(false)
</span><span class="cx">     , m_databaseCleanupDisabled(false)
</span><span class="cx">     , m_shouldDerefWhenAppropriate(false)
</span><span class="cx"> {
</span><del>-    m_webContext-&gt;addMessageReceiver(Messages::WebIconDatabase::messageReceiverName(), *this);
</del><ins>+    m_processPool-&gt;addMessageReceiver(Messages::WebIconDatabase::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebIconDatabase::invalidate()
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx">     m_databaseCleanupDisabled = true;
</span><span class="cx">     m_iconDatabaseImpl-&gt;setEnabled(true);
</span><span class="cx"> 
</span><del>-    // FIXME: WebIconDatabases are per-WebContext but WebContext's don't have their own notion of the current private browsing setting.
</del><ins>+    // FIXME: WebIconDatabases are per-ProcessPool but ProcessPools's don't have their own notion of the current private browsing setting.
</ins><span class="cx">     // As we clean up private browsing throughout the stack we need to clean it up here.
</span><span class="cx">     m_iconDatabaseImpl-&gt;setPrivateBrowsingEnabled(WebPreferences::anyPagesAreUsingPrivateBrowsing());
</span><span class="cx"> 
</span><span class="lines">@@ -161,12 +161,12 @@
</span><span class="cx"> {
</span><span class="cx">     LOG(IconDatabase, &quot;WK2 UIProcess getting load decision for icon URL %s with callback ID %lli&quot;, iconURL.ascii().data(), static_cast&lt;long long&gt;(callbackID));
</span><span class="cx"> 
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (!m_iconDatabaseImpl || !m_iconDatabaseImpl-&gt;isOpen() || iconURL.isEmpty()) {
</span><span class="cx">         // FIXME (Multi-WebProcess): &lt;rdar://problem/12240223&gt; We need to know which connection to send this message to.
</span><del>-        m_webContext-&gt;sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast&lt;int&gt;(IconLoadNo), callbackID));
</del><ins>+        m_processPool-&gt;sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast&lt;int&gt;(IconLoadNo), callbackID));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     
</span><span class="lines">@@ -181,7 +181,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12240223&gt; We need to know which connection to send this message to.
</span><del>-    m_webContext-&gt;sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision((int)decision, callbackID));
</del><ins>+    m_processPool-&gt;sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision((int)decision, callbackID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebIconDatabase::didReceiveIconForPageURL(const String&amp; pageURL)
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx"> 
</span><span class="cx"> Image* WebIconDatabase::imageForPageURL(const String&amp; pageURL, const IntSize&amp; iconSize)
</span><span class="cx"> {
</span><del>-    if (!m_webContext || !m_iconDatabaseImpl || !m_iconDatabaseImpl-&gt;isOpen() || pageURL.isEmpty())
</del><ins>+    if (!m_processPool || !m_iconDatabaseImpl || !m_iconDatabaseImpl-&gt;isOpen() || pageURL.isEmpty())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     // The WebCore IconDatabase ignores the passed in size parameter.
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx"> 
</span><span class="cx"> NativeImagePtr WebIconDatabase::nativeImageForPageURL(const String&amp; pageURL, const IntSize&amp; iconSize)
</span><span class="cx"> {
</span><del>-    if (!m_webContext || !m_iconDatabaseImpl || !m_iconDatabaseImpl-&gt;isOpen() || pageURL.isEmpty())
</del><ins>+    if (!m_processPool || !m_iconDatabaseImpl || !m_iconDatabaseImpl-&gt;isOpen() || pageURL.isEmpty())
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     return m_iconDatabaseImpl-&gt;synchronousNativeIconForPageURL(pageURL, iconSize);
</span><span class="lines">@@ -262,7 +262,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebIconDatabase::didFinishURLImport()
</span><span class="cx"> {
</span><del>-    if (!m_webContext)
</del><ins>+    if (!m_processPool)
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     ASSERT(!m_urlImportCompleted);
</span><span class="lines">@@ -277,7 +277,7 @@
</span><span class="cx">         ASSERT(decision != IconLoadUnknown);
</span><span class="cx"> 
</span><span class="cx">         // FIXME (Multi-WebProcess): &lt;rdar://problem/12240223&gt; We need to know which connection to send this message to.
</span><del>-        m_webContext-&gt;sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast&lt;int&gt;(decision), slot.key));
</del><ins>+        m_processPool-&gt;sendToAllProcesses(Messages::WebIconDatabaseProxy::ReceivedIconLoadDecision(static_cast&lt;int&gt;(decision), slot.key));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     m_pendingLoadDecisionURLMap.clear();
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebIconDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebIconDatabase.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebIconDatabase.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebIconDatabase.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -44,15 +44,15 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> class WebIconDatabase : public API::ObjectImpl&lt;API::Object::Type::IconDatabase&gt;, private WebCore::IconDatabaseClient, private IPC::MessageReceiver {
</span><span class="cx"> public:
</span><del>-    static PassRefPtr&lt;WebIconDatabase&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebIconDatabase&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebIconDatabase();
</span><span class="cx"> 
</span><span class="cx">     void invalidate();
</span><del>-    void clearContext() { m_webContext = nullptr; }
</del><ins>+    void clearProcessPool() { m_processPool = nullptr; }
</ins><span class="cx">     void setDatabasePath(const String&amp;);
</span><span class="cx">     void enableDatabaseCleanup();
</span><span class="cx"> 
</span><span class="lines">@@ -84,13 +84,13 @@
</span><span class="cx"> 
</span><span class="cx">     void setPrivateBrowsingEnabled(bool);
</span><span class="cx"> 
</span><del>-    // Called when the WebContext is through with this WebIconDatabase but the
</del><ins>+    // Called when the WebProcessPool is through with this WebIconDatabase but the
</ins><span class="cx">     // WebCore::IconDatabase possibly isn't done shutting down.
</span><span class="cx">     // In that case this WebIconDatabase will deref() itself when the time is right.
</span><span class="cx">     void derefWhenAppropriate();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebIconDatabase(WebContext&amp;);
</del><ins>+    explicit WebIconDatabase(WebProcessPool&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // WebCore::IconDatabaseClient
</span><span class="cx">     virtual void didImportIconURLForPageURL(const String&amp;) override;
</span><span class="lines">@@ -106,7 +106,7 @@
</span><span class="cx"> 
</span><span class="cx">     void notifyIconDataReadyForPageURL(const String&amp;);
</span><span class="cx"> 
</span><del>-    WebContext* m_webContext;
</del><ins>+    WebProcessPool* m_processPool;
</ins><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;WebCore::IconDatabase&gt; m_iconDatabaseImpl;
</span><span class="cx">     bool m_urlImportCompleted;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIURLRequest.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebFramePolicyListenerProxy.h&quot;
</span><span class="cx"> #include &quot;WebFrameProxy.h&quot;
</span><span class="cx"> #include &quot;WebInspectorMessages.h&quot;
</span><span class="lines">@@ -39,6 +38,7 @@
</span><span class="cx"> #include &quot;WebPageGroup.h&quot;
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #include &lt;WebCore/SchemeRegistry.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="lines">@@ -362,20 +362,21 @@
</span><span class="cx">     return WebInspectorPageGroups::shared().isInspectorPageGroup(page.pageGroup());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebContext&amp; WebInspectorProxy::inspectorContext()
</del><ins>+WebProcessPool&amp; WebInspectorProxy::inspectorProcessPool()
</ins><span class="cx"> {
</span><del>-    // Having our own context removes us from the main context's process pool and
</del><ins>+    // Having our own process pool removes us from the main process pool and
</ins><span class="cx">     // guarantees no process sharing for our user interface.
</span><span class="cx"> 
</span><del>-    static WebContext* context;
-    if (!context) {
-        WebContextConfiguration configuration;
-        WebContext::applyPlatformSpecificConfigurationDefaults(configuration);
-        context = (WebContext::create(configuration)).leakRef();
-        context-&gt;setProcessModel(ProcessModelMultipleSecondaryProcesses);
</del><ins>+    static WebProcessPool* processPool;
+    if (!processPool) {
+        WebProcessPoolConfiguration configuration;
+        WebProcessPool::applyPlatformSpecificConfigurationDefaults(configuration);
+        
+        processPool = (WebProcessPool::create(WTF::move(configuration))).leakRef();
+        processPool-&gt;setProcessModel(ProcessModelMultipleSecondaryProcesses);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return *context;
</del><ins>+    return *processPool;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static bool isMainOrTestInspectorPage(const WebInspectorProxy* webInspectorProxy, WKURLRequestRef requestRef)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebInspectorProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -61,10 +61,10 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><span class="cx"> class WebFrameProxy;
</span><span class="cx"> class WebPageGroup;
</span><span class="cx"> class WebPageProxy;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> 
</span><span class="cx"> enum AttachmentSide {
</span><span class="cx">     AttachmentSideBottom,
</span><span class="lines">@@ -133,7 +133,7 @@
</span><span class="cx">     void togglePageProfiling();
</span><span class="cx"> 
</span><span class="cx">     static bool isInspectorPage(WebPageProxy&amp;);
</span><del>-    static WebContext&amp; inspectorContext();
</del><ins>+    static WebProcessPool&amp; inspectorProcessPool();
</ins><span class="cx"> 
</span><span class="cx">     // Provided by platform WebInspectorProxy implementations.
</span><span class="cx">     String inspectorPageURL() const;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebKeyValueStorageManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;LocalStorageDetails.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -60,13 +60,13 @@
</span><span class="cx">     return key;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebKeyValueStorageManager&gt; WebKeyValueStorageManager::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebKeyValueStorageManager&gt; WebKeyValueStorageManager::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebKeyValueStorageManager(context));
</del><ins>+    return adoptRef(new WebKeyValueStorageManager(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebKeyValueStorageManager::WebKeyValueStorageManager(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebKeyValueStorageManager::WebKeyValueStorageManager(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::getKeyValueStorageOrigins(std::function&lt;void (API::Array*, CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    context()-&gt;storageManager().getOrigins([callbackFunction](Vector&lt;RefPtr&lt;SecurityOrigin&gt;&gt; securityOrigins) {
</del><ins>+    processPool()-&gt;storageManager().getOrigins([callbackFunction](Vector&lt;RefPtr&lt;SecurityOrigin&gt;&gt; securityOrigins) {
</ins><span class="cx">         Vector&lt;RefPtr&lt;API::Object&gt;&gt; webSecurityOrigins;
</span><span class="cx">         webSecurityOrigins.reserveInitialCapacity(securityOrigins.size());
</span><span class="cx">         for (auto&amp; origin : securityOrigins)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::getStorageDetailsByOrigin(std::function&lt;void (API::Array*, CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    context()-&gt;storageManager().getStorageDetailsByOrigin([callbackFunction](Vector&lt;LocalStorageDetails&gt; storageDetails) {
</del><ins>+    processPool()-&gt;storageManager().getStorageDetailsByOrigin([callbackFunction](Vector&lt;LocalStorageDetails&gt; storageDetails) {
</ins><span class="cx">         HashMap&lt;String, RefPtr&lt;API::Object&gt;&gt; detailsMap;
</span><span class="cx">         Vector&lt;RefPtr&lt;API::Object&gt;&gt; result;
</span><span class="cx">         result.reserveInitialCapacity(storageDetails.size());
</span><span class="lines">@@ -125,12 +125,12 @@
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::deleteEntriesForOrigin(API::SecurityOrigin* origin)
</span><span class="cx"> {
</span><del>-    context()-&gt;storageManager().deleteEntriesForOrigin(origin-&gt;securityOrigin());
</del><ins>+    processPool()-&gt;storageManager().deleteEntriesForOrigin(origin-&gt;securityOrigin());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebKeyValueStorageManager::deleteAllEntries()
</span><span class="cx"> {
</span><del>-    context()-&gt;storageManager().deleteAllEntries();
</del><ins>+    processPool()-&gt;storageManager().deleteAllEntries();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebKeyValueStorageManagerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebKeyValueStorageManager.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -36,13 +36,14 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><ins>+class WebProcessPool;
</ins><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="cx"> 
</span><span class="cx"> class WebKeyValueStorageManager : public API::ObjectImpl&lt;API::Object::Type::KeyValueStorageManager&gt;, public WebContextSupplement {
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebKeyValueStorageManager&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebKeyValueStorageManager&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebKeyValueStorageManager();
</span><span class="cx"> 
</span><span class="cx">     void getKeyValueStorageOrigins(std::function&lt;void (API::Array*, CallbackBase::Error)&gt;);
</span><span class="lines">@@ -58,7 +59,7 @@
</span><span class="cx">     static String modificationTimeKey();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebKeyValueStorageManager(WebContext*);
</del><ins>+    explicit WebKeyValueStorageManager(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebMediaCacheManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -27,10 +27,9 @@
</span><span class="cx"> #include &quot;WebMediaCacheManagerProxy.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><del>-#include &quot;APISecurityOrigin.h&quot;
-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebMediaCacheManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebMediaCacheManagerProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -39,15 +38,15 @@
</span><span class="cx">     return &quot;WebMediaCacheManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebMediaCacheManagerProxy&gt; WebMediaCacheManagerProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebMediaCacheManagerProxy&gt; WebMediaCacheManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebMediaCacheManagerProxy(context));
</del><ins>+    return adoptRef(new WebMediaCacheManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebMediaCacheManagerProxy::WebMediaCacheManagerProxy(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebMediaCacheManagerProxy::WebMediaCacheManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><del>-    WebContextSupplement::context()-&gt;addMessageReceiver(Messages::WebMediaCacheManagerProxy::messageReceiverName(), *this);
</del><ins>+    WebContextSupplement::processPool()-&gt;addMessageReceiver(Messages::WebMediaCacheManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebMediaCacheManagerProxy::~WebMediaCacheManagerProxy()
</span><span class="lines">@@ -56,7 +55,7 @@
</span><span class="cx"> 
</span><span class="cx"> // WebContextSupplement
</span><span class="cx"> 
</span><del>-void WebMediaCacheManagerProxy::contextDestroyed()
</del><ins>+void WebMediaCacheManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     invalidateCallbackMap(m_arrayCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx"> }
</span><span class="lines">@@ -88,7 +87,7 @@
</span><span class="cx">     m_arrayCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; When we're sending this to multiple processes, we need to aggregate the callback data when it comes back.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::GetHostnamesWithMediaCache(callbackID));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::GetHostnamesWithMediaCache(callbackID));
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache(const Vector&lt;String&gt;&amp; hostnames, uint64_t callbackID)
</span><span class="lines">@@ -104,12 +103,12 @@
</span><span class="cx"> 
</span><span class="cx"> void WebMediaCacheManagerProxy::clearCacheForHostname(const String&amp; hostname)
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::ClearCacheForHostname(hostname));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::ClearCacheForHostname(hostname));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebMediaCacheManagerProxy::clearCacheForAllHostnames()
</span><span class="cx"> {
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::ClearCacheForAllHostnames());
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebMediaCacheManager::ClearCacheForAllHostnames());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebMediaCacheManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProcessProxy;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebMediaCacheManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebMediaCacheManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebMediaCacheManagerProxy();
</span><span class="cx">     
</span><span class="cx">     void getHostnamesWithMediaCache(std::function&lt;void (API::Array*, CallbackBase::Error)&gt;);
</span><span class="lines">@@ -56,12 +56,12 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebMediaCacheManagerProxy(WebContext*);
</del><ins>+    explicit WebMediaCacheManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void didGetHostnamesWithMediaCache(const Vector&lt;String&gt;&amp;, uint64_t callbackID);
</span><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual bool shouldTerminate(WebProcessProxy*) const override;
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebOriginDataManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,9 +28,9 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebOriginDataManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebOriginDataManagerProxyMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="lines">@@ -42,15 +42,15 @@
</span><span class="cx">     return &quot;WebOriginDataManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebOriginDataManagerProxy&gt; WebOriginDataManagerProxy::create(WebContext* context)
</del><ins>+PassRefPtr&lt;WebOriginDataManagerProxy&gt; WebOriginDataManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebOriginDataManagerProxy(context));
</del><ins>+    return adoptRef(new WebOriginDataManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebOriginDataManagerProxy::WebOriginDataManagerProxy(WebContext* context)
-    : WebContextSupplement(context)
</del><ins>+WebOriginDataManagerProxy::WebOriginDataManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><del>-    context-&gt;addMessageReceiver(Messages::WebOriginDataManagerProxy::messageReceiverName(), *this);
</del><ins>+    processPool-&gt;addMessageReceiver(Messages::WebOriginDataManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebOriginDataManagerProxy::~WebOriginDataManagerProxy()
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-void WebOriginDataManagerProxy::contextDestroyed()
</del><ins>+void WebOriginDataManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     invalidateCallbackMap(m_arrayCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx"> }
</span><span class="lines">@@ -155,9 +155,9 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename CallbackType, typename MessageType, typename... Parameters&gt;
</span><del>-static void sendMessageToAllProcessesInContext(WebContext* context, typename CallbackType::CallbackFunction callback, HashMap&lt;uint64_t, RefPtr&lt;CallbackType&gt;&gt;&amp; callbackStorage, Parameters... parameters)
</del><ins>+static void sendMessageToAllProcessesInProcessPool(WebProcessPool* processPool, typename CallbackType::CallbackFunction callback, HashMap&lt;uint64_t, RefPtr&lt;CallbackType&gt;&gt;&amp; callbackStorage, Parameters... parameters)
</ins><span class="cx"> {
</span><del>-    if (!context) {
</del><ins>+    if (!processPool) {
</ins><span class="cx">         CallbackType::create(callback)-&gt;invalidate();
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">     RefPtr&lt;CallbackSynchronizer&gt; synchronizer = synchronizerAndCallback.first;
</span><span class="cx">     auto perProcessCallback = synchronizerAndCallback.second;
</span><span class="cx"> 
</span><del>-    for (auto&amp; process : context-&gt;processes()) {
</del><ins>+    for (auto&amp; process : processPool-&gt;processes()) {
</ins><span class="cx">         if (!process || !process-&gt;canSendMessage())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="lines">@@ -182,13 +182,13 @@
</span><span class="cx">         RefPtr&lt;CallbackType&gt; callback = CallbackType::create(perProcessCallback);
</span><span class="cx">         uint64_t callbackID = callback-&gt;callbackID();
</span><span class="cx">         callbackStorage.set(callbackID, callback.release());
</span><del>-        context-&gt;sendToDatabaseProcessRelaunchingIfNecessary(MessageType(parameters..., callbackID));
</del><ins>+        processPool-&gt;sendToDatabaseProcessRelaunchingIfNecessary(MessageType(parameters..., callbackID));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebOriginDataManagerProxy::getOrigins(WKOriginDataTypes types, std::function&lt;void (API::Array*, CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    sendMessageToAllProcessesInContext&lt;ArrayCallback, Messages::WebOriginDataManager::GetOrigins&gt;(context(), callbackFunction, m_arrayCallbacks, types);
</del><ins>+    sendMessageToAllProcessesInProcessPool&lt;ArrayCallback, Messages::WebOriginDataManager::GetOrigins&gt;(processPool(), callbackFunction, m_arrayCallbacks, types);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebOriginDataManagerProxy::didGetOrigins(IPC::Connection* connection, const Vector&lt;SecurityOriginData&gt;&amp; originIdentifiers, uint64_t callbackID)
</span><span class="lines">@@ -212,12 +212,12 @@
</span><span class="cx">     securityOriginData.host = origin-&gt;securityOrigin().host();
</span><span class="cx">     securityOriginData.port = origin-&gt;securityOrigin().port();
</span><span class="cx"> 
</span><del>-    sendMessageToAllProcessesInContext&lt;VoidCallback, Messages::WebOriginDataManager::DeleteEntriesForOrigin&gt;(context(), callbackFunction, m_voidCallbacks, types, securityOriginData);
</del><ins>+    sendMessageToAllProcessesInProcessPool&lt;VoidCallback, Messages::WebOriginDataManager::DeleteEntriesForOrigin&gt;(processPool(), callbackFunction, m_voidCallbacks, types, securityOriginData);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebOriginDataManagerProxy::deleteEntriesModifiedBetweenDates(WKOriginDataTypes types, double startDate, double endDate, std::function&lt;void (CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    sendMessageToAllProcessesInContext&lt;VoidCallback, Messages::WebOriginDataManager::DeleteEntriesModifiedBetweenDates&gt;(context(), callbackFunction, m_voidCallbacks, types, startDate, endDate);
</del><ins>+    sendMessageToAllProcessesInProcessPool&lt;VoidCallback, Messages::WebOriginDataManager::DeleteEntriesModifiedBetweenDates&gt;(processPool(), callbackFunction, m_voidCallbacks, types, startDate, endDate);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebOriginDataManagerProxy::didDeleteEntries(IPC::Connection* connection, uint64_t callbackID)
</span><span class="lines">@@ -229,7 +229,7 @@
</span><span class="cx"> 
</span><span class="cx"> void WebOriginDataManagerProxy::deleteAllEntries(WKOriginDataTypes types, std::function&lt;void (CallbackBase::Error)&gt; callbackFunction)
</span><span class="cx"> {
</span><del>-    sendMessageToAllProcessesInContext&lt;VoidCallback, Messages::WebOriginDataManager::DeleteAllEntries&gt;(context(), callbackFunction, m_voidCallbacks, types);
</del><ins>+    sendMessageToAllProcessesInProcessPool&lt;VoidCallback, Messages::WebOriginDataManager::DeleteAllEntries&gt;(processPool(), callbackFunction, m_voidCallbacks, types);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebOriginDataManagerProxy::didDeleteAllEntries(IPC::Connection* connection, uint64_t callbackID)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebOriginDataManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebOriginDataManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><ins>+class WebProcessPool;
</ins><span class="cx"> struct SecurityOriginData;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="lines">@@ -49,7 +50,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebOriginDataManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebOriginDataManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebOriginDataManagerProxy();
</span><span class="cx"> 
</span><span class="cx">     void getOrigins(WKOriginDataTypes, std::function&lt;void (API::Array*, CallbackBase::Error)&gt;);
</span><span class="lines">@@ -64,14 +65,14 @@
</span><span class="cx">     virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebOriginDataManagerProxy(WebContext*);
</del><ins>+    explicit WebOriginDataManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     void didGetOrigins(IPC::Connection*, const Vector&lt;SecurityOriginData&gt;&amp;, uint64_t callbackID);
</span><span class="cx">     void didDeleteEntries(IPC::Connection*, uint64_t callbackID);
</span><span class="cx">     void didDeleteAllEntries(IPC::Connection*, uint64_t callbackID);
</span><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual bool shouldTerminate(WebProcessProxy*) const override;
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -61,7 +61,6 @@
</span><span class="cx"> #include &quot;WebBackForwardList.h&quot;
</span><span class="cx"> #include &quot;WebBackForwardListItem.h&quot;
</span><span class="cx"> #include &quot;WebCertificateInfo.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebContextMenuProxy.h&quot;
</span><span class="cx"> #include &quot;WebContextUserMessageCoders.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="lines">@@ -86,6 +85,7 @@
</span><span class="cx"> #include &quot;WebPopupMenuProxy.h&quot;
</span><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #include &quot;WebProtectionSpace.h&quot;
</span><span class="cx"> #include &quot;WebUserContentControllerProxy.h&quot;
</span><span class="lines">@@ -402,7 +402,7 @@
</span><span class="cx">     webPageProxyCounter.increment();
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    WebContext::statistics().wkPageCount++;
</del><ins>+    WebProcessPool::statistics().wkPageCount++;
</ins><span class="cx"> 
</span><span class="cx">     m_preferences-&gt;addPage(*this);
</span><span class="cx">     m_pageGroup-&gt;addPage(this);
</span><span class="lines">@@ -424,7 +424,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: If we ever expose the session storage size as a preference, we need to pass it here.
</span><span class="cx">     IPC::Connection* connection = m_process-&gt;state() == WebProcessProxy::State::Running ? m_process-&gt;connection() : nullptr;
</span><del>-    m_process-&gt;context().storageManager().createSessionStorageNamespace(m_pageID, connection, std::numeric_limits&lt;unsigned&gt;::max());
</del><ins>+    m_process-&gt;processPool().storageManager().createSessionStorageNamespace(m_pageID, connection, std::numeric_limits&lt;unsigned&gt;::max());
</ins><span class="cx">     setSessionID(configuration.sessionID);
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="lines">@@ -446,7 +446,7 @@
</span><span class="cx">     if (!m_isClosed)
</span><span class="cx">         close();
</span><span class="cx"> 
</span><del>-    WebContext::statistics().wkPageCount--;
</del><ins>+    WebProcessPool::statistics().wkPageCount--;
</ins><span class="cx"> 
</span><span class="cx">     if (m_hasSpellDocumentTag)
</span><span class="cx">         TextChecker::closeSpellDocumentWithTag(m_spellDocumentTag);
</span><span class="lines">@@ -566,10 +566,10 @@
</span><span class="cx">     m_process-&gt;removeWebPage(m_pageID);
</span><span class="cx">     m_process-&gt;removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID);
</span><span class="cx"> 
</span><del>-    if (m_process-&gt;context().processModel() == ProcessModelSharedSecondaryProcess)
-        m_process = m_process-&gt;context().ensureSharedWebProcess();
</del><ins>+    if (m_process-&gt;processPool().processModel() == ProcessModelSharedSecondaryProcess)
+        m_process = m_process-&gt;processPool().ensureSharedWebProcess();
</ins><span class="cx">     else
</span><del>-        m_process = m_process-&gt;context().createNewWebProcessRespectingProcessCountLimit();
</del><ins>+        m_process = m_process-&gt;processPool().createNewWebProcessRespectingProcessCountLimit();
</ins><span class="cx"> 
</span><span class="cx">     ASSERT(m_process-&gt;state() != ChildProcessProxy::State::Terminated);
</span><span class="cx">     if (m_process-&gt;state() == ChildProcessProxy::State::Running)
</span><span class="lines">@@ -625,7 +625,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx">     if (sessionID.isEphemeral())
</span><del>-        m_process-&gt;context().sendToNetworkingProcess(Messages::NetworkProcess::EnsurePrivateBrowsingSession(sessionID));
</del><ins>+        m_process-&gt;processPool().sendToNetworkingProcess(Messages::NetworkProcess::EnsurePrivateBrowsingSession(sessionID));
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -692,8 +692,8 @@
</span><span class="cx">     m_process-&gt;send(Messages::WebPage::Close(), m_pageID);
</span><span class="cx">     m_process-&gt;removeWebPage(m_pageID);
</span><span class="cx">     m_process-&gt;removeMessageReceiver(Messages::WebPageProxy::messageReceiverName(), m_pageID);
</span><del>-    m_process-&gt;context().storageManager().destroySessionStorageNamespace(m_pageID);
-    m_process-&gt;context().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;clearNotifications(this);
</del><ins>+    m_process-&gt;processPool().storageManager().destroySessionStorageNamespace(m_pageID);
+    m_process-&gt;processPool().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;clearNotifications(this);
</ins><span class="cx"> 
</span><span class="cx">     m_websiteDataStore-&gt;removeWebPage(*this);
</span><span class="cx"> }
</span><span class="lines">@@ -1039,14 +1039,14 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">     String newMimeType = mimeType;
</span><del>-    PluginModuleInfo plugin = m_process-&gt;context().pluginInfoStore().findPlugin(newMimeType, URL());
</del><ins>+    PluginModuleInfo plugin = m_process-&gt;processPool().pluginInfoStore().findPlugin(newMimeType, URL());
</ins><span class="cx">     if (!plugin.path.isNull() &amp;&amp; m_preferences-&gt;pluginsEnabled())
</span><span class="cx">         return true;
</span><span class="cx"> #endif // ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA)
</span><span class="cx">     // On Mac, we can show PDFs.
</span><del>-    if (MIMETypeRegistry::isPDFOrPostScriptMIMEType(mimeType) &amp;&amp; !WebContext::omitPDFSupport())
</del><ins>+    if (MIMETypeRegistry::isPDFOrPostScriptMIMEType(mimeType) &amp;&amp; !WebProcessPool::omitPDFSupport())
</ins><span class="cx">         return true;
</span><span class="cx"> #endif // PLATFORM(COCOA)
</span><span class="cx"> 
</span><span class="lines">@@ -1271,7 +1271,7 @@
</span><span class="cx">     if (m_viewState &amp; ViewState::IsVisuallyIdle)
</span><span class="cx">         m_pageIsUserObservableCount = nullptr;
</span><span class="cx">     else if (!m_pageIsUserObservableCount)
</span><del>-        m_pageIsUserObservableCount = m_process-&gt;context().userObservablePageCount();
</del><ins>+        m_pageIsUserObservableCount = m_process-&gt;processPool().userObservablePageCount();
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     if (!isViewVisible())
</span><span class="lines">@@ -1286,7 +1286,7 @@
</span><span class="cx">     if (m_preferences-&gt;pageVisibilityBasedProcessSuppressionEnabled())
</span><span class="cx">         m_preventProcessSuppressionCount = nullptr;
</span><span class="cx">     else if (!m_preventProcessSuppressionCount)
</span><del>-        m_preventProcessSuppressionCount = m_process-&gt;context().processSuppressionDisabledForPageCount();
</del><ins>+        m_preventProcessSuppressionCount = m_process-&gt;processPool().processSuppressionDisabledForPageCount();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::layerHostingModeDidChange()
</span><span class="lines">@@ -1664,7 +1664,7 @@
</span><span class="cx">     pluginLoadPolicy = PluginModuleLoadNormally;
</span><span class="cx"> 
</span><span class="cx">     PluginData::AllowedPluginTypes allowedPluginTypes = allowOnlyApplicationPlugins ? PluginData::OnlyApplicationPlugins : PluginData::AllPlugins;
</span><del>-    PluginModuleInfo plugin = m_process-&gt;context().pluginInfoStore().findPlugin(newMimeType, URL(URL(), urlString), allowedPluginTypes);
</del><ins>+    PluginModuleInfo plugin = m_process-&gt;processPool().pluginInfoStore().findPlugin(newMimeType, URL(URL(), urlString), allowedPluginTypes);
</ins><span class="cx">     if (!plugin.path) {
</span><span class="cx">         pluginProcessToken = 0;
</span><span class="cx">         return;
</span><span class="lines">@@ -1828,7 +1828,7 @@
</span><span class="cx">         // Create a download proxy.
</span><span class="cx">         // FIXME: We should ensure that the downloadRequest is never empty.
</span><span class="cx">         const ResourceRequest&amp; downloadRequest = m_decidePolicyForResponseRequest ? *m_decidePolicyForResponseRequest : ResourceRequest();
</span><del>-        DownloadProxy* download = m_process-&gt;context().createDownloadProxy(downloadRequest);
</del><ins>+        DownloadProxy* download = m_process-&gt;processPool().createDownloadProxy(downloadRequest);
</ins><span class="cx">         downloadID = download-&gt;downloadID();
</span><span class="cx">         handleDownloadRequest(download);
</span><span class="cx">     }
</span><span class="lines">@@ -3079,7 +3079,7 @@
</span><span class="cx">     MESSAGE_CHECK(frame-&gt;page() == this);
</span><span class="cx"> 
</span><span class="cx">     m_loaderClient-&gt;didNavigateWithNavigationData(*this, store, *frame);
</span><del>-    process().context().historyClient().didNavigateWithNavigationData(process().context(), *this, store, *frame);
</del><ins>+    process().processPool().historyClient().didNavigateWithNavigationData(process().processPool(), *this, store, *frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::didPerformClientRedirect(const String&amp; sourceURLString, const String&amp; destinationURLString, uint64_t frameID)
</span><span class="lines">@@ -3095,7 +3095,7 @@
</span><span class="cx">     MESSAGE_CHECK_URL(destinationURLString);
</span><span class="cx"> 
</span><span class="cx">     m_loaderClient-&gt;didPerformClientRedirect(*this, sourceURLString, destinationURLString, *frame);
</span><del>-    process().context().historyClient().didPerformClientRedirect(process().context(), *this, sourceURLString, destinationURLString, *frame);
</del><ins>+    process().processPool().historyClient().didPerformClientRedirect(process().processPool(), *this, sourceURLString, destinationURLString, *frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::didPerformServerRedirect(const String&amp; sourceURLString, const String&amp; destinationURLString, uint64_t frameID)
</span><span class="lines">@@ -3111,7 +3111,7 @@
</span><span class="cx">     MESSAGE_CHECK_URL(destinationURLString);
</span><span class="cx"> 
</span><span class="cx">     m_loaderClient-&gt;didPerformServerRedirect(*this, sourceURLString, destinationURLString, *frame);
</span><del>-    process().context().historyClient().didPerformServerRedirect(process().context(), *this, sourceURLString, destinationURLString, *frame);
</del><ins>+    process().processPool().historyClient().didPerformServerRedirect(process().processPool(), *this, sourceURLString, destinationURLString, *frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::didUpdateHistoryTitle(const String&amp; title, const String&amp; url, uint64_t frameID)
</span><span class="lines">@@ -3123,7 +3123,7 @@
</span><span class="cx">     MESSAGE_CHECK_URL(url);
</span><span class="cx"> 
</span><span class="cx">     m_loaderClient-&gt;didUpdateHistoryTitle(*this, title, url, *frame);
</span><del>-    process().context().historyClient().didUpdateHistoryTitle(process().context(), *this, title, url, *frame);
</del><ins>+    process().processPool().historyClient().didUpdateHistoryTitle(process().processPool(), *this, title, url, *frame);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // UIClient
</span><span class="lines">@@ -3141,7 +3141,7 @@
</span><span class="cx"> 
</span><span class="cx">     newPageID = newPage-&gt;pageID();
</span><span class="cx">     newPageParameters = newPage-&gt;creationParameters();
</span><del>-    process().context().storageManager().cloneSessionStorageNamespace(m_pageID, newPage-&gt;pageID());
</del><ins>+    process().processPool().storageManager().cloneSessionStorageNamespace(m_pageID, newPage-&gt;pageID());
</ins><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void WebPageProxy::showPage()
</span><span class="lines">@@ -3267,14 +3267,14 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(connection == m_process-&gt;connection());
</span><span class="cx"> 
</span><del>-    m_process-&gt;context().storageManager().setAllowedSessionStorageNamespaceConnection(m_pageID, connection);
</del><ins>+    m_process-&gt;processPool().storageManager().setAllowedSessionStorageNamespaceConnection(m_pageID, connection);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::connectionWillClose(IPC::Connection* connection)
</span><span class="cx"> {
</span><span class="cx">     ASSERT_UNUSED(connection, connection == m_process-&gt;connection());
</span><span class="cx"> 
</span><del>-    m_process-&gt;context().storageManager().setAllowedSessionStorageNamespaceConnection(m_pageID, 0);
</del><ins>+    m_process-&gt;processPool().storageManager().setAllowedSessionStorageNamespaceConnection(m_pageID, 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::processDidFinishLaunching()
</span><span class="lines">@@ -3296,7 +3296,7 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;ImmutableDictionary&gt; pluginInformation;
</span><span class="cx">     String newMimeType = mimeType;
</span><del>-    PluginModuleInfo plugin = m_process-&gt;context().pluginInfoStore().findPlugin(newMimeType, URL(URL(), pluginURLString));
</del><ins>+    PluginModuleInfo plugin = m_process-&gt;processPool().pluginInfoStore().findPlugin(newMimeType, URL(URL(), pluginURLString));
</ins><span class="cx">     pluginInformation = createPluginInformationDictionary(plugin, frameURLString, mimeType, pageURLString, pluginspageAttributeURLString, pluginURLString);
</span><span class="cx"> 
</span><span class="cx">     WKPluginUnavailabilityReason pluginUnavailabilityReason = kWKPluginUnavailabilityReasonPluginMissing;
</span><span class="lines">@@ -3971,15 +3971,15 @@
</span><span class="cx">     }
</span><span class="cx"> #endif
</span><span class="cx">     if (item.action() == ContextMenuItemTagDownloadImageToDisk) {
</span><del>-        m_process-&gt;context().download(this, URL(URL(), m_activeContextMenuContextData.webHitTestResultData().absoluteImageURL));
</del><ins>+        m_process-&gt;processPool().download(this, URL(URL(), m_activeContextMenuContextData.webHitTestResultData().absoluteImageURL));
</ins><span class="cx">         return;    
</span><span class="cx">     }
</span><span class="cx">     if (item.action() == ContextMenuItemTagDownloadLinkToDisk) {
</span><del>-        m_process-&gt;context().download(this, URL(URL(), m_activeContextMenuContextData.webHitTestResultData().absoluteLinkURL));
</del><ins>+        m_process-&gt;processPool().download(this, URL(URL(), m_activeContextMenuContextData.webHitTestResultData().absoluteLinkURL));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (item.action() == ContextMenuItemTagDownloadMediaToDisk) {
</span><del>-        m_process-&gt;context().download(this, URL(URL(), m_activeContextMenuContextData.webHitTestResultData().absoluteMediaURL));
</del><ins>+        m_process-&gt;processPool().download(this, URL(URL(), m_activeContextMenuContextData.webHitTestResultData().absoluteMediaURL));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx">     if (item.action() == ContextMenuItemTagCheckSpellingWhileTyping) {
</span><span class="lines">@@ -4854,22 +4854,22 @@
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::showNotification(const String&amp; title, const String&amp; body, const String&amp; iconURL, const String&amp; tag, const String&amp; lang, const String&amp; dir, const String&amp; originString, uint64_t notificationID)
</span><span class="cx"> {
</span><del>-    m_process-&gt;context().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;show(this, title, body, iconURL, tag, lang, dir, originString, notificationID);
</del><ins>+    m_process-&gt;processPool().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;show(this, title, body, iconURL, tag, lang, dir, originString, notificationID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::cancelNotification(uint64_t notificationID)
</span><span class="cx"> {
</span><del>-    m_process-&gt;context().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;cancel(this, notificationID);
</del><ins>+    m_process-&gt;processPool().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;cancel(this, notificationID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::clearNotifications(const Vector&lt;uint64_t&gt;&amp; notificationIDs)
</span><span class="cx"> {
</span><del>-    m_process-&gt;context().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;clearNotifications(this, notificationIDs);
</del><ins>+    m_process-&gt;processPool().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;clearNotifications(this, notificationIDs);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::didDestroyNotification(uint64_t notificationID)
</span><span class="cx"> {
</span><del>-    m_process-&gt;context().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;didDestroyNotification(this, notificationID);
</del><ins>+    m_process-&gt;processPool().supplement&lt;WebNotificationManagerProxy&gt;()-&gt;didDestroyNotification(this, notificationID);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> float WebPageProxy::headerHeight(WebFrameProxy* frame)
</span><span class="lines">@@ -4966,7 +4966,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(COCOA) &amp;&amp; ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">     String newMimeType = mimeType;
</span><del>-    PluginModuleInfo plugin = m_process-&gt;context().pluginInfoStore().findPlugin(newMimeType, URL(URL(), pluginURLString));
</del><ins>+    PluginModuleInfo plugin = m_process-&gt;processPool().pluginInfoStore().findPlugin(newMimeType, URL(URL(), pluginURLString));
</ins><span class="cx">     pluginInformation = createPluginInformationDictionary(plugin, frameURLString, mimeType, pageURLString, String(), String(), replacementObscured);
</span><span class="cx"> #else
</span><span class="cx">     UNUSED_PARAM(mimeType);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPreferences.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPreferences.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebPreferences.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,9 +26,9 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebPreferences.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebPageGroup.h&quot;
</span><span class="cx"> #include &quot;WebPreferencesKeys.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/ThreadingPrimitives.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -87,7 +87,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (privateBrowsingEnabled()) {
</span><span class="cx">         if (!privateBrowsingPageCount)
</span><del>-            WebContext::willStartUsingPrivateBrowsing();
</del><ins>+            WebProcessPool::willStartUsingPrivateBrowsing();
</ins><span class="cx"> 
</span><span class="cx">         ++privateBrowsingPageCount;
</span><span class="cx">     }
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx">     if (privateBrowsingEnabled()) {
</span><span class="cx">         --privateBrowsingPageCount;
</span><span class="cx">         if (!privateBrowsingPageCount)
</span><del>-            WebContext::willStopUsingPrivateBrowsing();
</del><ins>+            WebProcessPool::willStopUsingPrivateBrowsing();
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -156,7 +156,7 @@
</span><span class="cx"> 
</span><span class="cx">     if (value) {
</span><span class="cx">         if (!privateBrowsingPageCount)
</span><del>-            WebContext::willStartUsingPrivateBrowsing();
</del><ins>+            WebProcessPool::willStartUsingPrivateBrowsing();
</ins><span class="cx">         privateBrowsingPageCount += pagesChanged;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">         ASSERT(privateBrowsingPageCount &gt;= pagesChanged);
</span><span class="cx">         privateBrowsingPageCount -= pagesChanged;
</span><span class="cx">         if (!privateBrowsingPageCount)
</span><del>-            WebContext::willStopUsingPrivateBrowsing();
</del><ins>+            WebProcessPool::willStopUsingPrivateBrowsing();
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcppfromrev177636trunkSourceWebKit2UIProcessWebContextcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (from rev 177636, trunk/Source/WebKit2/UIProcess/WebContext.cpp) (0 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -0,0 +1,1495 @@
</span><ins>+/*
+ * Copyright (C) 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;WebProcessPool.h&quot;
+
+#include &quot;APIArray.h&quot;
+#include &quot;APIDownloadClient.h&quot;
+#include &quot;APILegacyContextHistoryClient.h&quot;
+#include &quot;CustomProtocolManagerMessages.h&quot;
+#include &quot;DownloadProxy.h&quot;
+#include &quot;DownloadProxyMessages.h&quot;
+#include &quot;Logging.h&quot;
+#include &quot;MutableDictionary.h&quot;
+#include &quot;SandboxExtension.h&quot;
+#include &quot;StatisticsData.h&quot;
+#include &quot;TextChecker.h&quot;
+#include &quot;WKContextPrivate.h&quot;
+#include &quot;WebApplicationCacheManagerProxy.h&quot;
+#include &quot;WebContextMessageKinds.h&quot;
+#include &quot;WebContextSupplement.h&quot;
+#include &quot;WebContextUserMessageCoders.h&quot;
+#include &quot;WebCookieManagerProxy.h&quot;
+#include &quot;WebCoreArgumentCoders.h&quot;
+#include &quot;WebDatabaseManagerProxy.h&quot;
+#include &quot;WebGeolocationManagerProxy.h&quot;
+#include &quot;WebIconDatabase.h&quot;
+#include &quot;WebKeyValueStorageManager.h&quot;
+#include &quot;WebKit2Initialize.h&quot;
+#include &quot;WebMediaCacheManagerProxy.h&quot;
+#include &quot;WebMemorySampler.h&quot;
+#include &quot;WebNotificationManagerProxy.h&quot;
+#include &quot;WebPageGroup.h&quot;
+#include &quot;WebPluginSiteDataManager.h&quot;
+#include &quot;WebPreferences.h&quot;
+#include &quot;WebProcessCreationParameters.h&quot;
+#include &quot;WebProcessMessages.h&quot;
+#include &quot;WebProcessPoolMessages.h&quot;
+#include &quot;WebProcessProxy.h&quot;
+#include &quot;WebResourceCacheManagerProxy.h&quot;
+#include &quot;WebsiteDataStore.h&quot;
+#include &lt;WebCore/ApplicationCacheStorage.h&gt;
+#include &lt;WebCore/Language.h&gt;
+#include &lt;WebCore/LinkHash.h&gt;
+#include &lt;WebCore/Logging.h&gt;
+#include &lt;WebCore/ResourceRequest.h&gt;
+#include &lt;WebCore/SessionID.h&gt;
+#include &lt;runtime/JSCInlines.h&gt;
+#include &lt;wtf/CurrentTime.h&gt;
+#include &lt;wtf/MainThread.h&gt;
+#include &lt;wtf/NeverDestroyed.h&gt;
+#include &lt;wtf/RunLoop.h&gt;
+
+#if ENABLE(BATTERY_STATUS)
+#include &quot;WebBatteryManagerProxy.h&quot;
+#endif
+
+#if ENABLE(DATABASE_PROCESS)
+#include &quot;DatabaseProcessCreationParameters.h&quot;
+#include &quot;DatabaseProcessMessages.h&quot;
+#include &quot;WebOriginDataManagerProxy.h&quot;
+#endif
+
+#if ENABLE(NETWORK_PROCESS)
+#include &quot;NetworkProcessCreationParameters.h&quot;
+#include &quot;NetworkProcessMessages.h&quot;
+#include &quot;NetworkProcessProxy.h&quot;
+#endif
+
+#if ENABLE(SERVICE_CONTROLS)
+#include &quot;ServicesController.h&quot;
+#endif
+
+#if ENABLE(REMOTE_INSPECTOR)
+#include &lt;JavaScriptCore/RemoteInspector.h&gt;
+#endif
+
+#if USE(SOUP)
+#include &quot;WebSoupCustomProtocolRequestManager.h&quot;
+#endif
+
+#ifndef NDEBUG
+#include &lt;wtf/RefCountedLeakCounter.h&gt;
+#endif
+
+using namespace WebCore;
+using namespace WebKit;
+
+namespace WebKit {
+
+static const double sharedSecondaryProcessShutdownTimeout = 60;
+
+DEFINE_DEBUG_ONLY_GLOBAL(WTF::RefCountedLeakCounter, processPoolCounter, (&quot;WebProcessPool&quot;));
+
+void WebProcessPool::applyPlatformSpecificConfigurationDefaults(WebProcessPoolConfiguration&amp; configuration)
+{
+    // FIXME: This function should not be needed; all ports should make sure that the configuration has the right
+    // values, and then we should get rid of the platform specific defaults inside WebProcessPool.
+
+    if (!configuration.localStorageDirectory)
+        configuration.localStorageDirectory = platformDefaultLocalStorageDirectory();
+
+    if (!configuration.webSQLDatabaseDirectory)
+        configuration.webSQLDatabaseDirectory = platformDefaultWebSQLDatabaseDirectory();
+
+    // *********
+    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (&lt;rdar://problem/17454712&gt;)
+    // *********
+    if (!configuration.indexedDBDatabaseDirectory)
+        configuration.indexedDBDatabaseDirectory = platformDefaultIndexedDBDatabaseDirectory();
+
+    if (!configuration.mediaKeysStorageDirectory)
+        configuration.mediaKeysStorageDirectory = platformDefaultMediaKeysStorageDirectory();
+}
+
+PassRefPtr&lt;WebProcessPool&gt; WebProcessPool::create(WebProcessPoolConfiguration configuration)
+{
+    InitializeWebKit2();
+    return adoptRef(new WebProcessPool(WTF::move(configuration)));
+}
+
+static Vector&lt;WebProcessPool*&gt;&amp; processPools()
+{
+    static NeverDestroyed&lt;Vector&lt;WebProcessPool*&gt;&gt; processPools;
+    return processPools;
+}
+
+const Vector&lt;WebProcessPool*&gt;&amp; WebProcessPool::allProcessPools()
+{
+    return processPools();
+}
+
+static WebsiteDataStore::Configuration websiteDataStoreConfiguration()
+{
+    WebsiteDataStore::Configuration configuration;
+
+    // FIXME: Fill in the configuration.
+    return configuration;
+}
+
+WebProcessPool::WebProcessPool(WebProcessPoolConfiguration configuration)
+    : m_processModel(ProcessModelSharedSecondaryProcess)
+    , m_webProcessCountLimit(UINT_MAX)
+    , m_haveInitialEmptyProcess(false)
+    , m_processWithPageCache(0)
+    , m_defaultPageGroup(WebPageGroup::createNonNull())
+    , m_injectedBundlePath(configuration.injectedBundlePath)
+    , m_downloadClient(std::make_unique&lt;API::DownloadClient&gt;())
+    , m_historyClient(std::make_unique&lt;API::LegacyContextHistoryClient&gt;())
+    , m_visitedLinkProvider(VisitedLinkProvider::create())
+    , m_visitedLinksPopulated(false)
+    , m_plugInAutoStartProvider(this)
+    , m_alwaysUsesComplexTextCodePath(false)
+    , m_shouldUseFontSmoothing(true)
+    , m_cacheModel(CacheModelDocumentViewer)
+    , m_memorySamplerEnabled(false)
+    , m_memorySamplerInterval(1400.0)
+    , m_websiteDataStore(WebsiteDataStore::create(websiteDataStoreConfiguration()))
+    , m_storageManager(StorageManager::create(configuration.localStorageDirectory))
+#if USE(SOUP)
+    , m_initialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyOnlyFromMainDocumentDomain)
+#endif
+    , m_webSQLDatabaseDirectory(WTF::move(configuration.webSQLDatabaseDirectory))
+    , m_indexedDBDatabaseDirectory(WTF::move(configuration.indexedDBDatabaseDirectory))
+    , m_mediaKeysStorageDirectory(WTF::move(configuration.mediaKeysStorageDirectory))
+    , m_shouldUseTestingNetworkSession(false)
+    , m_processTerminationEnabled(true)
+#if ENABLE(NETWORK_PROCESS)
+    , m_canHandleHTTPSServerTrustEvaluation(true)
+    , m_usesNetworkProcess(false)
+#endif
+#if USE(SOUP)
+    , m_ignoreTLSErrors(true)
+#endif
+    , m_memoryCacheDisabled(false)
+    , m_userObservablePageCounter([this](bool) { updateProcessSuppressionState(); })
+    , m_processSuppressionDisabledForPageCounter([this](bool) { updateProcessSuppressionState(); })
+{
+    platformInitialize();
+
+    addMessageReceiver(Messages::WebProcessPool::messageReceiverName(), *this);
+    addMessageReceiver(WebContextLegacyMessages::messageReceiverName(), *this);
+
+    // NOTE: These sub-objects must be initialized after m_messageReceiverMap..
+    m_iconDatabase = WebIconDatabase::create(this);
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    m_pluginSiteDataManager = WebPluginSiteDataManager::create(this);
+#endif // ENABLE(NETSCAPE_PLUGIN_API)
+
+    addSupplement&lt;WebApplicationCacheManagerProxy&gt;();
+    addSupplement&lt;WebCookieManagerProxy&gt;();
+    addSupplement&lt;WebGeolocationManagerProxy&gt;();
+    addSupplement&lt;WebKeyValueStorageManager&gt;();
+    addSupplement&lt;WebMediaCacheManagerProxy&gt;();
+    addSupplement&lt;WebNotificationManagerProxy&gt;();
+    addSupplement&lt;WebResourceCacheManagerProxy&gt;();
+#if ENABLE(SQL_DATABASE)
+    addSupplement&lt;WebDatabaseManagerProxy&gt;();
+#endif
+#if USE(SOUP)
+    addSupplement&lt;WebSoupCustomProtocolRequestManager&gt;();
+#endif
+#if ENABLE(BATTERY_STATUS)
+    addSupplement&lt;WebBatteryManagerProxy&gt;();
+#endif
+#if ENABLE(DATABASE_PROCESS)
+    addSupplement&lt;WebOriginDataManagerProxy&gt;();
+#endif
+
+    processPools().append(this);
+
+    addLanguageChangeObserver(this, languageChanged);
+
+#if !LOG_DISABLED
+    WebCore::initializeLoggingChannelsIfNecessary();
+    WebKit::initializeLogChannelsIfNecessary();
+#endif // !LOG_DISABLED
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    m_pluginInfoStore.setClient(this);
+#endif
+
+#ifndef NDEBUG
+    processPoolCounter.increment();
+#endif
+}
+
+#if !PLATFORM(COCOA)
+void WebProcessPool::platformInitialize()
+{
+}
+#endif
+
+WebProcessPool::~WebProcessPool()
+{
+    ASSERT(processPools().find(this) != notFound);
+    processPools().remove(processPools().find(this));
+
+    removeLanguageChangeObserver(this);
+
+    m_messageReceiverMap.invalidate();
+
+    WebContextSupplementMap::const_iterator it = m_supplements.begin();
+    WebContextSupplementMap::const_iterator end = m_supplements.end();
+    for (; it != end; ++it) {
+        it-&gt;value-&gt;processPoolDestroyed();
+        it-&gt;value-&gt;clearProcessPool();
+    }
+
+    m_iconDatabase-&gt;invalidate();
+    m_iconDatabase-&gt;clearProcessPool();
+    WebIconDatabase* rawIconDatabase = m_iconDatabase.release().leakRef();
+    rawIconDatabase-&gt;derefWhenAppropriate();
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    m_pluginSiteDataManager-&gt;invalidate();
+    m_pluginSiteDataManager-&gt;clearProcessPool();
+#endif
+
+    invalidateCallbackMap(m_dictionaryCallbacks, CallbackBase::Error::OwnerWasInvalidated);
+
+    platformInvalidateContext();
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    m_pluginInfoStore.setClient(0);
+#endif
+
+#ifndef NDEBUG
+    processPoolCounter.decrement();
+#endif
+}
+
+void WebProcessPool::initializeClient(const WKContextClientBase* client)
+{
+    m_client.initialize(client);
+}
+
+void WebProcessPool::initializeInjectedBundleClient(const WKContextInjectedBundleClientBase* client)
+{
+    m_injectedBundleClient.initialize(client);
+}
+
+void WebProcessPool::initializeConnectionClient(const WKContextConnectionClientBase* client)
+{
+    m_connectionClient.initialize(client);
+}
+
+void WebProcessPool::setHistoryClient(std::unique_ptr&lt;API::LegacyContextHistoryClient&gt; historyClient)
+{
+    if (!historyClient)
+        m_historyClient = std::make_unique&lt;API::LegacyContextHistoryClient&gt;();
+    else
+        m_historyClient = WTF::move(historyClient);
+}
+
+void WebProcessPool::setDownloadClient(std::unique_ptr&lt;API::DownloadClient&gt; downloadClient)
+{
+    if (!downloadClient)
+        m_downloadClient = std::make_unique&lt;API::DownloadClient&gt;();
+    else
+        m_downloadClient = WTF::move(downloadClient);
+}
+
+void WebProcessPool::setProcessModel(ProcessModel processModel)
+{
+    // Guard against API misuse.
+    if (!m_processes.isEmpty())
+        CRASH();
+    if (processModel != ProcessModelSharedSecondaryProcess &amp;&amp; !m_messagesToInjectedBundlePostedToEmptyContext.isEmpty())
+        CRASH();
+
+    m_processModel = processModel;
+}
+
+void WebProcessPool::setMaximumNumberOfProcesses(unsigned maximumNumberOfProcesses)
+{
+    // Guard against API misuse.
+    if (!m_processes.isEmpty())
+        CRASH();
+
+    if (maximumNumberOfProcesses == 0)
+        m_webProcessCountLimit = UINT_MAX;
+    else
+        m_webProcessCountLimit = maximumNumberOfProcesses;
+}
+
+IPC::Connection* WebProcessPool::networkingProcessConnection()
+{
+    switch (m_processModel) {
+    case ProcessModelSharedSecondaryProcess:
+#if ENABLE(NETWORK_PROCESS)
+        if (m_usesNetworkProcess)
+            return m_networkProcess-&gt;connection();
+#endif
+        return m_processes[0]-&gt;connection();
+    case ProcessModelMultipleSecondaryProcesses:
+#if ENABLE(NETWORK_PROCESS)
+        ASSERT(m_usesNetworkProcess);
+        return m_networkProcess-&gt;connection();
+#else
+        break;
+#endif
+    }
+    ASSERT_NOT_REACHED();
+    return 0;
+}
+
+void WebProcessPool::languageChanged(void* context)
+{
+    static_cast&lt;WebProcessPool*&gt;(context)-&gt;languageChanged();
+}
+
+void WebProcessPool::languageChanged()
+{
+    sendToAllProcesses(Messages::WebProcess::UserPreferredLanguagesChanged(userPreferredLanguages()));
+#if USE(SOUP) &amp;&amp; ENABLE(NETWORK_PROCESS)
+    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
+        m_networkProcess-&gt;send(Messages::NetworkProcess::UserPreferredLanguagesChanged(userPreferredLanguages()), 0);
+#endif
+}
+
+void WebProcessPool::fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled)
+{
+    sendToAllProcesses(Messages::WebProcess::FullKeyboardAccessModeChanged(fullKeyboardAccessEnabled));
+}
+
+void WebProcessPool::textCheckerStateChanged()
+{
+    sendToAllProcesses(Messages::WebProcess::SetTextCheckerState(TextChecker::state()));
+}
+
+void WebProcessPool::setUsesNetworkProcess(bool usesNetworkProcess)
+{
+#if ENABLE(NETWORK_PROCESS)
+    m_usesNetworkProcess = usesNetworkProcess;
+#else
+    UNUSED_PARAM(usesNetworkProcess);
+#endif
+}
+
+bool WebProcessPool::usesNetworkProcess() const
+{
+#if ENABLE(NETWORK_PROCESS)
+    return m_usesNetworkProcess;
+#else
+    return false;
+#endif
+}
+
+#if ENABLE(NETWORK_PROCESS)
+void WebProcessPool::ensureNetworkProcess()
+{
+    if (m_networkProcess)
+        return;
+
+    m_networkProcess = NetworkProcessProxy::create(*this);
+
+    NetworkProcessCreationParameters parameters;
+
+    parameters.privateBrowsingEnabled = WebPreferences::anyPagesAreUsingPrivateBrowsing();
+
+    parameters.cacheModel = m_cacheModel;
+    parameters.canHandleHTTPSServerTrustEvaluation = m_canHandleHTTPSServerTrustEvaluation;
+
+    parameters.diskCacheDirectory = stringByResolvingSymlinksInPath(diskCacheDirectory());
+    if (!parameters.diskCacheDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.diskCacheDirectory, parameters.diskCacheDirectoryExtensionHandle);
+
+    parameters.cookieStorageDirectory = cookieStorageDirectory();
+
+#if PLATFORM(IOS)
+    if (!parameters.cookieStorageDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
+
+    String hstsDatabasePath = networkingHSTSDatabasePath();
+    if (!hstsDatabasePath.isEmpty())
+        SandboxExtension::createHandle(hstsDatabasePath, SandboxExtension::ReadWrite, parameters.hstsDatabasePathExtensionHandle);
+
+    String parentBundleDirectory = this-&gt;parentBundleDirectory();
+    if (!parentBundleDirectory.isEmpty())
+        SandboxExtension::createHandle(parentBundleDirectory, SandboxExtension::ReadOnly, parameters.parentBundleDirectoryExtensionHandle);
+#endif
+
+    parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
+
+    // Add any platform specific parameters
+    platformInitializeNetworkProcess(parameters);
+
+    // Initialize the network process.
+    m_networkProcess-&gt;send(Messages::NetworkProcess::InitializeNetworkProcess(parameters), 0);
+
+#if PLATFORM(COCOA)
+    m_networkProcess-&gt;send(Messages::NetworkProcess::SetQOS(networkProcessLatencyQOS(), networkProcessThroughputQOS()), 0);
+#endif
+}
+
+void WebProcessPool::networkProcessCrashed(NetworkProcessProxy* networkProcessProxy)
+{
+    ASSERT(m_networkProcess);
+    ASSERT(networkProcessProxy == m_networkProcess.get());
+
+    WebContextSupplementMap::const_iterator it = m_supplements.begin();
+    WebContextSupplementMap::const_iterator end = m_supplements.end();
+    for (; it != end; ++it)
+        it-&gt;value-&gt;processDidClose(networkProcessProxy);
+
+    m_networkProcess = nullptr;
+
+    m_client.networkProcessDidCrash(this);
+}
+
+void WebProcessPool::getNetworkProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt; reply)
+{
+    ASSERT(reply);
+
+    ensureNetworkProcess();
+    ASSERT(m_networkProcess);
+
+    m_networkProcess-&gt;getNetworkProcessConnection(reply);
+}
+#endif
+
+#if ENABLE(DATABASE_PROCESS)
+void WebProcessPool::ensureDatabaseProcess()
+{
+    if (m_databaseProcess)
+        return;
+
+    m_databaseProcess = DatabaseProcessProxy::create(this);
+
+    ASSERT(!m_indexedDBDatabaseDirectory.isEmpty());
+
+    // *********
+    // IMPORTANT: Do not change the directory structure for indexed databases on disk without first consulting a reviewer from Apple (&lt;rdar://problem/17454712&gt;)
+    // *********
+    DatabaseProcessCreationParameters parameters;
+    parameters.indexedDatabaseDirectory = m_indexedDBDatabaseDirectory;
+
+    SandboxExtension::createHandleForReadWriteDirectory(parameters.indexedDatabaseDirectory, parameters.indexedDatabaseDirectoryExtensionHandle);
+
+    m_databaseProcess-&gt;send(Messages::DatabaseProcess::InitializeDatabaseProcess(parameters), 0);
+}
+
+void WebProcessPool::getDatabaseProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt; reply)
+{
+    ASSERT(reply);
+
+    ensureDatabaseProcess();
+
+    m_databaseProcess-&gt;getDatabaseProcessConnection(reply);
+}
+
+void WebProcessPool::databaseProcessCrashed(DatabaseProcessProxy* databaseProcessProxy)
+{
+    ASSERT(m_databaseProcess);
+    ASSERT(databaseProcessProxy == m_databaseProcess.get());
+
+    for (auto&amp; supplement : m_supplements)
+        supplement.value-&gt;processDidClose(databaseProcessProxy);
+
+    m_databaseProcess = nullptr;
+}
+#endif
+
+void WebProcessPool::willStartUsingPrivateBrowsing()
+{
+    for (auto* processPool : allProcessPools())
+        processPool-&gt;setAnyPageGroupMightHavePrivateBrowsingEnabled(true);
+}
+
+void WebProcessPool::willStopUsingPrivateBrowsing()
+{
+    for (auto* processPool : allProcessPools())
+        processPool-&gt;setAnyPageGroupMightHavePrivateBrowsingEnabled(false);
+}
+
+void WebProcessPool::windowServerConnectionStateChanged()
+{
+    size_t processCount = m_processes.size();
+    for (size_t i = 0; i &lt; processCount; ++i)
+        m_processes[i]-&gt;windowServerConnectionStateChanged();
+}
+
+void WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled(bool privateBrowsingEnabled)
+{
+    m_iconDatabase-&gt;setPrivateBrowsingEnabled(privateBrowsingEnabled);
+
+#if ENABLE(NETWORK_PROCESS)
+    if (usesNetworkProcess() &amp;&amp; networkProcess()) {
+        if (privateBrowsingEnabled)
+            networkProcess()-&gt;send(Messages::NetworkProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
+        else
+            networkProcess()-&gt;send(Messages::NetworkProcess::DestroyPrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
+    }
+#endif // ENABLED(NETWORK_PROCESS)
+
+    if (privateBrowsingEnabled)
+        sendToAllProcesses(Messages::WebProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()));
+    else
+        sendToAllProcesses(Messages::WebProcess::DestroyPrivateBrowsingSession(SessionID::legacyPrivateSessionID()));
+}
+
+void (*s_invalidMessageCallback)(WKStringRef messageName);
+
+void WebProcessPool::setInvalidMessageCallback(void (*invalidMessageCallback)(WKStringRef messageName))
+{
+    s_invalidMessageCallback = invalidMessageCallback;
+}
+
+void WebProcessPool::didReceiveInvalidMessage(const IPC::StringReference&amp; messageReceiverName, const IPC::StringReference&amp; messageName)
+{
+    if (!s_invalidMessageCallback)
+        return;
+
+    StringBuilder messageNameStringBuilder;
+    messageNameStringBuilder.append(messageReceiverName.data(), messageReceiverName.size());
+    messageNameStringBuilder.append(&quot;.&quot;);
+    messageNameStringBuilder.append(messageName.data(), messageName.size());
+
+    s_invalidMessageCallback(toAPI(API::String::create(messageNameStringBuilder.toString()).get()));
+}
+
+void WebProcessPool::processDidCachePage(WebProcessProxy* process)
+{
+    if (m_processWithPageCache &amp;&amp; m_processWithPageCache != process)
+        m_processWithPageCache-&gt;releasePageCache();
+    m_processWithPageCache = process;
+}
+
+WebProcessProxy&amp; WebProcessPool::ensureSharedWebProcess()
+{
+    ASSERT(m_processModel == ProcessModelSharedSecondaryProcess);
+    if (m_processes.isEmpty())
+        createNewWebProcess();
+    return *m_processes[0];
+}
+
+WebProcessProxy&amp; WebProcessPool::createNewWebProcess()
+{
+#if ENABLE(NETWORK_PROCESS)
+    if (m_usesNetworkProcess)
+        ensureNetworkProcess();
+#endif
+
+    Ref&lt;WebProcessProxy&gt; process = WebProcessProxy::create(*this);
+
+    WebProcessCreationParameters parameters;
+
+    parameters.injectedBundlePath = injectedBundlePath();
+    if (!parameters.injectedBundlePath.isEmpty())
+        SandboxExtension::createHandle(parameters.injectedBundlePath, SandboxExtension::ReadOnly, parameters.injectedBundlePathExtensionHandle);
+
+    parameters.applicationCacheDirectory = applicationCacheDirectory();
+    if (!parameters.applicationCacheDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.applicationCacheDirectory, parameters.applicationCacheDirectoryExtensionHandle);
+
+    parameters.webSQLDatabaseDirectory = m_webSQLDatabaseDirectory;
+    if (!parameters.webSQLDatabaseDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.webSQLDatabaseDirectory, parameters.webSQLDatabaseDirectoryExtensionHandle);
+
+    parameters.diskCacheDirectory = diskCacheDirectory();
+    if (!parameters.diskCacheDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.diskCacheDirectory, parameters.diskCacheDirectoryExtensionHandle);
+
+    parameters.cookieStorageDirectory = cookieStorageDirectory();
+
+#if PLATFORM(IOS)
+    if (!parameters.cookieStorageDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.cookieStorageDirectory, parameters.cookieStorageDirectoryExtensionHandle);
+
+    String openGLCacheDirectory = this-&gt;openGLCacheDirectory();
+    if (!openGLCacheDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(openGLCacheDirectory, parameters.openGLCacheDirectoryExtensionHandle);
+
+    String containerTemporaryDirectory = this-&gt;containerTemporaryDirectory();
+    if (!containerTemporaryDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(containerTemporaryDirectory, parameters.containerTemporaryDirectoryExtensionHandle);
+
+    String hstsDatabasePath = webContentHSTSDatabasePath();
+    if (!hstsDatabasePath.isEmpty())
+        SandboxExtension::createHandle(hstsDatabasePath, SandboxExtension::ReadWrite, parameters.hstsDatabasePathExtensionHandle);
+#endif
+
+    parameters.mediaKeyStorageDirectory = m_mediaKeysStorageDirectory;
+    if (!parameters.mediaKeyStorageDirectory.isEmpty())
+        SandboxExtension::createHandleForReadWriteDirectory(parameters.mediaKeyStorageDirectory, parameters.mediaKeyStorageDirectoryExtensionHandle);
+
+    parameters.shouldUseTestingNetworkSession = m_shouldUseTestingNetworkSession;
+
+    parameters.cacheModel = m_cacheModel;
+    parameters.languages = userPreferredLanguages();
+
+    copyToVector(m_schemesToRegisterAsEmptyDocument, parameters.urlSchemesRegistererdAsEmptyDocument);
+    copyToVector(m_schemesToRegisterAsSecure, parameters.urlSchemesRegisteredAsSecure);
+    copyToVector(m_schemesToSetDomainRelaxationForbiddenFor, parameters.urlSchemesForWhichDomainRelaxationIsForbidden);
+    copyToVector(m_schemesToRegisterAsLocal, parameters.urlSchemesRegisteredAsLocal);
+    copyToVector(m_schemesToRegisterAsNoAccess, parameters.urlSchemesRegisteredAsNoAccess);
+    copyToVector(m_schemesToRegisterAsDisplayIsolated, parameters.urlSchemesRegisteredAsDisplayIsolated);
+    copyToVector(m_schemesToRegisterAsCORSEnabled, parameters.urlSchemesRegisteredAsCORSEnabled);
+#if ENABLE(CACHE_PARTITIONING)
+    copyToVector(m_schemesToRegisterAsCachePartitioned, parameters.urlSchemesRegisteredAsCachePartitioned);
+#endif
+
+    parameters.shouldAlwaysUseComplexTextCodePath = m_alwaysUsesComplexTextCodePath;
+    parameters.shouldUseFontSmoothing = m_shouldUseFontSmoothing;
+
+    // FIXME: This leaves UI process and WebProcess disagreeing about the state if the client hasn't set the path.
+    // 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.textCheckerState = TextChecker::state();
+
+    parameters.fullKeyboardAccessEnabled = WebProcessProxy::fullKeyboardAccessEnabled();
+
+    parameters.defaultRequestTimeoutInterval = API::URLRequest::defaultTimeoutInterval();
+
+#if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
+    // FIXME: There should be a generic way for supplements to add to the intialization parameters.
+    supplement&lt;WebNotificationManagerProxy&gt;()-&gt;populateCopyOfNotificationPermissions(parameters.notificationPermissions);
+#endif
+
+#if ENABLE(NETWORK_PROCESS)
+    parameters.usesNetworkProcess = m_usesNetworkProcess;
+#endif
+
+    parameters.plugInAutoStartOriginHashes = m_plugInAutoStartProvider.autoStartOriginHashesCopy();
+    copyToVector(m_plugInAutoStartProvider.autoStartOrigins(), parameters.plugInAutoStartOrigins);
+
+    parameters.memoryCacheDisabled = m_memoryCacheDisabled;
+
+#if ENABLE(SERVICE_CONTROLS)
+    parameters.hasImageServices = ServicesController::shared().hasImageServices();
+    parameters.hasSelectionServices = ServicesController::shared().hasSelectionServices();
+    parameters.hasRichContentServices = ServicesController::shared().hasRichContentServices();
+    ServicesController::shared().refreshExistingServices();
+#endif
+
+    // Add any platform specific parameters
+    platformInitializeWebProcess(parameters);
+
+    RefPtr&lt;API::Object&gt; injectedBundleInitializationUserData = m_injectedBundleClient.getInjectedBundleInitializationUserData(this);
+    if (!injectedBundleInitializationUserData)
+        injectedBundleInitializationUserData = m_injectedBundleInitializationUserData;
+    process-&gt;send(Messages::WebProcess::InitializeWebProcess(parameters, WebContextUserMessageEncoder(injectedBundleInitializationUserData.get(), process)), 0);
+
+#if PLATFORM(COCOA)
+    process-&gt;send(Messages::WebProcess::SetQOS(webProcessLatencyQOS(), webProcessThroughputQOS()), 0);
+#endif
+#if PLATFORM(IOS)
+    cacheStorage().setDefaultOriginQuota(25ULL * 1024 * 1024);
+#endif
+
+    if (WebPreferences::anyPagesAreUsingPrivateBrowsing())
+        process-&gt;send(Messages::WebProcess::EnsurePrivateBrowsingSession(SessionID::legacyPrivateSessionID()), 0);
+
+    m_processes.append(process.ptr());
+
+    if (m_processModel == ProcessModelSharedSecondaryProcess) {
+        for (size_t i = 0; i != m_messagesToInjectedBundlePostedToEmptyContext.size(); ++i) {
+            std::pair&lt;String, RefPtr&lt;API::Object&gt;&gt;&amp; message = m_messagesToInjectedBundlePostedToEmptyContext[i];
+
+            IPC::ArgumentEncoder messageData;
+
+            messageData.encode(message.first);
+            messageData.encode(WebContextUserMessageEncoder(message.second.get(), process));
+            process-&gt;send(Messages::WebProcess::PostInjectedBundleMessage(IPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
+        }
+        m_messagesToInjectedBundlePostedToEmptyContext.clear();
+    } else
+        ASSERT(m_messagesToInjectedBundlePostedToEmptyContext.isEmpty());
+
+#if ENABLE(REMOTE_INSPECTOR)
+    // Initialize remote inspector connection now that we have a sub-process that is hosting one of our web views.
+    Inspector::RemoteInspector::shared(); 
+#endif
+
+    return process;
+}
+
+void WebProcessPool::warmInitialProcess()  
+{
+    if (m_haveInitialEmptyProcess) {
+        ASSERT(!m_processes.isEmpty());
+        return;
+    }
+
+    if (m_processes.size() &gt;= m_webProcessCountLimit)
+        return;
+
+    createNewWebProcess();
+    m_haveInitialEmptyProcess = true;
+}
+
+void WebProcessPool::enableProcessTermination()
+{
+    m_processTerminationEnabled = true;
+    Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt; processes = m_processes;
+    for (size_t i = 0; i &lt; processes.size(); ++i) {
+        if (shouldTerminate(processes[i].get()))
+            processes[i]-&gt;terminate();
+    }
+}
+
+bool WebProcessPool::shouldTerminate(WebProcessProxy* process)
+{
+    ASSERT(m_processes.contains(process));
+
+    if (!m_processTerminationEnabled)
+        return false;
+
+    for (const auto&amp; supplement : m_supplements.values()) {
+        if (!supplement-&gt;shouldTerminate(process))
+            return false;
+    }
+
+    return true;
+}
+
+void WebProcessPool::processWillOpenConnection(WebProcessProxy* process)
+{
+    m_storageManager-&gt;processWillOpenConnection(process);
+}
+
+void WebProcessPool::processWillCloseConnection(WebProcessProxy* process)
+{
+    m_storageManager-&gt;processWillCloseConnection(process);
+}
+
+void WebProcessPool::applicationWillTerminate()
+{
+    m_storageManager-&gt;applicationWillTerminate();
+}
+
+void WebProcessPool::processDidFinishLaunching(WebProcessProxy* process)
+{
+    ASSERT(m_processes.contains(process));
+
+    if (!m_visitedLinksPopulated) {
+        populateVisitedLinks();
+        m_visitedLinksPopulated = true;
+    }
+
+    // Sometimes the memorySampler gets initialized after process initialization has happened but before the process has finished launching
+    // so check if it needs to be started here
+    if (m_memorySamplerEnabled) {
+        SandboxExtension::Handle sampleLogSandboxHandle;        
+        double now = WTF::currentTime();
+        String sampleLogFilePath = String::format(&quot;WebProcess%llupid%d&quot;, static_cast&lt;unsigned long long&gt;(now), process-&gt;processIdentifier());
+        sampleLogFilePath = SandboxExtension::createHandleForTemporaryFile(sampleLogFilePath, SandboxExtension::ReadWrite, sampleLogSandboxHandle);
+        
+        process-&gt;send(Messages::WebProcess::StartMemorySampler(sampleLogSandboxHandle, sampleLogFilePath, m_memorySamplerInterval), 0);
+    }
+
+    m_connectionClient.didCreateConnection(this, process-&gt;webConnection());
+}
+
+void WebProcessPool::disconnectProcess(WebProcessProxy* process)
+{
+    ASSERT(m_processes.contains(process));
+
+    if (m_haveInitialEmptyProcess &amp;&amp; process == m_processes.last())
+        m_haveInitialEmptyProcess = false;
+
+    // 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.
+    // Clearing everything causes assertion failures, so it's less trouble to skip that for now.
+    if (m_processModel != ProcessModelSharedSecondaryProcess) {
+        RefPtr&lt;WebProcessProxy&gt; protect(process);
+        if (m_processWithPageCache == process)
+            m_processWithPageCache = 0;
+
+        static_cast&lt;WebContextSupplement*&gt;(supplement&lt;WebGeolocationManagerProxy&gt;())-&gt;processDidClose(process);
+
+        m_processes.remove(m_processes.find(process));
+        return;
+    }
+
+    WebContextSupplementMap::const_iterator it = m_supplements.begin();
+    WebContextSupplementMap::const_iterator end = m_supplements.end();
+    for (; it != end; ++it)
+        it-&gt;value-&gt;processDidClose(process);
+
+    // The vector may have the last reference to process proxy, which in turn may have the last reference to the context.
+    // Since vector elements are destroyed in place, we would recurse into WebProcessProxy destructor
+    // if it were invoked from Vector::remove(). RefPtr delays destruction until it's safe.
+    RefPtr&lt;WebProcessProxy&gt; protect(process);
+    if (m_processWithPageCache == process)
+        m_processWithPageCache = 0;
+    m_processes.remove(m_processes.find(process));
+}
+
+WebProcessProxy&amp; WebProcessPool::createNewWebProcessRespectingProcessCountLimit()
+{
+    if (m_processes.size() &lt; m_webProcessCountLimit)
+        return createNewWebProcess();
+
+    // Choose the process with fewest pages.
+    auto&amp; process = *std::min_element(m_processes.begin(), m_processes.end(), [](const RefPtr&lt;WebProcessProxy&gt;&amp; a, const RefPtr&lt;WebProcessProxy&gt;&amp; b) {
+        return a-&gt;pageCount() &lt; b-&gt;pageCount();
+    });
+
+    return *process;
+}
+
+PassRefPtr&lt;WebPageProxy&gt; WebProcessPool::createWebPage(PageClient&amp; pageClient, WebPageConfiguration configuration)
+{
+    if (!configuration.pageGroup)
+        configuration.pageGroup = m_defaultPageGroup.ptr();
+    if (!configuration.preferences)
+        configuration.preferences = &amp;configuration.pageGroup-&gt;preferences();
+    if (!configuration.visitedLinkProvider)
+        configuration.visitedLinkProvider = m_visitedLinkProvider.get();
+    if (!configuration.websiteDataStore) {
+        ASSERT(!configuration.sessionID.isValid());
+        configuration.websiteDataStore = m_websiteDataStore.get();
+        configuration.sessionID = configuration.preferences-&gt;privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID();
+    }
+
+    RefPtr&lt;WebProcessProxy&gt; process;
+    if (m_processModel == ProcessModelSharedSecondaryProcess) {
+        process = &amp;ensureSharedWebProcess();
+    } else {
+        if (m_haveInitialEmptyProcess) {
+            process = m_processes.last();
+            m_haveInitialEmptyProcess = false;
+        } else if (configuration.relatedPage) {
+            // Sharing processes, e.g. when creating the page via window.open().
+            process = &amp;configuration.relatedPage-&gt;process();
+        } else
+            process = &amp;createNewWebProcessRespectingProcessCountLimit();
+    }
+
+    return process-&gt;createWebPage(pageClient, WTF::move(configuration));
+}
+
+DownloadProxy* WebProcessPool::download(WebPageProxy* initiatingPage, const ResourceRequest&amp; request)
+{
+    DownloadProxy* downloadProxy = createDownloadProxy(request);
+    uint64_t initiatingPageID = initiatingPage ? initiatingPage-&gt;pageID() : 0;
+
+#if ENABLE(NETWORK_PROCESS)
+    if (usesNetworkProcess() &amp;&amp; networkProcess()) {
+        // FIXME (NetworkProcess): Replicate whatever FrameLoader::setOriginalURLForDownloadRequest does with the request here.
+        networkProcess()-&gt;send(Messages::NetworkProcess::DownloadRequest(downloadProxy-&gt;downloadID(), request), 0);
+        return downloadProxy;
+    }
+#endif
+
+    m_processes[0]-&gt;send(Messages::WebProcess::DownloadRequest(downloadProxy-&gt;downloadID(), initiatingPageID, request), 0);
+    return downloadProxy;
+}
+
+DownloadProxy* WebProcessPool::resumeDownload(const API::Data* resumeData, const String&amp; path)
+{
+    DownloadProxy* downloadProxy = createDownloadProxy(ResourceRequest());
+
+    SandboxExtension::Handle sandboxExtensionHandle;
+    if (!path.isEmpty())
+        SandboxExtension::createHandle(path, SandboxExtension::ReadWrite, sandboxExtensionHandle);
+
+#if ENABLE(NETWORK_PROCESS)
+    if (usesNetworkProcess() &amp;&amp; networkProcess()) {
+        networkProcess()-&gt;send(Messages::NetworkProcess::ResumeDownload(downloadProxy-&gt;downloadID(), resumeData-&gt;dataReference(), path, sandboxExtensionHandle), 0);
+        return downloadProxy;
+    }
+#endif
+
+    m_processes[0]-&gt;send(Messages::WebProcess::ResumeDownload(downloadProxy-&gt;downloadID(), resumeData-&gt;dataReference(), path, sandboxExtensionHandle), 0);
+    return downloadProxy;
+}
+
+void WebProcessPool::postMessageToInjectedBundle(const String&amp; messageName, API::Object* messageBody)
+{
+    if (m_processes.isEmpty()) {
+        if (m_processModel == ProcessModelSharedSecondaryProcess)
+            m_messagesToInjectedBundlePostedToEmptyContext.append(std::make_pair(messageName, messageBody));
+        return;
+    }
+
+    for (auto&amp; process : m_processes) {
+        // FIXME: Return early if the message body contains any references to WKPageRefs/WKFrameRefs etc. since they're local to a process.
+        IPC::ArgumentEncoder messageData;
+        messageData.encode(messageName);
+        messageData.encode(WebContextUserMessageEncoder(messageBody, *process.get()));
+
+        process-&gt;send(Messages::WebProcess::PostInjectedBundleMessage(IPC::DataReference(messageData.buffer(), messageData.bufferSize())), 0);
+    }
+}
+
+// InjectedBundle client
+
+void WebProcessPool::didReceiveMessageFromInjectedBundle(const String&amp; messageName, API::Object* messageBody)
+{
+    m_injectedBundleClient.didReceiveMessageFromInjectedBundle(this, messageName, messageBody);
+}
+
+void WebProcessPool::didReceiveSynchronousMessageFromInjectedBundle(const String&amp; messageName, API::Object* messageBody, RefPtr&lt;API::Object&gt;&amp; returnData)
+{
+    m_injectedBundleClient.didReceiveSynchronousMessageFromInjectedBundle(this, messageName, messageBody, returnData);
+}
+
+void WebProcessPool::populateVisitedLinks()
+{
+    m_historyClient-&gt;populateVisitedLinks(*this);
+}
+
+WebProcessPool::Statistics&amp; WebProcessPool::statistics()
+{
+    static Statistics statistics = Statistics();
+
+    return statistics;
+}
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+void WebProcessPool::setAdditionalPluginsDirectory(const String&amp; directory)
+{
+    Vector&lt;String&gt; directories;
+    directories.append(directory);
+
+    m_pluginInfoStore.setAdditionalPluginsDirectories(directories);
+}
+#endif // ENABLE(NETSCAPE_PLUGIN_API)
+
+void WebProcessPool::setAlwaysUsesComplexTextCodePath(bool alwaysUseComplexText)
+{
+    m_alwaysUsesComplexTextCodePath = alwaysUseComplexText;
+    sendToAllProcesses(Messages::WebProcess::SetAlwaysUsesComplexTextCodePath(alwaysUseComplexText));
+}
+
+void WebProcessPool::setShouldUseFontSmoothing(bool useFontSmoothing)
+{
+    m_shouldUseFontSmoothing = useFontSmoothing;
+    sendToAllProcesses(Messages::WebProcess::SetShouldUseFontSmoothing(useFontSmoothing));
+}
+
+void WebProcessPool::registerURLSchemeAsEmptyDocument(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsEmptyDocument.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsEmptyDocument(urlScheme));
+}
+
+void WebProcessPool::registerURLSchemeAsSecure(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsSecure.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsSecure(urlScheme));
+}
+
+void WebProcessPool::setDomainRelaxationForbiddenForURLScheme(const String&amp; urlScheme)
+{
+    m_schemesToSetDomainRelaxationForbiddenFor.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::SetDomainRelaxationForbiddenForURLScheme(urlScheme));
+}
+
+void WebProcessPool::setCanHandleHTTPSServerTrustEvaluation(bool value)
+{
+#if ENABLE(NETWORK_PROCESS)
+    m_canHandleHTTPSServerTrustEvaluation = value;
+    if (m_usesNetworkProcess &amp;&amp; m_networkProcess) {
+        m_networkProcess-&gt;send(Messages::NetworkProcess::SetCanHandleHTTPSServerTrustEvaluation(value), 0);
+        return;
+    }
+#else
+    UNUSED_PARAM(value);
+#endif
+}
+
+void WebProcessPool::registerURLSchemeAsLocal(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsLocal.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsLocal(urlScheme));
+}
+
+void WebProcessPool::registerURLSchemeAsNoAccess(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsNoAccess.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsNoAccess(urlScheme));
+}
+
+void WebProcessPool::registerURLSchemeAsDisplayIsolated(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsDisplayIsolated.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsDisplayIsolated(urlScheme));
+}
+
+void WebProcessPool::registerURLSchemeAsCORSEnabled(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsCORSEnabled.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCORSEnabled(urlScheme));
+}
+
+HashSet&lt;String&gt;&amp; WebProcessPool::globalURLSchemesWithCustomProtocolHandlers()
+{
+    static NeverDestroyed&lt;HashSet&lt;String&gt;&gt; set;
+    return set;
+}
+
+void WebProcessPool::registerGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp; urlScheme)
+{
+    if (!urlScheme)
+        return;
+
+    String schemeLower = urlScheme.lower();
+    globalURLSchemesWithCustomProtocolHandlers().add(schemeLower);
+    for (auto* processPool : allProcessPools())
+        processPool-&gt;registerSchemeForCustomProtocol(schemeLower);
+}
+
+void WebProcessPool::unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp; urlScheme)
+{
+    if (!urlScheme)
+        return;
+
+    String schemeLower = urlScheme.lower();
+    globalURLSchemesWithCustomProtocolHandlers().remove(schemeLower);
+    for (auto* processPool : allProcessPools())
+        processPool-&gt;unregisterSchemeForCustomProtocol(schemeLower);
+}
+
+#if ENABLE(CACHE_PARTITIONING)
+void WebProcessPool::registerURLSchemeAsCachePartitioned(const String&amp; urlScheme)
+{
+    m_schemesToRegisterAsCachePartitioned.add(urlScheme);
+    sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCachePartitioned(urlScheme));
+}
+#endif
+
+void WebProcessPool::setCacheModel(CacheModel cacheModel)
+{
+    m_cacheModel = cacheModel;
+    sendToAllProcesses(Messages::WebProcess::SetCacheModel(static_cast&lt;uint32_t&gt;(m_cacheModel)));
+
+    // FIXME: Inform the Network Process if in use.
+}
+
+void WebProcessPool::setDefaultRequestTimeoutInterval(double timeoutInterval)
+{
+    sendToAllProcesses(Messages::WebProcess::SetDefaultRequestTimeoutInterval(timeoutInterval));
+}
+
+DownloadProxy* WebProcessPool::createDownloadProxy(const ResourceRequest&amp; request)
+{
+#if ENABLE(NETWORK_PROCESS)
+    if (usesNetworkProcess()) {
+        ensureNetworkProcess();
+        ASSERT(m_networkProcess);
+        return m_networkProcess-&gt;createDownloadProxy(request);
+    }
+#endif
+
+    return ensureSharedWebProcess().createDownloadProxy(request);
+}
+
+void WebProcessPool::addMessageReceiver(IPC::StringReference messageReceiverName, IPC::MessageReceiver&amp; messageReceiver)
+{
+    m_messageReceiverMap.addMessageReceiver(messageReceiverName, messageReceiver);
+}
+
+void WebProcessPool::addMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID, IPC::MessageReceiver&amp; messageReceiver)
+{
+    m_messageReceiverMap.addMessageReceiver(messageReceiverName, destinationID, messageReceiver);
+}
+
+void WebProcessPool::removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID)
+{
+    m_messageReceiverMap.removeMessageReceiver(messageReceiverName, destinationID);
+}
+
+bool WebProcessPool::dispatchMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder)
+{
+    return m_messageReceiverMap.dispatchMessage(connection, decoder);
+}
+
+bool WebProcessPool::dispatchSyncMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp; replyEncoder)
+{
+    return m_messageReceiverMap.dispatchSyncMessage(connection, decoder, replyEncoder);
+}
+
+void WebProcessPool::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder)
+{
+    if (decoder.messageReceiverName() == Messages::WebProcessPool::messageReceiverName()) {
+        didReceiveWebProcessPoolMessage(connection, decoder);
+        return;
+    }
+
+    if (decoder.messageReceiverName() == WebContextLegacyMessages::messageReceiverName()
+        &amp;&amp; decoder.messageName() == WebContextLegacyMessages::postMessageMessageName()) {
+        String messageName;
+        RefPtr&lt;API::Object&gt; messageBody;
+        WebContextUserMessageDecoder messageBodyDecoder(messageBody, *WebProcessProxy::fromConnection(connection));
+        if (!decoder.decode(messageName))
+            return;
+        if (!decoder.decode(messageBodyDecoder))
+            return;
+
+        didReceiveMessageFromInjectedBundle(messageName, messageBody.get());
+        return;
+    }
+
+    ASSERT_NOT_REACHED();
+}
+
+void WebProcessPool::didReceiveSyncMessage(IPC::Connection* connection, IPC::MessageDecoder&amp; decoder, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp; replyEncoder)
+{
+    if (decoder.messageReceiverName() == Messages::WebProcessPool::messageReceiverName()) {
+        didReceiveSyncWebProcessPoolMessage(connection, decoder, replyEncoder);
+        return;
+    }
+
+    if (decoder.messageReceiverName() == WebContextLegacyMessages::messageReceiverName()
+        &amp;&amp; decoder.messageName() == WebContextLegacyMessages::postSynchronousMessageMessageName()) {
+        // FIXME: We should probably encode something in the case that the arguments do not decode correctly.
+
+        WebProcessProxy* process = WebProcessProxy::fromConnection(connection);
+
+        String messageName;
+        RefPtr&lt;API::Object&gt; messageBody;
+        WebContextUserMessageDecoder messageBodyDecoder(messageBody, *process);
+        if (!decoder.decode(messageName))
+            return;
+        if (!decoder.decode(messageBodyDecoder))
+            return;
+
+        RefPtr&lt;API::Object&gt; returnData;
+        didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody.get(), returnData);
+        replyEncoder-&gt;encode(WebContextUserMessageEncoder(returnData.get(), *process));
+        return;
+    }
+
+    ASSERT_NOT_REACHED();
+}
+
+void WebProcessPool::setEnhancedAccessibility(bool flag)
+{
+    sendToAllProcesses(Messages::WebProcess::SetEnhancedAccessibility(flag));
+}
+    
+void WebProcessPool::startMemorySampler(const double interval)
+{    
+    // For new WebProcesses we will also want to start the Memory Sampler
+    m_memorySamplerEnabled = true;
+    m_memorySamplerInterval = interval;
+    
+    // For UIProcess
+#if ENABLE(MEMORY_SAMPLER)
+    WebMemorySampler::shared()-&gt;start(interval);
+#endif
+    
+    // For WebProcess
+    SandboxExtension::Handle sampleLogSandboxHandle;    
+    double now = WTF::currentTime();
+    String sampleLogFilePath = String::format(&quot;WebProcess%llu&quot;, static_cast&lt;unsigned long long&gt;(now));
+    sampleLogFilePath = SandboxExtension::createHandleForTemporaryFile(sampleLogFilePath, SandboxExtension::ReadWrite, sampleLogSandboxHandle);
+    
+    sendToAllProcesses(Messages::WebProcess::StartMemorySampler(sampleLogSandboxHandle, sampleLogFilePath, interval));
+}
+
+void WebProcessPool::stopMemorySampler()
+{    
+    // For WebProcess
+    m_memorySamplerEnabled = false;
+    
+    // For UIProcess
+#if ENABLE(MEMORY_SAMPLER)
+    WebMemorySampler::shared()-&gt;stop();
+#endif
+
+    sendToAllProcesses(Messages::WebProcess::StopMemorySampler());
+}
+
+String WebProcessPool::applicationCacheDirectory() const
+{
+    if (!m_overrideApplicationCacheDirectory.isEmpty())
+        return m_overrideApplicationCacheDirectory;
+
+    return platformDefaultApplicationCacheDirectory();
+}
+
+void WebProcessPool::setIconDatabasePath(const String&amp; path)
+{
+    m_overrideIconDatabasePath = path;
+    if (!m_overrideIconDatabasePath.isEmpty()) {
+        // This implicitly enables the database on UI process side.
+        m_iconDatabase-&gt;setDatabasePath(path);
+    }
+}
+
+String WebProcessPool::iconDatabasePath() const
+{
+    if (!m_overrideIconDatabasePath.isNull())
+        return m_overrideIconDatabasePath;
+
+    return platformDefaultIconDatabasePath();
+}
+
+String WebProcessPool::diskCacheDirectory() const
+{
+    if (!m_overrideDiskCacheDirectory.isEmpty())
+        return m_overrideDiskCacheDirectory;
+
+    return platformDefaultDiskCacheDirectory();
+}
+
+String WebProcessPool::cookieStorageDirectory() const
+{
+    if (!m_overrideCookieStorageDirectory.isEmpty())
+        return m_overrideCookieStorageDirectory;
+
+    return platformDefaultCookieStorageDirectory();
+}
+
+void WebProcessPool::useTestingNetworkSession()
+{
+    ASSERT(m_processes.isEmpty());
+#if ENABLE(NETWORK_PROCESS)
+    ASSERT(!m_networkProcess);
+
+    if (m_networkProcess)
+        return;
+#endif
+
+    if (!m_processes.isEmpty())
+        return;
+
+    m_shouldUseTestingNetworkSession = true;
+}
+
+void WebProcessPool::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String&amp; host)
+{
+#if ENABLE(NETWORK_PROCESS)
+    if (m_usesNetworkProcess &amp;&amp; m_networkProcess) {
+        m_networkProcess-&gt;send(Messages::NetworkProcess::AllowSpecificHTTPSCertificateForHost(certificate-&gt;certificateInfo(), host), 0);
+        return;
+    }
+#endif
+
+#if USE(SOUP)
+    m_processes[0]-&gt;send(Messages::WebProcess::AllowSpecificHTTPSCertificateForHost(certificate-&gt;certificateInfo(), host), 0);
+    return;
+#else
+    UNUSED_PARAM(certificate);
+    UNUSED_PARAM(host);
+#endif
+
+#if !PLATFORM(IOS)
+    ASSERT_NOT_REACHED();
+#endif
+}
+
+void WebProcessPool::setHTTPPipeliningEnabled(bool enabled)
+{
+#if PLATFORM(COCOA)
+    ResourceRequest::setHTTPPipeliningEnabled(enabled);
+#else
+    UNUSED_PARAM(enabled);
+#endif
+}
+
+bool WebProcessPool::httpPipeliningEnabled() const
+{
+#if PLATFORM(COCOA)
+    return ResourceRequest::httpPipeliningEnabled();
+#else
+    return false;
+#endif
+}
+
+void WebProcessPool::getStatistics(uint32_t statisticsMask, std::function&lt;void (ImmutableDictionary*, CallbackBase::Error)&gt; callbackFunction)
+{
+    if (!statisticsMask) {
+        callbackFunction(nullptr, CallbackBase::Error::Unknown);
+        return;
+    }
+
+    RefPtr&lt;StatisticsRequest&gt; request = StatisticsRequest::create(DictionaryCallback::create(WTF::move(callbackFunction)));
+
+    if (statisticsMask &amp; StatisticsRequestTypeWebContent)
+        requestWebContentStatistics(request.get());
+    
+    if (statisticsMask &amp; StatisticsRequestTypeNetworking)
+        requestNetworkingStatistics(request.get());
+}
+
+void WebProcessPool::requestWebContentStatistics(StatisticsRequest* request)
+{
+    if (m_processModel == ProcessModelSharedSecondaryProcess) {
+        if (m_processes.isEmpty())
+            return;
+        
+        uint64_t requestID = request-&gt;addOutstandingRequest();
+        m_statisticsRequests.set(requestID, request);
+        m_processes[0]-&gt;send(Messages::WebProcess::GetWebCoreStatistics(requestID), 0);
+
+    } else {
+        // FIXME (Multi-WebProcess) &lt;rdar://problem/13200059&gt;: Make getting statistics from multiple WebProcesses work.
+    }
+}
+
+void WebProcessPool::requestNetworkingStatistics(StatisticsRequest* request)
+{
+    bool networkProcessUnavailable;
+#if ENABLE(NETWORK_PROCESS)
+    networkProcessUnavailable = !m_usesNetworkProcess || !m_networkProcess;
+#else
+    networkProcessUnavailable = true;
+#endif
+
+    if (networkProcessUnavailable) {
+        LOG_ERROR(&quot;Attempt to get NetworkProcess statistics but the NetworkProcess is unavailable&quot;);
+        return;
+    }
+
+#if ENABLE(NETWORK_PROCESS)
+    uint64_t requestID = request-&gt;addOutstandingRequest();
+    m_statisticsRequests.set(requestID, request);
+    m_networkProcess-&gt;send(Messages::NetworkProcess::GetNetworkProcessStatistics(requestID), 0);
+#else
+    UNUSED_PARAM(request);
+#endif
+}
+
+#if !PLATFORM(COCOA)
+void WebProcessPool::dummy(bool&amp;)
+{
+}
+#endif
+
+void WebProcessPool::didGetStatistics(const StatisticsData&amp; statisticsData, uint64_t requestID)
+{
+    RefPtr&lt;StatisticsRequest&gt; request = m_statisticsRequests.take(requestID);
+    if (!request) {
+        LOG_ERROR(&quot;Cannot report networking statistics.&quot;);
+        return;
+    }
+
+    request-&gt;completedRequest(requestID, statisticsData);
+}
+
+void WebProcessPool::garbageCollectJavaScriptObjects()
+{
+    sendToAllProcesses(Messages::WebProcess::GarbageCollectJavaScriptObjects());
+}
+
+void WebProcessPool::setJavaScriptGarbageCollectorTimerEnabled(bool flag)
+{
+    sendToAllProcesses(Messages::WebProcess::SetJavaScriptGarbageCollectorTimerEnabled(flag));
+}
+
+void WebProcessPool::addPlugInAutoStartOriginHash(const String&amp; pageOrigin, unsigned plugInOriginHash, SessionID sessionID)
+{
+    m_plugInAutoStartProvider.addAutoStartOriginHash(pageOrigin, plugInOriginHash, sessionID);
+}
+
+void WebProcessPool::plugInDidReceiveUserInteraction(unsigned plugInOriginHash, SessionID sessionID)
+{
+    m_plugInAutoStartProvider.didReceiveUserInteraction(plugInOriginHash, sessionID);
+}
+
+PassRefPtr&lt;ImmutableDictionary&gt; WebProcessPool::plugInAutoStartOriginHashes() const
+{
+    return m_plugInAutoStartProvider.autoStartOriginsTableCopy();
+}
+
+void WebProcessPool::setPlugInAutoStartOriginHashes(ImmutableDictionary&amp; dictionary)
+{
+    m_plugInAutoStartProvider.setAutoStartOriginsTable(dictionary);
+}
+
+void WebProcessPool::setPlugInAutoStartOrigins(API::Array&amp; array)
+{
+    m_plugInAutoStartProvider.setAutoStartOriginsArray(array);
+}
+
+void WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime(ImmutableDictionary&amp; dictionary, double time)
+{
+    m_plugInAutoStartProvider.setAutoStartOriginsFilteringOutEntriesAddedAfterTime(dictionary, time);
+}
+
+void WebProcessPool::registerSchemeForCustomProtocol(const String&amp; scheme)
+{
+    sendToNetworkingProcess(Messages::CustomProtocolManager::RegisterScheme(scheme));
+}
+
+void WebProcessPool::unregisterSchemeForCustomProtocol(const String&amp; scheme)
+{
+    sendToNetworkingProcess(Messages::CustomProtocolManager::UnregisterScheme(scheme));
+}
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+void WebProcessPool::pluginInfoStoreDidLoadPlugins(PluginInfoStore* store)
+{
+#ifdef NDEBUG
+    UNUSED_PARAM(store);
+#endif
+    ASSERT(store == &amp;m_pluginInfoStore);
+
+    Vector&lt;PluginModuleInfo&gt; pluginModules = m_pluginInfoStore.plugins();
+
+    Vector&lt;RefPtr&lt;API::Object&gt;&gt; plugins;
+    plugins.reserveInitialCapacity(pluginModules.size());
+
+    for (const auto&amp; pluginModule : pluginModules) {
+        ImmutableDictionary::MapType map;
+        map.set(ASCIILiteral(&quot;path&quot;), API::String::create(pluginModule.path));
+        map.set(ASCIILiteral(&quot;name&quot;), API::String::create(pluginModule.info.name));
+        map.set(ASCIILiteral(&quot;file&quot;), API::String::create(pluginModule.info.file));
+        map.set(ASCIILiteral(&quot;desc&quot;), API::String::create(pluginModule.info.desc));
+
+        Vector&lt;RefPtr&lt;API::Object&gt;&gt; mimeTypes;
+        mimeTypes.reserveInitialCapacity(pluginModule.info.mimes.size());
+        for (const auto&amp; mimeClassInfo : pluginModule.info.mimes)
+            mimeTypes.uncheckedAppend(API::String::create(mimeClassInfo.type));
+        map.set(ASCIILiteral(&quot;mimes&quot;), API::Array::create(WTF::move(mimeTypes)));
+
+#if PLATFORM(COCOA)
+        map.set(ASCIILiteral(&quot;bundleId&quot;), API::String::create(pluginModule.bundleIdentifier));
+        map.set(ASCIILiteral(&quot;version&quot;), API::String::create(pluginModule.versionString));
+#endif
+
+        plugins.uncheckedAppend(ImmutableDictionary::create(WTF::move(map)));
+    }
+
+    m_client.plugInInformationBecameAvailable(this, API::Array::create(WTF::move(plugins)).get());
+}
+#endif
+    
+void WebProcessPool::setMemoryCacheDisabled(bool disabled)
+{
+    m_memoryCacheDisabled = disabled;
+    sendToAllProcesses(Messages::WebProcess::SetMemoryCacheDisabled(disabled));
+}
+
+} // namespace WebKit
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolhfromrev177636trunkSourceWebKit2UIProcessWebContexth"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (from rev 177636, trunk/Source/WebKit2/UIProcess/WebContext.h) (0 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -0,0 +1,693 @@
</span><ins>+/*
+ * Copyright (C) 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebProcessPool_h
+#define WebProcessPool_h
+
+#include &quot;APIObject.h&quot;
+#include &quot;DownloadProxyMap.h&quot;
+#include &quot;GenericCallback.h&quot;
+#include &quot;ImmutableDictionary.h&quot;
+#include &quot;MessageReceiver.h&quot;
+#include &quot;MessageReceiverMap.h&quot;
+#include &quot;PlugInAutoStartProvider.h&quot;
+#include &quot;PluginInfoStore.h&quot;
+#include &quot;ProcessModel.h&quot;
+#include &quot;ProcessThrottler.h&quot;
+#include &quot;StatisticsRequest.h&quot;
+#include &quot;StorageManager.h&quot;
+#include &quot;VisitedLinkProvider.h&quot;
+#include &quot;WebContextClient.h&quot;
+#include &quot;WebContextConnectionClient.h&quot;
+#include &quot;WebContextInjectedBundleClient.h&quot;
+#include &quot;WebProcessProxy.h&quot;
+#include &lt;WebCore/LinkHash.h&gt;
+#include &lt;WebCore/SessionID.h&gt;
+#include &lt;wtf/Forward.h&gt;
+#include &lt;wtf/HashMap.h&gt;
+#include &lt;wtf/HashSet.h&gt;
+#include &lt;wtf/PassRefPtr.h&gt;
+#include &lt;wtf/RefCounter.h&gt;
+#include &lt;wtf/RefPtr.h&gt;
+#include &lt;wtf/text/StringHash.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+#if ENABLE(DATABASE_PROCESS)
+#include &quot;DatabaseProcessProxy.h&quot;
+#endif
+
+#if ENABLE(NETWORK_PROCESS)
+#include &quot;NetworkProcessProxy.h&quot;
+#endif
+
+#if PLATFORM(COCOA)
+OBJC_CLASS NSMutableDictionary;
+OBJC_CLASS NSObject;
+OBJC_CLASS NSString;
+#endif
+
+namespace API {
+class DownloadClient;
+class LegacyContextHistoryClient;
+}
+
+namespace WebKit {
+
+class DownloadProxy;
+class WebContextSupplement;
+class WebIconDatabase;
+class WebPageGroup;
+class WebPageProxy;
+struct StatisticsData;
+struct WebPageConfiguration;
+struct WebProcessCreationParameters;
+    
+typedef GenericCallback&lt;ImmutableDictionary*&gt; DictionaryCallback;
+
+#if ENABLE(NETWORK_PROCESS)
+struct NetworkProcessCreationParameters;
+#endif
+
+#if PLATFORM(COCOA)
+int networkProcessLatencyQOS();
+int networkProcessThroughputQOS();
+int webProcessLatencyQOS();
+int webProcessThroughputQOS();
+#endif
+
+struct WebProcessPoolConfiguration {
+    String injectedBundlePath;
+    String localStorageDirectory;
+    String webSQLDatabaseDirectory;
+    String indexedDBDatabaseDirectory;
+    String mediaKeysStorageDirectory;
+};
+
+class WebProcessPool : public API::ObjectImpl&lt;API::Object::Type::ProcessPool&gt;, private IPC::MessageReceiver
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    , private PluginInfoStoreClient
+#endif
+    {
+public:
+    static void applyPlatformSpecificConfigurationDefaults(WebProcessPoolConfiguration&amp;);
+
+    WebProcessPool(WebProcessPoolConfiguration);
+        
+    static PassRefPtr&lt;WebProcessPool&gt; create(WebProcessPoolConfiguration);
+    virtual ~WebProcessPool();
+
+    static const Vector&lt;WebProcessPool*&gt;&amp; allProcessPools();
+
+    template &lt;typename T&gt;
+    T* supplement()
+    {
+        return static_cast&lt;T*&gt;(m_supplements.get(T::supplementName()));
+    }
+
+    template &lt;typename T&gt;
+    void addSupplement()
+    {
+        m_supplements.add(T::supplementName(), T::create(this));
+    }
+
+    void addMessageReceiver(IPC::StringReference messageReceiverName, IPC::MessageReceiver&amp;);
+    void addMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID, IPC::MessageReceiver&amp;);
+    void removeMessageReceiver(IPC::StringReference messageReceiverName, uint64_t destinationID);
+
+    bool dispatchMessage(IPC::Connection*, IPC::MessageDecoder&amp;);
+    bool dispatchSyncMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;);
+
+    void initializeClient(const WKContextClientBase*);
+    void initializeInjectedBundleClient(const WKContextInjectedBundleClientBase*);
+    void initializeConnectionClient(const WKContextConnectionClientBase*);
+    void setHistoryClient(std::unique_ptr&lt;API::LegacyContextHistoryClient&gt;);
+    void setDownloadClient(std::unique_ptr&lt;API::DownloadClient&gt;);
+
+    void setProcessModel(ProcessModel); // Can only be called when there are no processes running.
+    ProcessModel processModel() const { return m_processModel; }
+
+    void setMaximumNumberOfProcesses(unsigned); // Can only be called when there are no processes running.
+    unsigned maximumNumberOfProcesses() const { return m_webProcessCountLimit; }
+
+    const Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt;&amp; processes() const { return m_processes; }
+
+    // WebProcess or NetworkProcess as approporiate for current process model. The connection must be non-null.
+    IPC::Connection* networkingProcessConnection();
+
+    template&lt;typename T&gt; void sendToAllProcesses(const T&amp; message);
+    template&lt;typename T&gt; void sendToAllProcessesRelaunchingThemIfNecessary(const T&amp; message);
+    template&lt;typename T&gt; void sendToOneProcess(T&amp;&amp; message);
+
+    // Sends the message to WebProcess or NetworkProcess as approporiate for current process model.
+    template&lt;typename T&gt; void sendToNetworkingProcess(T&amp;&amp; message);
+    template&lt;typename T&gt; void sendToNetworkingProcessRelaunchingIfNecessary(T&amp;&amp; message);
+
+    // Sends the message to WebProcess or DatabaseProcess as approporiate for current process model.
+    template&lt;typename T&gt; void sendToDatabaseProcessRelaunchingIfNecessary(T&amp;&amp; message);
+
+    void processWillOpenConnection(WebProcessProxy*);
+    void processWillCloseConnection(WebProcessProxy*);
+    void processDidFinishLaunching(WebProcessProxy*);
+
+    void applicationWillTerminate();
+    // Disconnect the process from the context.
+    void disconnectProcess(WebProcessProxy*);
+
+    StorageManager&amp; storageManager() const { return *m_storageManager; }
+
+    PassRefPtr&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, WebPageConfiguration);
+
+    const String&amp; injectedBundlePath() const { return m_injectedBundlePath; }
+
+    DownloadProxy* download(WebPageProxy* initiatingPage, const WebCore::ResourceRequest&amp;);
+    DownloadProxy* resumeDownload(const API::Data* resumeData, const String&amp; path);
+
+    void setInjectedBundleInitializationUserData(PassRefPtr&lt;API::Object&gt; userData) { m_injectedBundleInitializationUserData = userData; }
+
+    void postMessageToInjectedBundle(const String&amp;, API::Object*);
+
+    // InjectedBundle client
+    void didReceiveMessageFromInjectedBundle(const String&amp;, API::Object*);
+    void didReceiveSynchronousMessageFromInjectedBundle(const String&amp;, API::Object*, RefPtr&lt;API::Object&gt;&amp; returnData);
+
+    void populateVisitedLinks();
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    void setAdditionalPluginsDirectory(const String&amp;);
+
+    PluginInfoStore&amp; pluginInfoStore() { return m_pluginInfoStore; }
+#endif
+
+    void setAlwaysUsesComplexTextCodePath(bool);
+    void setShouldUseFontSmoothing(bool);
+    
+    void registerURLSchemeAsEmptyDocument(const String&amp;);
+    void registerURLSchemeAsSecure(const String&amp;);
+    void setDomainRelaxationForbiddenForURLScheme(const String&amp;);
+    void setCanHandleHTTPSServerTrustEvaluation(bool);
+    void registerURLSchemeAsLocal(const String&amp;);
+    void registerURLSchemeAsNoAccess(const String&amp;);
+    void registerURLSchemeAsDisplayIsolated(const String&amp;);
+    void registerURLSchemeAsCORSEnabled(const String&amp;);
+#if ENABLE(CACHE_PARTITIONING)
+    void registerURLSchemeAsCachePartitioned(const String&amp;);
+#endif
+
+    VisitedLinkProvider&amp; visitedLinkProvider() { return *m_visitedLinkProvider; }
+
+    // MessageReceiver.
+    virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&amp;) override;
+    virtual void didReceiveSyncMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;) override;
+
+    void setCacheModel(CacheModel);
+    CacheModel cacheModel() const { return m_cacheModel; }
+
+    void setDefaultRequestTimeoutInterval(double);
+
+    void startMemorySampler(const double interval);
+    void stopMemorySampler();
+
+#if USE(SOUP)
+    void setInitialHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy policy) { m_initialHTTPCookieAcceptPolicy = policy; }
+#endif
+    void setEnhancedAccessibility(bool);
+    
+    // Downloads.
+    DownloadProxy* createDownloadProxy(const WebCore::ResourceRequest&amp;);
+    API::DownloadClient&amp; downloadClient() { return *m_downloadClient; }
+
+    API::LegacyContextHistoryClient&amp; historyClient() { return *m_historyClient; }
+    WebContextClient&amp; client() { return m_client; }
+
+    WebIconDatabase* iconDatabase() const { return m_iconDatabase.get(); }
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    WebPluginSiteDataManager* pluginSiteDataManager() const { return m_pluginSiteDataManager.get(); }
+#endif
+
+    struct Statistics {
+        unsigned wkViewCount;
+        unsigned wkPageCount;
+        unsigned wkFrameCount;
+    };
+    static Statistics&amp; statistics();    
+
+    void setApplicationCacheDirectory(const String&amp; dir) { m_overrideApplicationCacheDirectory = dir; }
+    void setIconDatabasePath(const String&amp;);
+    String iconDatabasePath() const;
+    void setDiskCacheDirectory(const String&amp; dir) { m_overrideDiskCacheDirectory = dir; }
+    void setCookieStorageDirectory(const String&amp; dir) { m_overrideCookieStorageDirectory = dir; }
+
+    void useTestingNetworkSession();
+
+    void allowSpecificHTTPSCertificateForHost(const WebCertificateInfo*, const String&amp; host);
+
+    WebProcessProxy&amp; ensureSharedWebProcess();
+    WebProcessProxy&amp; createNewWebProcessRespectingProcessCountLimit(); // Will return an existing one if limit is met.
+    void warmInitialProcess();
+
+    bool shouldTerminate(WebProcessProxy*);
+
+    void disableProcessTermination() { m_processTerminationEnabled = false; }
+    void enableProcessTermination();
+
+    // Defaults to false.
+    void setHTTPPipeliningEnabled(bool);
+    bool httpPipeliningEnabled() const;
+
+    void getStatistics(uint32_t statisticsMask, std::function&lt;void (ImmutableDictionary*, CallbackBase::Error)&gt;);
+    
+    void garbageCollectJavaScriptObjects();
+    void setJavaScriptGarbageCollectorTimerEnabled(bool flag);
+
+#if PLATFORM(COCOA)
+    static bool omitPDFSupport();
+#endif
+
+    void fullKeyboardAccessModeChanged(bool fullKeyboardAccessEnabled);
+
+    void textCheckerStateChanged();
+
+    PassRefPtr&lt;ImmutableDictionary&gt; plugInAutoStartOriginHashes() const;
+    void setPlugInAutoStartOriginHashes(ImmutableDictionary&amp;);
+    void setPlugInAutoStartOrigins(API::Array&amp;);
+    void setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime(ImmutableDictionary&amp;, double time);
+
+    // Network Process Management
+
+    void setUsesNetworkProcess(bool);
+    bool usesNetworkProcess() const;
+
+#if ENABLE(NETWORK_PROCESS)
+    void ensureNetworkProcess();
+    NetworkProcessProxy* networkProcess() { return m_networkProcess.get(); }
+    void networkProcessCrashed(NetworkProcessProxy*);
+
+    void getNetworkProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt;);
+#endif
+
+#if ENABLE(DATABASE_PROCESS)
+    void ensureDatabaseProcess();
+    void getDatabaseProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt;);
+    void databaseProcessCrashed(DatabaseProcessProxy*);
+#endif
+
+#if PLATFORM(COCOA)
+    bool processSuppressionEnabled() const;
+#endif
+
+    void windowServerConnectionStateChanged();
+
+    static void willStartUsingPrivateBrowsing();
+    static void willStopUsingPrivateBrowsing();
+
+    static bool isEphemeralSession(WebCore::SessionID);
+
+#if USE(SOUP)
+    void setIgnoreTLSErrors(bool);
+    bool ignoreTLSErrors() const { return m_ignoreTLSErrors; }
+#endif
+
+    static void setInvalidMessageCallback(void (*)(WKStringRef));
+    static void didReceiveInvalidMessage(const IPC::StringReference&amp; messageReceiverName, const IPC::StringReference&amp; messageName);
+
+    void processDidCachePage(WebProcessProxy*);
+
+    bool isURLKnownHSTSHost(const String&amp; urlString, bool privateBrowsingEnabled) const;
+    void resetHSTSHosts();
+
+    void registerSchemeForCustomProtocol(const String&amp;);
+    void unregisterSchemeForCustomProtocol(const String&amp;);
+
+    static HashSet&lt;String&gt;&amp; globalURLSchemesWithCustomProtocolHandlers();
+    static void registerGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp;);
+    static void unregisterGlobalURLSchemeAsHavingCustomProtocolHandlers(const String&amp;);
+
+#if PLATFORM(COCOA)
+    void updateProcessSuppressionState();
+
+    NSMutableDictionary *ensureBundleParameters();
+    NSMutableDictionary *bundleParameters() { return m_bundleParameters.get(); }
+#else
+    void updateProcessSuppressionState() const { }
+#endif
+
+    void setMemoryCacheDisabled(bool);
+
+    UserObservablePageToken userObservablePageCount()
+    {
+        return m_userObservablePageCounter.token&lt;UserObservablePageTokenType&gt;();
+    }
+
+    ProcessSuppressionDisabledToken processSuppressionDisabledForPageCount()
+    {
+        return m_processSuppressionDisabledForPageCounter.token&lt;ProcessSuppressionDisabledTokenType&gt;();
+    }
+
+private:
+    void platformInitialize();
+
+    void platformInitializeWebProcess(WebProcessCreationParameters&amp;);
+    void platformInvalidateContext();
+
+    WebProcessProxy&amp; createNewWebProcess();
+
+    void requestWebContentStatistics(StatisticsRequest*);
+    void requestNetworkingStatistics(StatisticsRequest*);
+
+#if ENABLE(NETWORK_PROCESS)
+    void platformInitializeNetworkProcess(NetworkProcessCreationParameters&amp;);
+#endif
+
+#if PLATFORM(IOS)
+    void writeWebContentToPasteboard(const WebCore::PasteboardWebContent&amp;);
+    void writeImageToPasteboard(const WebCore::PasteboardImage&amp;);
+    void writeStringToPasteboard(const String&amp; pasteboardType, const String&amp;);
+    void readStringFromPasteboard(uint64_t index, const String&amp; pasteboardType, WTF::String&amp;);
+    void readURLFromPasteboard(uint64_t index, const String&amp; pasteboardType, String&amp;);
+    void readBufferFromPasteboard(uint64_t index, const String&amp; pasteboardType, SharedMemory::Handle&amp;, uint64_t&amp; size);
+    void getPasteboardItemsCount(uint64_t&amp; itemsCount);
+#endif
+#if PLATFORM(COCOA)
+    void getPasteboardTypes(const String&amp; pasteboardName, Vector&lt;String&gt;&amp; pasteboardTypes);
+    void getPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, Vector&lt;String&gt;&amp; pathnames);
+    void getPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, String&amp;);
+    void getPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, SharedMemory::Handle&amp;, uint64_t&amp; size);
+    void pasteboardCopy(const String&amp; fromPasteboard, const String&amp; toPasteboard, uint64_t&amp; newChangeCount);
+    void getPasteboardChangeCount(const String&amp; pasteboardName, uint64_t&amp; changeCount);
+    void getPasteboardUniqueName(String&amp; pasteboardName);
+    void getPasteboardColor(const String&amp; pasteboardName, WebCore::Color&amp;);
+    void getPasteboardURL(const String&amp; pasteboardName, WTF::String&amp;);
+    void addPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount);
+    void setPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount);
+    void setPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const Vector&lt;String&gt;&amp; pathnames, uint64_t&amp; newChangeCount);
+    void setPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const String&amp;, uint64_t&amp; newChangeCount);
+    void setPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const SharedMemory::Handle&amp;, uint64_t size, uint64_t&amp; newChangeCount);
+#endif
+
+#if !PLATFORM(COCOA)
+    // FIXME: This a dummy message, to avoid breaking the build for platforms that don't require
+    // any synchronous messages, and should be removed when &lt;rdar://problem/8775115&gt; is fixed.
+    void dummy(bool&amp;);
+#endif
+
+    void didGetStatistics(const StatisticsData&amp;, uint64_t callbackID);
+
+    // Implemented in generated WebProcessPoolMessageReceiver.cpp
+    void didReceiveWebProcessPoolMessage(IPC::Connection*, IPC::MessageDecoder&amp;);
+    void didReceiveSyncWebProcessPoolMessage(IPC::Connection*, IPC::MessageDecoder&amp;, std::unique_ptr&lt;IPC::MessageEncoder&gt;&amp;);
+
+    static void languageChanged(void* context);
+    void languageChanged();
+
+    String applicationCacheDirectory() const;
+    String platformDefaultApplicationCacheDirectory() const;
+
+    String platformDefaultIconDatabasePath() const;
+
+    static String platformDefaultLocalStorageDirectory();
+    static String platformDefaultIndexedDBDatabaseDirectory();
+    static String platformDefaultWebSQLDatabaseDirectory();
+    static String platformDefaultMediaKeysStorageDirectory();
+
+    String diskCacheDirectory() const;
+    String platformDefaultDiskCacheDirectory() const;
+
+    String cookieStorageDirectory() const;
+    String platformDefaultCookieStorageDirectory() const;
+
+#if PLATFORM(IOS)
+    String openGLCacheDirectory() const;
+    String parentBundleDirectory() const;
+    String networkingHSTSDatabasePath() const;
+    String webContentHSTSDatabasePath() const;
+    String containerTemporaryDirectory() const;
+#endif
+
+#if PLATFORM(COCOA)
+    void registerNotificationObservers();
+    void unregisterNotificationObservers();
+#endif
+
+    void addPlugInAutoStartOriginHash(const String&amp; pageOrigin, unsigned plugInOriginHash, WebCore::SessionID);
+    void plugInDidReceiveUserInteraction(unsigned plugInOriginHash, WebCore::SessionID);
+
+    void setAnyPageGroupMightHavePrivateBrowsingEnabled(bool);
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    // PluginInfoStoreClient:
+    virtual void pluginInfoStoreDidLoadPlugins(PluginInfoStore*) override;
+#endif
+
+    IPC::MessageReceiverMap m_messageReceiverMap;
+
+    ProcessModel m_processModel;
+    unsigned m_webProcessCountLimit; // The limit has no effect when process model is ProcessModelSharedSecondaryProcess.
+    
+    Vector&lt;RefPtr&lt;WebProcessProxy&gt;&gt; m_processes;
+    bool m_haveInitialEmptyProcess;
+
+    WebProcessProxy* m_processWithPageCache;
+
+    Ref&lt;WebPageGroup&gt; m_defaultPageGroup;
+
+    RefPtr&lt;API::Object&gt; m_injectedBundleInitializationUserData;
+    String m_injectedBundlePath;
+    WebContextInjectedBundleClient m_injectedBundleClient;
+
+    WebContextClient m_client;
+    WebContextConnectionClient m_connectionClient;
+    std::unique_ptr&lt;API::DownloadClient&gt; m_downloadClient;
+    std::unique_ptr&lt;API::LegacyContextHistoryClient&gt; m_historyClient;
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    PluginInfoStore m_pluginInfoStore;
+#endif
+    RefPtr&lt;VisitedLinkProvider&gt; m_visitedLinkProvider;
+    bool m_visitedLinksPopulated;
+
+    PlugInAutoStartProvider m_plugInAutoStartProvider;
+        
+    HashSet&lt;String&gt; m_schemesToRegisterAsEmptyDocument;
+    HashSet&lt;String&gt; m_schemesToRegisterAsSecure;
+    HashSet&lt;String&gt; m_schemesToSetDomainRelaxationForbiddenFor;
+    HashSet&lt;String&gt; m_schemesToRegisterAsLocal;
+    HashSet&lt;String&gt; m_schemesToRegisterAsNoAccess;
+    HashSet&lt;String&gt; m_schemesToRegisterAsDisplayIsolated;
+    HashSet&lt;String&gt; m_schemesToRegisterAsCORSEnabled;
+#if ENABLE(CACHE_PARTITIONING)
+    HashSet&lt;String&gt; m_schemesToRegisterAsCachePartitioned;
+#endif
+
+    bool m_alwaysUsesComplexTextCodePath;
+    bool m_shouldUseFontSmoothing;
+
+    // Messages that were posted before any pages were created.
+    // The client should use initialization messages instead, so that a restarted process would get the same state.
+    Vector&lt;std::pair&lt;String, RefPtr&lt;API::Object&gt;&gt;&gt; m_messagesToInjectedBundlePostedToEmptyContext;
+
+    CacheModel m_cacheModel;
+
+    bool m_memorySamplerEnabled;
+    double m_memorySamplerInterval;
+
+    RefPtr&lt;WebIconDatabase&gt; m_iconDatabase;
+#if ENABLE(NETSCAPE_PLUGIN_API)
+    RefPtr&lt;WebPluginSiteDataManager&gt; m_pluginSiteDataManager;
+#endif
+
+    RefPtr&lt;WebsiteDataStore&gt; m_websiteDataStore;
+    RefPtr&lt;StorageManager&gt; m_storageManager;
+
+    typedef HashMap&lt;const char*, RefPtr&lt;WebContextSupplement&gt;, PtrHash&lt;const char*&gt;&gt; WebContextSupplementMap;
+    WebContextSupplementMap m_supplements;
+
+#if USE(SOUP)
+    HTTPCookieAcceptPolicy m_initialHTTPCookieAcceptPolicy;
+#endif
+
+#if PLATFORM(MAC)
+    RetainPtr&lt;NSObject&gt; m_enhancedAccessibilityObserver;
+    RetainPtr&lt;NSObject&gt; m_automaticTextReplacementNotificationObserver;
+    RetainPtr&lt;NSObject&gt; m_automaticSpellingCorrectionNotificationObserver;
+#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
+    RetainPtr&lt;NSObject&gt; m_automaticQuoteSubstitutionNotificationObserver;
+    RetainPtr&lt;NSObject&gt; m_automaticDashSubstitutionNotificationObserver;
+#endif
+#endif
+
+    String m_overrideApplicationCacheDirectory;
+    String m_overrideIconDatabasePath;
+    String m_overrideDiskCacheDirectory;
+    String m_overrideCookieStorageDirectory;
+
+    String m_webSQLDatabaseDirectory;
+    String m_indexedDBDatabaseDirectory;
+    String m_mediaKeysStorageDirectory;
+
+    bool m_shouldUseTestingNetworkSession;
+
+    bool m_processTerminationEnabled;
+
+#if ENABLE(NETWORK_PROCESS)
+    bool m_canHandleHTTPSServerTrustEvaluation;
+    bool m_usesNetworkProcess;
+    RefPtr&lt;NetworkProcessProxy&gt; m_networkProcess;
+#endif
+
+#if ENABLE(DATABASE_PROCESS)
+    RefPtr&lt;DatabaseProcessProxy&gt; m_databaseProcess;
+#endif
+    
+    HashMap&lt;uint64_t, RefPtr&lt;DictionaryCallback&gt;&gt; m_dictionaryCallbacks;
+    HashMap&lt;uint64_t, RefPtr&lt;StatisticsRequest&gt;&gt; m_statisticsRequests;
+
+#if USE(SOUP)
+    bool m_ignoreTLSErrors;
+#endif
+
+    bool m_memoryCacheDisabled;
+
+    RefCounter m_userObservablePageCounter;
+    RefCounter m_processSuppressionDisabledForPageCounter;
+
+#if PLATFORM(COCOA)
+    RetainPtr&lt;NSMutableDictionary&gt; m_bundleParameters;
+    ProcessSuppressionDisabledToken m_pluginProcessManagerProcessSuppressionDisabledToken;
+#endif
+};
+
+template&lt;typename T&gt;
+void WebProcessPool::sendToNetworkingProcess(T&amp;&amp; message)
+{
+    switch (m_processModel) {
+    case ProcessModelSharedSecondaryProcess:
+#if ENABLE(NETWORK_PROCESS)
+        if (m_usesNetworkProcess) {
+            if (m_networkProcess &amp;&amp; m_networkProcess-&gt;canSendMessage())
+                m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
+            return;
+        }
+#endif
+        if (!m_processes.isEmpty() &amp;&amp; m_processes[0]-&gt;canSendMessage())
+            m_processes[0]-&gt;send(std::forward&lt;T&gt;(message), 0);
+        return;
+    case ProcessModelMultipleSecondaryProcesses:
+#if ENABLE(NETWORK_PROCESS)
+        if (m_networkProcess &amp;&amp; m_networkProcess-&gt;canSendMessage())
+            m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
+        return;
+#else
+        break;
+#endif
+    }
+    ASSERT_NOT_REACHED();
+}
+
+template&lt;typename T&gt;
+void WebProcessPool::sendToNetworkingProcessRelaunchingIfNecessary(T&amp;&amp; message)
+{
+    switch (m_processModel) {
+    case ProcessModelSharedSecondaryProcess:
+#if ENABLE(NETWORK_PROCESS)
+        if (m_usesNetworkProcess) {
+            ensureNetworkProcess();
+            m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
+            return;
+        }
+#endif
+        ensureSharedWebProcess();
+        m_processes[0]-&gt;send(std::forward&lt;T&gt;(message), 0);
+        return;
+    case ProcessModelMultipleSecondaryProcesses:
+#if ENABLE(NETWORK_PROCESS)
+        ensureNetworkProcess();
+        m_networkProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
+        return;
+#else
+        break;
+#endif
+    }
+    ASSERT_NOT_REACHED();
+}
+
+template&lt;typename T&gt;
+void WebProcessPool::sendToDatabaseProcessRelaunchingIfNecessary(T&amp;&amp; message)
+{
+#if ENABLE(DATABASE_PROCESS)
+    ensureDatabaseProcess();
+    m_databaseProcess-&gt;send(std::forward&lt;T&gt;(message), 0);
+#else
+    sendToAllProcessesRelaunchingThemIfNecessary(std::forward&lt;T&gt;(message));
+#endif
+}
+
+template&lt;typename T&gt;
+void WebProcessPool::sendToAllProcesses(const T&amp; message)
+{
+    size_t processCount = m_processes.size();
+    for (size_t i = 0; i &lt; processCount; ++i) {
+        WebProcessProxy* process = m_processes[i].get();
+        if (process-&gt;canSendMessage())
+            process-&gt;send(T(message), 0);
+    }
+}
+
+template&lt;typename T&gt;
+void WebProcessPool::sendToAllProcessesRelaunchingThemIfNecessary(const T&amp; 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)
+        ensureSharedWebProcess();
+    sendToAllProcesses(message);
+}
+
+template&lt;typename T&gt;
+void WebProcessPool::sendToOneProcess(T&amp;&amp; message)
+{
+    if (m_processModel == ProcessModelSharedSecondaryProcess)
+        ensureSharedWebProcess();
+
+    bool messageSent = false;
+    size_t processCount = m_processes.size();
+    for (size_t i = 0; i &lt; processCount; ++i) {
+        WebProcessProxy* process = m_processes[i].get();
+        if (process-&gt;canSendMessage()) {
+            process-&gt;send(std::forward&lt;T&gt;(message), 0);
+            messageSent = true;
+            break;
+        }
+    }
+
+    if (!messageSent &amp;&amp; m_processModel == ProcessModelMultipleSecondaryProcesses) {
+        warmInitialProcess();
+        RefPtr&lt;WebProcessProxy&gt; process = m_processes.last();
+        if (process-&gt;canSendMessage())
+            process-&gt;send(std::forward&lt;T&gt;(message), 0);
+    }
+}
+
+} // namespace WebKit
+
+#endif // UIProcessPool_h
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolmessagesinfromrev177635trunkSourceWebKit2UIProcessWebContextmessagesin"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/UIProcess/WebProcessPool.messages.in (from rev 177635, trunk/Source/WebKit2/UIProcess/WebContext.messages.in) (0 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.messages.in                                (rev 0)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.messages.in        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -0,0 +1,64 @@
</span><ins>+# Copyright (C) 2010 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+messages -&gt; WebProcessPool LegacyReceiver {
+
+    DidGetStatistics(struct WebKit::StatisticsData statisticsData, uint64_t callbackID)
+
+#if PLATFORM(IOS)
+    WriteWebContentToPasteboard(struct WebCore::PasteboardWebContent content)
+    WriteImageToPasteboard(struct WebCore::PasteboardImage pasteboardImage)
+    WriteStringToPasteboard(String pasteboardType, String text) 
+    ReadStringFromPasteboard(uint64_t index, String pasteboardType) -&gt; (String string)
+    ReadURLFromPasteboard(uint64_t index, String pasteboardType) -&gt; (String string)
+    ReadBufferFromPasteboard(uint64_t index, String pasteboardType) -&gt; (WebKit::SharedMemory::Handle handle, uint64_t size)
+    GetPasteboardItemsCount() -&gt; (uint64_t itemsCount)
+#endif
+
+#if PLATFORM(COCOA)
+    # Pasteboard messages.
+    GetPasteboardTypes(String pasteboardName) -&gt; (Vector&lt;String&gt; types)
+    GetPasteboardPathnamesForType(String pasteboardName, String pasteboardType) -&gt; (Vector&lt;String&gt; pathnames)
+    GetPasteboardStringForType(String pasteboardName, String pasteboardType) -&gt; (String string)
+    GetPasteboardBufferForType(String pasteboardName, String pasteboardType) -&gt; (WebKit::SharedMemory::Handle handle, uint64_t size)
+    PasteboardCopy(String fromPasteboard, String toPasteboard) -&gt; (uint64_t changeCount)
+    GetPasteboardChangeCount(String pasteboardName) -&gt; (uint64_t changeCount)
+    GetPasteboardUniqueName() -&gt; (String pasteboardName)
+    GetPasteboardColor(String pasteboardName) -&gt; (WebCore::Color color)
+    GetPasteboardURL(String pasteboardName) -&gt; (String urlString)
+    AddPasteboardTypes(String pasteboardName, Vector&lt;String&gt; pasteboardTypes) -&gt; (uint64_t changeCount)
+    SetPasteboardTypes(String pasteboardName, Vector&lt;String&gt; pasteboardTypes) -&gt; (uint64_t changeCount)
+    SetPasteboardPathnamesForType(String pasteboardName, String pasteboardType, Vector&lt;String&gt; pathnames) -&gt; (uint64_t changeCount)
+    SetPasteboardStringForType(String pasteboardName, String pasteboardType, String string) -&gt; (uint64_t changeCount)
+    SetPasteboardBufferForType(String pasteboardName, String pasteboardType, WebKit::SharedMemory::Handle handle, uint64_t size) -&gt; (uint64_t changeCount)
+#endif
+
+#if !PLATFORM(COCOA)
+    // FIXME: This a dummy message, to avoid breaking the build for platforms that don't require
+    // any synchronous messages, and should be removed when &lt;rdar://problem/8775115&gt; is fixed.
+    Dummy() -&gt; (bool dummyReturn)
+#endif
+
+    # Plug-in messages.
+    void AddPlugInAutoStartOriginHash(String pageOrigin, uint32_t hash, WebCore::SessionID sessionID)
+    void PlugInDidReceiveUserInteraction(uint32_t hash, WebCore::SessionID sessionID)
+}
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -39,7 +39,6 @@
</span><span class="cx"> #include &quot;UserData.h&quot;
</span><span class="cx"> #include &quot;WebUserContentControllerProxy.h&quot;
</span><span class="cx"> #include &quot;WebBackForwardListItem.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><span class="cx"> #include &quot;WebInspectorProxy.h&quot;
</span><span class="cx"> #include &quot;WebNavigationDataStore.h&quot;
</span><span class="cx"> #include &quot;WebNotificationManagerProxy.h&quot;
</span><span class="lines">@@ -47,6 +46,7 @@
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><span class="cx"> #include &quot;WebPluginSiteDataManager.h&quot;
</span><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxyMessages.h&quot;
</span><span class="cx"> #include &lt;WebCore/SuddenTermination.h&gt;
</span><span class="cx"> #include &lt;WebCore/URL.h&gt;
</span><span class="lines">@@ -84,16 +84,16 @@
</span><span class="cx">     return pageMap;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;WebProcessProxy&gt; WebProcessProxy::create(WebContext&amp; context)
</del><ins>+Ref&lt;WebProcessProxy&gt; WebProcessProxy::create(WebProcessPool&amp; processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new WebProcessProxy(context));
</del><ins>+    return adoptRef(*new WebProcessProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebProcessProxy::WebProcessProxy(WebContext&amp; context)
</del><ins>+WebProcessProxy::WebProcessProxy(WebProcessPool&amp; processPool)
</ins><span class="cx">     : m_responsivenessTimer(this)
</span><del>-    , m_context(context)
</del><ins>+    , m_processPool(processPool)
</ins><span class="cx">     , m_mayHaveUniversalFileReadSandboxExtension(false)
</span><del>-    , m_customProtocolManagerProxy(this, context)
</del><ins>+    , m_customProtocolManagerProxy(this, processPool)
</ins><span class="cx">     , m_numberOfTimesSuddenTerminationWasDisabled(0)
</span><span class="cx">     , m_throttler(std::make_unique&lt;ProcessThrottler&gt;(this))
</span><span class="cx"> {
</span><span class="lines">@@ -113,7 +113,7 @@
</span><span class="cx"> {
</span><span class="cx">     launchOptions.processType = ProcessLauncher::WebProcess;
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><del>-    if (&amp;m_context.get() == &amp;WebInspectorProxy::inspectorContext())
</del><ins>+    if (&amp;m_processPool.get() == &amp;WebInspectorProxy::inspectorProcessPool())
</ins><span class="cx">         launchOptions.extraInitializationData.add(ASCIILiteral(&quot;inspector-process&quot;), ASCIILiteral(&quot;1&quot;));
</span><span class="cx"> #endif
</span><span class="cx">     platformGetLaunchOptions(launchOptions);
</span><span class="lines">@@ -130,7 +130,7 @@
</span><span class="cx">     for (WebPageProxyMap::iterator it = m_pageMap.begin(), end = m_pageMap.end(); it != end; ++it)
</span><span class="cx">         it-&gt;value-&gt;connectionWillOpen(connection);
</span><span class="cx"> 
</span><del>-    m_context-&gt;processWillOpenConnection(this);
</del><ins>+    m_processPool-&gt;processWillOpenConnection(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcessProxy::connectionWillClose(IPC::Connection* connection)
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">     for (WebPageProxyMap::iterator it = m_pageMap.begin(), end = m_pageMap.end(); it != end; ++it)
</span><span class="cx">         it-&gt;value-&gt;connectionWillClose(connection);
</span><span class="cx"> 
</span><del>-    m_context-&gt;processWillCloseConnection(this);
</del><ins>+    m_processPool-&gt;processWillCloseConnection(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcessProxy::disconnect()
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx">         webUserContentControllerProxy-&gt;removeProcess(*this);
</span><span class="cx">     m_webUserContentControllerProxies.clear();
</span><span class="cx"> 
</span><del>-    m_context-&gt;disconnectProcess(this);
</del><ins>+    m_processPool-&gt;disconnectProcess(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebPageProxy* WebProcessProxy::webPage(uint64_t pageID)
</span><span class="lines">@@ -216,7 +216,7 @@
</span><span class="cx"> 
</span><span class="cx">     // If this was the last WebPage open in that web process, and we have no other reason to keep it alive, let it go.
</span><span class="cx">     // We only allow this when using a network process, as otherwise the WebProcess needs to preserve its session state.
</span><del>-    if (!m_context-&gt;usesNetworkProcess() || state() == State::Terminated || !canTerminateChildProcess())
</del><ins>+    if (!m_processPool-&gt;usesNetworkProcess() || state() == State::Terminated || !canTerminateChildProcess())
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     abortProcessLaunchIfNeeded();
</span><span class="lines">@@ -365,15 +365,15 @@
</span><span class="cx"> void WebProcessProxy::getPlugins(bool refresh, Vector&lt;PluginInfo&gt;&amp; plugins, Vector&lt;PluginInfo&gt;&amp; applicationPlugins)
</span><span class="cx"> {
</span><span class="cx">     if (refresh)
</span><del>-        m_context-&gt;pluginInfoStore().refresh();
</del><ins>+        m_processPool-&gt;pluginInfoStore().refresh();
</ins><span class="cx"> 
</span><del>-    Vector&lt;PluginModuleInfo&gt; pluginModules = m_context-&gt;pluginInfoStore().plugins();
</del><ins>+    Vector&lt;PluginModuleInfo&gt; pluginModules = m_processPool-&gt;pluginInfoStore().plugins();
</ins><span class="cx">     for (size_t i = 0; i &lt; pluginModules.size(); ++i)
</span><span class="cx">         plugins.append(pluginModules[i].info);
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(PDFKIT_PLUGIN)
</span><span class="cx">     // Add built-in PDF last, so that it's not used when a real plug-in is installed.
</span><del>-    if (!m_context-&gt;omitPDFSupport()) {
</del><ins>+    if (!m_processPool-&gt;omitPDFSupport()) {
</ins><span class="cx">         plugins.append(PDFPlugin::pluginInfo());
</span><span class="cx">         applicationPlugins.append(PDFPlugin::pluginInfo());
</span><span class="cx">     }
</span><span class="lines">@@ -393,14 +393,14 @@
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><span class="cx"> void WebProcessProxy::getNetworkProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply&gt; reply)
</span><span class="cx"> {
</span><del>-    m_context-&gt;getNetworkProcessConnection(reply);
</del><ins>+    m_processPool-&gt;getNetworkProcessConnection(reply);
</ins><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(NETWORK_PROCESS)
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(DATABASE_PROCESS)
</span><span class="cx"> void WebProcessProxy::getDatabaseProcessConnection(PassRefPtr&lt;Messages::WebProcessProxy::GetDatabaseProcessConnection::DelayedReply&gt; reply)
</span><span class="cx"> {
</span><del>-    m_context-&gt;getDatabaseProcessConnection(reply);
</del><ins>+    m_processPool-&gt;getDatabaseProcessConnection(reply);
</ins><span class="cx"> }
</span><span class="cx"> #endif // ENABLE(DATABASE_PROCESS)
</span><span class="cx"> 
</span><span class="lines">@@ -409,7 +409,7 @@
</span><span class="cx">     if (dispatchMessage(connection, decoder))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (m_context-&gt;dispatchMessage(connection, decoder))
</del><ins>+    if (m_processPool-&gt;dispatchMessage(connection, decoder))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (decoder.messageReceiverName() == Messages::WebProcessProxy::messageReceiverName()) {
</span><span class="lines">@@ -425,7 +425,7 @@
</span><span class="cx">     if (dispatchSyncMessage(connection, decoder, replyEncoder))
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    if (m_context-&gt;dispatchSyncMessage(connection, decoder, replyEncoder))
</del><ins>+    if (m_processPool-&gt;dispatchSyncMessage(connection, decoder, replyEncoder))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (decoder.messageReceiverName() == Messages::WebProcessProxy::messageReceiverName()) {
</span><span class="lines">@@ -458,7 +458,7 @@
</span><span class="cx"> {
</span><span class="cx">     WTFLogAlways(&quot;Received an invalid message \&quot;%s.%s\&quot; from the web process.\n&quot;, messageReceiverName.toString().data(), messageName.toString().data());
</span><span class="cx"> 
</span><del>-    WebContext::didReceiveInvalidMessage(messageReceiverName, messageName);
</del><ins>+    WebProcessPool::didReceiveInvalidMessage(messageReceiverName, messageName);
</ins><span class="cx"> 
</span><span class="cx">     // Terminate the WebProcess.
</span><span class="cx">     terminate();
</span><span class="lines">@@ -503,7 +503,7 @@
</span><span class="cx"> 
</span><span class="cx">     m_webConnection = WebConnectionToWebProcess::create(this);
</span><span class="cx"> 
</span><del>-    m_context-&gt;processDidFinishLaunching(this);
</del><ins>+    m_processPool-&gt;processDidFinishLaunching(this);
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS) &amp;&amp; USE(XPC_SERVICES)
</span><span class="cx">     xpc_connection_t xpcConnection = connection()-&gt;xpcConnection();
</span><span class="lines">@@ -568,7 +568,7 @@
</span><span class="cx">     if (m_downloadProxyMap &amp;&amp; !m_downloadProxyMap-&gt;isEmpty())
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    if (!m_context-&gt;shouldTerminate(this))
</del><ins>+    if (!m_processPool-&gt;shouldTerminate(this))
</ins><span class="cx">         return false;
</span><span class="cx"> 
</span><span class="cx">     return true;
</span><span class="lines">@@ -578,7 +578,7 @@
</span><span class="cx"> {
</span><span class="cx">     shouldTerminate = canTerminateChildProcess();
</span><span class="cx">     if (shouldTerminate) {
</span><del>-        // We know that the web process is going to terminate so disconnect it from the context.
</del><ins>+        // We know that the web process is going to terminate so disconnect it from the process pool.
</ins><span class="cx">         disconnect();
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -592,18 +592,18 @@
</span><span class="cx"> DownloadProxy* WebProcessProxy::createDownloadProxy(const ResourceRequest&amp; request)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    ASSERT(!m_context-&gt;usesNetworkProcess());
</del><ins>+    ASSERT(!m_processPool-&gt;usesNetworkProcess());
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     if (!m_downloadProxyMap)
</span><span class="cx">         m_downloadProxyMap = std::make_unique&lt;DownloadProxyMap&gt;(this);
</span><span class="cx"> 
</span><del>-    return m_downloadProxyMap-&gt;createDownloadProxy(m_context, request);
</del><ins>+    return m_downloadProxyMap-&gt;createDownloadProxy(m_processPool, request);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcessProxy::didSaveToPageCache()
</span><span class="cx"> {
</span><del>-    m_context-&gt;processDidCachePage(this);
</del><ins>+    m_processPool-&gt;processDidCachePage(this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcessProxy::releasePageCache()
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -58,8 +58,8 @@
</span><span class="cx"> 
</span><span class="cx"> class DownloadProxyMap;
</span><span class="cx"> class WebBackForwardListItem;
</span><del>-class WebContext;
</del><span class="cx"> class WebPageGroup;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> struct WebNavigationDataStore;
</span><span class="cx">     
</span><span class="cx"> class WebProcessProxy : public ChildProcessProxy, ResponsivenessTimer::Client {
</span><span class="lines">@@ -68,7 +68,7 @@
</span><span class="cx">     typedef HashMap&lt;uint64_t, RefPtr&lt;WebFrameProxy&gt;&gt; WebFrameProxyMap;
</span><span class="cx">     typedef HashMap&lt;uint64_t, WebPageProxy*&gt; WebPageProxyMap;
</span><span class="cx"> 
</span><del>-    static Ref&lt;WebProcessProxy&gt; create(WebContext&amp;);
</del><ins>+    static Ref&lt;WebProcessProxy&gt; create(WebProcessPool&amp;);
</ins><span class="cx">     ~WebProcessProxy();
</span><span class="cx"> 
</span><span class="cx">     static WebProcessProxy* fromConnection(IPC::Connection* connection)
</span><span class="lines">@@ -78,7 +78,7 @@
</span><span class="cx"> 
</span><span class="cx">     WebConnection* webConnection() const { return m_webConnection.get(); }
</span><span class="cx"> 
</span><del>-    WebContext&amp; context() { return m_context; }
</del><ins>+    WebProcessPool&amp; processPool() { return m_processPool; }
</ins><span class="cx"> 
</span><span class="cx">     static WebPageProxy* webPage(uint64_t pageID);
</span><span class="cx">     Ref&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, const WebPageConfiguration&amp;);
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx">     ProcessThrottler&amp; throttler() { return *m_throttler; }
</span><span class="cx">     
</span><span class="cx"> private:
</span><del>-    explicit WebProcessProxy(WebContext&amp;);
</del><ins>+    explicit WebProcessProxy(WebProcessPool&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // From ChildProcessProxy
</span><span class="cx">     virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&amp;) override;
</span><span class="lines">@@ -196,7 +196,7 @@
</span><span class="cx">     ResponsivenessTimer m_responsivenessTimer;
</span><span class="cx">     
</span><span class="cx">     RefPtr&lt;WebConnectionToWebProcess&gt; m_webConnection;
</span><del>-    Ref&lt;WebContext&gt; m_context;
</del><ins>+    Ref&lt;WebProcessPool&gt; m_processPool;
</ins><span class="cx"> 
</span><span class="cx">     bool m_mayHaveUniversalFileReadSandboxExtension; // True if a read extension for &quot;/&quot; was ever granted - we don't track whether WebProcess still has it.
</span><span class="cx">     HashSet&lt;String&gt; m_localPathsWithAssumedReadAccess;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebResourceCacheManagerProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -29,7 +29,7 @@
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;ImmutableDictionary.h&quot;
</span><span class="cx"> #include &quot;SecurityOriginData.h&quot;
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &quot;WebResourceCacheManagerMessages.h&quot;
</span><span class="cx"> #include &quot;WebResourceCacheManagerProxyMessages.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -46,15 +46,15 @@
</span><span class="cx">     return &quot;WebResourceCacheManagerProxy&quot;;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebResourceCacheManagerProxy&gt; WebResourceCacheManagerProxy::create(WebContext* webContext)
</del><ins>+PassRefPtr&lt;WebResourceCacheManagerProxy&gt; WebResourceCacheManagerProxy::create(WebProcessPool* processPool)
</ins><span class="cx"> {
</span><del>-    return adoptRef(new WebResourceCacheManagerProxy(webContext));
</del><ins>+    return adoptRef(new WebResourceCacheManagerProxy(processPool));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebResourceCacheManagerProxy::WebResourceCacheManagerProxy(WebContext* webContext)
-    : WebContextSupplement(webContext)
</del><ins>+WebResourceCacheManagerProxy::WebResourceCacheManagerProxy(WebProcessPool* processPool)
+    : WebContextSupplement(processPool)
</ins><span class="cx"> {
</span><del>-    WebContextSupplement::context()-&gt;addMessageReceiver(Messages::WebResourceCacheManagerProxy::messageReceiverName(), *this);
</del><ins>+    WebContextSupplement::processPool()-&gt;addMessageReceiver(Messages::WebResourceCacheManagerProxy::messageReceiverName(), *this);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> WebResourceCacheManagerProxy::~WebResourceCacheManagerProxy()
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> 
</span><span class="cx"> // WebContextSupplement
</span><span class="cx"> 
</span><del>-void WebResourceCacheManagerProxy::contextDestroyed()
</del><ins>+void WebResourceCacheManagerProxy::processPoolDestroyed()
</ins><span class="cx"> {
</span><span class="cx">     invalidateCallbackMap(m_arrayCallbacks, CallbackBase::Error::OwnerWasInvalidated);
</span><span class="cx"> }
</span><span class="lines">@@ -95,7 +95,7 @@
</span><span class="cx">     m_arrayCallbacks.set(callbackID, callback.release());
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; When multi-process is enabled, we need to aggregate the callback data from all processes.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::GetCacheOrigins(callbackID));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::GetCacheOrigins(callbackID));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebResourceCacheManagerProxy::didGetCacheOrigins(const Vector&lt;SecurityOriginData&gt;&amp; origins, uint64_t callbackID)
</span><span class="lines">@@ -112,17 +112,17 @@
</span><span class="cx">     securityOrigin.port = origin-&gt;securityOrigin().port();
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; There is no need to relaunch all processes. One process to take care of persistent cache is enough.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForOrigin(securityOrigin, cachesToClear));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForOrigin(securityOrigin, cachesToClear));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebResourceCacheManagerProxy::clearCacheForAllOrigins(ResourceCachesToClear cachesToClear)
</span><span class="cx"> {
</span><span class="cx"> #if ENABLE(NETWORK_PROCESS)
</span><del>-    context()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::NetworkProcess::ClearCacheForAllOrigins(cachesToClear));
</del><ins>+    processPool()-&gt;sendToNetworkingProcessRelaunchingIfNecessary(Messages::NetworkProcess::ClearCacheForAllOrigins(cachesToClear));
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     // FIXME (Multi-WebProcess): &lt;rdar://problem/12239765&gt; There is no need to relaunch all processes. One process to take care of persistent cache is enough.
</span><del>-    context()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForAllOrigins(cachesToClear));
</del><ins>+    processPool()-&gt;sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForAllOrigins(cachesToClear));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebKit
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebResourceCacheManagerProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="cx"> struct SecurityOriginData;
</span><del>-class WebContext;
</del><ins>+class WebProcessPool;
</ins><span class="cx"> class WebProcessProxy;
</span><span class="cx"> 
</span><span class="cx"> typedef GenericCallback&lt;API::Array*&gt; ArrayCallback;
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> public:
</span><span class="cx">     static const char* supplementName();
</span><span class="cx"> 
</span><del>-    static PassRefPtr&lt;WebResourceCacheManagerProxy&gt; create(WebContext*);
</del><ins>+    static PassRefPtr&lt;WebResourceCacheManagerProxy&gt; create(WebProcessPool*);
</ins><span class="cx">     virtual ~WebResourceCacheManagerProxy();
</span><span class="cx"> 
</span><span class="cx">     void getCacheOrigins(std::function&lt;void (API::Array*, CallbackBase::Error)&gt;);
</span><span class="lines">@@ -58,10 +58,10 @@
</span><span class="cx">     using API::Object::deref;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    explicit WebResourceCacheManagerProxy(WebContext*);
</del><ins>+    explicit WebResourceCacheManagerProxy(WebProcessPool*);
</ins><span class="cx"> 
</span><span class="cx">     // WebContextSupplement
</span><del>-    virtual void contextDestroyed() override;
</del><ins>+    virtual void processPoolDestroyed() override;
</ins><span class="cx">     virtual void processDidClose(WebProcessProxy*) override;
</span><span class="cx">     virtual bool shouldTerminate(WebProcessProxy*) const override;
</span><span class="cx">     virtual void refWebContextSupplement() override;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebsiteDataWebsiteDataStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/WebsiteData/WebsiteDataStore.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebsiteDataStore.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;WebContext.h&quot;
</del><ins>+#include &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #include &lt;wtf/RunLoop.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -145,19 +145,19 @@
</span><span class="cx"> 
</span><span class="cx">     auto networkProcessAccessType = computeNetworkProcessAccessType(dataTypes, isNonPersistent());
</span><span class="cx">     if (networkProcessAccessType != ProcessAccessType::None) {
</span><del>-        HashSet&lt;WebContext*&gt; contexts;
</del><ins>+        HashSet&lt;WebProcessPool*&gt; processPools;
</ins><span class="cx">         for (auto&amp; webPage : m_webPages)
</span><del>-            contexts.add(&amp;webPage-&gt;process().context());
</del><ins>+            processPools.add(&amp;webPage-&gt;process().processPool());
</ins><span class="cx"> 
</span><del>-        for (auto&amp; context : contexts) {
</del><ins>+        for (auto&amp; processPool : processPools) {
</ins><span class="cx">             switch (networkProcessAccessType) {
</span><span class="cx">             case ProcessAccessType::OnlyIfLaunched:
</span><del>-                if (!context-&gt;networkProcess())
</del><ins>+                if (!processPool-&gt;networkProcess())
</ins><span class="cx">                     continue;
</span><span class="cx">                 break;
</span><span class="cx"> 
</span><span class="cx">             case ProcessAccessType::Launch:
</span><del>-                context-&gt;ensureNetworkProcess();
</del><ins>+                processPool-&gt;ensureNetworkProcess();
</ins><span class="cx">                 break;
</span><span class="cx"> 
</span><span class="cx">             case ProcessAccessType::None:
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             callbackAggregator-&gt;addPendingCallback();
</span><del>-            context-&gt;networkProcess()-&gt;deleteWebsiteData(m_sessionID, dataTypes, modifiedSince, [callbackAggregator] {
</del><ins>+            processPool-&gt;networkProcess()-&gt;deleteWebsiteData(m_sessionID, dataTypes, modifiedSince, [callbackAggregator] {
</ins><span class="cx">                 callbackAggregator-&gt;removePendingCallback();
</span><span class="cx">             });
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosPageClientImplIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -239,7 +239,7 @@
</span><span class="cx"> 
</span><span class="cx"> bool PageClientImpl::decidePolicyForGeolocationPermissionRequest(WebFrameProxy&amp; frame, API::SecurityOrigin&amp; origin, GeolocationPermissionRequestProxy&amp; request)
</span><span class="cx"> {
</span><del>-    [[wrapper(m_webView-&gt;_page-&gt;process().context()) _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:origin.securityOrigin() frame:frame request:request view:m_webView];
</del><ins>+    [[wrapper(m_webView-&gt;_page-&gt;process().processPool()) _geolocationProvider] decidePolicyForGeolocationRequestFromOrigin:origin.securityOrigin() frame:frame request:request view:m_webView];
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -41,9 +41,9 @@
</span><span class="cx"> class DrawingAreaProxy;
</span><span class="cx"> class GeolocationPermissionRequestProxy;
</span><span class="cx"> class RemoteLayerTreeTransaction;
</span><del>-class WebContext;
</del><span class="cx"> class WebFrameProxy;
</span><span class="cx"> class WebPageProxy;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> struct WebPageConfiguration;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -61,7 +61,7 @@
</span><span class="cx"> @property (nonatomic, getter=isShowingInspectorIndication) BOOL showingInspectorIndication;
</span><span class="cx"> @property (nonatomic, readonly) BOOL isBackground;
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(CGRect)frame context:(WebKit::WebContext&amp;)context configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
</ins><span class="cx"> 
</span><span class="cx"> - (void)didUpdateVisibleRect:(CGRect)visibleRect unobscuredRect:(CGRect)unobscuredRect
</span><span class="cx">     unobscuredRectInScrollViewCoordinates:(CGRect)unobscuredRectInScrollViewCoordinates
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -39,11 +39,11 @@
</span><span class="cx"> #import &quot;WKProcessGroupPrivate.h&quot;
</span><span class="cx"> #import &quot;WKWebViewConfiguration.h&quot;
</span><span class="cx"> #import &quot;WKWebViewInternal.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebFrameProxy.h&quot;
</span><span class="cx"> #import &quot;WebKit2Initialize.h&quot;
</span><span class="cx"> #import &quot;WebKitSystemInterfaceIOS.h&quot;
</span><span class="cx"> #import &quot;WebPageGroup.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;WebSystemInterface.h&quot;
</span><span class="cx"> #import &lt;CoreGraphics/CoreGraphics.h&gt;
</span><span class="cx"> #import &lt;UIKit/UIWindow_Private.h&gt;
</span><span class="lines">@@ -182,7 +182,7 @@
</span><span class="cx">     RetainPtr&lt;NSUndoManager&gt; _undoManager;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(CGRect)frame context:(WebKit::WebContext&amp;)context configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</ins><span class="cx"> {
</span><span class="cx">     if (!(self = [super initWithFrame:frame]))
</span><span class="cx">         return nil;
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx"> 
</span><span class="cx">     _pageClient = std::make_unique&lt;PageClientImpl&gt;(self, webView);
</span><span class="cx"> 
</span><del>-    _page = context.createWebPage(*_pageClient, WTF::move(webPageConfiguration));
</del><ins>+    _page = processPool.createWebPage(*_pageClient, WTF::move(webPageConfiguration));
</ins><span class="cx">     _page-&gt;initializeWebPage();
</span><span class="cx">     _page-&gt;setIntrinsicDeviceScaleFactor(WKGetScaleFactorForScreen([UIScreen mainScreen]));
</span><span class="cx">     _page-&gt;setUseFixedLayout(true);
</span><span class="lines">@@ -201,7 +201,7 @@
</span><span class="cx">     
</span><span class="cx">     _isBackground = [UIApplication sharedApplication].applicationState == UIApplicationStateBackground;
</span><span class="cx"> 
</span><del>-    WebContext::statistics().wkViewCount++;
</del><ins>+    WebProcessPool::statistics().wkViewCount++;
</ins><span class="cx"> 
</span><span class="cx">     _rootContentView = adoptNS([[UIView alloc] init]);
</span><span class="cx">     [_rootContentView layer].masksToBounds = NO;
</span><span class="lines">@@ -238,7 +238,7 @@
</span><span class="cx"> 
</span><span class="cx">     _page-&gt;close();
</span><span class="cx"> 
</span><del>-    WebContext::statistics().wkViewCount--;
</del><ins>+    WebProcessPool::statistics().wkViewCount--;
</ins><span class="cx"> 
</span><span class="cx">     [super dealloc];
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKGeolocationProviderIOSh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,8 +30,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> class GeolocationPermissionRequestProxy;
</span><del>-class WebContext;
</del><span class="cx"> class WebFrameProxy;
</span><ins>+class WebProcessPool;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx"> @class WKWebView;
</span><span class="cx"> 
</span><span class="cx"> @interface WKGeolocationProviderIOS : NSObject
</span><del>--(id)initWithContext:(WebKit::WebContext*)context;
</del><ins>+-(id)initWithProcessPool:(WebKit::WebProcessPool&amp;)processPool;
</ins><span class="cx"> -(void)decidePolicyForGeolocationRequestFromOrigin:(WebCore::SecurityOrigin&amp;)origin frame:(WebKit::WebFrameProxy&amp;)frame request:(WebKit::GeolocationPermissionRequestProxy&amp;)permissionRequest view:(WKWebView*)view;
</span><span class="cx"> @end
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKGeolocationProviderIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/ios/WKGeolocationProviderIOS.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -32,16 +32,16 @@
</span><span class="cx"> #import &quot;GeolocationPermissionRequestProxy.h&quot;
</span><span class="cx"> #import &quot;WKUIDelegatePrivate.h&quot;
</span><span class="cx"> #import &quot;WKWebView.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebGeolocationManagerProxy.h&quot;
</span><del>-#import &lt;WebGeolocationPosition.h&gt;
</del><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &lt;WebCore/GeolocationPosition.h&gt;
</span><span class="cx"> #import &lt;WebCore/URL.h&gt;
</span><ins>+#import &lt;WebGeolocationPosition.h&gt;
</ins><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/HashSet.h&gt;
</ins><span class="cx"> #import &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><del>-#import &lt;wtf/HashSet.h&gt;
</del><span class="cx"> 
</span><span class="cx"> // FIXME: Remove use of WebKit1 from WebKit2
</span><span class="cx"> #import &lt;WebKit/WebGeolocationCoreLocationProvider.h&gt;
</span><span class="lines">@@ -135,12 +135,12 @@
</span><span class="cx">     return nil;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>--(id)initWithContext:(WebContext*)context
</del><ins>+-(id)initWithProcessPool:(WebProcessPool&amp;)processPool
</ins><span class="cx"> {
</span><span class="cx">     self = [super init];
</span><span class="cx">     if (!self)
</span><span class="cx">         return nil;
</span><del>-    _geolocationManager = context-&gt;supplement&lt;WebGeolocationManagerProxy&gt;();
</del><ins>+    _geolocationManager = processPool.supplement&lt;WebGeolocationManagerProxy&gt;();
</ins><span class="cx">     WKGeolocationProvider providerCallback = {
</span><span class="cx">         kWKGeolocationProviderCurrentVersion,
</span><span class="cx">         self,
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebProcessProxyIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/ios/WebProcessProxyIOS.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> 
</span><span class="cx"> #import &lt;WebCore/NotImplemented.h&gt;
</span><span class="cx"> 
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebProcessMessages.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacServicesControllerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/ServicesController.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/ServicesController.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/ServicesController.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -34,8 +34,6 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-class WebContext;
-
</del><span class="cx"> class ServicesController {
</span><span class="cx">     WTF_MAKE_NONCOPYABLE(ServicesController);
</span><span class="cx">     friend class NeverDestroyed&lt;ServicesController&gt;;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacServicesControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/ServicesController.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/ServicesController.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/ServicesController.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SERVICE_CONTROLS)
</span><span class="cx"> 
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebProcessMessages.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &lt;WebCore/NSExtensionSPI.h&gt;
</span><span class="cx"> #import &lt;WebCore/NSSharingServicePickerSPI.h&gt;
</span><span class="cx"> #import &lt;WebCore/NSSharingServiceSPI.h&gt;
</span><span class="lines">@@ -105,8 +105,8 @@
</span><span class="cx">             m_hasRichContentServices = hasRichContentServices;
</span><span class="cx"> 
</span><span class="cx">             if (availableServicesChanged) {
</span><del>-                for (auto&amp; context : WebContext::allContexts())
-                    context-&gt;sendToAllProcesses(Messages::WebProcess::SetEnabledServices(m_hasImageServices, m_hasSelectionServices, m_hasRichContentServices));
</del><ins>+                for (auto&amp; processPool : WebProcessPool::allProcessPools())
+                    processPool-&gt;sendToAllProcesses(Messages::WebProcess::SetEnabledServices(m_hasImageServices, m_hasSelectionServices, m_hasRichContentServices));
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             m_hasPendingRefresh = false;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWKActionMenuControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WKActionMenuController.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -30,11 +30,11 @@
</span><span class="cx"> 
</span><span class="cx"> #import &quot;WKNSURLExtras.h&quot;
</span><span class="cx"> #import &quot;WKViewInternal.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebKitSystemInterface.h&quot;
</span><span class="cx"> #import &quot;WebPageMessages.h&quot;
</span><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><span class="cx"> #import &quot;WebPageProxyMessages.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &lt;Foundation/Foundation.h&gt;
</span><span class="cx"> #import &lt;ImageIO/ImageIO.h&gt;
</span><span class="lines">@@ -240,7 +240,7 @@
</span><span class="cx"> - (void)_saveVideoToDownloads:(id)sender
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;WebHitTestResult&gt; hitTestResult = [self _webHitTestResult];
</span><del>-    _page-&gt;process().context().download(_page, hitTestResult-&gt;absoluteMediaURL());
</del><ins>+    _page-&gt;process().processPool().download(_page, hitTestResult-&gt;absoluteMediaURL());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #pragma mark Image actions
</span><span class="lines">@@ -288,7 +288,7 @@
</span><span class="cx"> - (void)_saveImageToDownloads:(id)sender
</span><span class="cx"> {
</span><span class="cx">     RefPtr&lt;WebHitTestResult&gt; hitTestResult = [self _webHitTestResult];
</span><del>-    _page-&gt;process().context().download(_page, hitTestResult-&gt;absoluteImageURL());
</del><ins>+    _page-&gt;process().processPool().download(_page, hitTestResult-&gt;absoluteImageURL());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FIXME: We should try to share this with WebPageProxyMac's similar PDF functions.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWKFullKeyboardAccessWatchermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WKFullKeyboardAccessWatcher.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,7 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> 
</span><del>-#import &quot;WebContext.h&quot;
</del><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> NSString * const KeyboardUIModeDidChangeNotification = @&quot;com.apple.KeyboardUIModeDidChange&quot;;
</span><span class="cx"> const CFStringRef AppleKeyboardUIMode = CFSTR(&quot;AppleKeyboardUIMode&quot;);
</span><span class="lines">@@ -37,11 +37,10 @@
</span><span class="cx"> 
</span><span class="cx"> @implementation WKFullKeyboardAccessWatcher
</span><span class="cx"> 
</span><del>-- (void)notifyAllWebContexts
</del><ins>+- (void)notifyAllProcessPools
</ins><span class="cx"> {
</span><del>-    const Vector&lt;WebContext*&gt;&amp; contexts = WebContext::allContexts();
-    for (size_t i = 0; i &lt; contexts.size(); ++i)
-        contexts[i]-&gt;fullKeyboardAccessModeChanged(fullKeyboardAccessEnabled);
</del><ins>+    for (auto* processPool : WebProcessPool::allProcessPools())
+        processPool-&gt;fullKeyboardAccessModeChanged(fullKeyboardAccessEnabled);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)retrieveKeyboardUIModeFromPreferences:(NSNotification *)notification
</span><span class="lines">@@ -60,7 +59,7 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     if (fullKeyboardAccessEnabled != oldValue)
</span><del>-        [self notifyAllWebContexts];
</del><ins>+        [self notifyAllProcessPools];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (id)init
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebContextMacmm"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -1,623 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import &quot;config.h&quot;
-#import &quot;WebContext.h&quot;
-
-#import &quot;PluginProcessManager.h&quot;
-#import &quot;SandboxUtilities.h&quot;
-#import &quot;TextChecker.h&quot;
-#import &quot;WKBrowsingContextControllerInternal.h&quot;
-#import &quot;WKBrowsingContextControllerInternal.h&quot;
-#import &quot;WebKitSystemInterface.h&quot;
-#import &quot;WebMemoryPressureHandlerIOS.h&quot;
-#import &quot;WebPageGroup.h&quot;
-#import &quot;WebPreferencesKeys.h&quot;
-#import &quot;WebProcessCreationParameters.h&quot;
-#import &quot;WebProcessMessages.h&quot;
-#import &quot;WindowServerConnection.h&quot;
-#import &lt;WebCore/CFNetworkSPI.h&gt;
-#import &lt;WebCore/Color.h&gt;
-#import &lt;WebCore/FileSystem.h&gt;
-#import &lt;WebCore/NotImplemented.h&gt;
-#import &lt;WebCore/PlatformPasteboard.h&gt;
-#import &lt;WebCore/SharedBuffer.h&gt;
-#import &lt;sys/param.h&gt;
-
-#if ENABLE(NETWORK_PROCESS)
-#import &quot;NetworkProcessCreationParameters.h&quot;
-#import &quot;NetworkProcessProxy.h&quot;
-#endif
-
-#if PLATFORM(IOS)
-#import &lt;WebCore/RuntimeApplicationChecksIOS.h&gt;
-#else
-#import &lt;QuartzCore/CARemoteLayerServer.h&gt;
-#endif
-
-using namespace WebCore;
-
-NSString *WebDatabaseDirectoryDefaultsKey = @&quot;WebDatabaseDirectory&quot;;
-NSString *WebKitLocalCacheDefaultsKey = @&quot;WebKitLocalCache&quot;;
-NSString *WebStorageDirectoryDefaultsKey = @&quot;WebKitLocalStorageDatabasePathPreferenceKey&quot;;
-NSString *WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey = @&quot;WebKitKerningAndLigaturesEnabledByDefault&quot;;
-NSString *WebKitJSCJITEnabledDefaultsKey = @&quot;WebKitJSCJITEnabledDefaultsKey&quot;;
-NSString *WebKitJSCFTLJITEnabledDefaultsKey = @&quot;WebKitJSCFTLJITEnabledDefaultsKey&quot;;
-NSString *WebKitMediaKeysStorageDirectoryDefaultsKey = @&quot;WebKitMediaKeysStorageDirectory&quot;;
-
-#if !PLATFORM(IOS)
-static NSString *WebKitApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification = @&quot;NSApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification&quot;;
-#endif
-
-// FIXME: &lt;rdar://problem/9138817&gt; - After this &quot;backwards compatibility&quot; radar is removed, this code should be removed to only return an empty String.
-NSString *WebIconDatabaseDirectoryDefaultsKey = @&quot;WebIconDatabaseDirectoryDefaultsKey&quot;;
-
-#if ENABLE(NETWORK_PROCESS)
-static NSString * const WebKit2HTTPProxyDefaultsKey = @&quot;WebKit2HTTPProxy&quot;;
-static NSString * const WebKit2HTTPSProxyDefaultsKey = @&quot;WebKit2HTTPSProxy&quot;;
-#endif
-
-namespace WebKit {
-
-NSString *SchemeForCustomProtocolRegisteredNotificationName = @&quot;WebKitSchemeForCustomProtocolRegisteredNotification&quot;;
-NSString *SchemeForCustomProtocolUnregisteredNotificationName = @&quot;WebKitSchemeForCustomProtocolUnregisteredNotification&quot;;
-
-static void registerUserDefaultsIfNeeded()
-{
-    static bool didRegister;
-    if (didRegister)
-        return;
-
-    didRegister = true;
-    NSMutableDictionary *registrationDictionary = [NSMutableDictionary dictionary];
-    
-    [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitJSCJITEnabledDefaultsKey];
-    [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitJSCFTLJITEnabledDefaultsKey];
-    
-#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    [registrationDictionary setObject:[NSNumber numberWithBool:YES] forKey:WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey];
-#endif
-
-    [[NSUserDefaults standardUserDefaults] registerDefaults:registrationDictionary];
-}
-
-void WebContext::updateProcessSuppressionState()
-{
-#if ENABLE(NETWORK_PROCESS)
-    if (m_usesNetworkProcess &amp;&amp; m_networkProcess)
-        m_networkProcess-&gt;setProcessSuppressionEnabled(processSuppressionEnabled());
-#endif
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    if (!m_processSuppressionDisabledForPageCounter.value())
-        m_pluginProcessManagerProcessSuppressionDisabledToken = nullptr;
-    else if (!m_pluginProcessManagerProcessSuppressionDisabledToken)
-        m_pluginProcessManagerProcessSuppressionDisabledToken = PluginProcessManager::shared().processSuppressionDisabledToken();
-#endif
-}
-
-NSMutableDictionary *WebContext::ensureBundleParameters()
-{
-    if (!m_bundleParameters)
-        m_bundleParameters = adoptNS([[NSMutableDictionary alloc] init]);
-
-    return m_bundleParameters.get();
-}
-
-void WebContext::platformInitialize()
-{
-    registerUserDefaultsIfNeeded();
-    registerNotificationObservers();
-
-#if PLATFORM(IOS)
-    WebKit::WebMemoryPressureHandler::shared();
-#endif
-}
-
-String WebContext::platformDefaultApplicationCacheDirectory() const
-{
-    NSString *appName = [[NSBundle mainBundle] bundleIdentifier];
-    if (!appName)
-        appName = [[NSProcessInfo processInfo] processName];
-#if PLATFORM(IOS)
-    // This quirk used to make these apps share application cache storage, but doesn't accomplish that any more.
-    // Preserving it avoids the need to migrate data when upgrading.
-    if (applicationIsMobileSafari() || applicationIsWebApp())
-        appName = @&quot;com.apple.WebAppCache&quot;;
-#endif
-
-    ASSERT(appName);
-
-#if PLATFORM(IOS)
-    NSString *cacheDir = [NSHomeDirectory() stringByAppendingPathComponent:@&quot;Library/Caches&quot;];
-#else
-    char cacheDirectory[MAXPATHLEN];
-    size_t cacheDirectoryLen = confstr(_CS_DARWIN_USER_CACHE_DIR, cacheDirectory, MAXPATHLEN);
-    if (!cacheDirectoryLen)
-        return String();
-
-    NSString *cacheDir = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:cacheDirectory length:cacheDirectoryLen - 1];
-#endif
-    NSString* cachePath = [cacheDir stringByAppendingPathComponent:appName];
-    return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]);
-}
-
-void WebContext::platformInitializeWebProcess(WebProcessCreationParameters&amp; parameters)
-{
-    parameters.presenterApplicationPid = getpid();
-
-#if PLATFORM(MAC)
-    parameters.accessibilityEnhancedUserInterfaceEnabled = [[NSApp accessibilityAttributeValue:@&quot;AXEnhancedUserInterface&quot;] boolValue];
-#else
-    parameters.accessibilityEnhancedUserInterfaceEnabled = false;
-#endif
-
-    NSURLCache *urlCache = [NSURLCache sharedURLCache];
-    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
-    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
-
-#if !PLATFORM(IOS) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    parameters.shouldForceScreenFontSubstitution = [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;NSFontDefaultScreenFontSubstitutionEnabled&quot;];
-#endif
-    parameters.shouldEnableKerningAndLigaturesByDefault = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitKerningAndLigaturesEnabledByDefaultDefaultsKey];
-    parameters.shouldEnableJIT = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitJSCJITEnabledDefaultsKey];
-    parameters.shouldEnableFTLJIT = [[NSUserDefaults standardUserDefaults] boolForKey:WebKitJSCFTLJITEnabledDefaultsKey];
-    parameters.shouldEnableMemoryPressureReliefLogging = [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;LogMemoryJetsamDetails&quot;];
-    
-#if HAVE(HOSTED_CORE_ANIMATION)
-#if !PLATFORM(IOS)
-    parameters.acceleratedCompositingPort = MachSendRight::create([CARemoteLayerServer sharedServer].serverPort);
-#endif
-#endif
-
-    // FIXME: This should really be configurable; we shouldn't just blindly allow read access to the UI process bundle.
-    parameters.uiProcessBundleResourcePath = [[NSBundle mainBundle] resourcePath];
-    SandboxExtension::createHandle(parameters.uiProcessBundleResourcePath, SandboxExtension::ReadOnly, parameters.uiProcessBundleResourcePathExtensionHandle);
-
-    parameters.uiProcessBundleIdentifier = String([[NSBundle mainBundle] bundleIdentifier]);
-
-#if ENABLE(NETWORK_PROCESS)
-    if (!m_usesNetworkProcess) {
-#endif
-        for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
-            parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
-#if ENABLE(NETWORK_PROCESS)
-    }
-#endif
-
-    if (m_bundleParameters) {
-        auto data = adoptNS([[NSMutableData alloc] init]);
-        auto keyedArchiver = adoptNS([[NSKeyedArchiver alloc] initForWritingWithMutableData:data.get()]);
-
-        [keyedArchiver setRequiresSecureCoding:YES];
-
-        @try {
-            [keyedArchiver encodeObject:m_bundleParameters.get() forKey:@&quot;parameters&quot;];
-            [keyedArchiver finishEncoding];
-        } @catch (NSException *exception) {
-            LOG_ERROR(&quot;Failed to encode bundle parameters: %@&quot;, exception);
-        }
-
-        parameters.bundleParameterData = API::Data::createWithoutCopying((const unsigned char*)[data bytes], [data length], [] (unsigned char*, const void* data) {
-            [(NSData *)data release];
-        }, data.leakRef());
-    }
-}
-
-#if ENABLE(NETWORK_PROCESS)
-void WebContext::platformInitializeNetworkProcess(NetworkProcessCreationParameters&amp; parameters)
-{
-    NSURLCache *urlCache = [NSURLCache sharedURLCache];
-    parameters.nsURLCacheMemoryCapacity = [urlCache memoryCapacity];
-    parameters.nsURLCacheDiskCapacity = [urlCache diskCapacity];
-
-    parameters.parentProcessName = [[NSProcessInfo processInfo] processName];
-    parameters.uiProcessBundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
-
-    for (const auto&amp; scheme : globalURLSchemesWithCustomProtocolHandlers())
-        parameters.urlSchemesRegisteredForCustomProtocols.append(scheme);
-
-    parameters.httpProxy = [[NSUserDefaults standardUserDefaults] stringForKey:WebKit2HTTPProxyDefaultsKey];
-    parameters.httpsProxy = [[NSUserDefaults standardUserDefaults] stringForKey:WebKit2HTTPSProxyDefaultsKey];
-}
-#endif
-
-void WebContext::platformInvalidateContext()
-{
-    unregisterNotificationObservers();
-}
-
-String WebContext::platformDefaultDiskCacheDirectory() const
-{
-    RetainPtr&lt;NSString&gt; cachePath = adoptNS((NSString *)WKCopyFoundationCacheDirectory());
-    if (!cachePath)
-        cachePath = @&quot;~/Library/Caches/com.apple.WebKit.WebProcess&quot;;
-    return stringByResolvingSymlinksInPath([cachePath stringByStandardizingPath]);
-}
-
-String WebContext::platformDefaultCookieStorageDirectory() const
-{
-#if PLATFORM(IOS)
-    String path = pathForProcessContainer();
-    if (path.isEmpty())
-        path = NSHomeDirectory();
-
-    path = path + &quot;/Library/Cookies&quot;;
-    path = stringByResolvingSymlinksInPath(path);
-    return path;
-#else
-    notImplemented();
-    return [@&quot;&quot; stringByStandardizingPath];
-#endif
-}
-
-#if PLATFORM(IOS)
-String WebContext::openGLCacheDirectory() const
-{
-    String path = pathForProcessContainer();
-    if (path.isEmpty())
-        path = NSHomeDirectory();
-
-    path = path + &quot;/Library/Caches/com.apple.WebKit.WebContent/com.apple.opengl/&quot;;
-    return stringByResolvingSymlinksInPath(path);
-}
-
-String WebContext::parentBundleDirectory() const
-{
-    return [[[NSBundle mainBundle] bundlePath] stringByStandardizingPath];
-}
-
-String WebContext::networkingHSTSDatabasePath() const
-{
-    String path = pathForProcessContainer();
-    if (path.isEmpty())
-        path = NSHomeDirectory();
-
-    path = path + &quot;/Library/Caches/com.apple.WebKit.Networking/&quot;;
-    path = stringByResolvingSymlinksInPath(path);
-
-    NSError *error = nil;
-    NSString* nsPath = path;
-    if (![[NSFileManager defaultManager] createDirectoryAtPath:nsPath withIntermediateDirectories:YES attributes:nil error:&amp;error]) {
-        NSLog(@&quot;could not create \&quot;%@\&quot;, error %@&quot;, nsPath, error);
-        return String();
-    }
-
-    return path + &quot;/HSTS.plist&quot;;
-}
-
-String WebContext::webContentHSTSDatabasePath() const
-{
-    String path = pathForProcessContainer();
-    if (path.isEmpty())
-        path = NSHomeDirectory();
-
-    path = path + &quot;/Library/Caches/com.apple.WebKit.WebContent/&quot;;
-    path = stringByResolvingSymlinksInPath(path);
-
-    NSError *error = nil;
-    NSString* nsPath = path;
-    if (![[NSFileManager defaultManager] createDirectoryAtPath:nsPath withIntermediateDirectories:YES attributes:nil error:&amp;error]) {
-        NSLog(@&quot;could not create \&quot;%@\&quot;, error %@&quot;, nsPath, error);
-        return String();
-    }
-
-    return path + &quot;/HSTS.plist&quot;;
-}
-
-String WebContext::containerTemporaryDirectory() const
-{
-    String path = NSTemporaryDirectory();
-    return stringByResolvingSymlinksInPath(path);
-}
-#endif
-
-String WebContext::platformDefaultWebSQLDatabaseDirectory()
-{
-    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebDatabaseDirectoryDefaultsKey];
-    if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
-        databasesDirectory = @&quot;~/Library/WebKit/Databases&quot;;
-    return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
-}
-
-String WebContext::platformDefaultIndexedDBDatabaseDirectory()
-{
-    // Indexed databases exist in a subdirectory of the &quot;database directory path.&quot;
-    // Currently, the top level of that directory contains entities related to WebSQL databases.
-    // We should fix this, and move WebSQL into a subdirectory (https://bugs.webkit.org/show_bug.cgi?id=124807)
-    // In the meantime, an entity name prefixed with three underscores will not conflict with any WebSQL entities.
-    return pathByAppendingComponent(platformDefaultWebSQLDatabaseDirectory(), &quot;___IndexedDB&quot;);
-}
-
-String WebContext::platformDefaultIconDatabasePath() const
-{
-    // FIXME: &lt;rdar://problem/9138817&gt; - After this &quot;backwards compatibility&quot; radar is removed, this code should be removed to only return an empty String.
-    NSString *databasesDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebIconDatabaseDirectoryDefaultsKey];
-    if (!databasesDirectory || ![databasesDirectory isKindOfClass:[NSString class]])
-        databasesDirectory = @&quot;~/Library/Icons/WebpageIcons.db&quot;;
-    return stringByResolvingSymlinksInPath([databasesDirectory stringByStandardizingPath]);
-}
-
-String WebContext::platformDefaultLocalStorageDirectory()
-{
-    NSString *localStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebStorageDirectoryDefaultsKey];
-    if (!localStorageDirectory || ![localStorageDirectory isKindOfClass:[NSString class]])
-        localStorageDirectory = @&quot;~/Library/WebKit/LocalStorage&quot;;
-    return stringByResolvingSymlinksInPath([localStorageDirectory stringByStandardizingPath]);
-}
-
-String WebContext::platformDefaultMediaKeysStorageDirectory()
-{
-    NSString *mediaKeysStorageDirectory = [[NSUserDefaults standardUserDefaults] objectForKey:WebKitMediaKeysStorageDirectoryDefaultsKey];
-    if (!mediaKeysStorageDirectory || ![mediaKeysStorageDirectory isKindOfClass:[NSString class]])
-        mediaKeysStorageDirectory = @&quot;~/Library/WebKit/MediaKeys&quot;;
-    return stringByResolvingSymlinksInPath([mediaKeysStorageDirectory stringByStandardizingPath]);
-}
-
-bool WebContext::omitPDFSupport()
-{
-    // Since this is a &quot;secret default&quot; we don't bother registering it.
-    return [[NSUserDefaults standardUserDefaults] boolForKey:@&quot;WebKitOmitPDFSupport&quot;];
-}
-
-void WebContext::getPasteboardTypes(const String&amp; pasteboardName, Vector&lt;String&gt;&amp; pasteboardTypes)
-{
-    PlatformPasteboard(pasteboardName).getTypes(pasteboardTypes);
-}
-
-void WebContext::getPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, Vector&lt;String&gt;&amp; pathnames)
-{
-    PlatformPasteboard(pasteboardName).getPathnamesForType(pathnames, pasteboardType);
-}
-
-void WebContext::getPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, String&amp; string)
-{
-    string = PlatformPasteboard(pasteboardName).stringForType(pasteboardType);
-}
-
-void WebContext::getPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, SharedMemory::Handle&amp; handle, uint64_t&amp; size)
-{
-    RefPtr&lt;SharedBuffer&gt; buffer = PlatformPasteboard(pasteboardName).bufferForType(pasteboardType);
-    if (!buffer)
-        return;
-    size = buffer-&gt;size();
-    RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(size);
-    if (!sharedMemoryBuffer)
-        return;
-    memcpy(sharedMemoryBuffer-&gt;data(), buffer-&gt;data(), size);
-    sharedMemoryBuffer-&gt;createHandle(handle, SharedMemory::ReadOnly);
-}
-
-void WebContext::pasteboardCopy(const String&amp; fromPasteboard, const String&amp; toPasteboard, uint64_t&amp; newChangeCount)
-{
-    newChangeCount = PlatformPasteboard(toPasteboard).copy(fromPasteboard);
-}
-
-void WebContext::getPasteboardChangeCount(const String&amp; pasteboardName, uint64_t&amp; changeCount)
-{
-    changeCount = PlatformPasteboard(pasteboardName).changeCount();
-}
-
-void WebContext::getPasteboardUniqueName(String&amp; pasteboardName)
-{
-    pasteboardName = PlatformPasteboard::uniqueName();
-}
-
-void WebContext::getPasteboardColor(const String&amp; pasteboardName, WebCore::Color&amp; color)
-{
-    color = PlatformPasteboard(pasteboardName).color();    
-}
-
-void WebContext::getPasteboardURL(const String&amp; pasteboardName, WTF::String&amp; urlString)
-{
-    urlString = PlatformPasteboard(pasteboardName).url().string();
-}
-
-void WebContext::addPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount)
-{
-    newChangeCount = PlatformPasteboard(pasteboardName).addTypes(pasteboardTypes);
-}
-
-void WebContext::setPasteboardTypes(const String&amp; pasteboardName, const Vector&lt;String&gt;&amp; pasteboardTypes, uint64_t&amp; newChangeCount)
-{
-    newChangeCount = PlatformPasteboard(pasteboardName).setTypes(pasteboardTypes);
-}
-
-void WebContext::setPasteboardPathnamesForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const Vector&lt;String&gt;&amp; pathnames, uint64_t&amp; newChangeCount)
-{
-    newChangeCount = PlatformPasteboard(pasteboardName).setPathnamesForType(pathnames, pasteboardType);
-}
-
-void WebContext::setPasteboardStringForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const String&amp; string, uint64_t&amp; newChangeCount)
-{
-    newChangeCount = PlatformPasteboard(pasteboardName).setStringForType(string, pasteboardType);
-}
-
-void WebContext::setPasteboardBufferForType(const String&amp; pasteboardName, const String&amp; pasteboardType, const SharedMemory::Handle&amp; handle, uint64_t size, uint64_t&amp; newChangeCount)
-{
-    if (handle.isNull()) {
-        newChangeCount = PlatformPasteboard(pasteboardName).setBufferForType(0, pasteboardType);
-        return;
-    }
-    RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(handle, SharedMemory::ReadOnly);
-    RefPtr&lt;SharedBuffer&gt; buffer = SharedBuffer::create(static_cast&lt;unsigned char *&gt;(sharedMemoryBuffer-&gt;data()), size);
-    newChangeCount = PlatformPasteboard(pasteboardName).setBufferForType(buffer, pasteboardType);
-}
-
-#if PLATFORM(IOS)
-void WebContext::writeWebContentToPasteboard(const WebCore::PasteboardWebContent&amp; content)
-{
-    PlatformPasteboard().write(content);
-}
-
-void WebContext::writeImageToPasteboard(const WebCore::PasteboardImage&amp; pasteboardImage)
-{
-    PlatformPasteboard().write(pasteboardImage);
-}
-
-void WebContext::writeStringToPasteboard(const String&amp; pasteboardType, const String&amp; text)
-{
-    PlatformPasteboard().write(pasteboardType, text);
-}
-
-void WebContext::readStringFromPasteboard(uint64_t index, const String&amp; pasteboardType, WTF::String&amp; value)
-{
-    value = PlatformPasteboard().readString(index, pasteboardType);
-}
-
-void WebContext::readURLFromPasteboard(uint64_t index, const String&amp; pasteboardType, String&amp; url)
-{
-    url = PlatformPasteboard().readURL(index, pasteboardType);
-}
-
-void WebContext::readBufferFromPasteboard(uint64_t index, const String&amp; pasteboardType, SharedMemory::Handle&amp; handle, uint64_t&amp; size)
-{
-    RefPtr&lt;SharedBuffer&gt; buffer = PlatformPasteboard().readBuffer(index, pasteboardType);
-    if (!buffer)
-        return;
-    size = buffer-&gt;size();
-    RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(size);
-    if (!sharedMemoryBuffer)
-        return;
-    memcpy(sharedMemoryBuffer-&gt;data(), buffer-&gt;data(), size);
-    sharedMemoryBuffer-&gt;createHandle(handle, SharedMemory::ReadOnly);
-}
-
-void WebContext::getPasteboardItemsCount(uint64_t&amp; itemsCount)
-{
-    itemsCount = PlatformPasteboard().count();
-}
-
-#endif
-
-bool WebContext::processSuppressionEnabled() const
-{
-    return !m_userObservablePageCounter.value() &amp;&amp; !m_processSuppressionDisabledForPageCounter.value();
-}
-
-void WebContext::registerNotificationObservers()
-{
-#if !PLATFORM(IOS)
-    // Listen for enhanced accessibility changes and propagate them to the WebProcess.
-    m_enhancedAccessibilityObserver = [[NSNotificationCenter defaultCenter] addObserverForName:WebKitApplicationDidChangeAccessibilityEnhancedUserInterfaceNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *note) {
-        setEnhancedAccessibility([[[note userInfo] objectForKey:@&quot;AXEnhancedUserInterface&quot;] boolValue]);
-    }];
-
-    m_automaticTextReplacementNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticTextReplacementNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
-        TextChecker::didChangeAutomaticTextReplacementEnabled();
-        textCheckerStateChanged();
-    }];
-    
-    m_automaticSpellingCorrectionNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticSpellingCorrectionNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
-        TextChecker::didChangeAutomaticSpellingCorrectionEnabled();
-        textCheckerStateChanged();
-    }];
-
-#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    m_automaticQuoteSubstitutionNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticQuoteSubstitutionNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
-        TextChecker::didChangeAutomaticQuoteSubstitutionEnabled();
-        textCheckerStateChanged();
-    }];
-
-    m_automaticDashSubstitutionNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:NSSpellCheckerDidChangeAutomaticDashSubstitutionNotification object:nil queue:[NSOperationQueue currentQueue] usingBlock:^(NSNotification *notification) {
-        TextChecker::didChangeAutomaticDashSubstitutionEnabled();
-        textCheckerStateChanged();
-    }];
-#endif
-#endif // !PLATFORM(IOS)
-}
-
-void WebContext::unregisterNotificationObservers()
-{
-#if !PLATFORM(IOS)
-    [[NSNotificationCenter defaultCenter] removeObserver:m_enhancedAccessibilityObserver.get()];    
-    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticTextReplacementNotificationObserver.get()];
-    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticSpellingCorrectionNotificationObserver.get()];
-#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticQuoteSubstitutionNotificationObserver.get()];
-    [[NSNotificationCenter defaultCenter] removeObserver:m_automaticDashSubstitutionNotificationObserver.get()];
-#endif
-#endif // !PLATFORM(IOS)
-}
-
-#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-static CFURLStorageSessionRef privateBrowsingSession()
-{
-    static CFURLStorageSessionRef session;
-    static dispatch_once_t once;
-    dispatch_once(&amp;once, ^{
-        NSString *identifier = [NSString stringWithFormat:@&quot;%@.PrivateBrowsing&quot;, [[NSBundle mainBundle] bundleIdentifier]];
-
-        session = WKCreatePrivateStorageSession((CFStringRef)identifier);
-    });
-
-    return session;
-}
-#endif
-
-bool WebContext::isURLKnownHSTSHost(const String&amp; urlString, bool privateBrowsingEnabled) const
-{
-#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    RetainPtr&lt;CFURLRef&gt; url = URL(URL(), urlString).createCFURL();
-
-    return _CFNetworkIsKnownHSTSHostWithSession(url.get(), privateBrowsingEnabled ? privateBrowsingSession() : nullptr);
-#else
-    return false;
-#endif
-}
-
-void WebContext::resetHSTSHosts()
-{
-#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 1090
-    _CFNetworkResetHSTSHostsWithSession(nullptr);
-    _CFNetworkResetHSTSHostsWithSession(privateBrowsingSession());
-#endif
-}
-
-int networkProcessLatencyQOS()
-{
-    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitNetworkProcessLatencyQOS&quot;];
-    return qos;
-}
-
-int networkProcessThroughputQOS()
-{
-    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitNetworkProcessThroughputQOS&quot;];
-    return qos;
-}
-
-int webProcessLatencyQOS()
-{
-    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitWebProcessLatencyQOS&quot;];
-    return qos;
-}
-
-int webProcessThroughputQOS()
-{
-    static int qos = [[NSUserDefaults standardUserDefaults] integerForKey:@&quot;WebKitWebProcessThroughputQOS&quot;];
-    return qos;
-}
-
-} // namespace WebKit
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebContextMenuProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -34,7 +34,6 @@
</span><span class="cx"> #import &quot;ServicesController.h&quot;
</span><span class="cx"> #import &quot;ShareableBitmap.h&quot;
</span><span class="cx"> #import &quot;StringUtilities.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebContextMenuItemData.h&quot;
</span><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &quot;WKView.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebInspectorProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -36,12 +36,12 @@
</span><span class="cx"> #import &quot;WKRetainPtr.h&quot;
</span><span class="cx"> #import &quot;WKURLCF.h&quot;
</span><span class="cx"> #import &quot;WKViewInternal.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebInspectorMessages.h&quot;
</span><span class="cx"> #import &quot;WebInspectorUIMessages.h&quot;
</span><span class="cx"> #import &quot;WebPageGroup.h&quot;
</span><span class="cx"> #import &quot;WebPageProxy.h&quot;
</span><span class="cx"> #import &quot;WebPreferences.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &lt;QuartzCore/CoreAnimation.h&gt;
</span><span class="cx"> #import &lt;WebCore/InspectorFrontendClientLocal.h&gt;
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx">             initialRect = [NSWindow contentRectForFrameRect:windowFrame styleMask:windowStyleMask];
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_inspectorView = adoptNS([[WKWebInspectorWKView alloc] initWithFrame:initialRect contextRef:toAPI(&amp;inspectorContext()) pageGroupRef:toAPI(inspectorPageGroup()) relatedToPage:nullptr]);
</del><ins>+    m_inspectorView = adoptNS([[WKWebInspectorWKView alloc] initWithFrame:initialRect contextRef:toAPI(&amp;inspectorProcessPool()) pageGroupRef:toAPI(inspectorPageGroup()) relatedToPage:nullptr]);
</ins><span class="cx">     ASSERT(m_inspectorView);
</span><span class="cx"> 
</span><span class="cx"> #if __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 1090
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebPageProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx"> #import &quot;StringUtilities.h&quot;
</span><span class="cx"> #import &quot;TextChecker.h&quot;
</span><span class="cx"> #import &quot;WKBrowsingContextControllerInternal.h&quot;
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebPageMessages.h&quot;
</span><span class="cx"> #import &quot;WebProcessProxy.h&quot;
</span><span class="cx"> #import &lt;WebCore/DictationAlternative.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebProcessProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WebProcessProxyMac.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -28,9 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> 
</span><del>-#import &quot;WebContext.h&quot;
-#import &quot;WebPageGroup.h&quot;
-#import &quot;WebProcessMessages.h&quot;
</del><span class="cx"> #import &quot;WKFullKeyboardAccessWatcher.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWindowServerConnectionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WindowServerConnection.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WindowServerConnection.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/UIProcess/mac/WindowServerConnection.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -26,8 +26,8 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;WindowServerConnection.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;WebContext.h&quot;
</del><span class="cx"> #import &quot;WebKitSystemInterface.h&quot;
</span><ins>+#import &quot;WebProcessPool.h&quot;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><span class="lines">@@ -53,8 +53,8 @@
</span><span class="cx"> 
</span><span class="cx"> void WindowServerConnection::windowServerConnectionStateChanged()
</span><span class="cx"> {
</span><del>-    for (auto* context : WebContext::allContexts())
-        context-&gt;windowServerConnectionStateChanged();
</del><ins>+    for (auto* processPool : WebProcessPool::allProcessPools())
+        processPool-&gt;windowServerConnectionStateChanged();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -160,7 +160,6 @@
</span><span class="cx">                 1A1B0EB518A424950038481A /* WKNavigationResponse.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A1B0EB318A424950038481A /* WKNavigationResponse.mm */; };
</span><span class="cx">                 1A1B0EB618A424950038481A /* WKNavigationResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A1B0EB418A424950038481A /* WKNavigationResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
</span><span class="cx">                 1A1B0EB818A424CD0038481A /* WKNavigationResponseInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A1B0EB718A424CD0038481A /* WKNavigationResponseInternal.h */; };
</span><del>-                1A1C649B11F4174200553C19 /* WebContextMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A1C648611F415B700553C19 /* WebContextMac.mm */; };
</del><span class="cx">                 1A1D8BA11731A36300141DA4 /* LocalStorageDatabase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A1D8B9F1731A36300141DA4 /* LocalStorageDatabase.cpp */; };
</span><span class="cx">                 1A1D8BA21731A36300141DA4 /* LocalStorageDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A1D8BA01731A36300141DA4 /* LocalStorageDatabase.h */; };
</span><span class="cx">                 1A1DC340196346D700FF7059 /* LegacySessionStateCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 31607F3819627002009B87DA /* LegacySessionStateCoding.h */; };
</span><span class="lines">@@ -462,8 +461,6 @@
</span><span class="cx">                 1AE4987911FF7FAA0048B464 /* JSNPObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE4987711FF7FAA0048B464 /* JSNPObject.cpp */; };
</span><span class="cx">                 1AE49A4911FFA8CE0048B464 /* JSNPMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE49A4711FFA8CE0048B464 /* JSNPMethod.h */; };
</span><span class="cx">                 1AE49A4A11FFA8CE0048B464 /* JSNPMethod.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE49A4811FFA8CE0048B464 /* JSNPMethod.cpp */; };
</span><del>-                1AE52F9119201DA700A1FA37 /* APIContextConfiguration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE52F8F19201DA700A1FA37 /* APIContextConfiguration.cpp */; };
-                1AE52F9219201DA700A1FA37 /* APIContextConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE52F9019201DA700A1FA37 /* APIContextConfiguration.h */; };
</del><span class="cx">                 1AE52F971920263300A1FA37 /* WKContextConfigurationRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */; };
</span><span class="cx">                 1AE52F981920267200A1FA37 /* WKContextConfigurationRef.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AE52F9419201F6B00A1FA37 /* WKContextConfigurationRef.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 1AE5B7FB11E7AED200BA6767 /* NetscapePluginMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AE5B7F911E7AED200BA6767 /* NetscapePluginMac.mm */; settings = {COMPILER_FLAGS = &quot;-Wno-deprecated-declarations&quot;; }; };
</span><span class="lines">@@ -1081,6 +1078,13 @@
</span><span class="cx">                 7CD622771739D863005BD7FF /* PluginSandboxProfile.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7CD622751739D863005BD7FF /* PluginSandboxProfile.mm */; };
</span><span class="cx">                 7CD622781739D863005BD7FF /* PluginSandboxProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CD622761739D863005BD7FF /* PluginSandboxProfile.h */; };
</span><span class="cx">                 7CE4D2071A46776100C7F152 /* APILegacyContextHistoryClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE4D2061A46775700C7F152 /* APILegacyContextHistoryClient.h */; };
</span><ins>+                7CE4D2161A49148400C7F152 /* WebProcessPoolCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7CE4D2151A49148400C7F152 /* WebProcessPoolCocoa.mm */; };
+                7CE4D21A1A4914A300C7F152 /* WebProcessPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CE4D2171A4914A300C7F152 /* WebProcessPool.cpp */; };
+                7CE4D21B1A4914A300C7F152 /* WebProcessPool.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE4D2181A4914A300C7F152 /* WebProcessPool.h */; };
+                7CE4D21F1A4914CA00C7F152 /* APIProcessPoolConfiguration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CE4D21D1A4914CA00C7F152 /* APIProcessPoolConfiguration.cpp */; };
+                7CE4D2201A4914CA00C7F152 /* APIProcessPoolConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE4D21E1A4914CA00C7F152 /* APIProcessPoolConfiguration.h */; };
+                7CE4D2271A4916C200C7F152 /* WebProcessPoolMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CE4D2251A4916C200C7F152 /* WebProcessPoolMessageReceiver.cpp */; };
+                7CE4D2281A4916C200C7F152 /* WebProcessPoolMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE4D2261A4916C200C7F152 /* WebProcessPoolMessages.h */; };
</ins><span class="cx">                 7CF47FF617275B71008ACB91 /* WKBundlePageBanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7CF47FF417275B71008ACB91 /* WKBundlePageBanner.cpp */; };
</span><span class="cx">                 7CF47FF717275B71008ACB91 /* WKBundlePageBanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CF47FF517275B71008ACB91 /* WKBundlePageBanner.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 7CF47FFB17275C57008ACB91 /* PageBanner.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CF47FF917275C57008ACB91 /* PageBanner.h */; };
</span><span class="lines">@@ -1446,8 +1450,6 @@
</span><span class="cx">                 BCB0B0DE12305A8C00B1341E /* InjectedBundleUserMessageCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB0B0DD12305A8C00B1341E /* InjectedBundleUserMessageCoders.h */; };
</span><span class="cx">                 BCB0B0E012305AB100B1341E /* UserMessageCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB0B0DF12305AB100B1341E /* UserMessageCoders.h */; };
</span><span class="cx">                 BCB63478116BF10600603215 /* WebKit2_C.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB63477116BF10600603215 /* WebKit2_C.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                BCB9E2431120DACA00A137E0 /* WebContext.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9E2411120DACA00A137E0 /* WebContext.h */; };
-                BCB9E2441120DACA00A137E0 /* WebContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9E2421120DACA00A137E0 /* WebContext.cpp */; };
</del><span class="cx">                 BCB9E24B1120E15C00A137E0 /* WKContext.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9E2491120E15C00A137E0 /* WKContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BCB9E24C1120E15C00A137E0 /* WKContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9E24A1120E15C00A137E0 /* WKContext.cpp */; };
</span><span class="cx">                 BCB9F6A01123A84B00A137E0 /* WebFramePolicyListenerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9F69E1123A84B00A137E0 /* WebFramePolicyListenerProxy.h */; };
</span><span class="lines">@@ -1531,8 +1533,6 @@
</span><span class="cx">                 BCE81D99131AE02100241910 /* DictionaryPopupInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BCE81D97131AE02100241910 /* DictionaryPopupInfo.h */; };
</span><span class="cx">                 BCEE7AD012817988009827DA /* WebProcessProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEE7ACC12817988009827DA /* WebProcessProxyMessageReceiver.cpp */; };
</span><span class="cx">                 BCEE7AD112817988009827DA /* WebProcessProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEE7ACD12817988009827DA /* WebProcessProxyMessages.h */; };
</span><del>-                BCEE7D0D12846F69009827DA /* WebContextMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEE7D0B12846F69009827DA /* WebContextMessageReceiver.cpp */; };
-                BCEE7D0E12846F69009827DA /* WebContextMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEE7D0C12846F69009827DA /* WebContextMessages.h */; };
</del><span class="cx">                 BCEE7DC5128B645D009827DA /* InjectedBundleClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEE7DC3128B645D009827DA /* InjectedBundleClient.h */; };
</span><span class="cx">                 BCEE7DC6128B645D009827DA /* InjectedBundleClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEE7DC4128B645D009827DA /* InjectedBundleClient.cpp */; };
</span><span class="cx">                 BCEE966C112FAF57006BCC24 /* Attachment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEE966A112FAF57006BCC24 /* Attachment.cpp */; };
</span><span class="lines">@@ -2146,7 +2146,6 @@
</span><span class="cx">                 1A1B0EB318A424950038481A /* WKNavigationResponse.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKNavigationResponse.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A1B0EB418A424950038481A /* WKNavigationResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationResponse.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A1B0EB718A424CD0038481A /* WKNavigationResponseInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationResponseInternal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                1A1C648611F415B700553C19 /* WebContextMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebContextMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 1A1D2116191D995C0001619F /* rewrite-availability-macros.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = &quot;rewrite-availability-macros.sh&quot;; path = &quot;mac/rewrite-availability-macros.sh&quot;; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A1D2117191D996C0001619F /* MigrateHeadersFromWebKitLegacy.make */ = {isa = PBXFileReference; lastKnownFileType = text; name = MigrateHeadersFromWebKitLegacy.make; path = mac/MigrateHeadersFromWebKitLegacy.make; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1A1D8B9F1731A36300141DA4 /* LocalStorageDatabase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalStorageDatabase.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -2486,8 +2485,6 @@
</span><span class="cx">                 1AE4987711FF7FAA0048B464 /* JSNPObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNPObject.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AE49A4711FFA8CE0048B464 /* JSNPMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSNPMethod.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AE49A4811FFA8CE0048B464 /* JSNPMethod.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSNPMethod.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                1AE52F8F19201DA700A1FA37 /* APIContextConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIContextConfiguration.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                1AE52F9019201DA700A1FA37 /* APIContextConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIContextConfiguration.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 1AE52F9319201F6B00A1FA37 /* WKContextConfigurationRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKContextConfigurationRef.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AE52F9419201F6B00A1FA37 /* WKContextConfigurationRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContextConfigurationRef.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 1AE5B7F911E7AED200BA6767 /* NetscapePluginMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NetscapePluginMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3176,6 +3173,14 @@
</span><span class="cx">                 7CD622751739D863005BD7FF /* PluginSandboxProfile.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginSandboxProfile.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7CD622761739D863005BD7FF /* PluginSandboxProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginSandboxProfile.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7CE4D2061A46775700C7F152 /* APILegacyContextHistoryClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APILegacyContextHistoryClient.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                7CE4D2151A49148400C7F152 /* WebProcessPoolCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebProcessPoolCocoa.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D2171A4914A300C7F152 /* WebProcessPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebProcessPool.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D2181A4914A300C7F152 /* WebProcessPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebProcessPool.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D2191A4914A300C7F152 /* WebProcessPool.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebProcessPool.messages.in; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D21D1A4914CA00C7F152 /* APIProcessPoolConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIProcessPoolConfiguration.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D21E1A4914CA00C7F152 /* APIProcessPoolConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIProcessPoolConfiguration.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D2251A4916C200C7F152 /* WebProcessPoolMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebProcessPoolMessageReceiver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
+                7CE4D2261A4916C200C7F152 /* WebProcessPoolMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebProcessPoolMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 7CF47FF417275B71008ACB91 /* WKBundlePageBanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundlePageBanner.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7CF47FF517275B71008ACB91 /* WKBundlePageBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePageBanner.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 7CF47FF917275C57008ACB91 /* PageBanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageBanner.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3566,8 +3571,6 @@
</span><span class="cx">                 BCB0B0DF12305AB100B1341E /* UserMessageCoders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UserMessageCoders.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB63477116BF10600603215 /* WebKit2_C.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKit2_C.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB86F4B116AAACD00CE20B7 /* WebKit.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = WebKit.xcconfig; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                BCB9E2411120DACA00A137E0 /* WebContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
-                BCB9E2421120DACA00A137E0 /* WebContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContext.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 BCB9E2491120E15C00A137E0 /* WKContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB9E24A1120E15C00A137E0 /* WKContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKContext.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB9F69E1123A84B00A137E0 /* WebFramePolicyListenerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFramePolicyListenerProxy.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -3656,9 +3659,6 @@
</span><span class="cx">                 BCEE7AB312817095009827DA /* WebProcessProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebProcessProxy.messages.in; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCEE7ACC12817988009827DA /* WebProcessProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebProcessProxyMessageReceiver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCEE7ACD12817988009827DA /* WebProcessProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebProcessProxyMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                BCEE7D0912846AED009827DA /* WebContext.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebContext.messages.in; sourceTree = &quot;&lt;group&gt;&quot;; };
-                BCEE7D0B12846F69009827DA /* WebContextMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContextMessageReceiver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
-                BCEE7D0C12846F69009827DA /* WebContextMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContextMessages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 BCEE7DC3128B645D009827DA /* InjectedBundleClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleClient.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCEE7DC4128B645D009827DA /* InjectedBundleClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleClient.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCEE966A112FAF57006BCC24 /* Attachment.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Attachment.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4696,6 +4696,7 @@
</span><span class="cx">                                 1AFE436418B6C081009C7A48 /* UIDelegate.h */,
</span><span class="cx">                                 1AFE436318B6C081009C7A48 /* UIDelegate.mm */,
</span><span class="cx">                                 1AC0273E196622D600C12B75 /* WebPageProxyCocoa.mm */,
</span><ins>+                                7CE4D2151A49148400C7F152 /* WebProcessPoolCocoa.mm */,
</ins><span class="cx">                                 1AD01BCB1905D54900C9C45F /* WKReloadFrameErrorRecoveryAttempter.h */,
</span><span class="cx">                                 1AD01BCA1905D54900C9C45F /* WKReloadFrameErrorRecoveryAttempter.mm */,
</span><span class="cx">                                 2D7AAFD218C8640600A7ACD4 /* WKWebViewContentProvider.h */,
</span><span class="lines">@@ -5871,10 +5872,10 @@
</span><span class="cx">                                 1A44B95816B73F8C00B7BBD8 /* Storage */,
</span><span class="cx">                                 1AAF089E192681AC00B6390C /* UserContent */,
</span><span class="cx">                                 1A53C2A31A325691004E8C70 /* WebsiteData */,
</span><del>-                                1AE52F8F19201DA700A1FA37 /* APIContextConfiguration.cpp */,
-                                1AE52F9019201DA700A1FA37 /* APIContextConfiguration.h */,
</del><span class="cx">                                 BCF69FA11176D01400471A52 /* APINavigationData.cpp */,
</span><span class="cx">                                 BCF69FA01176D01400471A52 /* APINavigationData.h */,
</span><ins>+                                7CE4D21D1A4914CA00C7F152 /* APIProcessPoolConfiguration.cpp */,
+                                7CE4D21E1A4914CA00C7F152 /* APIProcessPoolConfiguration.h */,
</ins><span class="cx">                                 75A8D2DD187DE87400C39C9E /* APISession.cpp */,
</span><span class="cx">                                 75A8D2DE187DE87400C39C9E /* APISession.h */,
</span><span class="cx">                                 7CD102D91866770600ED429D /* AutoCorrectionCallback.h */,
</span><span class="lines">@@ -5921,9 +5922,6 @@
</span><span class="cx">                                 3F87B9BF158940D80090FF62 /* WebColorPicker.h */,
</span><span class="cx">                                 BC4A62A514744EC6006C681A /* WebConnectionToWebProcess.cpp */,
</span><span class="cx">                                 BC4A62A614744EC6006C681A /* WebConnectionToWebProcess.h */,
</span><del>-                                BCB9E2421120DACA00A137E0 /* WebContext.cpp */,
-                                BCB9E2411120DACA00A137E0 /* WebContext.h */,
-                                BCEE7D0912846AED009827DA /* WebContext.messages.in */,
</del><span class="cx">                                 31A505F71680025500A930EB /* WebContextClient.cpp */,
</span><span class="cx">                                 31A505F81680025500A930EB /* WebContextClient.h */,
</span><span class="cx">                                 BC09B8F6147460F7005F5625 /* WebContextConnectionClient.cpp */,
</span><span class="lines">@@ -5994,6 +5992,9 @@
</span><span class="cx">                                 BC574E611267D080006F0F12 /* WebPopupMenuProxy.h */,
</span><span class="cx">                                 BCD597FE112B57BE00EC8C23 /* WebPreferences.cpp */,
</span><span class="cx">                                 BCD597FD112B57BE00EC8C23 /* WebPreferences.h */,
</span><ins>+                                7CE4D2171A4914A300C7F152 /* WebProcessPool.cpp */,
+                                7CE4D2181A4914A300C7F152 /* WebProcessPool.h */,
+                                7CE4D2191A4914A300C7F152 /* WebProcessPool.messages.in */,
</ins><span class="cx">                                 BC111B0D112F5E4F00337BAB /* WebProcessProxy.cpp */,
</span><span class="cx">                                 BC032DCF10F4389F0058C15A /* WebProcessProxy.h */,
</span><span class="cx">                                 BCEE7AB312817095009827DA /* WebProcessProxy.messages.in */,
</span><span class="lines">@@ -6718,7 +6719,6 @@
</span><span class="cx">                                 2D6CD118189058A500E5A4A0 /* ViewSnapshotStore.mm */,
</span><span class="cx">                                 728E86EF1795188C0087879E /* WebColorPickerMac.h */,
</span><span class="cx">                                 728E86F01795188C0087879E /* WebColorPickerMac.mm */,
</span><del>-                                1A1C648611F415B700553C19 /* WebContextMac.mm */,
</del><span class="cx">                                 51ACBB9E127A8F2C00D203B9 /* WebContextMenuProxyMac.h */,
</span><span class="cx">                                 51ACBB9F127A8F2C00D203B9 /* WebContextMenuProxyMac.mm */,
</span><span class="cx">                                 F6D632BA133D181B00743D77 /* WebCookieManagerProxyMac.mm */,
</span><span class="lines">@@ -6961,8 +6961,6 @@
</span><span class="cx">                                 512E35F7130B642E00ABD19A /* WebApplicationCacheManagerProxyMessages.h */,
</span><span class="cx">                                 1A1FEC1A1627B45600700F6D /* WebConnectionMessageReceiver.cpp */,
</span><span class="cx">                                 1A1FEC1B1627B45700700F6D /* WebConnectionMessages.h */,
</span><del>-                                BCEE7D0B12846F69009827DA /* WebContextMessageReceiver.cpp */,
-                                BCEE7D0C12846F69009827DA /* WebContextMessages.h */,
</del><span class="cx">                                 330934431315B9220097A7BC /* WebCookieManagerMessageReceiver.cpp */,
</span><span class="cx">                                 330934441315B9220097A7BC /* WebCookieManagerMessages.h */,
</span><span class="cx">                                 330934451315B9220097A7BC /* WebCookieManagerProxyMessageReceiver.cpp */,
</span><span class="lines">@@ -7011,6 +7009,8 @@
</span><span class="cx">                                 1A043F6812514D8B00FFBFB5 /* WebProcessConnectionMessages.h */,
</span><span class="cx">                                 BC3066BC125A442100E71278 /* WebProcessMessageReceiver.cpp */,
</span><span class="cx">                                 BC3066BD125A442100E71278 /* WebProcessMessages.h */,
</span><ins>+                                7CE4D2251A4916C200C7F152 /* WebProcessPoolMessageReceiver.cpp */,
+                                7CE4D2261A4916C200C7F152 /* WebProcessPoolMessages.h */,
</ins><span class="cx">                                 BCEE7ACC12817988009827DA /* WebProcessProxyMessageReceiver.cpp */,
</span><span class="cx">                                 BCEE7ACD12817988009827DA /* WebProcessProxyMessages.h */,
</span><span class="cx">                                 33367651130C9ECA006C9DE2 /* WebResourceCacheManagerMessageReceiver.cpp */,
</span><span class="lines">@@ -7242,7 +7242,6 @@
</span><span class="cx">                                 A7D792D81767CCA300881CBE /* ActivityAssertion.h in Headers */,
</span><span class="cx">                                 BC64697011DBE603006455B0 /* APIArray.h in Headers */,
</span><span class="cx">                                 1A3DD206125E5A2F004515E6 /* APIClient.h in Headers */,
</span><del>-                                1AE52F9219201DA700A1FA37 /* APIContextConfiguration.h in Headers */,
</del><span class="cx">                                 51578B831209ECEF00A37C4A /* APIData.h in Headers */,
</span><span class="cx">                                 1F7D36C118DA513F00D9D659 /* APIDownloadClient.h in Headers */,
</span><span class="cx">                                 516A4A5D120A2CCD00C05B7F /* APIError.h in Headers */,
</span><span class="lines">@@ -7282,6 +7281,7 @@
</span><span class="cx">                                 BCEE966D112FAF57006BCC24 /* Attachment.h in Headers */,
</span><span class="cx">                                 E1A31732134CEA6C007C9A4F /* AttributedString.h in Headers */,
</span><span class="cx">                                 512F589712A8838800629530 /* AuthenticationChallengeProxy.h in Headers */,
</span><ins>+                                7CE4D2201A4914CA00C7F152 /* APIProcessPoolConfiguration.h in Headers */,
</ins><span class="cx">                                 512F589912A8838800629530 /* AuthenticationDecisionListener.h in Headers */,
</span><span class="cx">                                 518E8EF916B2091C00E91429 /* AuthenticationManager.h in Headers */,
</span><span class="cx">                                 512F58A312A883AD00629530 /* AuthenticationManagerMessages.h in Headers */,
</span><span class="lines">@@ -7453,6 +7453,7 @@
</span><span class="cx">                                 2D8949F1182044F600E898AA /* PlatformCALayerRemoteTiledBacking.h in Headers */,
</span><span class="cx">                                 BCC43ABB127B95DC00317F16 /* PlatformPopupMenuData.h in Headers */,
</span><span class="cx">                                 BC8780FC1161C2B800CC2768 /* PlatformProcessIdentifier.h in Headers */,
</span><ins>+                                7CE4D21B1A4914A300C7F152 /* WebProcessPool.h in Headers */,
</ins><span class="cx">                                 1A6FB7D311E651E200DB1371 /* Plugin.h in Headers */,
</span><span class="cx">                                 31A67E0D165B2A99006CBA66 /* PlugInAutoStartProvider.h in Headers */,
</span><span class="cx">                                 1A9FBA8D13FF04E600DEED67 /* PluginComplexTextInputState.h in Headers */,
</span><span class="lines">@@ -7580,7 +7581,6 @@
</span><span class="cx">                                 BC4A6292147312BE006C681A /* WebConnectionClient.h in Headers */,
</span><span class="cx">                                 1A1FEC1D1627B45700700F6D /* WebConnectionMessages.h in Headers */,
</span><span class="cx">                                 BC4A62A814744EC7006C681A /* WebConnectionToWebProcess.h in Headers */,
</span><del>-                                BCB9E2431120DACA00A137E0 /* WebContext.h in Headers */,
</del><span class="cx">                                 31A505FA1680025500A930EB /* WebContextClient.h in Headers */,
</span><span class="cx">                                 BC09B8F9147460F7005F5625 /* WebContextConnectionClient.h in Headers */,
</span><span class="cx">                                 BCDE059B11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.h in Headers */,
</span><span class="lines">@@ -7591,7 +7591,6 @@
</span><span class="cx">                                 51ACBB82127A8BAD00D203B9 /* WebContextMenuProxy.h in Headers */,
</span><span class="cx">                                 51ACBBA0127A8F2C00D203B9 /* WebContextMenuProxyMac.h in Headers */,
</span><span class="cx">                                 BCCB75C61203A1CE00222D1B /* WebContextMessageKinds.h in Headers */,
</span><del>-                                BCEE7D0E12846F69009827DA /* WebContextMessages.h in Headers */,
</del><span class="cx">                                 BCF4DE25168FA44800C94AFC /* WebContextSupplement.h in Headers */,
</span><span class="cx">                                 BCB0B0DC12305A2500B1341E /* WebContextUserMessageCoders.h in Headers */,
</span><span class="cx">                                 330934501315B94D0097A7BC /* WebCookieManager.h in Headers */,
</span><span class="lines">@@ -7684,6 +7683,7 @@
</span><span class="cx">                                 BC7B625212A43C9600D174A4 /* WebPageGroupData.h in Headers */,
</span><span class="cx">                                 BC7B621512A4219A00D174A4 /* WebPageGroupProxy.h in Headers */,
</span><span class="cx">                                 29D55DF2161BF9F10031A2E3 /* WebPageGroupProxyMessages.h in Headers */,
</span><ins>+                                7CE4D2281A4916C200C7F152 /* WebProcessPoolMessages.h in Headers */,
</ins><span class="cx">                                 C0CE72A11247E71D00BC0EC4 /* WebPageMessages.h in Headers */,
</span><span class="cx">                                 2D5C9D0619C81D8F00B3C5C1 /* WebPageOverlay.h in Headers */,
</span><span class="cx">                                 BC032DD110F4389F0058C15A /* WebPageProxy.h in Headers */,
</span><span class="lines">@@ -8935,7 +8935,6 @@
</span><span class="cx">                                 2D353B1219F8305D000EEACD /* ActionMenuHitTestResult.mm in Sources */,
</span><span class="cx">                                 A7D792D61767CB6E00881CBE /* ActivityAssertion.cpp in Sources */,
</span><span class="cx">                                 BC64696F11DBE603006455B0 /* APIArray.cpp in Sources */,
</span><del>-                                1AE52F9119201DA700A1FA37 /* APIContextConfiguration.cpp in Sources */,
</del><span class="cx">                                 1AAB037C185F99D800EDF501 /* APIData.cpp in Sources */,
</span><span class="cx">                                 1A1EF1991A1D5B420023200A /* APIDataCocoa.mm in Sources */,
</span><span class="cx">                                 BC575613126E0138006F0F12 /* APIError.cpp in Sources */,
</span><span class="lines">@@ -9076,6 +9075,7 @@
</span><span class="cx">                                 1A232902162C867300D82F7A /* MessageDecoder.cpp in Sources */,
</span><span class="cx">                                 1A2328FE162C866A00D82F7A /* MessageEncoder.cpp in Sources */,
</span><span class="cx">                                 1A3EED0E161A535400AEB4F5 /* MessageReceiverMap.cpp in Sources */,
</span><ins>+                                7CE4D2271A4916C200C7F152 /* WebProcessPoolMessageReceiver.cpp in Sources */,
</ins><span class="cx">                                 1AAB0379185A7C6A00EDF501 /* MessageSender.cpp in Sources */,
</span><span class="cx">                                 C0E3AA7B1209E83500A49D01 /* Module.cpp in Sources */,
</span><span class="cx">                                 C0E3AA7A1209E83000A49D01 /* ModuleCF.cpp in Sources */,
</span><span class="lines">@@ -9297,11 +9297,11 @@
</span><span class="cx">                                 BC4A62A714744EC7006C681A /* WebConnectionToWebProcess.cpp in Sources */,
</span><span class="cx">                                 BC82836516B354F600A278FE /* WebContentProcessMain.mm in Sources */,
</span><span class="cx">                                 BC82839916B48DC000A278FE /* WebContentServiceEntryPoint.mm in Sources */,
</span><del>-                                BCB9E2441120DACA00A137E0 /* WebContext.cpp in Sources */,
</del><ins>+                                7CE4D21F1A4914CA00C7F152 /* APIProcessPoolConfiguration.cpp in Sources */,
</ins><span class="cx">                                 31A505F91680025500A930EB /* WebContextClient.cpp in Sources */,
</span><span class="cx">                                 BC09B8F8147460F7005F5625 /* WebContextConnectionClient.cpp in Sources */,
</span><span class="cx">                                 BCDE059C11CDA8AE00E41AF1 /* WebContextInjectedBundleClient.cpp in Sources */,
</span><del>-                                1A1C649B11F4174200553C19 /* WebContextMac.mm in Sources */,
</del><ins>+                                7CE4D21A1A4914A300C7F152 /* WebProcessPool.cpp in Sources */,
</ins><span class="cx">                                 51871B5B127CB89D00F76232 /* WebContextMenu.cpp in Sources */,
</span><span class="cx">                                 BC111A5B112F4FBB00337BAB /* WebContextMenuClient.cpp in Sources */,
</span><span class="cx">                                 51021E9C12B16788005C033C /* WebContextMenuClientMac.mm in Sources */,
</span><span class="lines">@@ -9309,7 +9309,6 @@
</span><span class="cx">                                 510FBB9A1288C95E00AFFDF4 /* WebContextMenuItemData.cpp in Sources */,
</span><span class="cx">                                 51A84CE3127F386B00CA6EA4 /* WebContextMenuProxy.cpp in Sources */,
</span><span class="cx">                                 51ACBBA1127A8F2C00D203B9 /* WebContextMenuProxyMac.mm in Sources */,
</span><del>-                                BCEE7D0D12846F69009827DA /* WebContextMessageReceiver.cpp in Sources */,
</del><span class="cx">                                 3309344F1315B94D0097A7BC /* WebCookieManager.cpp in Sources */,
</span><span class="cx">                                 F6A90813133C20510082C3F4 /* WebCookieManagerMac.mm in Sources */,
</span><span class="cx">                                 330934471315B9220097A7BC /* WebCookieManagerMessageReceiver.cpp in Sources */,
</span><span class="lines">@@ -9446,6 +9445,7 @@
</span><span class="cx">                                 BC111B11112F5E4F00337BAB /* WebProcessProxy.cpp in Sources */,
</span><span class="cx">                                 2DA944B01884E9BA00ED86DB /* WebProcessProxyIOS.mm in Sources */,
</span><span class="cx">                                 51D130581382F10500351EDD /* WebProcessProxyMac.mm in Sources */,
</span><ins>+                                7CE4D2161A49148400C7F152 /* WebProcessPoolCocoa.mm in Sources */,
</ins><span class="cx">                                 BCEE7AD012817988009827DA /* WebProcessProxyMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 1A1E093318861D3800D2DC49 /* WebProgressTrackerClient.cpp in Sources */,
</span><span class="cx">                                 512F589C12A8838800629530 /* WebProtectionSpace.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPDFPDFPluginmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PDF/PDFPlugin.mm        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -40,13 +40,13 @@
</span><span class="cx"> #import &quot;PluginView.h&quot;
</span><span class="cx"> #import &quot;WKAccessibilityWebPageObjectMac.h&quot;
</span><span class="cx"> #import &quot;WKPageFindMatchesClient.h&quot;
</span><del>-#import &quot;WebContextMessages.h&quot;
</del><span class="cx"> #import &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #import &quot;WebEvent.h&quot;
</span><span class="cx"> #import &quot;WebEventConversion.h&quot;
</span><span class="cx"> #import &quot;WebPage.h&quot;
</span><span class="cx"> #import &quot;WebPageProxyMessages.h&quot;
</span><span class="cx"> #import &quot;WebProcess.h&quot;
</span><ins>+#import &quot;WebProcessPoolMessages.h&quot;
</ins><span class="cx"> #import &lt;JavaScriptCore/JSContextRef.h&gt;
</span><span class="cx"> #import &lt;JavaScriptCore/JSObjectRef.h&gt;
</span><span class="cx"> #import &lt;JavaScriptCore/JSStringRef.h&gt;
</span><span class="lines">@@ -1662,8 +1662,8 @@
</span><span class="cx">         pasteboardTypes.append(type);
</span><span class="cx"> 
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardTypes(pasteboardName, pasteboardTypes),
-        Messages::WebContext::SetPasteboardTypes::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardTypes(pasteboardName, pasteboardTypes),
+        Messages::WebProcessPool::SetPasteboardTypes::Reply(newChangeCount), 0);
</ins><span class="cx"> 
</span><span class="cx">     for (NSUInteger i = 0, count = items.count; i &lt; count; ++i) {
</span><span class="cx">         NSString *type = [types objectAtIndex:i];
</span><span class="lines">@@ -1677,8 +1677,8 @@
</span><span class="cx"> 
</span><span class="cx">         if ([type isEqualToString:NSStringPboardType] || [type isEqualToString:NSPasteboardTypeString]) {
</span><span class="cx">             RetainPtr&lt;NSString&gt; plainTextString = adoptNS([[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
</span><del>-            WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardStringForType(pasteboardName, type, plainTextString.get()),
-                Messages::WebContext::SetPasteboardStringForType::Reply(newChangeCount), 0);
</del><ins>+            WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardStringForType(pasteboardName, type, plainTextString.get()),
+                Messages::WebProcessPool::SetPasteboardStringForType::Reply(newChangeCount), 0);
</ins><span class="cx">         } else {
</span><span class="cx">             RefPtr&lt;SharedBuffer&gt; buffer = SharedBuffer::wrapNSData(data);
</span><span class="cx"> 
</span><span class="lines">@@ -1689,8 +1689,8 @@
</span><span class="cx">             RefPtr&lt;SharedMemory&gt; sharedMemory = SharedMemory::create(buffer-&gt;size());
</span><span class="cx">             memcpy(sharedMemory-&gt;data(), buffer-&gt;data(), buffer-&gt;size());
</span><span class="cx">             sharedMemory-&gt;createHandle(handle, SharedMemory::ReadOnly);
</span><del>-            WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardBufferForType(pasteboardName, type, handle, buffer-&gt;size()),
-                Messages::WebContext::SetPasteboardBufferForType::Reply(newChangeCount), 0);
</del><ins>+            WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardBufferForType(pasteboardName, type, handle, buffer-&gt;size()),
+                Messages::WebProcessPool::SetPasteboardBufferForType::Reply(newChangeCount), 0);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> #include &quot;PluginView.h&quot;
</span><span class="cx"> #include &quot;WKBundleAPICast.h&quot;
</span><span class="cx"> #include &quot;WebBackForwardListProxy.h&quot;
</span><del>-#include &quot;WebContextMessages.h&quot;
</del><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebDocumentLoader.h&quot;
</span><span class="cx"> #include &quot;WebErrors.h&quot;
</span><span class="lines">@@ -51,6 +50,7 @@
</span><span class="cx"> #include &quot;WebPage.h&quot;
</span><span class="cx"> #include &quot;WebPageProxyMessages.h&quot;
</span><span class="cx"> #include &quot;WebProcess.h&quot;
</span><ins>+#include &quot;WebProcessPoolMessages.h&quot;
</ins><span class="cx"> #include &lt;JavaScriptCore/APICast.h&gt;
</span><span class="cx"> #include &lt;JavaScriptCore/JSObject.h&gt;
</span><span class="cx"> #include &lt;WebCore/CertificateInfo.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebPlatformStrategiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -31,7 +31,6 @@
</span><span class="cx"> #include &quot;NetworkResourceLoadParameters.h&quot;
</span><span class="cx"> #include &quot;PluginInfoStore.h&quot;
</span><span class="cx"> #include &quot;SessionTracker.h&quot;
</span><del>-#include &quot;WebContextMessages.h&quot;
</del><span class="cx"> #include &quot;WebCookieManager.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebErrors.h&quot;
</span><span class="lines">@@ -42,6 +41,7 @@
</span><span class="cx"> #include &quot;WebPage.h&quot;
</span><span class="cx"> #include &quot;WebPasteboardOverrides.h&quot;
</span><span class="cx"> #include &quot;WebProcess.h&quot;
</span><ins>+#include &quot;WebProcessPoolMessages.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxyMessages.h&quot;
</span><span class="cx"> #include &lt;WebCore/Color.h&gt;
</span><span class="cx"> #include &lt;WebCore/IDBFactoryBackendInterface.h&gt;
</span><span class="lines">@@ -339,8 +339,7 @@
</span><span class="cx">     if (!types.isEmpty())
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardTypes(pasteboardName),
-                                                Messages::WebContext::GetPasteboardTypes::Reply(types), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardTypes(pasteboardName), Messages::WebProcessPool::GetPasteboardTypes::Reply(types), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;WebCore::SharedBuffer&gt; WebPlatformStrategies::bufferForType(const String&amp; pasteboardType, const String&amp; pasteboardName)
</span><span class="lines">@@ -353,8 +352,7 @@
</span><span class="cx">     // Fallback to messaging the UI process for native pasteboard content.
</span><span class="cx">     SharedMemory::Handle handle;
</span><span class="cx">     uint64_t size = 0;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardBufferForType(pasteboardName, pasteboardType),
-                                                Messages::WebContext::GetPasteboardBufferForType::Reply(handle, size), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardBufferForType(pasteboardName, pasteboardType), Messages::WebProcessPool::GetPasteboardBufferForType::Reply(handle, size), 0);
</ins><span class="cx">     if (handle.isNull())
</span><span class="cx">         return 0;
</span><span class="cx">     RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(handle, SharedMemory::ReadOnly);
</span><span class="lines">@@ -363,71 +361,62 @@
</span><span class="cx"> 
</span><span class="cx"> void WebPlatformStrategies::getPathnamesForType(Vector&lt;String&gt;&amp; pathnames, const String&amp; pasteboardType, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardPathnamesForType(pasteboardName, pasteboardType),
-                                                Messages::WebContext::GetPasteboardPathnamesForType::Reply(pathnames), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardPathnamesForType(pasteboardName, pasteboardType), Messages::WebProcessPool::GetPasteboardPathnamesForType::Reply(pathnames), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebPlatformStrategies::stringForType(const String&amp; pasteboardType, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     String value;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardStringForType(pasteboardName, pasteboardType),
-                                                Messages::WebContext::GetPasteboardStringForType::Reply(value), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardStringForType(pasteboardName, pasteboardType), Messages::WebProcessPool::GetPasteboardStringForType::Reply(value), 0);
</ins><span class="cx">     return value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::copy(const String&amp; fromPasteboard, const String&amp; toPasteboard)
</span><span class="cx"> {
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::PasteboardCopy(fromPasteboard, toPasteboard),
-        Messages::WebContext::PasteboardCopy::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::PasteboardCopy(fromPasteboard, toPasteboard), Messages::WebProcessPool::PasteboardCopy::Reply(newChangeCount), 0);
</ins><span class="cx">     return newChangeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::changeCount(const WTF::String &amp;pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     uint64_t changeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardChangeCount(pasteboardName),
-                                                Messages::WebContext::GetPasteboardChangeCount::Reply(changeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardChangeCount(pasteboardName), Messages::WebProcessPool::GetPasteboardChangeCount::Reply(changeCount), 0);
</ins><span class="cx">     return changeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebPlatformStrategies::uniqueName()
</span><span class="cx"> {
</span><span class="cx">     String pasteboardName;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardUniqueName(),
-                                                Messages::WebContext::GetPasteboardUniqueName::Reply(pasteboardName), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardUniqueName(), Messages::WebProcessPool::GetPasteboardUniqueName::Reply(pasteboardName), 0);
</ins><span class="cx">     return pasteboardName;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> Color WebPlatformStrategies::color(const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     Color color;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardColor(pasteboardName),
-                                                Messages::WebContext::GetPasteboardColor::Reply(color), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardColor(pasteboardName), Messages::WebProcessPool::GetPasteboardColor::Reply(color), 0);
</ins><span class="cx">     return color;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> URL WebPlatformStrategies::url(const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     String urlString;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardURL(pasteboardName),
-                                                Messages::WebContext::GetPasteboardURL::Reply(urlString), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardURL(pasteboardName), Messages::WebProcessPool::GetPasteboardURL::Reply(urlString), 0);
</ins><span class="cx">     return URL(ParsedURLString, urlString);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::addTypes(const Vector&lt;String&gt;&amp; pasteboardTypes, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::AddPasteboardTypes(pasteboardName, pasteboardTypes),
-        Messages::WebContext::AddPasteboardTypes::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::AddPasteboardTypes(pasteboardName, pasteboardTypes), Messages::WebProcessPool::AddPasteboardTypes::Reply(newChangeCount), 0);
</ins><span class="cx">     return newChangeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::setTypes(const Vector&lt;String&gt;&amp; pasteboardTypes, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardTypes(pasteboardName, pasteboardTypes),
-        Messages::WebContext::SetPasteboardTypes::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardTypes(pasteboardName, pasteboardTypes), Messages::WebProcessPool::SetPasteboardTypes::Reply(newChangeCount), 0);
</ins><span class="cx">     return newChangeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -444,48 +433,44 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardBufferForType(pasteboardName, pasteboardType, handle, buffer ? buffer-&gt;size() : 0),
-        Messages::WebContext::SetPasteboardBufferForType::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardBufferForType(pasteboardName, pasteboardType, handle, buffer ? buffer-&gt;size() : 0), Messages::WebProcessPool::SetPasteboardBufferForType::Reply(newChangeCount), 0);
</ins><span class="cx">     return newChangeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::setPathnamesForType(const Vector&lt;String&gt;&amp; pathnames, const String&amp; pasteboardType, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardPathnamesForType(pasteboardName, pasteboardType, pathnames),
-        Messages::WebContext::SetPasteboardPathnamesForType::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardPathnamesForType(pasteboardName, pasteboardType, pathnames), Messages::WebProcessPool::SetPasteboardPathnamesForType::Reply(newChangeCount), 0);
</ins><span class="cx">     return newChangeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::setStringForType(const String&amp; string, const String&amp; pasteboardType, const String&amp; pasteboardName)
</span><span class="cx"> {
</span><span class="cx">     uint64_t newChangeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::SetPasteboardStringForType(pasteboardName, pasteboardType, string),
-        Messages::WebContext::SetPasteboardStringForType::Reply(newChangeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::SetPasteboardStringForType(pasteboardName, pasteboardType, string), Messages::WebProcessPool::SetPasteboardStringForType::Reply(newChangeCount), 0);
</ins><span class="cx">     return newChangeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> void WebPlatformStrategies::writeToPasteboard(const WebCore::PasteboardWebContent&amp; content)
</span><span class="cx"> {
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;send(Messages::WebContext::WriteWebContentToPasteboard(content), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;send(Messages::WebProcessPool::WriteWebContentToPasteboard(content), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPlatformStrategies::writeToPasteboard(const WebCore::PasteboardImage&amp; image)
</span><span class="cx"> {
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;send(Messages::WebContext::WriteImageToPasteboard(image), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;send(Messages::WebProcessPool::WriteImageToPasteboard(image), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPlatformStrategies::writeToPasteboard(const String&amp; pasteboardType, const String&amp; text)
</span><span class="cx"> {
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;send(Messages::WebContext::WriteStringToPasteboard(pasteboardType, text), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;send(Messages::WebProcessPool::WriteStringToPasteboard(pasteboardType, text), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int WebPlatformStrategies::getPasteboardItemsCount()
</span><span class="cx"> {
</span><span class="cx">     uint64_t itemsCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardItemsCount(),
-        Messages::WebContext::GetPasteboardItemsCount::Reply(itemsCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardItemsCount(), Messages::WebProcessPool::GetPasteboardItemsCount::Reply(itemsCount), 0);
</ins><span class="cx">     return itemsCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -493,8 +478,7 @@
</span><span class="cx"> {
</span><span class="cx">     SharedMemory::Handle handle;
</span><span class="cx">     uint64_t size = 0;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::ReadBufferFromPasteboard(index, pasteboardType),
-        Messages::WebContext::ReadBufferFromPasteboard::Reply(handle, size), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::ReadBufferFromPasteboard(index, pasteboardType), Messages::WebProcessPool::ReadBufferFromPasteboard::Reply(handle, size), 0);
</ins><span class="cx">     if (handle.isNull())
</span><span class="cx">         return 0;
</span><span class="cx">     RefPtr&lt;SharedMemory&gt; sharedMemoryBuffer = SharedMemory::create(handle, SharedMemory::ReadOnly);
</span><span class="lines">@@ -504,24 +488,21 @@
</span><span class="cx"> WebCore::URL WebPlatformStrategies::readURLFromPasteboard(int index, const String&amp; pasteboardType)
</span><span class="cx"> {
</span><span class="cx">     String urlString;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::ReadURLFromPasteboard(index, pasteboardType),
-        Messages::WebContext::ReadURLFromPasteboard::Reply(urlString), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::ReadURLFromPasteboard(index, pasteboardType), Messages::WebProcessPool::ReadURLFromPasteboard::Reply(urlString), 0);
</ins><span class="cx">     return URL(ParsedURLString, urlString);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String WebPlatformStrategies::readStringFromPasteboard(int index, const String&amp; pasteboardType)
</span><span class="cx"> {
</span><span class="cx">     String value;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::ReadStringFromPasteboard(index, pasteboardType),
-        Messages::WebContext::ReadStringFromPasteboard::Reply(value), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::ReadStringFromPasteboard(index, pasteboardType), Messages::WebProcessPool::ReadStringFromPasteboard::Reply(value), 0);
</ins><span class="cx">     return value;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> long WebPlatformStrategies::changeCount()
</span><span class="cx"> {
</span><span class="cx">     uint64_t changeCount;
</span><del>-    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebContext::GetPasteboardChangeCount(String()),
-        Messages::WebContext::GetPasteboardChangeCount::Reply(changeCount), 0);
</del><ins>+    WebProcess::shared().parentProcessConnection()-&gt;sendSync(Messages::WebProcessPool::GetPasteboardChangeCount(String()), Messages::WebProcessPool::GetPasteboardChangeCount::Reply(changeCount), 0);
</ins><span class="cx">     return changeCount;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -63,7 +63,6 @@
</span><span class="cx"> #include &quot;WebColorChooser.h&quot;
</span><span class="cx"> #include &quot;WebContextMenu.h&quot;
</span><span class="cx"> #include &quot;WebContextMenuClient.h&quot;
</span><del>-#include &quot;WebContextMessages.h&quot;
</del><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebDiagnosticLoggingClient.h&quot;
</span><span class="cx"> #include &quot;WebDocumentLoader.h&quot;
</span><span class="lines">@@ -96,6 +95,7 @@
</span><span class="cx"> #include &quot;WebPreferencesKeys.h&quot;
</span><span class="cx"> #include &quot;WebPreferencesStore.h&quot;
</span><span class="cx"> #include &quot;WebProcess.h&quot;
</span><ins>+#include &quot;WebProcessPoolMessages.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxyMessages.h&quot;
</span><span class="cx"> #include &quot;WebProgressTrackerClient.h&quot;
</span><span class="cx"> #include &quot;WebStorageNamespaceProvider.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -42,7 +42,6 @@
</span><span class="cx"> #include &quot;UserData.h&quot;
</span><span class="cx"> #include &quot;WebApplicationCacheManager.h&quot;
</span><span class="cx"> #include &quot;WebConnectionToUIProcess.h&quot;
</span><del>-#include &quot;WebContextMessages.h&quot;
</del><span class="cx"> #include &quot;WebCookieManager.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebFrame.h&quot;
</span><span class="lines">@@ -59,6 +58,7 @@
</span><span class="cx"> #include &quot;WebPlatformStrategies.h&quot;
</span><span class="cx"> #include &quot;WebProcessCreationParameters.h&quot;
</span><span class="cx"> #include &quot;WebProcessMessages.h&quot;
</span><ins>+#include &quot;WebProcessPoolMessages.h&quot;
</ins><span class="cx"> #include &quot;WebProcessProxyMessages.h&quot;
</span><span class="cx"> #include &quot;WebResourceCacheManager.h&quot;
</span><span class="cx"> #include &lt;JavaScriptCore/JSLock.h&gt;
</span><span class="lines">@@ -799,7 +799,7 @@
</span><span class="cx">     // incorrect for a little while.
</span><span class="cx">     m_plugInAutoStartOriginHashes.add(sessionID, HashMap&lt;unsigned, double&gt;()).iterator-&gt;value.set(plugInOriginHash, currentTime() + 30 * 1000);
</span><span class="cx"> 
</span><del>-    parentProcessConnection()-&gt;send(Messages::WebContext::AddPlugInAutoStartOriginHash(pageOrigin, plugInOriginHash, sessionID), 0);
</del><ins>+    parentProcessConnection()-&gt;send(Messages::WebProcessPool::AddPlugInAutoStartOriginHash(pageOrigin, plugInOriginHash, sessionID), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcess::didAddPlugInAutoStartOriginHash(unsigned plugInOriginHash, double expirationTime, SessionID sessionID)
</span><span class="lines">@@ -847,7 +847,7 @@
</span><span class="cx">     if (it-&gt;value - currentTime() &gt; plugInAutoStartExpirationTimeUpdateThreshold)
</span><span class="cx">         return;
</span><span class="cx"> 
</span><del>-    parentProcessConnection()-&gt;send(Messages::WebContext::PlugInDidReceiveUserInteraction(plugInOriginHash, sessionID), 0);
</del><ins>+    parentProcessConnection()-&gt;send(Messages::WebProcessPool::PlugInDidReceiveUserInteraction(plugInOriginHash, sessionID), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static void fromCountedSetToHashMap(TypeCountSet* countedSet, HashMap&lt;String, uint64_t&gt;&amp; map)
</span><span class="lines">@@ -939,7 +939,7 @@
</span><span class="cx">     // Get WebCore memory cache statistics
</span><span class="cx">     getWebCoreMemoryCacheStatistics(data.webCoreCacheStatistics);
</span><span class="cx">     
</span><del>-    parentProcessConnection()-&gt;send(Messages::WebContext::DidGetStatistics(data, callbackID), 0);
</del><ins>+    parentProcessConnection()-&gt;send(Messages::WebProcessPool::DidGetStatistics(data, callbackID), 0);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebProcess::garbageCollectJavaScriptObjects()
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebProcessh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (177691 => 177692)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebProcess.h        2014-12-23 20:15:48 UTC (rev 177691)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h        2014-12-23 20:29:26 UTC (rev 177692)
</span><span class="lines">@@ -38,7 +38,7 @@
</span><span class="cx"> #include &quot;ViewUpdateDispatcher.h&quot;
</span><span class="cx"> #include &quot;VisitedLinkTable.h&quot;
</span><span class="cx"> #include &quot;WebOriginDataManagerSupplement.h&quot;
</span><del>-#include &lt;WebCore/SessionIDHash.h&gt;
</del><ins>+#include &lt;WebCore/SessionID.h&gt;
</ins><span class="cx"> #include &lt;WebCore/Timer.h&gt;
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span></span></pre>
</div>
</div>

</body>
</html>