Diff
Modified: branches/safari-601-branch/Source/WebKit2/CMakeLists.txt (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/CMakeLists.txt 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/CMakeLists.txt 2015-12-15 00:35:10 UTC (rev 194074)
@@ -393,6 +393,7 @@
UIProcess/API/APIFrameInfo.cpp
UIProcess/API/APINavigation.cpp
UIProcess/API/APINavigationData.cpp
+ UIProcess/API/APIPageConfiguration.cpp
UIProcess/API/APIProcessPoolConfiguration.cpp
UIProcess/API/APISession.cpp
UIProcess/API/APISessionState.cpp
Modified: branches/safari-601-branch/Source/WebKit2/ChangeLog (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/ChangeLog 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/ChangeLog 2015-12-15 00:35:10 UTC (rev 194074)
@@ -1,3 +1,89 @@
+2015-12-08 Harris Papadopoulos <cpapadopou...@apple.com>
+
+ Merge r188228. rdar://problem/23816165
+
+ 2015-08-08 Sam Weinig <s...@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]):
+
2015-12-11 Matthew Hanson <matthew_han...@apple.com>
Merge r191628. rdar://problem/23715623
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIPageConfiguration.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -37,6 +37,11 @@
namespace API {
+Ref<PageConfiguration> PageConfiguration::create()
+{
+ return adoptRef(*new PageConfiguration);
+}
+
PageConfiguration::PageConfiguration()
{
}
@@ -45,6 +50,28 @@
{
}
+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;
+}
+
+
WebProcessPool* PageConfiguration::processPool()
{
return m_processPool.get();
@@ -95,16 +122,35 @@
m_relatedPage = relatedPage;
}
-WebKit::WebPageConfiguration PageConfiguration::webPageConfiguration()
+
+VisitedLinkProvider* PageConfiguration::visitedLinkProvider()
{
- WebKit::WebPageConfiguration configuration;
+ return m_visitedLinkProvider.get();
+}
- configuration.userContentController = userContentController();
- configuration.pageGroup = pageGroup();
- configuration.preferences = preferences();
- configuration.relatedPage = relatedPage();
+void PageConfiguration::setVisitedLinkProvider(VisitedLinkProvider* visitedLinkProvider)
+{
+ m_visitedLinkProvider = visitedLinkProvider;
+}
- return configuration;
+API::WebsiteDataStore* PageConfiguration::websiteDataStore()
+{
+ return m_websiteDataStore.get();
}
+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;
+}
+
} // namespace API
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIPageConfiguration.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIPageConfiguration.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/APIPageConfiguration.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -27,27 +27,32 @@
#define APIPageConfiguration_h
#include "APIObject.h"
+#include "WebPreferencesStore.h"
+#include <WebCore/SessionID.h>
#include <wtf/GetPtr.h>
namespace WebKit {
-struct WebPageConfiguration;
-class WebUserContentControllerProxy;
-class WebProcessPool;
+class VisitedLinkProvider;
class WebPageGroup;
+class WebPageProxy;
class WebPreferences;
-class WebPageProxy;
+class WebProcessPool;
+class WebUserContentControllerProxy;
}
namespace API {
+class WebsiteDataStore;
+
class PageConfiguration : public ObjectImpl<Object::Type::PageConfiguration> {
public:
- static Ref<PageConfiguration> create()
- {
- return adoptRef(*new PageConfiguration);
- }
+ static Ref<PageConfiguration> create();
+
+ explicit PageConfiguration();
virtual ~PageConfiguration();
+ Ref<PageConfiguration> copy() const;
+
// FIXME: The configuration properties should return their default values
// rather than nullptr.
@@ -63,19 +68,47 @@
WebKit::WebPreferences* preferences();
void setPreferences(WebKit::WebPreferences*);
+ WebKit::WebPreferencesStore::ValueMap& preferenceValues() { return m_preferenceValues; }
+
WebKit::WebPageProxy* relatedPage();
void setRelatedPage(WebKit::WebPageProxy*);
- WebKit::WebPageConfiguration webPageConfiguration();
+ WebKit::VisitedLinkProvider* visitedLinkProvider();
+ void setVisitedLinkProvider(WebKit::VisitedLinkProvider*);
+ 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
+
private:
- PageConfiguration();
RefPtr<WebKit::WebProcessPool> m_processPool;
RefPtr<WebKit::WebUserContentControllerProxy> m_userContentController;
RefPtr<WebKit::WebPageGroup> m_pageGroup;
RefPtr<WebKit::WebPreferences> m_preferences;
+ WebKit::WebPreferencesStore::ValueMap m_preferenceValues;
RefPtr<WebKit::WebPageProxy> m_relatedPage;
+ 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
};
} // namespace API
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -37,6 +37,7 @@
#include "APINavigationAction.h"
#include "APINavigationClient.h"
#include "APINavigationResponse.h"
+#include "APIPageConfiguration.h"
#include "APIPolicyClient.h"
#include "APISessionState.h"
#include "APIUIClient.h"
@@ -127,6 +128,11 @@
return toAPI(&toImpl(pageRef)->pageGroup());
}
+WKPageConfigurationRef WKPageCopyPageConfiguration(WKPageRef pageRef)
+{
+ return toAPI(&toImpl(pageRef)->configuration().copy().leakRef());
+}
+
void WKPageLoadURL(WKPageRef pageRef, WKURLRef URLRef)
{
toImpl(pageRef)->loadRequest(URL(URL(), toWTFString(URLRef)));
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPage.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -59,6 +59,8 @@
WK_EXPORT WKContextRef WKPageGetContext(WKPageRef page);
WK_EXPORT WKPageGroupRef WKPageGetPageGroup(WKPageRef page);
+WK_EXPORT WKPageConfigurationRef WKPageCopyPageConfiguration(WKPageRef page);
+
// URL Requests
WK_EXPORT void WKPageLoadURL(WKPageRef page, WKURLRef url);
WK_EXPORT void WKPageLoadURLWithUserData(WKPageRef page, WKURLRef url, WKTypeRef userData);
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -93,3 +93,13 @@
{
toImpl(configuration)->setRelatedPage(toImpl(relatedPage));
}
+
+WKWebsiteDataStoreRef WKPageConfigurationGetWebsiteDataStore(WKPageConfigurationRef configuration)
+{
+ return toAPI(toImpl(configuration)->websiteDataStore());
+}
+
+void WKPageConfigurationSetWebsiteDataStore(WKPageConfigurationRef configuration, WKWebsiteDataStoreRef websiteDataStore)
+{
+ toImpl(configuration)->setWebsiteDataStore(toImpl(websiteDataStore));
+}
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/C/WKPageConfigurationRef.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -51,6 +51,9 @@
WK_EXPORT WKPageRef WKPageConfigurationGetRelatedPage(WKPageConfigurationRef configuration);
WK_EXPORT void WKPageConfigurationSetRelatedPage(WKPageConfigurationRef configuration, WKPageRef relatedPage);
+WK_EXPORT WKWebsiteDataStoreRef WKPageConfigurationGetWebsiteDataStore(WKPageConfigurationRef configuration);
+WK_EXPORT void WKPageConfigurationSetWebsiteDataStore(WKPageConfigurationRef configuration, WKWebsiteDataStoreRef websiteDataStore);
+
#ifdef __cplusplus
}
#endif
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2015-12-15 00:35:10 UTC (rev 194074)
@@ -29,6 +29,7 @@
#if WK_API_ENABLED
#import "APIFormClient.h"
+#import "APIPageConfiguration.h"
#import "APISerializedScriptValue.h"
#import "CompletionHandlerCallChecker.h"
#import "DiagnosticLoggingClient.h"
@@ -300,36 +301,38 @@
CGRect bounds = self.bounds;
WebKit::WebProcessPool& processPool = *[_configuration processPool]->_processPool;
+
+ auto pageConfiguration = API::PageConfiguration::create();
- WebKit::WebPageConfiguration webPageConfiguration;
- webPageConfiguration.preferences = [_configuration preferences]->_preferences.get();
+ pageConfiguration->setProcessPool(&processPool);
+ pageConfiguration->setPreferences([_configuration preferences]->_preferences.get());
if (WKWebView *relatedWebView = [_configuration _relatedWebView])
- webPageConfiguration.relatedPage = relatedWebView->_page.get();
+ pageConfiguration->setRelatedPage(relatedWebView->_page.get());
- 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];
+ 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]);
RefPtr<WebKit::WebPageGroup> pageGroup;
NSString *groupIdentifier = configuration._groupIdentifier;
if (groupIdentifier.length) {
pageGroup = WebKit::WebPageGroup::create(configuration._groupIdentifier);
- webPageConfiguration.pageGroup = pageGroup.get();
+ pageConfiguration->setPageGroup(pageGroup.get());
}
- webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::suppressesIncrementalRenderingKey(), WebKit::WebPreferencesStore::Value(!![_configuration suppressesIncrementalRendering]));
+ pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::suppressesIncrementalRenderingKey(), WebKit::WebPreferencesStore::Value(!![_configuration suppressesIncrementalRendering]));
#if PLATFORM(IOS)
- webPageConfiguration.alwaysRunsAtForegroundPriority = [_configuration _alwaysRunsAtForegroundPriority];
+ pageConfiguration->setAlwaysRunsAtForegroundPriority([_configuration _alwaysRunsAtForegroundPriority]);
- 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]));
+ 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]));
#endif
#if ENABLE(WIRELESS_PLAYBACK_TARGET)
- webPageConfiguration.preferenceValues.set(WebKit::WebPreferencesKey::allowsAirPlayForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsAirPlayForMediaPlayback]));
+ pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowsAirPlayForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsAirPlayForMediaPlayback]));
#endif
#if PLATFORM(IOS)
@@ -339,7 +342,7 @@
[self addSubview:_scrollView.get()];
- _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(webPageConfiguration) webView:self]);
+ _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(pageConfiguration) webView:self]);
_page = [_contentView page];
_page->setDeviceOrientation(deviceOrientation());
@@ -367,7 +370,7 @@
#endif
#if PLATFORM(MAC)
- _wkView = adoptNS([[WKView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(webPageConfiguration) webView:self]);
+ _wkView = adoptNS([[WKView alloc] initWithFrame:bounds processPool:processPool configuration:WTF::move(pageConfiguration) webView:self]);
[self addSubview:_wkView.get()];
_page = WebKit::toImpl([_wkView pageRef]);
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -21,6 +21,7 @@
#include "WebKitWebContext.h"
#include "APIDownloadClient.h"
+#include "APIPageConfiguration.h"
#include "APIProcessPoolConfiguration.h"
#include "APIString.h"
#include "TextChecker.h"
@@ -1274,14 +1275,15 @@
void webkitWebContextCreatePageForWebView(WebKitWebContext* context, WebKitWebView* webView, WebKitUserContentManager* userContentManager, WebKitWebView* relatedView)
{
WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(webView);
- 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));
+ 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));
+
WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
context->priv->webViews.set(page->pageID(), webView);
}
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -29,6 +29,7 @@
#include "config.h"
#include "WebKitWebViewBase.h"
+#include "APIPageConfiguration.h"
#include "DrawingAreaProxyImpl.h"
#include "InputMethodFilter.h"
#include "KeyBindingTranslator.h"
@@ -1066,12 +1067,13 @@
WebKitWebViewBase* webkitWebViewBaseCreate(WebProcessPool* context, WebPreferences* preferences, WebPageGroup* pageGroup, WebUserContentControllerProxy* userContentController, WebPageProxy* relatedPage)
{
WebKitWebViewBase* webkitWebViewBase = WEBKIT_WEB_VIEW_BASE(g_object_new(WEBKIT_TYPE_WEB_VIEW_BASE, nullptr));
- WebPageConfiguration webPageConfiguration;
- webPageConfiguration.preferences = preferences;
- webPageConfiguration.pageGroup = pageGroup;
- webPageConfiguration.relatedPage = relatedPage;
- webPageConfiguration.userContentController = userContentController;
- webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, WTF::move(webPageConfiguration));
+
+ auto pageConfiguration = API::PageConfiguration::create();
+ pageConfiguration->setPreferences(preferences);
+ pageConfiguration->setPageGroup(pageGroup);
+ pageConfiguration->setRelatedPage(relatedPage);
+ pageConfiguration->setUserContentController(userContentController);
+ webkitWebViewBaseCreateWebPage(webkitWebViewBase, context, WTF::move(pageConfiguration));
return webkitWebViewBase;
}
@@ -1092,7 +1094,7 @@
}
#endif // HAVE(GTK_SCALE_FACTOR)
-void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebProcessPool* context, WebPageConfiguration&& configuration)
+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase* webkitWebViewBase, WebProcessPool* context, Ref<API::PageConfiguration>&& configuration)
{
WebKitWebViewBasePrivate* priv = webkitWebViewBase->priv;
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -39,7 +39,7 @@
WebKitWebViewBase* webkitWebViewBaseCreate(WebKit::WebProcessPool*, WebKit::WebPreferences*, WebKit::WebPageGroup*, WebKit::WebUserContentControllerProxy*, WebKit::WebPageProxy*);
GtkIMContext* webkitWebViewBaseGetIMContext(WebKitWebViewBase*);
WebKit::WebPageProxy* webkitWebViewBaseGetPage(WebKitWebViewBase*);
-void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebProcessPool*, WebKit::WebPageConfiguration&&);
+void webkitWebViewBaseCreateWebPage(WebKitWebViewBase*, WebKit::WebProcessPool*, Ref<API::PageConfiguration>&&);
void webkitWebViewBaseSetTooltipText(WebKitWebViewBase*, const char*);
void webkitWebViewBaseSetTooltipArea(WebKitWebViewBase*, const WebCore::IntRect&);
void webkitWebViewBaseForwardNextKeyEvent(WebKitWebViewBase*);
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManager.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -70,7 +70,7 @@
};
struct _WebKitWebsiteDataManagerPrivate {
- RefPtr<WebsiteDataStore> websiteDataStore;
+ RefPtr<API::WebsiteDataStore> websiteDataStore;
GUniquePtr<char> baseDataDirectory;
GUniquePtr<char> baseCacheDirectory;
GUniquePtr<char> localStorageDirectory;
@@ -299,12 +299,12 @@
WebKitWebsiteDataManager* webkitWebsiteDataManagerCreate(WebsiteDataStore::Configuration&& configuration)
{
WebKitWebsiteDataManager* manager = WEBKIT_WEBSITE_DATA_MANAGER(g_object_new(WEBKIT_TYPE_WEBSITE_DATA_MANAGER, nullptr));
- manager->priv->websiteDataStore = WebsiteDataStore::create(WTF::move(configuration));
+ manager->priv->websiteDataStore = API::WebsiteDataStore::create(WTF::move(configuration));
return manager;
}
-WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager)
+API::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager* manager)
{
WebKitWebsiteDataManagerPrivate* priv = manager->priv;
if (!priv->websiteDataStore) {
@@ -318,7 +318,7 @@
configuration.webSQLDatabaseDirectory = !priv->webSQLDirectory ?
API::WebsiteDataStore::defaultWebSQLDatabaseDirectory() : WebCore::filenameToString(priv->webSQLDirectory.get());
configuration.mediaKeysStorageDirectory = API::WebsiteDataStore::defaultMediaKeysStorageDirectory();
- priv->websiteDataStore = WebsiteDataStore::create(WTF::move(configuration));
+ priv->websiteDataStore = API::WebsiteDataStore::create(WTF::move(configuration));
}
return *priv->websiteDataStore;
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -20,10 +20,11 @@
#ifndef WebKitWebsiteDataManagerPrivate_h
#define WebKitWebsiteDataManagerPrivate_h
+#include "APIWebsiteDataStore.h"
#include "WebKitPrivate.h"
#include "WebsiteDataStore.h"
WebKitWebsiteDataManager* webkitWebsiteDataManagerCreate(WebKit::WebsiteDataStore::Configuration&&);
-WebKit::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager*);
+API::WebsiteDataStore& webkitWebsiteDataManagerGetDataStore(WebKitWebsiteDataManager*);
#endif // WebKitWebsiteDataManagerPrivate_h
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm 2015-12-15 00:35:10 UTC (rev 194074)
@@ -28,6 +28,7 @@
#if PLATFORM(IOS)
+#import "APIPageConfiguration.h"
#import "RemoteLayerTreeTransaction.h"
#import "UIKitSPI.h"
#import "ViewGestureController.h"
@@ -225,11 +226,12 @@
[self addSubview:_scrollView.get()];
- WebKit::WebPageConfiguration webPageConfiguration;
- webPageConfiguration.pageGroup = toImpl(pageGroupRef);
- webPageConfiguration.relatedPage = toImpl(relatedPage);
+ auto configuration = API::PageConfiguration::create();
+ configuration->setProcessPool(toImpl(contextRef));
+ configuration->setPageGroup(toImpl(pageGroupRef));
+ configuration->setRelatedPage(toImpl(relatedPage));
- _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:*toImpl(contextRef) configuration:WTF::move(webPageConfiguration) wkView:self]);
+ _contentView = adoptNS([[WKContentView alloc] initWithFrame:bounds processPool:*toImpl(contextRef) configuration:WTF::move(configuration) wkView:self]);
[[_contentView layer] setAnchorPoint:CGPointZero];
[_contentView setFrame:bounds];
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm 2015-12-15 00:35:10 UTC (rev 194074)
@@ -3744,7 +3744,7 @@
[self addTrackingArea:trackingArea];
}
-- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&)processPool configuration:(WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
+- (instancetype)initWithFrame:(NSRect)frame processPool:(WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration webView:(WKWebView *)webView
{
self = [super initWithFrame:frame];
if (!self)
@@ -3766,7 +3766,7 @@
[self addTrackingArea:_data->_primaryTrackingArea.get()];
_data->_pageClient = std::make_unique<PageClientImpl>(self, webView);
- _data->_page = processPool.createWebPage(*_data->_pageClient, WTF::move(webPageConfiguration));
+ _data->_page = processPool.createWebPage(*_data->_pageClient, WTF::move(configuration));
_data->_page->setAddsVisitedLinks(processPool.historyClient().addsVisitedLinks());
_data->_page->setIntrinsicDeviceScaleFactor([self _intrinsicDeviceScaleFactor]);
@@ -3994,19 +3994,20 @@
- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef relatedToPage:(WKPageRef)relatedPage
{
- WebPageConfiguration webPageConfiguration;
- webPageConfiguration.pageGroup = toImpl(pageGroupRef);
- webPageConfiguration.relatedPage = toImpl(relatedPage);
+ auto configuration = API::PageConfiguration::create();
+ configuration->setProcessPool(toImpl(contextRef));
+ configuration->setPageGroup(toImpl(pageGroupRef));
+ configuration->setRelatedPage(toImpl(relatedPage));
- return [self initWithFrame:frame processPool:*toImpl(contextRef) configuration:webPageConfiguration webView:nil];
+ return [self initWithFrame:frame processPool:*toImpl(contextRef) configuration:WTF::move(configuration) webView:nil];
}
-- (id)initWithFrame:(NSRect)frame configurationRef:(WKPageConfigurationRef)configuration
+- (id)initWithFrame:(NSRect)frame configurationRef:(WKPageConfigurationRef)configurationRef
{
- auto& processPool = *toImpl(configuration)->processPool();
- auto webPageConfiguration = toImpl(configuration)->webPageConfiguration();
+ Ref<API::PageConfiguration> configuration = *toImpl(configurationRef);
+ auto& processPool = *configuration->processPool();
- return [self initWithFrame:frame processPool:processPool configuration:webPageConfiguration webView:nil];
+ return [self initWithFrame:frame processPool:processPool configuration:WTF::move(configuration) webView:nil];
}
- (BOOL)wantsUpdateLayer
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/API/mac/WKViewInternal.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -38,6 +38,7 @@
namespace API {
class Object;
+class PageConfiguration;
}
namespace IPC {
@@ -58,7 +59,6 @@
class WebProcessPool;
struct ColorSpaceData;
struct EditorState;
-struct WebPageConfiguration;
}
@class WKFullScreenWindowController;
@@ -68,9 +68,7 @@
#endif
@interface WKView ()
-#if WK_API_ENABLED
-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView;
-#endif
+- (instancetype)initWithFrame:(NSRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration webView:(WKWebView *)webView;
- (std::unique_ptr<WebKit::DrawingAreaProxy>)_createDrawingAreaProxy;
- (BOOL)_isFocused;
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -29,6 +29,7 @@
#include "WebView.h"
+#include "APIPageConfiguration.h"
#include "CoordinatedDrawingAreaProxy.h"
#include "CoordinatedGraphicsScene.h"
#include "CoordinatedLayerTreeHostProxy.h"
@@ -52,11 +53,11 @@
, m_visible(false)
, m_opacity(1.0)
{
- WebPageConfiguration webPageConfiguration;
- webPageConfiguration.pageGroup = pageGroup;
+ auto pageConfiguration = API::PageConfiguration::create();
+ pageConfiguration->setPageGroup(pageGroup);
// Need to call createWebPage after other data members, specifically m_visible, are initialized.
- m_page = context->createWebPage(*this, WTF::move(webPageConfiguration));
+ m_page = context->createWebPage(*this, WTF::move(pageConfiguration));
m_page->pageGroup().preferences().setAcceleratedCompositingEnabled(true);
m_page->pageGroup().preferences().setForceCompositingMode(true);
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/WebPageProxy.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -40,6 +40,7 @@
#include "APINavigationAction.h"
#include "APINavigationClient.h"
#include "APINavigationResponse.h"
+#include "APIPageConfiguration.h"
#include "APIPolicyClient.h"
#include "APISecurityOrigin.h"
#include "APIUIClient.h"
@@ -292,13 +293,14 @@
PageClient& m_pageClient;
};
-Ref<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, const WebPageConfiguration& configuration)
+Ref<WebPageProxy> WebPageProxy::create(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration)
{
- return adoptRef(*new WebPageProxy(pageClient, process, pageID, configuration));
+ return adoptRef(*new WebPageProxy(pageClient, process, pageID, WTF::move(configuration)));
}
-WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, const WebPageConfiguration& configuration)
+WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration)
: m_pageClient(pageClient)
+ , m_configuration(WTF::move(configuration))
, m_loaderClient(std::make_unique<API::LoaderClient>())
, m_policyClient(std::make_unique<API::PolicyClient>())
, m_formClient(std::make_unique<API::FormClient>())
@@ -310,14 +312,14 @@
#endif
, m_navigationState(std::make_unique<WebNavigationState>())
, m_process(process)
- , m_pageGroup(*configuration.pageGroup)
- , m_preferences(*configuration.preferences)
- , m_userContentController(configuration.userContentController)
- , m_visitedLinkProvider(*configuration.visitedLinkProvider)
- , m_websiteDataStore(*configuration.websiteDataStore)
+ , 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())
, m_mainFrame(nullptr)
, m_userAgent(standardUserAgent())
- , m_treatsSHA1CertificatesAsInsecure(configuration.treatsSHA1SignedCertificatesAsInsecure)
+ , m_treatsSHA1CertificatesAsInsecure(m_configuration->treatsSHA1SignedCertificatesAsInsecure())
#if PLATFORM(IOS)
, m_hasReceivedLayerTreeTransactionAfterDidCommitLoad(true)
, m_firstLayerTreeTransactionIdAfterDidCommitLoad(0)
@@ -334,7 +336,7 @@
, m_viewState(ViewState::NoFlags)
, m_viewWasEverInWindow(false)
#if PLATFORM(IOS)
- , m_alwaysRunsAtForegroundPriority(configuration.alwaysRunsAtForegroundPriority)
+ , m_alwaysRunsAtForegroundPriority(m_configuration->alwaysRunsAtForegroundPriority())
#endif
, m_backForwardList(WebBackForwardList::create(*this))
, m_maintainsInactiveSelection(false)
@@ -378,7 +380,7 @@
, m_isTrackingTouchEvents(false)
#endif
, m_pageID(pageID)
- , m_sessionID(configuration.sessionID)
+ , m_sessionID(m_configuration->sessionID())
, m_isPageSuspended(false)
, m_addsVisitedLinks(true)
#if ENABLE(REMOTE_INSPECTOR)
@@ -435,7 +437,7 @@
#endif
, m_scrollPinningBehavior(DoNotPin)
, m_navigationID(0)
- , m_configurationPreferenceValues(configuration.preferenceValues)
+ , m_configurationPreferenceValues(m_configuration->preferenceValues())
, m_potentiallyChangedViewStateFlags(ViewState::NoFlags)
, m_viewStateChangeWantsSynchronousReply(false)
{
@@ -517,6 +519,11 @@
#endif
}
+const API::PageConfiguration& WebPageProxy::configuration() const
+{
+ return m_configuration.get();
+}
+
PlatformProcessIdentifier WebPageProxy::processIdentifier() const
{
if (m_isClosed)
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/WebPageProxy.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/WebPageProxy.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/WebPageProxy.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -255,28 +255,6 @@
typedef GenericCallback<const WebCore::MachSendRight&> MachSendRightCallback;
#endif
-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;
-};
-
class WebPageProxy : public API::ObjectImpl<API::Object::Type::Page>
#if ENABLE(INPUT_TYPE_COLOR)
, public WebColorPicker::Client
@@ -288,9 +266,11 @@
, public IPC::MessageReceiver
, public IPC::MessageSender {
public:
- static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&);
+ static Ref<WebPageProxy> create(PageClient&, WebProcessProxy&, uint64_t pageID, Ref<API::PageConfiguration>&&);
virtual ~WebPageProxy();
+ const API::PageConfiguration& configuration() const;
+
uint64_t pageID() const { return m_pageID; }
WebCore::SessionID sessionID() const { return m_sessionID; }
void setSessionID(WebCore::SessionID);
@@ -1086,7 +1066,7 @@
void clearWheelEventTestTrigger();
private:
- WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, const WebPageConfiguration&);
+ WebPageProxy(PageClient&, WebProcessProxy&, uint64_t pageID, Ref<API::PageConfiguration>&&);
void platformInitialize();
void updateViewState(WebCore::ViewState::Flags flagsToUpdate = WebCore::ViewState::AllFlags);
@@ -1486,6 +1466,8 @@
void handleSynchronousMessage(IPC::Connection&, const String& messageName, const UserData& messageBody, UserData& returnUserData);
PageClient& m_pageClient;
+ Ref<API::PageConfiguration> m_configuration;
+
std::unique_ptr<API::LoaderClient> m_loaderClient;
std::unique_ptr<API::PolicyClient> m_policyClient;
std::unique_ptr<API::NavigationClient> m_navigationClient;
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessPool.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessPool.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessPool.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -29,6 +29,7 @@
#include "APIArray.h"
#include "APIDownloadClient.h"
#include "APILegacyContextHistoryClient.h"
+#include "APIPageConfiguration.h"
#include "APIProcessPoolConfiguration.h"
#include "CustomProtocolManagerMessages.h"
#include "DownloadProxy.h"
@@ -828,18 +829,18 @@
return *process;
}
-PassRefPtr<WebPageProxy> WebProcessPool::createWebPage(PageClient& pageClient, WebPageConfiguration configuration)
+PassRefPtr<WebPageProxy> WebProcessPool::createWebPage(PageClient& pageClient, Ref<API::PageConfiguration>&& pageConfiguration)
{
- 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();
+ 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());
}
RefPtr<WebProcessProxy> process;
@@ -849,14 +850,14 @@
if (m_haveInitialEmptyProcess) {
process = m_processes.last();
m_haveInitialEmptyProcess = false;
- } else if (configuration.relatedPage) {
+ } else if (pageConfiguration->relatedPage()) {
// Sharing processes, e.g. when creating the page via window.open().
- process = &configuration.relatedPage->process();
+ process = &pageConfiguration->relatedPage()->process();
} else
process = &createNewWebProcessRespectingProcessCountLimit();
}
- return process->createWebPage(pageClient, WTF::move(configuration));
+ return process->createWebPage(pageClient, WTF::move(pageConfiguration));
}
DownloadProxy* WebProcessPool::download(WebPageProxy* initiatingPage, const ResourceRequest& request)
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessPool.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessPool.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessPool.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -72,6 +72,7 @@
namespace API {
class DownloadClient;
class LegacyContextHistoryClient;
+class PageConfiguration;
}
namespace WebKit {
@@ -82,7 +83,6 @@
class WebPageGroup;
class WebPageProxy;
struct StatisticsData;
-struct WebPageConfiguration;
struct WebProcessCreationParameters;
typedef GenericCallback<API::Dictionary*> DictionaryCallback;
@@ -167,7 +167,7 @@
API::WebsiteDataStore* websiteDataStore() const { return m_websiteDataStore.get(); }
- PassRefPtr<WebPageProxy> createWebPage(PageClient&, WebPageConfiguration);
+ PassRefPtr<WebPageProxy> createWebPage(PageClient&, Ref<API::PageConfiguration>&&);
const String& injectedBundlePath() const { return m_configuration->injectedBundlePath(); }
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2015-12-15 00:35:10 UTC (rev 194074)
@@ -206,10 +206,10 @@
return globalPageMap().get(pageID);
}
-Ref<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, const WebPageConfiguration& configuration)
+Ref<WebPageProxy> WebProcessProxy::createWebPage(PageClient& pageClient, Ref<API::PageConfiguration>&& pageConfiguration)
{
uint64_t pageID = generatePageID();
- Ref<WebPageProxy> webPage = WebPageProxy::create(pageClient, *this, pageID, configuration);
+ Ref<WebPageProxy> webPage = WebPageProxy::create(pageClient, *this, pageID, WTF::move(pageConfiguration));
m_pageMap.set(pageID, webPage.ptr());
globalPageMap().set(pageID, webPage.ptr());
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessProxy.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessProxy.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/WebProcessProxy.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -84,7 +84,7 @@
WebProcessPool& processPool() { return m_processPool; }
static WebPageProxy* webPage(uint64_t pageID);
- Ref<WebPageProxy> createWebPage(PageClient&, const WebPageConfiguration&);
+ Ref<WebPageProxy> createWebPage(PageClient&, Ref<API::PageConfiguration>&&);
void addExistingWebPage(WebPageProxy*, uint64_t pageID);
void removeWebPage(uint64_t pageID);
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/ios/WKContentView.h (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/ios/WKContentView.h 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/ios/WKContentView.h 2015-12-15 00:35:10 UTC (rev 194074)
@@ -34,6 +34,10 @@
@class WKView;
@class WKWebView;
+namespace API {
+class PageConfiguration;
+}
+
namespace WebCore {
struct Highlight;
}
@@ -45,7 +49,6 @@
class WebFrameProxy;
class WebPageProxy;
class WebProcessPool;
-struct WebPageConfiguration;
}
@interface WKContentView : UIView {
@@ -61,8 +64,8 @@
@property (nonatomic, getter=isShowingInspectorIndication) BOOL showingInspectorIndication;
@property (nonatomic, readonly) BOOL isBackground;
-- (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;
+- (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;
- (void)didUpdateVisibleRect:(CGRect)visibleRect unobscuredRect:(CGRect)unobscuredRect
unobscuredRectInScrollViewCoordinates:(CGRect)unobscuredRectInScrollViewCoordinates
Modified: branches/safari-601-branch/Source/WebKit2/UIProcess/ios/WKContentView.mm (194073 => 194074)
--- branches/safari-601-branch/Source/WebKit2/UIProcess/ios/WKContentView.mm 2015-12-15 00:34:37 UTC (rev 194073)
+++ branches/safari-601-branch/Source/WebKit2/UIProcess/ios/WKContentView.mm 2015-12-15 00:35:10 UTC (rev 194074)
@@ -28,6 +28,7 @@
#if PLATFORM(IOS)
+#import "APIPageConfiguration.h"
#import "ApplicationStateTracker.h"
#import "PageClientImplIOS.h"
#import "RemoteLayerTreeDrawingAreaProxy.h"
@@ -181,11 +182,11 @@
std::unique_ptr<ApplicationStateTracker> _applicationStateTracker;
}
-- (instancetype)_commonInitializationWithProcessPool:(WebKit::WebProcessPool&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration
+- (instancetype)_commonInitializationWithProcessPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration
{
ASSERT(_pageClient);
- _page = processPool.createWebPage(*_pageClient, WTF::move(webPageConfiguration));
+ _page = processPool.createWebPage(*_pageClient, WTF::move(configuration));
_page->initializeWebPage();
_page->setIntrinsicDeviceScaleFactor(WKGetScaleFactorForScreen([UIScreen mainScreen]));
_page->setUseFixedLayout(true);
@@ -218,7 +219,7 @@
return self;
}
-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration webView:(WKWebView *)webView
+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration webView:(WKWebView *)webView
{
if (!(self = [super initWithFrame:frame]))
return nil;
@@ -228,10 +229,10 @@
_pageClient = std::make_unique<PageClientImpl>(self, webView);
_webView = webView;
- return [self _commonInitializationWithProcessPool:processPool configuration:webPageConfiguration];
+ return [self _commonInitializationWithProcessPool:processPool configuration:WTF::move(configuration)];
}
-- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(WebKit::WebPageConfiguration)webPageConfiguration wkView:(WKView *)wkView
+- (instancetype)initWithFrame:(CGRect)frame processPool:(WebKit::WebProcessPool&)processPool configuration:(Ref<API::PageConfiguration>&&)configuration wkView:(WKView *)wkView
{
if (!(self = [super initWithFrame:frame]))
return nil;
@@ -240,7 +241,7 @@
_pageClient = std::make_unique<PageClientImpl>(self, wkView);
- return [self _commonInitializationWithProcessPool:processPool configuration:webPageConfiguration];
+ return [self _commonInitializationWithProcessPool:processPool configuration:WTF::move(configuration)];
}
- (void)dealloc