<!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 <sam@webkit.org>
+
+ 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 <commit-queue@webkit.org>
</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<PageConfiguration> 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<PageConfiguration> PageConfiguration::copy() const
+{
+ auto copy = create();
+
+ copy->m_processPool = this->m_processPool;
+ copy->m_userContentController = this->m_userContentController;
+ copy->m_pageGroup = this->m_pageGroup;
+ copy->m_preferences = this->m_preferences;
+ copy->m_preferenceValues = this->m_preferenceValues;
+ copy->m_relatedPage = this->m_relatedPage;
+ copy->m_visitedLinkProvider = this->m_visitedLinkProvider;
+ copy->m_websiteDataStore = this->m_websiteDataStore;
+ copy->m_sessionID = this->m_sessionID;
+ copy->m_treatsSHA1SignedCertificatesAsInsecure = this->m_treatsSHA1SignedCertificatesAsInsecure;
+#if PLATFORM(IOS)
+ copy->m_alwaysRunsAtForegroundPriority = this->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 "APIObject.h"
</span><ins>+#include "WebPreferencesStore.h"
+#include <WebCore/SessionID.h>
</ins><span class="cx"> #include <wtf/GetPtr.h>
</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<Object::Type::PageConfiguration> {
</span><span class="cx"> public:
</span><del>- static Ref<PageConfiguration> create()
- {
- return adoptRef(*new PageConfiguration);
- }
</del><ins>+ static Ref<PageConfiguration> create();
+
+ explicit PageConfiguration();
</ins><span class="cx"> virtual ~PageConfiguration();
</span><span class="cx">
</span><ins>+ Ref<PageConfiguration> 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& 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<WebKit::WebProcessPool> m_processPool;
</span><span class="cx"> RefPtr<WebKit::WebUserContentControllerProxy> m_userContentController;
</span><span class="cx"> RefPtr<WebKit::WebPageGroup> m_pageGroup;
</span><span class="cx"> RefPtr<WebKit::WebPreferences> m_preferences;
</span><ins>+ WebKit::WebPreferencesStore::ValueMap m_preferenceValues;
</ins><span class="cx"> RefPtr<WebKit::WebPageProxy> m_relatedPage;
</span><ins>+ RefPtr<WebKit::VisitedLinkProvider> m_visitedLinkProvider;
+
+ RefPtr<WebsiteDataStore> 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 "APINavigationAction.h"
</span><span class="cx"> #include "APINavigationClient.h"
</span><span class="cx"> #include "APINavigationResponse.h"
</span><ins>+#include "APIPageConfiguration.h"
</ins><span class="cx"> #include "APIPolicyClient.h"
</span><span class="cx"> #include "APISessionState.h"
</span><span class="cx"> #include "APIUIClient.h"
</span><span class="lines">@@ -127,6 +128,11 @@
</span><span class="cx"> return toAPI(&toImpl(pageRef)->pageGroup());
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+WKPageConfigurationRef WKPageCopyPageConfiguration(WKPageRef pageRef)
+{
+ return toAPI(&toImpl(pageRef)->configuration().copy().leakRef());
+}
+
</ins><span class="cx"> void WKPageLoadURL(WKPageRef pageRef, WKURLRef URLRef)
</span><span class="cx"> {
</span><span class="cx"> toImpl(pageRef)->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)->setRelatedPage(toImpl(relatedPage));
</span><span class="cx"> }
</span><ins>+
+WKWebsiteDataStoreRef WKPageConfigurationGetWebsiteDataStore(WKPageConfigurationRef configuration)
+{
+ return toAPI(toImpl(configuration)->websiteDataStore());
+}
+
+void WKPageConfigurationSetWebsiteDataStore(WKPageConfigurationRef configuration, WKWebsiteDataStoreRef websiteDataStore)
+{
+ toImpl(configuration)->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 "APIFormClient.h"
</span><ins>+#import "APIPageConfiguration.h"
</ins><span class="cx"> #import "APISerializedScriptValue.h"
</span><span class="cx"> #import "CompletionHandlerCallChecker.h"
</span><span class="cx"> #import "DiagnosticLoggingClient.h"
</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& processPool = *[_configuration processPool]->_processPool;
</span><ins>+
+ auto pageConfiguration = API::PageConfiguration::create();
</ins><span class="cx">
</span><del>- WebKit::WebPageConfiguration webPageConfiguration;
- webPageConfiguration.preferences = [_configuration preferences]->_preferences.get();
</del><ins>+ pageConfiguration->setProcessPool(&processPool);
+ pageConfiguration->setPreferences([_configuration preferences]->_preferences.get());
</ins><span class="cx"> if (WKWebView *relatedWebView = [_configuration _relatedWebView])
</span><del>- webPageConfiguration.relatedPage = relatedWebView->_page.get();
</del><ins>+ pageConfiguration->setRelatedPage(relatedWebView->_page.get());
</ins><span class="cx">
</span><del>- webPageConfiguration.userContentController = [_configuration userContentController]->_userContentControllerProxy.get();
- webPageConfiguration.visitedLinkProvider = [_configuration _visitedLinkProvider]->_visitedLinkProvider.get();
- webPageConfiguration.websiteDataStore = &[_configuration websiteDataStore]->_websiteDataStore->websiteDataStore();
- webPageConfiguration.sessionID = webPageConfiguration.websiteDataStore->sessionID();
- webPageConfiguration.treatsSHA1SignedCertificatesAsInsecure = [_configuration _treatsSHA1SignedCertificatesAsInsecure];
</del><ins>+ pageConfiguration->setUserContentController([_configuration userContentController]->_userContentControllerProxy.get());
+ pageConfiguration->setVisitedLinkProvider([_configuration _visitedLinkProvider]->_visitedLinkProvider.get());
+ pageConfiguration->setWebsiteDataStore([_configuration websiteDataStore]->_websiteDataStore.get());
+ pageConfiguration->setSessionID(pageConfiguration->websiteDataStore()->websiteDataStore().sessionID());
+ pageConfiguration->setTreatsSHA1SignedCertificatesAsInsecure([_configuration _treatsSHA1SignedCertificatesAsInsecure]);
</ins><span class="cx">
</span><span class="cx"> RefPtr<WebKit::WebPageGroup> 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->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->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->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] && shouldAllowPictureInPictureMediaPlayback()));
- webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback]));
</del><ins>+ pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
+ pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback()));
+ pageConfiguration->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->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->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 "WebKitWebContext.h"
</span><span class="cx">
</span><span class="cx"> #include "APIDownloadClient.h"
</span><ins>+#include "APIPageConfiguration.h"
</ins><span class="cx"> #include "APIProcessPoolConfiguration.h"
</span><span class="cx"> #include "APIString.h"
</span><span class="cx"> #include "TextChecker.h"
</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 = &webkitWebsiteDataManagerGetDataStore(context->priv->websiteDataManager.get());
- webPageConfiguration.sessionID = webPageConfiguration.websiteDataStore->sessionID();
- webkitWebViewBaseCreateWebPage(webViewBase, context->priv->context.get(), WTF::move(webPageConfiguration));
</del><span class="cx">
</span><ins>+ auto pageConfiguration = API::PageConfiguration::create();
+ pageConfiguration->setPreferences(webkitSettingsGetPreferences(webkit_web_view_get_settings(webView)));
+ pageConfiguration->setRelatedPage(relatedView ? webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(relatedView)) : nullptr);
+ pageConfiguration->setUserContentController(userContentManager ? webkitUserContentManagerGetUserContentControllerProxy(userContentManager) : nullptr);
+ pageConfiguration->setWebsiteDataStore(&webkitWebsiteDataManagerGetDataStore(context->priv->websiteDataManager.get()));
+ pageConfiguration->setSessionID(pageConfiguration->websiteDataStore()->websiteDataStore().sessionID());
+ webkitWebViewBaseCreateWebPage(webViewBase, context->priv->context.get(), WTF::move(pageConfiguration));
+
</ins><span class="cx"> WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
</span><span class="cx"> context->priv->webViews.set(page->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 "config.h"
</span><span class="cx"> #include "WebKitWebViewBase.h"
</span><span class="cx">
</span><ins>+#include "APIPageConfiguration.h"
</ins><span class="cx"> #include "DrawingAreaProxyImpl.h"
</span><span class="cx"> #include "InputMethodFilter.h"
</span><span class="cx"> #include "KeyBindingTranslator.h"
</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->setPreferences(preferences);
+ pageConfiguration->setPageGroup(pageGroup);
+ pageConfiguration->setRelatedPage(relatedPage);
+ pageConfiguration->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&& configuration)
</del><ins>+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebProcessPool* context, Ref<API::PageConfiguration>&& configuration)
</ins><span class="cx"> {
</span><span class="cx"> WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
</span><span class="cx"> priv->pageProxy = context->createWebPage(*priv->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&&);
</del><ins>+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebProcessPool*, Ref<API::PageConfiguration>&&);
</ins><span class="cx"> void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*);
</span><span class="cx"> void webkitWebViewBaseSetTooltipArea(WebKitWebViewBase*, const WebCore::IntRect&);
</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<WebsiteDataStore> websiteDataStore;
</del><ins>+ RefPtr<API::WebsiteDataStore> websiteDataStore;
</ins><span class="cx"> GUniquePtr<char> baseDataDirectory;
</span><span class="cx"> GUniquePtr<char> baseCacheDirectory;
</span><span class="cx"> GUniquePtr<char> localStorageDirectory;
</span><span class="lines">@@ -299,12 +299,12 @@
</span><span class="cx"> WebKitWebsiteDataManager* webkitWebsiteDataManagerCreate(WebsiteDataStore::Configuration&& 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->priv->websiteDataStore = WebsiteDataStore::create(WTF::move(configuration));
</del><ins>+ manager->priv->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& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager)
</del><ins>+API::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager)
</ins><span class="cx"> {
</span><span class="cx"> WebKitWebsiteDataManagerPrivate* priv = manager->priv;
</span><span class="cx"> if (!priv->websiteDataStore) {
</span><span class="lines">@@ -318,7 +318,7 @@
</span><span class="cx"> configuration.webSQLDatabaseDirectory = !priv->webSQLDirectory ?
</span><span class="cx"> API::WebsiteDataStore::defaultWebSQLDatabaseDirectory() : WebCore::filenameToString(priv->webSQLDirectory.get());
</span><span class="cx"> configuration.mediaKeysStorageDirectory = API::WebsiteDataStore::defaultMediaKeysStorageDirectory();
</span><del>- priv->websiteDataStore = WebsiteDataStore::create(WTF::move(configuration));
</del><ins>+ priv->websiteDataStore = API::WebsiteDataStore::create(WTF::move(configuration));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return *priv->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 "APIWebsiteDataStore.h"
</ins><span class="cx"> #include "WebKitPrivate.h"
</span><span class="cx"> #include "WebsiteDataStore.h"
</span><span class="cx">
</span><span class="cx"> WebKitWebsiteDataManager* webkitWebsiteDataManagerCreate(WebKit::WebsiteDataStore::Configuration&&);
</span><del>-WebKit::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager*);
</del><ins>+API::WebsiteDataStore& 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 "APIPageConfiguration.h"
</ins><span class="cx"> #import "RemoteLayerTreeTransaction.h"
</span><span class="cx"> #import "UIKitSPI.h"
</span><span class="cx"> #import "ViewGestureController.h"
</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->setProcessPool(toImpl(contextRef));
+ configuration->setPageGroup(toImpl(pageGroupRef));
+ configuration->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&)processPool configuration:(WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</del><ins>+- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)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->_primaryTrackingArea.get()];
</span><span class="cx">
</span><span class="cx"> _data->_pageClient = std::make_unique<PageClientImpl>(self, webView);
</span><del>- _data->_page = processPool.createWebPage(*_data->_pageClient, WTF::move(webPageConfiguration));
</del><ins>+ _data->_page = processPool.createWebPage(*_data->_pageClient, WTF::move(configuration));
</ins><span class="cx"> _data->_page->setAddsVisitedLinks(processPool.historyClient().addsVisitedLinks());
</span><span class="cx">
</span><span class="cx"> _data->_page->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->setProcessPool(toImpl(contextRef));
+ configuration->setPageGroup(toImpl(pageGroupRef));
+ configuration->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& processPool = *toImpl(configuration)->processPool();
- auto webPageConfiguration = toImpl(configuration)->webPageConfiguration();
</del><ins>+ Ref<API::PageConfiguration> configuration = *toImpl(configurationRef);
+ auto& processPool = *configuration->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&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
-#endif
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration webView:(WKWebView *)webView;
</ins><span class="cx">
</span><span class="cx"> - (std::unique_ptr<WebKit::DrawingAreaProxy>)_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 "WebView.h"
</span><span class="cx">
</span><ins>+#include "APIPageConfiguration.h"
</ins><span class="cx"> #include "CoordinatedDrawingAreaProxy.h"
</span><span class="cx"> #include "CoordinatedGraphicsScene.h"
</span><span class="cx"> #include "CoordinatedLayerTreeHostProxy.h"
</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->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->createWebPage(*this, WTF::move(webPageConfiguration));
</del><ins>+ m_page = context->createWebPage(*this, WTF::move(pageConfiguration));
</ins><span class="cx">
</span><span class="cx"> m_page->pageGroup().preferences().setAcceleratedCompositingEnabled(true);
</span><span class="cx"> m_page->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 "APINavigationAction.h"
</span><span class="cx"> #include "APINavigationClient.h"
</span><span class="cx"> #include "APINavigationResponse.h"
</span><ins>+#include "APIPageConfiguration.h"
</ins><span class="cx"> #include "APIPolicyClient.h"
</span><span class="cx"> #include "APISecurityOrigin.h"
</span><span class="cx"> #include "APIUIClient.h"
</span><span class="lines">@@ -293,13 +294,14 @@
</span><span class="cx"> PageClient& m_pageClient;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-Ref<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, const WebPageConfiguration& configuration)
</del><ins>+Ref<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& 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& pageClient, WebProcessProxy& process, uint64_t pageID, const WebPageConfiguration& configuration)
</del><ins>+WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration)
</ins><span class="cx"> : m_pageClient(pageClient)
</span><ins>+ , m_configuration(WTF::move(configuration))
</ins><span class="cx"> , m_loaderClient(std::make_unique<API::LoaderClient>())
</span><span class="cx"> , m_policyClient(std::make_unique<API::PolicyClient>())
</span><span class="cx"> , m_formClient(std::make_unique<API::FormClient>())
</span><span class="lines">@@ -311,14 +313,14 @@
</span><span class="cx"> #endif
</span><span class="cx"> , m_navigationState(std::make_unique<WebNavigationState>())
</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->pageGroup())
+ , m_preferences(*m_configuration->preferences())
+ , m_userContentController(m_configuration->userContentController())
+ , m_visitedLinkProvider(*m_configuration->visitedLinkProvider())
+ , m_websiteDataStore(m_configuration->websiteDataStore()->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->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->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->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->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& 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<const WebCore::MachSendRight&> 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<API::Object::Type::Page>
</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<WebPageProxy> create(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&);
</del><ins>+ static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, uint64_t pageID, Ref<API::PageConfiguration>&&);
</ins><span class="cx"> virtual ~WebPageProxy();
</span><span class="cx">
</span><ins>+ const API::PageConfiguration& 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&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&);
</del><ins>+ WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, Ref<API::PageConfiguration>&&);
</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&, const String& messageName, const UserData& messageBody, UserData& returnUserData);
</span><span class="cx">
</span><span class="cx"> PageClient& m_pageClient;
</span><ins>+ Ref<API::PageConfiguration> m_configuration;
+
</ins><span class="cx"> std::unique_ptr<API::LoaderClient> m_loaderClient;
</span><span class="cx"> std::unique_ptr<API::PolicyClient> m_policyClient;
</span><span class="cx"> std::unique_ptr<API::NavigationClient> 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 "APIArray.h"
</span><span class="cx"> #include "APIDownloadClient.h"
</span><span class="cx"> #include "APILegacyContextHistoryClient.h"
</span><ins>+#include "APIPageConfiguration.h"
</ins><span class="cx"> #include "APIProcessPoolConfiguration.h"
</span><span class="cx"> #include "CustomProtocolManagerMessages.h"
</span><span class="cx"> #include "DownloadProxy.h"
</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<WebPageProxy> WebProcessPool::createWebPage(PageClient& pageClient, WebPageConfiguration configuration)
</del><ins>+PassRefPtr<WebPageProxy> WebProcessPool::createWebPage(PageClient& pageClient, Ref<API::PageConfiguration>&& pageConfiguration)
</ins><span class="cx"> {
</span><del>- if (!configuration.pageGroup)
- configuration.pageGroup = m_defaultPageGroup.ptr();
- if (!configuration.preferences)
- configuration.preferences = &configuration.pageGroup->preferences();
- if (!configuration.visitedLinkProvider)
- configuration.visitedLinkProvider = m_visitedLinkProvider.ptr();
- if (!configuration.websiteDataStore) {
- ASSERT(!configuration.sessionID.isValid());
- configuration.websiteDataStore = &m_websiteDataStore->websiteDataStore();
- configuration.sessionID = configuration.preferences->privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID();
</del><ins>+ if (!pageConfiguration->pageGroup())
+ pageConfiguration->setPageGroup(m_defaultPageGroup.ptr());
+ if (!pageConfiguration->preferences())
+ pageConfiguration->setPreferences(&pageConfiguration->pageGroup()->preferences());
+ if (!pageConfiguration->visitedLinkProvider())
+ pageConfiguration->setVisitedLinkProvider(m_visitedLinkProvider.ptr());
+ if (!pageConfiguration->websiteDataStore()) {
+ ASSERT(!pageConfiguration->sessionID().isValid());
+ pageConfiguration->setWebsiteDataStore(m_websiteDataStore.get());
+ pageConfiguration->setSessionID(pageConfiguration->preferences()->privateBrowsingEnabled() ? SessionID::legacyPrivateSessionID() : SessionID::defaultSessionID());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RefPtr<WebProcessProxy> 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->relatedPage()) {
</ins><span class="cx"> // Sharing processes, e.g. when creating the page via window.open().
</span><del>- process = &configuration.relatedPage->process();
</del><ins>+ process = &pageConfiguration->relatedPage()->process();
</ins><span class="cx"> } else
</span><span class="cx"> process = &createNewWebProcessRespectingProcessCountLimit();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- return process->createWebPage(pageClient, WTF::move(configuration));
</del><ins>+ return process->createWebPage(pageClient, WTF::move(pageConfiguration));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DownloadProxy* WebProcessPool::download(WebPageProxy* initiatingPage, const ResourceRequest& 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<API::Dictionary*> 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<WebPageProxy> createWebPage(PageClient&, WebPageConfiguration);
</del><ins>+ PassRefPtr<WebPageProxy> createWebPage(PageClient&, Ref<API::PageConfiguration>&&);
</ins><span class="cx">
</span><span class="cx"> const String& injectedBundlePath() const { return m_configuration->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<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, const WebPageConfiguration& configuration)
</del><ins>+Ref<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, Ref<API::PageConfiguration>&& pageConfiguration)
</ins><span class="cx"> {
</span><span class="cx"> uint64_t pageID = generatePageID();
</span><del>- Ref<WebPageProxy> webPage = WebPageProxy::create(pageClient, *this, pageID, configuration);
</del><ins>+ Ref<WebPageProxy> 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& processPool() { return m_processPool; }
</span><span class="cx">
</span><span class="cx"> static WebPageProxy* webPage(uint64_t pageID);
</span><del>- Ref<WebPageProxy> createWebPage(PageClient&, const WebPageConfiguration&);
</del><ins>+ Ref<WebPageProxy> createWebPage(PageClient&, Ref<API::PageConfiguration>&&);
</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&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration wkView:(WKView *)webView;
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration webView:(WKWebView *)webView;
+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)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 "APIPageConfiguration.h"
</ins><span class="cx"> #import "ApplicationStateTracker.h"
</span><span class="cx"> #import "PageClientImplIOS.h"
</span><span class="cx"> #import "RemoteLayerTreeDrawingAreaProxy.h"
</span><span class="lines">@@ -181,11 +182,11 @@
</span><span class="cx"> std::unique_ptr<ApplicationStateTracker> _applicationStateTracker;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-- (instancetype)_commonInitializationWithProcessPool:(WebKit::WebProcessPool&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration
</del><ins>+- (instancetype)_commonInitializationWithProcessPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)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->initializeWebPage();
</span><span class="cx"> _page->setIntrinsicDeviceScaleFactor(WKGetScaleFactorForScreen([UIScreen mainScreen]));
</span><span class="cx"> _page->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&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)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<PageClientImpl>(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&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration wkView:(WKView *)wkView
</del><ins>+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)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<PageClientImpl>(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>