<!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>[188228] trunk/Source/WebKit2</title>
</head>
<body>

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

<h3>Log Message</h3>
<pre>Replace WebPageConfiguration with API::PageConfiguration and expose a C-SPI accessor for it
https://bugs.webkit.org/show_bug.cgi?id=147811

Reviewed by Darin Adler.

- Adds the missing pieces from WebPageConfiguration into API::PageConfiguration.
- Adds C-SPI to set and get the WebsiteDataStore on the WKPageConfigurationRef.
- Uses API::PageConfiguration to pass configuration information from WKWebView/WKView 
  to WebPageProxy.
- Stores the API::PageConfiguration on the WebPageProxy and exposes a new C-SPI function,
  WKPageCopyPageConfiguration, to get a copy of it.

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::create):
(API::PageConfiguration::PageConfiguration):
(API::PageConfiguration::~PageConfiguration):
(API::PageConfiguration::copy):
(API::PageConfiguration::processPool):
(API::PageConfiguration::setRelatedPage):
(API::PageConfiguration::visitedLinkProvider):
(API::PageConfiguration::setVisitedLinkProvider):
(API::PageConfiguration::websiteDataStore):
(API::PageConfiguration::setWebsiteDataStore):
(API::PageConfiguration::sessionID):
(API::PageConfiguration::setSessionID):
(API::PageConfiguration::webPageConfiguration): Deleted.
* UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::preferenceValues):
(API::PageConfiguration::treatsSHA1SignedCertificatesAsInsecure):
(API::PageConfiguration::setTreatsSHA1SignedCertificatesAsInsecure):
(API::PageConfiguration::alwaysRunsAtForegroundPriority):
(API::PageConfiguration::setAlwaysRunsAtForegroundPriority):
(API::PageConfiguration::create): Deleted.
* UIProcess/API/C/WKPage.cpp:
(WKPageGetPageGroup):
(WKPageCopyPageConfiguration):
(WKPageLoadURL):
* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPageConfigurationRef.cpp:
(WKPageConfigurationSetRelatedPage):
(WKPageConfigurationGetWebsiteDataStore):
(WKPageConfigurationSetWebsiteDataStore):
* UIProcess/API/C/WKPageConfigurationRef.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPrimaryTrackingArea:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
(-[WKView initWithFrame:configurationRef:]):
(-[WKView wantsUpdateLayer]):
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::configuration):
(WebKit::WebPageProxy::processIdentifier):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::pageID):
(WebKit::WebPageProxy::sessionID):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::download):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::webPage):
(WebKit::WebProcessProxy::createWebPage):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::processPool):
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
(-[WKContentView initWithFrame:processPool:configuration:wkView:]):
(-[WKContentView dealloc]):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2CMakeListstxt">trunk/Source/WebKit2/CMakeLists.txt</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIPageConfigurationcpp">trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIAPIPageConfigurationh">trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagecpp">trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPageh">trunk/Source/WebKit2/UIProcess/API/C/WKPage.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPageConfigurationRefcpp">trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPageConfigurationRefh">trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIgtkWebKitWebContextcpp">trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIgtkWebKitWebViewBasecpp">trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIgtkWebKitWebViewBasePrivateh">trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIgtkWebKitWebsiteDataManagercpp">trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIgtkWebKitWebsiteDataManagerPrivateh">trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPIiosWKViewIOSmm">trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.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="#trunkSourceWebKit2UIProcessCoordinatedGraphicsWebViewcpp">trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</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="#trunkSourceWebKit2UIProcessWebProcessProxycpp">trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebProcessProxyh">trunk/Source/WebKit2/UIProcess/WebProcessProxy.h</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>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2CMakeListstxt"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/CMakeLists.txt (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/CMakeLists.txt        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/CMakeLists.txt        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -393,6 +393,7 @@
</span><span class="cx">     UIProcess/API/APIFrameInfo.cpp
</span><span class="cx">     UIProcess/API/APINavigation.cpp
</span><span class="cx">     UIProcess/API/APINavigationData.cpp
</span><ins>+    UIProcess/API/APIPageConfiguration.cpp
</ins><span class="cx">     UIProcess/API/APIProcessPoolConfiguration.cpp
</span><span class="cx">     UIProcess/API/APISession.cpp
</span><span class="cx">     UIProcess/API/APISessionState.cpp
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/ChangeLog        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -1,3 +1,85 @@
</span><ins>+2015-08-08  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        Replace WebPageConfiguration with API::PageConfiguration and expose a C-SPI accessor for it
+        https://bugs.webkit.org/show_bug.cgi?id=147811
+
+        Reviewed by Darin Adler.
+
+        - Adds the missing pieces from WebPageConfiguration into API::PageConfiguration.
+        - Adds C-SPI to set and get the WebsiteDataStore on the WKPageConfigurationRef.
+        - Uses API::PageConfiguration to pass configuration information from WKWebView/WKView 
+          to WebPageProxy.
+        - Stores the API::PageConfiguration on the WebPageProxy and exposes a new C-SPI function,
+          WKPageCopyPageConfiguration, to get a copy of it.
+
+        * UIProcess/API/APIPageConfiguration.cpp:
+        (API::PageConfiguration::create):
+        (API::PageConfiguration::PageConfiguration):
+        (API::PageConfiguration::~PageConfiguration):
+        (API::PageConfiguration::copy):
+        (API::PageConfiguration::processPool):
+        (API::PageConfiguration::setRelatedPage):
+        (API::PageConfiguration::visitedLinkProvider):
+        (API::PageConfiguration::setVisitedLinkProvider):
+        (API::PageConfiguration::websiteDataStore):
+        (API::PageConfiguration::setWebsiteDataStore):
+        (API::PageConfiguration::sessionID):
+        (API::PageConfiguration::setSessionID):
+        (API::PageConfiguration::webPageConfiguration): Deleted.
+        * UIProcess/API/APIPageConfiguration.h:
+        (API::PageConfiguration::preferenceValues):
+        (API::PageConfiguration::treatsSHA1SignedCertificatesAsInsecure):
+        (API::PageConfiguration::setTreatsSHA1SignedCertificatesAsInsecure):
+        (API::PageConfiguration::alwaysRunsAtForegroundPriority):
+        (API::PageConfiguration::setAlwaysRunsAtForegroundPriority):
+        (API::PageConfiguration::create): Deleted.
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageGetPageGroup):
+        (WKPageCopyPageConfiguration):
+        (WKPageLoadURL):
+        * UIProcess/API/C/WKPage.h:
+        * UIProcess/API/C/WKPageConfigurationRef.cpp:
+        (WKPageConfigurationSetRelatedPage):
+        (WKPageConfigurationGetWebsiteDataStore):
+        (WKPageConfigurationSetWebsiteDataStore):
+        * UIProcess/API/C/WKPageConfigurationRef.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView initWithFrame:configuration:]):
+        * UIProcess/API/ios/WKViewIOS.mm:
+        (-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView _setPrimaryTrackingArea:]):
+        (-[WKView initWithFrame:processPool:configuration:webView:]):
+        (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
+        (-[WKView initWithFrame:configurationRef:]):
+        (-[WKView wantsUpdateLayer]):
+        * UIProcess/API/mac/WKViewInternal.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::create):
+        (WebKit::WebPageProxy::WebPageProxy):
+        (WebKit::WebPageProxy::~WebPageProxy):
+        (WebKit::WebPageProxy::configuration):
+        (WebKit::WebPageProxy::processIdentifier):
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::pageID):
+        (WebKit::WebPageProxy::sessionID):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
+        (WebKit::WebProcessPool::createWebPage):
+        (WebKit::WebProcessPool::download):
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::webPage):
+        (WebKit::WebProcessProxy::createWebPage):
+        * UIProcess/WebProcessProxy.h:
+        (WebKit::WebProcessProxy::processPool):
+        * UIProcess/ios/WKContentView.h:
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView _commonInitializationWithProcessPool:configuration:]):
+        (-[WKContentView initWithFrame:processPool:configuration:webView:]):
+        (-[WKContentView initWithFrame:processPool:configuration:wkView:]):
+        (-[WKContentView dealloc]):
+
</ins><span class="cx"> 2015-08-10  Commit Queue  &lt;commit-queue@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r187131 and r187286.
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIPageConfigurationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -37,6 +37,11 @@
</span><span class="cx"> 
</span><span class="cx"> namespace API {
</span><span class="cx"> 
</span><ins>+Ref&lt;PageConfiguration&gt; PageConfiguration::create()
+{
+    return adoptRef(*new PageConfiguration);
+}
+
</ins><span class="cx"> PageConfiguration::PageConfiguration()
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -45,6 +50,28 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+Ref&lt;PageConfiguration&gt; PageConfiguration::copy() const
+{
+    auto copy = create();
+
+    copy-&gt;m_processPool = this-&gt;m_processPool;
+    copy-&gt;m_userContentController = this-&gt;m_userContentController;
+    copy-&gt;m_pageGroup = this-&gt;m_pageGroup;
+    copy-&gt;m_preferences = this-&gt;m_preferences;
+    copy-&gt;m_preferenceValues = this-&gt;m_preferenceValues;
+    copy-&gt;m_relatedPage = this-&gt;m_relatedPage;
+    copy-&gt;m_visitedLinkProvider = this-&gt;m_visitedLinkProvider;
+    copy-&gt;m_websiteDataStore = this-&gt;m_websiteDataStore;
+    copy-&gt;m_sessionID = this-&gt;m_sessionID;
+    copy-&gt;m_treatsSHA1SignedCertificatesAsInsecure = this-&gt;m_treatsSHA1SignedCertificatesAsInsecure;
+#if PLATFORM(IOS)
+    copy-&gt;m_alwaysRunsAtForegroundPriority = this-&gt;m_alwaysRunsAtForegroundPriority;
+#endif
+
+    return copy;
+}
+
+
</ins><span class="cx"> WebProcessPool* PageConfiguration::processPool()
</span><span class="cx"> {
</span><span class="cx">     return m_processPool.get();
</span><span class="lines">@@ -95,16 +122,35 @@
</span><span class="cx">     m_relatedPage = relatedPage;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebKit::WebPageConfiguration PageConfiguration::webPageConfiguration()
</del><ins>+
+VisitedLinkProvider* PageConfiguration::visitedLinkProvider()
</ins><span class="cx"> {
</span><del>-    WebKit::WebPageConfiguration configuration;
</del><ins>+    return m_visitedLinkProvider.get();
+}
</ins><span class="cx"> 
</span><del>-    configuration.userContentController = userContentController();
-    configuration.pageGroup = pageGroup();
-    configuration.preferences = preferences();
-    configuration.relatedPage = relatedPage();
</del><ins>+void PageConfiguration::setVisitedLinkProvider(VisitedLinkProvider* visitedLinkProvider)
+{
+    m_visitedLinkProvider = visitedLinkProvider;
+}
</ins><span class="cx"> 
</span><del>-    return configuration;
</del><ins>+API::WebsiteDataStore* PageConfiguration::websiteDataStore()
+{
+    return m_websiteDataStore.get();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void PageConfiguration::setWebsiteDataStore(API::WebsiteDataStore* websiteDataStore)
+{
+    m_websiteDataStore = websiteDataStore;
+}
+
+WebCore::SessionID PageConfiguration::sessionID()
+{
+    return m_sessionID;
+}
+
+void PageConfiguration::setSessionID(WebCore::SessionID sessionID)
+{
+    m_sessionID = sessionID;
+}
+
</ins><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIAPIPageConfigurationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/APIPageConfiguration.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -27,27 +27,32 @@
</span><span class="cx"> #define APIPageConfiguration_h
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIObject.h&quot;
</span><ins>+#include &quot;WebPreferencesStore.h&quot;
+#include &lt;WebCore/SessionID.h&gt;
</ins><span class="cx"> #include &lt;wtf/GetPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><del>-struct WebPageConfiguration;
-class WebUserContentControllerProxy;
-class WebProcessPool;
</del><ins>+class VisitedLinkProvider;
</ins><span class="cx"> class WebPageGroup;
</span><ins>+class WebPageProxy;
</ins><span class="cx"> class WebPreferences;
</span><del>-class WebPageProxy;
</del><ins>+class WebProcessPool;
+class WebUserContentControllerProxy;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace API {
</span><span class="cx"> 
</span><ins>+class WebsiteDataStore;
+
</ins><span class="cx"> class PageConfiguration : public ObjectImpl&lt;Object::Type::PageConfiguration&gt; {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;PageConfiguration&gt; create()
-    {
-        return adoptRef(*new PageConfiguration);
-    }
</del><ins>+    static Ref&lt;PageConfiguration&gt; create();
+
+    explicit PageConfiguration();
</ins><span class="cx">     virtual ~PageConfiguration();
</span><span class="cx"> 
</span><ins>+    Ref&lt;PageConfiguration&gt; copy() const;
+
</ins><span class="cx">     // FIXME: The configuration properties should return their default values
</span><span class="cx">     // rather than nullptr.
</span><span class="cx">     
</span><span class="lines">@@ -63,19 +68,47 @@
</span><span class="cx">     WebKit::WebPreferences* preferences();
</span><span class="cx">     void setPreferences(WebKit::WebPreferences*);
</span><span class="cx"> 
</span><ins>+    WebKit::WebPreferencesStore::ValueMap&amp; preferenceValues() { return m_preferenceValues; }
+
</ins><span class="cx">     WebKit::WebPageProxy* relatedPage();
</span><span class="cx">     void setRelatedPage(WebKit::WebPageProxy*);
</span><span class="cx"> 
</span><del>-    WebKit::WebPageConfiguration webPageConfiguration();
</del><ins>+    WebKit::VisitedLinkProvider* visitedLinkProvider();
+    void setVisitedLinkProvider(WebKit::VisitedLinkProvider*);
</ins><span class="cx"> 
</span><ins>+    WebsiteDataStore* websiteDataStore();
+    void setWebsiteDataStore(WebsiteDataStore*);
+
+    WebCore::SessionID sessionID();
+    void setSessionID(WebCore::SessionID);
+
+    bool treatsSHA1SignedCertificatesAsInsecure() { return m_treatsSHA1SignedCertificatesAsInsecure; }
+    void setTreatsSHA1SignedCertificatesAsInsecure(bool treatsSHA1SignedCertificatesAsInsecure) { m_treatsSHA1SignedCertificatesAsInsecure = treatsSHA1SignedCertificatesAsInsecure; } 
+
+#if PLATFORM(IOS)
+    bool alwaysRunsAtForegroundPriority() { return m_alwaysRunsAtForegroundPriority; }
+    void setAlwaysRunsAtForegroundPriority(bool alwaysRunsAtForegroundPriority) { m_alwaysRunsAtForegroundPriority = alwaysRunsAtForegroundPriority; } 
+#endif
+
</ins><span class="cx"> private:
</span><del>-    PageConfiguration();
</del><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebKit::WebProcessPool&gt; m_processPool;
</span><span class="cx">     RefPtr&lt;WebKit::WebUserContentControllerProxy&gt; m_userContentController;
</span><span class="cx">     RefPtr&lt;WebKit::WebPageGroup&gt; m_pageGroup;
</span><span class="cx">     RefPtr&lt;WebKit::WebPreferences&gt; m_preferences;
</span><ins>+    WebKit::WebPreferencesStore::ValueMap m_preferenceValues;
</ins><span class="cx">     RefPtr&lt;WebKit::WebPageProxy&gt; m_relatedPage;
</span><ins>+    RefPtr&lt;WebKit::VisitedLinkProvider&gt; m_visitedLinkProvider;
+
+    RefPtr&lt;WebsiteDataStore&gt; m_websiteDataStore;
+    // FIXME: We currently have to pass the session ID separately here to support the legacy private browsing session.
+    // Once we get rid of it we should get rid of this configuration parameter as well.
+    WebCore::SessionID m_sessionID;
+
+    bool m_treatsSHA1SignedCertificatesAsInsecure = false;
+#if PLATFORM(IOS)
+    bool m_alwaysRunsAtForegroundPriority = false;
+#endif
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace API
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #include &quot;APINavigationAction.h&quot;
</span><span class="cx"> #include &quot;APINavigationClient.h&quot;
</span><span class="cx"> #include &quot;APINavigationResponse.h&quot;
</span><ins>+#include &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #include &quot;APIPolicyClient.h&quot;
</span><span class="cx"> #include &quot;APISessionState.h&quot;
</span><span class="cx"> #include &quot;APIUIClient.h&quot;
</span><span class="lines">@@ -127,6 +128,11 @@
</span><span class="cx">     return toAPI(&amp;toImpl(pageRef)-&gt;pageGroup());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+WKPageConfigurationRef WKPageCopyPageConfiguration(WKPageRef pageRef)
+{
+    return toAPI(&amp;toImpl(pageRef)-&gt;configuration().copy().leakRef());
+}
+
</ins><span class="cx"> void WKPageLoadURL(WKPageRef pageRef, WKURLRef URLRef)
</span><span class="cx"> {
</span><span class="cx">     toImpl(pageRef)-&gt;loadRequest(URL(URL(), toWTFString(URLRef)));
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -59,6 +59,8 @@
</span><span class="cx"> WK_EXPORT WKContextRef WKPageGetContext(WKPageRef page);
</span><span class="cx"> WK_EXPORT WKPageGroupRef WKPageGetPageGroup(WKPageRef page);
</span><span class="cx"> 
</span><ins>+WK_EXPORT WKPageConfigurationRef WKPageCopyPageConfiguration(WKPageRef page);
+
</ins><span class="cx"> // URL Requests
</span><span class="cx"> WK_EXPORT void WKPageLoadURL(WKPageRef page, WKURLRef url);
</span><span class="cx"> WK_EXPORT void WKPageLoadURLWithUserData(WKPageRef page, WKURLRef url, WKTypeRef userData);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPageConfigurationRefcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -93,3 +93,13 @@
</span><span class="cx"> {
</span><span class="cx">     toImpl(configuration)-&gt;setRelatedPage(toImpl(relatedPage));
</span><span class="cx"> }
</span><ins>+
+WKWebsiteDataStoreRef WKPageConfigurationGetWebsiteDataStore(WKPageConfigurationRef configuration)
+{
+    return toAPI(toImpl(configuration)-&gt;websiteDataStore());
+}
+
+void WKPageConfigurationSetWebsiteDataStore(WKPageConfigurationRef configuration, WKWebsiteDataStoreRef websiteDataStore)
+{
+    toImpl(configuration)-&gt;setWebsiteDataStore(toImpl(websiteDataStore));
+}
</ins></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPageConfigurationRefh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -51,6 +51,9 @@
</span><span class="cx"> WK_EXPORT WKPageRef WKPageConfigurationGetRelatedPage(WKPageConfigurationRef configuration);
</span><span class="cx"> WK_EXPORT void WKPageConfigurationSetRelatedPage(WKPageConfigurationRef configuration, WKPageRef relatedPage);
</span><span class="cx"> 
</span><ins>+WK_EXPORT WKWebsiteDataStoreRef WKPageConfigurationGetWebsiteDataStore(WKPageConfigurationRef configuration);
+WK_EXPORT void WKPageConfigurationSetWebsiteDataStore(WKPageConfigurationRef configuration, WKWebsiteDataStoreRef websiteDataStore);
+
</ins><span class="cx"> #ifdef __cplusplus
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #if WK_API_ENABLED
</span><span class="cx"> 
</span><span class="cx"> #import &quot;APIFormClient.h&quot;
</span><ins>+#import &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #import &quot;APISerializedScriptValue.h&quot;
</span><span class="cx"> #import &quot;CompletionHandlerCallChecker.h&quot;
</span><span class="cx"> #import &quot;DiagnosticLoggingClient.h&quot;
</span><span class="lines">@@ -300,36 +301,38 @@
</span><span class="cx">     CGRect bounds = self.bounds;
</span><span class="cx"> 
</span><span class="cx">     WebKit::WebProcessPool&amp; processPool = *[_configuration processPool]-&gt;_processPool;
</span><ins>+    
+    auto pageConfiguration = API::PageConfiguration::create();
</ins><span class="cx"> 
</span><del>-    WebKit::WebPageConfiguration webPageConfiguration;
-    webPageConfiguration.preferences = [_configuration preferences]-&gt;_preferences.get();
</del><ins>+    pageConfiguration-&gt;setProcessPool(&amp;processPool);
+    pageConfiguration-&gt;setPreferences([_configuration preferences]-&gt;_preferences.get());
</ins><span class="cx">     if (WKWebView *relatedWebView = [_configuration _relatedWebView])
</span><del>-        webPageConfiguration.relatedPage = relatedWebView-&gt;_page.get();
</del><ins>+        pageConfiguration-&gt;setRelatedPage(relatedWebView-&gt;_page.get());
</ins><span class="cx"> 
</span><del>-    webPageConfiguration.userContentController = [_configuration userContentController]-&gt;_userContentControllerProxy.get();
-    webPageConfiguration.visitedLinkProvider = [_configuration _visitedLinkProvider]-&gt;_visitedLinkProvider.get();
-    webPageConfiguration.websiteDataStore = &amp;[_configuration websiteDataStore]-&gt;_websiteDataStore-&gt;websiteDataStore();
-    webPageConfiguration.sessionID = webPageConfiguration.websiteDataStore-&gt;sessionID();
-    webPageConfiguration.treatsSHA1SignedCertificatesAsInsecure = [_configuration _treatsSHA1SignedCertificatesAsInsecure];
</del><ins>+    pageConfiguration-&gt;setUserContentController([_configuration userContentController]-&gt;_userContentControllerProxy.get());
+    pageConfiguration-&gt;setVisitedLinkProvider([_configuration _visitedLinkProvider]-&gt;_visitedLinkProvider.get());
+    pageConfiguration-&gt;setWebsiteDataStore([_configuration websiteDataStore]-&gt;_websiteDataStore.get());
+    pageConfiguration-&gt;setSessionID(pageConfiguration-&gt;websiteDataStore()-&gt;websiteDataStore().sessionID());
+    pageConfiguration-&gt;setTreatsSHA1SignedCertificatesAsInsecure([_configuration _treatsSHA1SignedCertificatesAsInsecure]);
</ins><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebKit::WebPageGroup&gt; pageGroup;
</span><span class="cx">     NSString *groupIdentifier = configuration._groupIdentifier;
</span><span class="cx">     if (groupIdentifier.length) {
</span><span class="cx">         pageGroup = WebKit::WebPageGroup::create(configuration._groupIdentifier);
</span><del>-        webPageConfiguration.pageGroup = pageGroup.get();
</del><ins>+        pageConfiguration-&gt;setPageGroup(pageGroup.get());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::suppressesIncrementalRenderingKey(), WebKit::WebPreferencesStore::Value(!![_configuration suppressesIncrementalRendering]));
</del><ins>+    pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::suppressesIncrementalRenderingKey(), WebKit::WebPreferencesStore::Value(!![_configuration suppressesIncrementalRendering]));
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    webPageConfiguration.alwaysRunsAtForegroundPriority = [_configuration _alwaysRunsAtForegroundPriority];
</del><ins>+    pageConfiguration-&gt;setAlwaysRunsAtForegroundPriority([_configuration _alwaysRunsAtForegroundPriority]);
</ins><span class="cx"> 
</span><del>-    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
-    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] &amp;&amp; shouldAllowPictureInPictureMediaPlayback()));
-    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback]));
</del><ins>+    pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
+    pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] &amp;&amp; shouldAllowPictureInPictureMediaPlayback()));
+    pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback]));
</ins><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><del>-    webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsAirPlayForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsAirPlayForMediaPlayback]));
</del><ins>+    pageConfiguration-&gt;preferenceValues().set(WebKit::WebPreferencesKey::allowsAirPlayForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsAirPlayForMediaPlayback]));
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="lines">@@ -339,7 +342,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 processPool:processPool configuration:WTF::move(webPageConfiguration) webView:self]);
</del><ins>+    _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(pageConfiguration) 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">@@ -367,7 +370,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 processPool:processPool configuration:WTF::move(webPageConfiguration) webView:self]);
</del><ins>+    _wkView = adoptNS([[WKView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(pageConfiguration) 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></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIgtkWebKitWebContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -21,6 +21,7 @@
</span><span class="cx"> #include &quot;WebKitWebContext.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIDownloadClient.h&quot;
</span><ins>+#include &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #include &quot;APIProcessPoolConfiguration.h&quot;
</span><span class="cx"> #include &quot;APIString.h&quot;
</span><span class="cx"> #include &quot;TextChecker.h&quot;
</span><span class="lines">@@ -1315,14 +1316,15 @@
</span><span class="cx"> void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
</span><span class="cx"> {
</span><span class="cx">     WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
</span><del>-    WebPageConfiguration webPageConfiguration;
-    webPageConfiguration.preferences = webkitSettingsGetPreferences(webkit_web_view_get_settings(webView));
-    webPageConfiguration.relatedPage = relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr;
-    webPageConfiguration.userContentController = userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr;
-    webPageConfiguration.websiteDataStore = &amp;webkitWebsiteDataManagerGetDataStore(context-&gt;priv-&gt;websiteDataManager.get());
-    webPageConfiguration.sessionID = webPageConfiguration.websiteDataStore-&gt;sessionID();
-    webkitWebViewBaseCreateWebPage(webViewBase, context-&gt;priv-&gt;context.get(), WTF::move(webPageConfiguration));
</del><span class="cx"> 
</span><ins>+    auto pageConfiguration = API::PageConfiguration::create();
+    pageConfiguration-&gt;setPreferences(webkitSettingsGetPreferences(webkit_web_view_get_settings(webView)));
+    pageConfiguration-&gt;setRelatedPage(relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr);
+    pageConfiguration-&gt;setUserContentController(userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr);
+    pageConfiguration-&gt;setWebsiteDataStore(&amp;webkitWebsiteDataManagerGetDataStore(context-&gt;priv-&gt;websiteDataManager.get()));
+    pageConfiguration-&gt;setSessionID(pageConfiguration-&gt;websiteDataStore()-&gt;websiteDataStore().sessionID());
+    webkitWebViewBaseCreateWebPage(webViewBase, context-&gt;priv-&gt;context.get(), WTF::move(pageConfiguration));
+
</ins><span class="cx">     WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
</span><span class="cx">     context-&gt;priv-&gt;webViews.set(page-&gt;pageID(), webView);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIgtkWebKitWebViewBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;WebKitWebViewBase.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #include &quot;DrawingAreaProxyImpl.h&quot;
</span><span class="cx"> #include &quot;InputMethodFilter.h&quot;
</span><span class="cx"> #include &quot;KeyBindingTranslator.h&quot;
</span><span class="lines">@@ -1045,12 +1046,13 @@
</span><span class="cx"> WebKitWebViewBase* webkitWebViewBaseCreate(WebProcessPool* context, WebPreferences* preferences, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
</span><span class="cx"> {
</span><span class="cx">     WebKitWebViewBase* webkitWebViewBase = WEBKIT_WEB_VIEW_BASE(g_object_new(WEBKIT_TYPE_WEB_VIEW_BASE, nullptr));
</span><del>-    WebPageConfiguration webPageConfiguration;
-    webPageConfiguration.preferences = preferences;
-    webPageConfiguration.pageGroup = pageGroup;
-    webPageConfiguration.relatedPage = relatedPage;
-    webPageConfiguration.userContentController = userContentController;
-    webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, WTF::move(webPageConfiguration));
</del><ins>+
+    auto pageConfiguration = API::PageConfiguration::create();
+    pageConfiguration-&gt;setPreferences(preferences);
+    pageConfiguration-&gt;setPageGroup(pageGroup);
+    pageConfiguration-&gt;setRelatedPage(relatedPage);
+    pageConfiguration-&gt;setUserContentController(userContentController);
+    webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, WTF::move(pageConfiguration));
</ins><span class="cx">     return webkitWebViewBase;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1071,7 +1073,7 @@
</span><span class="cx"> }
</span><span class="cx"> #endif // HAVE(GTK_SCALE_FACTOR)
</span><span class="cx"> 
</span><del>-void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebProcessPool* context, WebPageConfiguration&amp;&amp; configuration)
</del><ins>+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebProcessPool* context, Ref&lt;API::PageConfiguration&gt;&amp;&amp; configuration)
</ins><span class="cx"> {
</span><span class="cx">     WebKitWebViewBasePrivate* priv = webkitWebViewBase-&gt;priv;
</span><span class="cx">     priv-&gt;pageProxy = context-&gt;createWebPage(*priv-&gt;pageClient, WTF::move(configuration));
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIgtkWebKitWebViewBasePrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> WebKitWebViewBase* webkitWebViewBaseCreate(WebKit::WebProcessPool*, WebKit::WebPreferences*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
</span><span class="cx"> GtkIMContext* webkitWebViewBaseGetIMContext(WebKitWebViewBase*);
</span><span class="cx"> WebKit::WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase*);
</span><del>-void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebProcessPool*, WebKit::WebPageConfiguration&amp;&amp;);
</del><ins>+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebProcessPool*, Ref&lt;API::PageConfiguration&gt;&amp;&amp;);
</ins><span class="cx"> void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*);
</span><span class="cx"> void webkitWebViewBaseSetTooltipArea(WebKitWebViewBase*, const WebCore::IntRect&amp;);
</span><span class="cx"> void webkitWebViewBaseForwardNextKeyEvent(WebKitWebViewBase*);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIgtkWebKitWebsiteDataManagercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -70,7 +70,7 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> struct _WebKitWebsiteDataManagerPrivate {
</span><del>-    RefPtr&lt;WebsiteDataStore&gt; websiteDataStore;
</del><ins>+    RefPtr&lt;API::WebsiteDataStore&gt; websiteDataStore;
</ins><span class="cx">     GUniquePtr&lt;char&gt; baseDataDirectory;
</span><span class="cx">     GUniquePtr&lt;char&gt; baseCacheDirectory;
</span><span class="cx">     GUniquePtr&lt;char&gt; localStorageDirectory;
</span><span class="lines">@@ -299,12 +299,12 @@
</span><span class="cx"> WebKitWebsiteDataManager* webkitWebsiteDataManagerCreate(WebsiteDataStore::Configuration&amp;&amp; configuration)
</span><span class="cx"> {
</span><span class="cx">     WebKitWebsiteDataManager* manager = WEBKIT_WEBSITE_DATA_MANAGER(g_object_new(WEBKIT_TYPE_WEBSITE_DATA_MANAGER, nullptr));
</span><del>-    manager-&gt;priv-&gt;websiteDataStore = WebsiteDataStore::create(WTF::move(configuration));
</del><ins>+    manager-&gt;priv-&gt;websiteDataStore = API::WebsiteDataStore::create(WTF::move(configuration));
</ins><span class="cx"> 
</span><span class="cx">     return manager;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebsiteDataStore&amp; webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager)
</del><ins>+API::WebsiteDataStore&amp; webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager)
</ins><span class="cx"> {
</span><span class="cx">     WebKitWebsiteDataManagerPrivate* priv = manager-&gt;priv;
</span><span class="cx">     if (!priv-&gt;websiteDataStore) {
</span><span class="lines">@@ -318,7 +318,7 @@
</span><span class="cx">         configuration.webSQLDatabaseDirectory = !priv-&gt;webSQLDirectory ?
</span><span class="cx">             API::WebsiteDataStore::defaultWebSQLDatabaseDirectory() : WebCore::filenameToString(priv-&gt;webSQLDirectory.get());
</span><span class="cx">         configuration.mediaKeysStorageDirectory = API::WebsiteDataStore::defaultMediaKeysStorageDirectory();
</span><del>-        priv-&gt;websiteDataStore = WebsiteDataStore::create(WTF::move(configuration));
</del><ins>+        priv-&gt;websiteDataStore = API::WebsiteDataStore::create(WTF::move(configuration));
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return *priv-&gt;websiteDataStore;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIgtkWebKitWebsiteDataManagerPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -20,10 +20,11 @@
</span><span class="cx"> #ifndef WebKitWebsiteDataManagerPrivate_h
</span><span class="cx"> #define WebKitWebsiteDataManagerPrivate_h
</span><span class="cx"> 
</span><ins>+#include &quot;APIWebsiteDataStore.h&quot;
</ins><span class="cx"> #include &quot;WebKitPrivate.h&quot;
</span><span class="cx"> #include &quot;WebsiteDataStore.h&quot;
</span><span class="cx"> 
</span><span class="cx"> WebKitWebsiteDataManager* webkitWebsiteDataManagerCreate(WebKit::WebsiteDataStore::Configuration&amp;&amp;);
</span><del>-WebKit::WebsiteDataStore&amp; webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager*);
</del><ins>+API::WebsiteDataStore&amp; webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager*);
</ins><span class="cx"> 
</span><span class="cx"> #endif // WebKitWebsiteDataManagerPrivate_h
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPIiosWKViewIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> 
</span><ins>+#import &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #import &quot;RemoteLayerTreeTransaction.h&quot;
</span><span class="cx"> #import &quot;UIKitSPI.h&quot;
</span><span class="cx"> #import &quot;ViewGestureController.h&quot;
</span><span class="lines">@@ -225,11 +226,12 @@
</span><span class="cx"> 
</span><span class="cx">     [self addSubview:_scrollView.get()];
</span><span class="cx"> 
</span><del>-    WebKit::WebPageConfiguration webPageConfiguration;
-    webPageConfiguration.pageGroup = toImpl(pageGroupRef);
-    webPageConfiguration.relatedPage = toImpl(relatedPage);
</del><ins>+    auto configuration = API::PageConfiguration::create();
+    configuration-&gt;setProcessPool(toImpl(contextRef));
+    configuration-&gt;setPageGroup(toImpl(pageGroupRef));
+    configuration-&gt;setRelatedPage(toImpl(relatedPage));
</ins><span class="cx"> 
</span><del>-    _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:*toImpl(contextRef) configuration:WTF::move(webPageConfiguration) wkView:self]);
</del><ins>+    _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:*toImpl(contextRef) configuration:WTF::move(configuration) wkView:self]);
</ins><span class="cx"> 
</span><span class="cx">     [[_contentView layer] setAnchorPoint:CGPointZero];
</span><span class="cx">     [_contentView setFrame:bounds];
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -3744,7 +3744,7 @@
</span><span class="cx">     [self addTrackingArea:trackingArea];
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&amp;)processPool configuration:(WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</del><ins>+- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration 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">@@ -3766,7 +3766,7 @@
</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 = processPool.createWebPage(*_data-&gt;_pageClient, WTF::move(webPageConfiguration));
</del><ins>+    _data-&gt;_page = processPool.createWebPage(*_data-&gt;_pageClient, WTF::move(configuration));
</ins><span class="cx">     _data-&gt;_page-&gt;setAddsVisitedLinks(processPool.historyClient().addsVisitedLinks());
</span><span class="cx"> 
</span><span class="cx">     _data-&gt;_page-&gt;setIntrinsicDeviceScaleFactor([self _intrinsicDeviceScaleFactor]);
</span><span class="lines">@@ -3994,19 +3994,20 @@
</span><span class="cx"> 
</span><span class="cx"> - (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef relatedToPage:(WKPageRef)relatedPage
</span><span class="cx"> {
</span><del>-    WebPageConfiguration webPageConfiguration;
-    webPageConfiguration.pageGroup = toImpl(pageGroupRef);
-    webPageConfiguration.relatedPage = toImpl(relatedPage);
</del><ins>+    auto configuration = API::PageConfiguration::create();
+    configuration-&gt;setProcessPool(toImpl(contextRef));
+    configuration-&gt;setPageGroup(toImpl(pageGroupRef));
+    configuration-&gt;setRelatedPage(toImpl(relatedPage));
</ins><span class="cx"> 
</span><del>-    return [self initWithFrame:frame processPool:*toImpl(contextRef) configuration:webPageConfiguration webView:nil];
</del><ins>+    return [self initWithFrame:frame processPool:*toImpl(contextRef) configuration:WTF::move(configuration) webView:nil];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (id)initWithFrame:(NSRect)frame configurationRef:(WKPageConfigurationRef)configuration
</del><ins>+- (id)initWithFrame:(NSRect)frame configurationRef:(WKPageConfigurationRef)configurationRef
</ins><span class="cx"> {
</span><del>-    auto&amp; processPool = *toImpl(configuration)-&gt;processPool();
-    auto webPageConfiguration = toImpl(configuration)-&gt;webPageConfiguration();
</del><ins>+    Ref&lt;API::PageConfiguration&gt; configuration = *toImpl(configurationRef);
+    auto&amp; processPool = *configuration-&gt;processPool();
</ins><span class="cx"> 
</span><del>-    return [self initWithFrame:frame processPool:processPool configuration:webPageConfiguration webView:nil];
</del><ins>+    return [self initWithFrame:frame processPool:processPool configuration:WTF::move(configuration) webView:nil];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (BOOL)wantsUpdateLayer
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPImacWKViewInternalh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -38,6 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> namespace API {
</span><span class="cx"> class Object;
</span><ins>+class PageConfiguration;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace IPC {
</span><span class="lines">@@ -58,7 +59,6 @@
</span><span class="cx"> class WebProcessPool;
</span><span class="cx"> struct ColorSpaceData;
</span><span class="cx"> struct EditorState;
</span><del>-struct WebPageConfiguration;
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @class WKFullScreenWindowController;
</span><span class="lines">@@ -68,9 +68,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> @interface WKView ()
</span><del>-#if WK_API_ENABLED
-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
-#endif
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration webView:(WKWebView *)webView;
</ins><span class="cx"> 
</span><span class="cx"> - (std::unique_ptr&lt;WebKit::DrawingAreaProxy&gt;)_createDrawingAreaProxy;
</span><span class="cx"> - (BOOL)_isFocused;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCoordinatedGraphicsWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;WebView.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #include &quot;CoordinatedDrawingAreaProxy.h&quot;
</span><span class="cx"> #include &quot;CoordinatedGraphicsScene.h&quot;
</span><span class="cx"> #include &quot;CoordinatedLayerTreeHostProxy.h&quot;
</span><span class="lines">@@ -52,11 +53,11 @@
</span><span class="cx">     , m_visible(false)
</span><span class="cx">     , m_opacity(1.0)
</span><span class="cx"> {
</span><del>-    WebPageConfiguration webPageConfiguration;
-    webPageConfiguration.pageGroup = pageGroup;
</del><ins>+    auto pageConfiguration = API::PageConfiguration::create();
+    pageConfiguration-&gt;setPageGroup(pageGroup);
</ins><span class="cx"> 
</span><span class="cx">     // Need to call createWebPage after other data members, specifically m_visible, are initialized.
</span><del>-    m_page = context-&gt;createWebPage(*this, WTF::move(webPageConfiguration));
</del><ins>+    m_page = context-&gt;createWebPage(*this, WTF::move(pageConfiguration));
</ins><span class="cx"> 
</span><span class="cx">     m_page-&gt;pageGroup().preferences().setAcceleratedCompositingEnabled(true);
</span><span class="cx">     m_page-&gt;pageGroup().preferences().setForceCompositingMode(true);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> #include &quot;APINavigationAction.h&quot;
</span><span class="cx"> #include &quot;APINavigationClient.h&quot;
</span><span class="cx"> #include &quot;APINavigationResponse.h&quot;
</span><ins>+#include &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #include &quot;APIPolicyClient.h&quot;
</span><span class="cx"> #include &quot;APISecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;APIUIClient.h&quot;
</span><span class="lines">@@ -293,13 +294,14 @@
</span><span class="cx">     PageClient&amp; m_pageClient;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-Ref&lt;WebPageProxy&gt; WebPageProxy::create(PageClient&amp; pageClient, WebProcessProxy&amp; process, uint64_t pageID, const WebPageConfiguration&amp; configuration)
</del><ins>+Ref&lt;WebPageProxy&gt; WebPageProxy::create(PageClient&amp; pageClient, WebProcessProxy&amp; process, uint64_t pageID, Ref&lt;API::PageConfiguration&gt;&amp;&amp; configuration)
</ins><span class="cx"> {
</span><del>-    return adoptRef(*new WebPageProxy(pageClient, process, pageID, configuration));
</del><ins>+    return adoptRef(*new WebPageProxy(pageClient, process, pageID, WTF::move(configuration)));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-WebPageProxy::WebPageProxy(PageClient&amp; pageClient, WebProcessProxy&amp; process, uint64_t pageID, const WebPageConfiguration&amp; configuration)
</del><ins>+WebPageProxy::WebPageProxy(PageClient&amp; pageClient, WebProcessProxy&amp; process, uint64_t pageID, Ref&lt;API::PageConfiguration&gt;&amp;&amp; configuration)
</ins><span class="cx">     : m_pageClient(pageClient)
</span><ins>+    , m_configuration(WTF::move(configuration))
</ins><span class="cx">     , m_loaderClient(std::make_unique&lt;API::LoaderClient&gt;())
</span><span class="cx">     , m_policyClient(std::make_unique&lt;API::PolicyClient&gt;())
</span><span class="cx">     , m_formClient(std::make_unique&lt;API::FormClient&gt;())
</span><span class="lines">@@ -311,14 +313,14 @@
</span><span class="cx"> #endif
</span><span class="cx">     , m_navigationState(std::make_unique&lt;WebNavigationState&gt;())
</span><span class="cx">     , m_process(process)
</span><del>-    , m_pageGroup(*configuration.pageGroup)
-    , m_preferences(*configuration.preferences)
-    , m_userContentController(configuration.userContentController)
-    , m_visitedLinkProvider(*configuration.visitedLinkProvider)
-    , m_websiteDataStore(*configuration.websiteDataStore)
</del><ins>+    , m_pageGroup(*m_configuration-&gt;pageGroup())
+    , m_preferences(*m_configuration-&gt;preferences())
+    , m_userContentController(m_configuration-&gt;userContentController())
+    , m_visitedLinkProvider(*m_configuration-&gt;visitedLinkProvider())
+    , m_websiteDataStore(m_configuration-&gt;websiteDataStore()-&gt;websiteDataStore())
</ins><span class="cx">     , m_mainFrame(nullptr)
</span><span class="cx">     , m_userAgent(standardUserAgent())
</span><del>-    , m_treatsSHA1CertificatesAsInsecure(configuration.treatsSHA1SignedCertificatesAsInsecure)
</del><ins>+    , m_treatsSHA1CertificatesAsInsecure(m_configuration-&gt;treatsSHA1SignedCertificatesAsInsecure())
</ins><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">     , m_hasReceivedLayerTreeTransactionAfterDidCommitLoad(true)
</span><span class="cx">     , m_firstLayerTreeTransactionIdAfterDidCommitLoad(0)
</span><span class="lines">@@ -335,7 +337,7 @@
</span><span class="cx">     , m_viewState(ViewState::NoFlags)
</span><span class="cx">     , m_viewWasEverInWindow(false)
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-    , m_alwaysRunsAtForegroundPriority(configuration.alwaysRunsAtForegroundPriority)
</del><ins>+    , m_alwaysRunsAtForegroundPriority(m_configuration-&gt;alwaysRunsAtForegroundPriority())
</ins><span class="cx"> #endif
</span><span class="cx">     , m_backForwardList(WebBackForwardList::create(*this))
</span><span class="cx">     , m_maintainsInactiveSelection(false)
</span><span class="lines">@@ -379,7 +381,7 @@
</span><span class="cx">     , m_isTrackingTouchEvents(false)
</span><span class="cx"> #endif
</span><span class="cx">     , m_pageID(pageID)
</span><del>-    , m_sessionID(configuration.sessionID)
</del><ins>+    , m_sessionID(m_configuration-&gt;sessionID())
</ins><span class="cx">     , m_isPageSuspended(false)
</span><span class="cx">     , m_addsVisitedLinks(true)
</span><span class="cx"> #if ENABLE(REMOTE_INSPECTOR)
</span><span class="lines">@@ -436,7 +438,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     , m_scrollPinningBehavior(DoNotPin)
</span><span class="cx">     , m_navigationID(0)
</span><del>-    , m_configurationPreferenceValues(configuration.preferenceValues)
</del><ins>+    , m_configurationPreferenceValues(m_configuration-&gt;preferenceValues())
</ins><span class="cx">     , m_potentiallyChangedViewStateFlags(ViewState::NoFlags)
</span><span class="cx">     , m_viewStateChangeWantsSynchronousReply(false)
</span><span class="cx"> {
</span><span class="lines">@@ -518,6 +520,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+const API::PageConfiguration&amp; WebPageProxy::configuration() const
+{
+    return m_configuration.get();
+}
+
</ins><span class="cx"> PlatformProcessIdentifier WebPageProxy::processIdentifier() const
</span><span class="cx"> {
</span><span class="cx">     if (m_isClosed)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -254,28 +254,6 @@
</span><span class="cx"> typedef GenericCallback&lt;const WebCore::MachSendRight&amp;&gt; MachSendRightCallback;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-struct WebPageConfiguration {
-    WebPageGroup* pageGroup = nullptr;
-    WebPreferences* preferences = nullptr;
-    WebUserContentControllerProxy* userContentController = nullptr;
-    VisitedLinkProvider* visitedLinkProvider = nullptr;
-
-    WebsiteDataStore* websiteDataStore = nullptr;
-    // FIXME: We currently have to pass the session ID separately here to support the legacy private browsing session.
-    // Once we get rid of it we should get rid of this configuration parameter as well.
-    WebCore::SessionID sessionID;
-
-    WebPageProxy* relatedPage = nullptr;
-
-    bool treatsSHA1SignedCertificatesAsInsecure = false;
-
-#if PLATFORM(IOS)
-    bool alwaysRunsAtForegroundPriority = false;
-#endif
-
-    WebPreferencesStore::ValueMap preferenceValues;
-};
-
</del><span class="cx"> class WebPageProxy : public API::ObjectImpl&lt;API::Object::Type::Page&gt;
</span><span class="cx"> #if ENABLE(INPUT_TYPE_COLOR)
</span><span class="cx">     , public WebColorPicker::Client
</span><span class="lines">@@ -287,9 +265,11 @@
</span><span class="cx">     , public IPC::MessageReceiver
</span><span class="cx">     , public IPC::MessageSender {
</span><span class="cx"> public:
</span><del>-    static Ref&lt;WebPageProxy&gt; create(PageClient&amp;, WebProcessProxy&amp;, uint64_t pageID, const WebPageConfiguration&amp;);
</del><ins>+    static Ref&lt;WebPageProxy&gt; create(PageClient&amp;, WebProcessProxy&amp;, uint64_t pageID, Ref&lt;API::PageConfiguration&gt;&amp;&amp;);
</ins><span class="cx">     virtual ~WebPageProxy();
</span><span class="cx"> 
</span><ins>+    const API::PageConfiguration&amp; configuration() const;
+
</ins><span class="cx">     uint64_t pageID() const { return m_pageID; }
</span><span class="cx">     WebCore::SessionID sessionID() const { return m_sessionID; }
</span><span class="cx">     void setSessionID(WebCore::SessionID);
</span><span class="lines">@@ -1084,7 +1064,7 @@
</span><span class="cx">     void clearWheelEventTestTrigger();
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    WebPageProxy(PageClient&amp;, WebProcessProxy&amp;, uint64_t pageID, const WebPageConfiguration&amp;);
</del><ins>+    WebPageProxy(PageClient&amp;, WebProcessProxy&amp;, uint64_t pageID, Ref&lt;API::PageConfiguration&gt;&amp;&amp;);
</ins><span class="cx">     void platformInitialize();
</span><span class="cx"> 
</span><span class="cx">     void updateViewState(WebCore::ViewState::Flags flagsToUpdate = WebCore::ViewState::AllFlags);
</span><span class="lines">@@ -1488,6 +1468,8 @@
</span><span class="cx">     void handleSynchronousMessage(IPC::Connection&amp;, const String&amp; messageName, const UserData&amp; messageBody, UserData&amp; returnUserData);
</span><span class="cx"> 
</span><span class="cx">     PageClient&amp; m_pageClient;
</span><ins>+    Ref&lt;API::PageConfiguration&gt; m_configuration;
+
</ins><span class="cx">     std::unique_ptr&lt;API::LoaderClient&gt; m_loaderClient;
</span><span class="cx">     std::unique_ptr&lt;API::PolicyClient&gt; m_policyClient;
</span><span class="cx">     std::unique_ptr&lt;API::NavigationClient&gt; m_navigationClient;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APIDownloadClient.h&quot;
</span><span class="cx"> #include &quot;APILegacyContextHistoryClient.h&quot;
</span><ins>+#include &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #include &quot;APIProcessPoolConfiguration.h&quot;
</span><span class="cx"> #include &quot;CustomProtocolManagerMessages.h&quot;
</span><span class="cx"> #include &quot;DownloadProxy.h&quot;
</span><span class="lines">@@ -831,18 +832,18 @@
</span><span class="cx">     return *process;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-PassRefPtr&lt;WebPageProxy&gt; WebProcessPool::createWebPage(PageClient&amp; pageClient, WebPageConfiguration configuration)
</del><ins>+PassRefPtr&lt;WebPageProxy&gt; WebProcessPool::createWebPage(PageClient&amp; pageClient, Ref&lt;API::PageConfiguration&gt;&amp;&amp; pageConfiguration)
</ins><span class="cx"> {
</span><del>-    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.ptr();
-    if (!configuration.websiteDataStore) {
-        ASSERT(!configuration.sessionID.isValid());
-        configuration.websiteDataStore = &amp;m_websiteDataStore-&gt;websiteDataStore();
-        configuration.sessionID = configuration.preferences-&gt;privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID();
</del><ins>+    if (!pageConfiguration-&gt;pageGroup())
+        pageConfiguration-&gt;setPageGroup(m_defaultPageGroup.ptr());
+    if (!pageConfiguration-&gt;preferences())
+        pageConfiguration-&gt;setPreferences(&amp;pageConfiguration-&gt;pageGroup()-&gt;preferences());
+    if (!pageConfiguration-&gt;visitedLinkProvider())
+        pageConfiguration-&gt;setVisitedLinkProvider(m_visitedLinkProvider.ptr());
+    if (!pageConfiguration-&gt;websiteDataStore()) {
+        ASSERT(!pageConfiguration-&gt;sessionID().isValid());
+        pageConfiguration-&gt;setWebsiteDataStore(m_websiteDataStore.get());
+        pageConfiguration-&gt;setSessionID(pageConfiguration-&gt;preferences()-&gt;privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID());
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebProcessProxy&gt; process;
</span><span class="lines">@@ -852,14 +853,14 @@
</span><span class="cx">         if (m_haveInitialEmptyProcess) {
</span><span class="cx">             process = m_processes.last();
</span><span class="cx">             m_haveInitialEmptyProcess = false;
</span><del>-        } else if (configuration.relatedPage) {
</del><ins>+        } else if (pageConfiguration-&gt;relatedPage()) {
</ins><span class="cx">             // Sharing processes, e.g. when creating the page via window.open().
</span><del>-            process = &amp;configuration.relatedPage-&gt;process();
</del><ins>+            process = &amp;pageConfiguration-&gt;relatedPage()-&gt;process();
</ins><span class="cx">         } else
</span><span class="cx">             process = &amp;createNewWebProcessRespectingProcessCountLimit();
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return process-&gt;createWebPage(pageClient, WTF::move(configuration));
</del><ins>+    return process-&gt;createWebPage(pageClient, WTF::move(pageConfiguration));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> DownloadProxy* WebProcessPool::download(WebPageProxy* initiatingPage, const ResourceRequest&amp; request)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessPoolh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -76,6 +76,7 @@
</span><span class="cx"> namespace API {
</span><span class="cx"> class DownloadClient;
</span><span class="cx"> class LegacyContextHistoryClient;
</span><ins>+class PageConfiguration;
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="lines">@@ -86,7 +87,6 @@
</span><span class="cx"> class WebPageGroup;
</span><span class="cx"> class WebPageProxy;
</span><span class="cx"> struct StatisticsData;
</span><del>-struct WebPageConfiguration;
</del><span class="cx"> struct WebProcessCreationParameters;
</span><span class="cx">     
</span><span class="cx"> typedef GenericCallback&lt;API::Dictionary*&gt; DictionaryCallback;
</span><span class="lines">@@ -171,7 +171,7 @@
</span><span class="cx"> 
</span><span class="cx">     API::WebsiteDataStore* websiteDataStore() const { return m_websiteDataStore.get(); }
</span><span class="cx"> 
</span><del>-    PassRefPtr&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, WebPageConfiguration);
</del><ins>+    PassRefPtr&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, Ref&lt;API::PageConfiguration&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     const String&amp; injectedBundlePath() const { return m_configuration-&gt;injectedBundlePath(); }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -206,10 +206,10 @@
</span><span class="cx">     return globalPageMap().get(pageID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Ref&lt;WebPageProxy&gt; WebProcessProxy::createWebPage(PageClient&amp; pageClient, const WebPageConfiguration&amp; configuration)
</del><ins>+Ref&lt;WebPageProxy&gt; WebProcessProxy::createWebPage(PageClient&amp; pageClient, Ref&lt;API::PageConfiguration&gt;&amp;&amp; pageConfiguration)
</ins><span class="cx"> {
</span><span class="cx">     uint64_t pageID = generatePageID();
</span><del>-    Ref&lt;WebPageProxy&gt; webPage = WebPageProxy::create(pageClient, *this, pageID, configuration);
</del><ins>+    Ref&lt;WebPageProxy&gt; webPage = WebPageProxy::create(pageClient, *this, pageID, WTF::move(pageConfiguration));
</ins><span class="cx"> 
</span><span class="cx">     m_pageMap.set(pageID, webPage.ptr());
</span><span class="cx">     globalPageMap().set(pageID, webPage.ptr());
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebProcessProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -84,7 +84,7 @@
</span><span class="cx">     WebProcessPool&amp; processPool() { return m_processPool; }
</span><span class="cx"> 
</span><span class="cx">     static WebPageProxy* webPage(uint64_t pageID);
</span><del>-    Ref&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, const WebPageConfiguration&amp;);
</del><ins>+    Ref&lt;WebPageProxy&gt; createWebPage(PageClient&amp;, Ref&lt;API::PageConfiguration&gt;&amp;&amp;);
</ins><span class="cx">     void addExistingWebPage(WebPageProxy*, uint64_t pageID);
</span><span class="cx">     void removeWebPage(uint64_t pageID);
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.h (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.h        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.h        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -34,6 +34,10 @@
</span><span class="cx"> @class WKView;
</span><span class="cx"> @class WKWebView;
</span><span class="cx"> 
</span><ins>+namespace API {
+class PageConfiguration;
+}
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx"> struct Highlight;
</span><span class="cx"> }
</span><span class="lines">@@ -45,7 +49,6 @@
</span><span class="cx"> class WebFrameProxy;
</span><span class="cx"> class WebPageProxy;
</span><span class="cx"> class WebProcessPool;
</span><del>-struct WebPageConfiguration;
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @interface WKContentView : UIView {
</span><span class="lines">@@ -61,8 +64,8 @@
</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 processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration wkView:(WKView *)webView;
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration webView:(WKWebView *)webView;
+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration wkView:(WKView *)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 (188227 => 188228)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2015-08-10 20:51:32 UTC (rev 188227)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2015-08-10 20:51:54 UTC (rev 188228)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> 
</span><ins>+#import &quot;APIPageConfiguration.h&quot;
</ins><span class="cx"> #import &quot;ApplicationStateTracker.h&quot;
</span><span class="cx"> #import &quot;PageClientImplIOS.h&quot;
</span><span class="cx"> #import &quot;RemoteLayerTreeDrawingAreaProxy.h&quot;
</span><span class="lines">@@ -181,11 +182,11 @@
</span><span class="cx">     std::unique_ptr&lt;ApplicationStateTracker&gt; _applicationStateTracker;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)_commonInitializationWithProcessPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration
</del><ins>+- (instancetype)_commonInitializationWithProcessPool:(WebKit::WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(_pageClient);
</span><span class="cx"> 
</span><del>-    _page = processPool.createWebPage(*_pageClient, WTF::move(webPageConfiguration));
</del><ins>+    _page = processPool.createWebPage(*_pageClient, WTF::move(configuration));
</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">@@ -218,7 +219,7 @@
</span><span class="cx">     return self;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration 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">@@ -228,10 +229,10 @@
</span><span class="cx">     _pageClient = std::make_unique&lt;PageClientImpl&gt;(self, webView);
</span><span class="cx">     _webView = webView;
</span><span class="cx"> 
</span><del>-    return [self _commonInitializationWithProcessPool:processPool configuration:webPageConfiguration];
</del><ins>+    return [self _commonInitializationWithProcessPool:processPool configuration:WTF::move(configuration)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration wkView:(WKView *)wkView
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&amp;)processPool configuration:(Ref&lt;API::PageConfiguration&gt;&amp;&amp;)configuration wkView:(WKView *)wkView
</ins><span class="cx"> {
</span><span class="cx">     if (!(self = [super initWithFrame:frame]))
</span><span class="cx">         return nil;
</span><span class="lines">@@ -240,7 +241,7 @@
</span><span class="cx"> 
</span><span class="cx">     _pageClient = std::make_unique&lt;PageClientImpl&gt;(self, wkView);
</span><span class="cx"> 
</span><del>-    return [self _commonInitializationWithProcessPool:processPool configuration:webPageConfiguration];
</del><ins>+    return [self _commonInitializationWithProcessPool:processPool configuration:WTF::move(configuration)];
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)dealloc
</span></span></pre>
</div>
</div>

</body>
</html>