Diff
Modified: trunk/Source/WebKit2/ChangeLog (218163 => 218164)
--- trunk/Source/WebKit2/ChangeLog 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/ChangeLog 2017-06-13 06:28:48 UTC (rev 218164)
@@ -1,3 +1,128 @@
+2017-06-12 Carlos Garcia Campos <cgar...@igalia.com>
+
+ Add API::InjectedBundle::PageLoaderClient
+ https://bugs.webkit.org/show_bug.cgi?id=173265
+
+ Reviewed by Alex Christensen.
+
+ It will be used by the GTK+ port instead of the C API.
+
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: Added.
+ (API::InjectedBundle::PageLoaderClient::willLoadURLRequest):
+ (API::InjectedBundle::PageLoaderClient::willLoadDataRequest):
+ (API::InjectedBundle::PageLoaderClient::shouldGoToBackForwardListItem):
+ (API::InjectedBundle::PageLoaderClient::didStartProvisionalLoadForFrame):
+ (API::InjectedBundle::PageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (API::InjectedBundle::PageLoaderClient::didFailProvisionalLoadWithErrorForFrame):
+ (API::InjectedBundle::PageLoaderClient::didCommitLoadForFrame):
+ (API::InjectedBundle::PageLoaderClient::didFinishDocumentLoadForFrame):
+ (API::InjectedBundle::PageLoaderClient::didFinishLoadForFrame):
+ (API::InjectedBundle::PageLoaderClient::didFinishProgress):
+ (API::InjectedBundle::PageLoaderClient::didFailLoadWithErrorForFrame):
+ (API::InjectedBundle::PageLoaderClient::didSameDocumentNavigationForFrame):
+ (API::InjectedBundle::PageLoaderClient::didReceiveTitleForFrame):
+ (API::InjectedBundle::PageLoaderClient::didRemoveFrameFromHierarchy):
+ (API::InjectedBundle::PageLoaderClient::didDisplayInsecureContentForFrame):
+ (API::InjectedBundle::PageLoaderClient::didRunInsecureContentForFrame):
+ (API::InjectedBundle::PageLoaderClient::didDetectXSSForFrame):
+ (API::InjectedBundle::PageLoaderClient::didFirstLayoutForFrame):
+ (API::InjectedBundle::PageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
+ (API::InjectedBundle::PageLoaderClient::didLayoutForFrame):
+ (API::InjectedBundle::PageLoaderClient::didReachLayoutMilestone):
+ (API::InjectedBundle::PageLoaderClient::didClearWindowObjectForFrame):
+ (API::InjectedBundle::PageLoaderClient::didCancelClientRedirectForFrame):
+ (API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame):
+ (API::InjectedBundle::PageLoaderClient::didHandleOnloadEventsForFrame):
+ (API::InjectedBundle::PageLoaderClient::globalObjectIsAvailableForFrame):
+ (API::InjectedBundle::PageLoaderClient::willDisconnectDOMWindowExtensionFromGlobalObject):
+ (API::InjectedBundle::PageLoaderClient::didReconnectDOMWindowExtensionToGlobalObject):
+ (API::InjectedBundle::PageLoaderClient::willDestroyGlobalObjectForDOMWindowExtension):
+ (API::InjectedBundle::PageLoaderClient::shouldForceUniversalAccessFromLocalURL):
+ (API::InjectedBundle::PageLoaderClient::featuresUsedInPage):
+ (API::InjectedBundle::PageLoaderClient::willDestroyFrame):
+ (API::InjectedBundle::PageLoaderClient::userAgentForURL):
+ (API::InjectedBundle::PageLoaderClient::layoutMilestones):
+ * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+ (WKBundlePageSetPageLoaderClient):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit::InjectedBundlePageLoaderClient::InjectedBundlePageLoaderClient):
+ (WebKit::InjectedBundlePageLoaderClient::willLoadURLRequest):
+ (WebKit::InjectedBundlePageLoaderClient::willLoadDataRequest):
+ (WebKit::InjectedBundlePageLoaderClient::shouldGoToBackForwardListItem):
+ (WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didCommitLoadForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didFinishLoadForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didFinishProgress):
+ (WebKit::InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didSameDocumentNavigationForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didReceiveTitleForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didRemoveFrameFromHierarchy):
+ (WebKit::InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didRunInsecureContentForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didDetectXSSForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didFirstLayoutForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didLayoutForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didReachLayoutMilestone):
+ (WebKit::InjectedBundlePageLoaderClient::didClearWindowObjectForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didCancelClientRedirectForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::didHandleOnloadEventsForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame):
+ (WebKit::InjectedBundlePageLoaderClient::willDisconnectDOMWindowExtensionFromGlobalObject):
+ (WebKit::InjectedBundlePageLoaderClient::didReconnectDOMWindowExtensionToGlobalObject):
+ (WebKit::InjectedBundlePageLoaderClient::willDestroyGlobalObjectForDOMWindowExtension):
+ (WebKit::InjectedBundlePageLoaderClient::shouldForceUniversalAccessFromLocalURL):
+ (WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):
+ (WebKit::InjectedBundlePageLoaderClient::userAgentForURL):
+ (WebKit::InjectedBundlePageLoaderClient::layoutMilestones):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::detachedFromParent2):
+ (WebKit::WebFrameLoaderClient::dispatchDidDispatchOnloadEvents):
+ (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidCancelClientRedirect):
+ (WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
+ (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
+ (WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
+ (WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
+ (WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
+ (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
+ (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
+ (WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
+ (WebKit::WebFrameLoaderClient::dispatchDidLayout):
+ (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem):
+ (WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
+ (WebKit::WebFrameLoaderClient::didRunInsecureContent):
+ (WebKit::WebFrameLoaderClient::didDetectXSS):
+ (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
+ (WebKit::WebFrameLoaderClient::dispatchGlobalObjectAvailable):
+ (WebKit::WebFrameLoaderClient::dispatchWillDisconnectDOMWindowExtensionFromGlobalObject):
+ (WebKit::WebFrameLoaderClient::dispatchDidReconnectDOMWindowExtensionToGlobalObject):
+ (WebKit::WebFrameLoaderClient::dispatchWillDestroyGlobalObjectForDOMWindowExtension):
+ (WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
+ * WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp:
+ (WebKit::WebProgressTrackerClient::progressFinished):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::setInjectedBundlePageLoaderClient):
+ (WebKit::WebPage::close):
+ (WebKit::WebPage::loadRequest):
+ (WebKit::WebPage::loadDataImpl):
+ (WebKit::WebPage::userAgent):
+ (WebKit::WebPage::reportUsedFeatures):
+ (WebKit::WebPage::dispatchDidReachLayoutMilestone):
+ * WebProcess/WebPage/WebPage.h:
+ (WebKit::WebPage::injectedBundleLoaderClient):
+
2017-06-12 Simon Fraser <simon.fra...@apple.com>
[iOS WK2] Peeking on an image could result in a preview at the wrong size
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (218163 => 218164)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2017-06-13 06:28:48 UTC (rev 218164)
@@ -1207,6 +1207,7 @@
75A8D2C9187CCFAF00C39C9E /* WKWebsiteDataStore.mm in Sources */ = {isa = PBXBuildFile; fileRef = 75A8D2C5187CCF9F00C39C9E /* WKWebsiteDataStore.mm */; };
75A8D2D6187D1C0E00C39C9E /* WKWebsiteDataStoreInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 75A8D2D4187D1C0100C39C9E /* WKWebsiteDataStoreInternal.h */; };
762B748D120BC75C00819339 /* WKPreferencesRefPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 762B7484120BBA2D00819339 /* WKPreferencesRefPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 7A3ACE1B1EEEF79B00A864A4 /* APIInjectedBundlePageLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A3ACE1A1EEEF78C00A864A4 /* APIInjectedBundlePageLoaderClient.h */; };
7A772C8D1DDD4A25000F34F1 /* com.apple.WebKit.plugin-common.sb in Copy Plug-in Sandbox Profiles */ = {isa = PBXBuildFile; fileRef = 7A1506721DD56298001F4B58 /* com.apple.WebKit.plugin-common.sb */; };
7A791EFA1C7CFCF100C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A791EF91C7CFB3700C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp */; };
7A791EFB1C7CFD0100C4C52B /* WebResourceLoadStatisticsStoreMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A791EF81C7CFB1000C4C52B /* WebResourceLoadStatisticsStoreMessages.h */; };
@@ -3492,6 +3493,7 @@
762B7481120BBA0100819339 /* FontSmoothingLevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontSmoothingLevel.h; sourceTree = "<group>"; };
762B7484120BBA2D00819339 /* WKPreferencesRefPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPreferencesRefPrivate.h; sourceTree = "<group>"; };
7A1506721DD56298001F4B58 /* com.apple.WebKit.plugin-common.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "com.apple.WebKit.plugin-common.sb"; sourceTree = "<group>"; };
+ 7A3ACE1A1EEEF78C00A864A4 /* APIInjectedBundlePageLoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIInjectedBundlePageLoaderClient.h; sourceTree = "<group>"; };
7A5E39491D5BD8A700B4B7CE /* com.macromedia.Flash Player ESR.plugin.sb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "com.macromedia.Flash Player ESR.plugin.sb"; sourceTree = "<group>"; };
7A791EF81C7CFB1000C4C52B /* WebResourceLoadStatisticsStoreMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebResourceLoadStatisticsStoreMessages.h; sourceTree = "<group>"; };
7A791EF91C7CFB3700C4C52B /* WebResourceLoadStatisticsStoreMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebResourceLoadStatisticsStoreMessageReceiver.cpp; sourceTree = "<group>"; };
@@ -7243,6 +7245,7 @@
BC989D4516181691000D46D3 /* mac */,
377512301DF0DEE2008A351C /* APIInjectedBundleEditorClient.h */,
076E884F1A13CBC6005E90FC /* APIInjectedBundlePageContextMenuClient.h */,
+ 7A3ACE1A1EEEF78C00A864A4 /* APIInjectedBundlePageLoaderClient.h */,
);
path = API;
sourceTree = "<group>";
@@ -8394,6 +8397,7 @@
0FDCD7F71D47E92A009F08BC /* LogInitialization.h in Headers */,
1A6D86C21DF75265007745E8 /* MachMessage.h in Headers */,
BCC56F791159957D001CCAF9 /* MachPort.h in Headers */,
+ 7A3ACE1B1EEEF79B00A864A4 /* APIInjectedBundlePageLoaderClient.h in Headers */,
1A24B5F311F531E800C38269 /* MachUtilities.h in Headers */,
CE1A0BD51A48E6C60054EF74 /* ManagedConfigurationSPI.h in Headers */,
51933DEF1965EB31008AC3EA /* MenuUtilities.h in Headers */,
Added: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h (0 => 218164)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h (rev 0)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h 2017-06-13 06:28:48 UTC (rev 218164)
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2017 Igalia S.L.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#include "SameDocumentNavigationType.h"
+#include <WebCore/LayoutMilestones.h>
+#include <wtf/Forward.h>
+#include <wtf/Vector.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+class DOMWindowExtension;
+class DOMWrapperWorld;
+class ResourceError;
+class ResourceRequest;
+class SharedBuffer;
+class URL;
+}
+
+namespace WebKit {
+class InjectedBundleBackForwardListItem;
+class WebFrame;
+class WebPage;
+}
+
+namespace API {
+class Object;
+
+namespace InjectedBundle {
+
+class PageLoaderClient {
+public:
+ virtual ~PageLoaderClient() = default;
+
+ virtual void willLoadURLRequest(WebKit::WebPage&, const WebCore::ResourceRequest&, API::Object*) { }
+ virtual void willLoadDataRequest(WebKit::WebPage&, const WebCore::ResourceRequest&, WebCore::SharedBuffer*, const WTF::String&, const WTF::String&, const WebCore::URL&, API::Object*) { }
+
+ virtual bool shouldGoToBackForwardListItem(WebKit::WebPage&, WebKit::InjectedBundleBackForwardListItem&, RefPtr<API::Object>&) { return false; }
+ virtual void didStartProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didFailProvisionalLoadWithErrorForFrame(WebKit::WebPage&, WebKit::WebFrame&, const WebCore::ResourceError&, RefPtr<API::Object>&) { }
+ virtual void didCommitLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didFinishDocumentLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didFinishLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didFinishProgress(WebKit::WebPage&) { }
+ virtual void didFailLoadWithErrorForFrame(WebKit::WebPage&, WebKit::WebFrame&, const WebCore::ResourceError&, RefPtr<API::Object>&) { }
+ virtual void didSameDocumentNavigationForFrame(WebKit::WebPage&, WebKit::WebFrame&, WebKit::SameDocumentNavigationType, RefPtr<API::Object>&) { }
+ virtual void didReceiveTitleForFrame(WebKit::WebPage&, const WTF::String&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didRemoveFrameFromHierarchy(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didDisplayInsecureContentForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didRunInsecureContentForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didDetectXSSForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+
+ virtual void didFirstLayoutForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) { }
+ virtual void didLayoutForFrame(WebKit::WebPage&, WebKit::WebFrame&) { }
+ virtual void didReachLayoutMilestone(WebKit::WebPage&, WebCore::LayoutMilestones, RefPtr<API::Object>&) { }
+
+ virtual void didClearWindowObjectForFrame(WebKit::WebPage&, WebKit::WebFrame&, WebCore::DOMWrapperWorld&) { }
+ virtual void didCancelClientRedirectForFrame(WebKit::WebPage&, WebKit::WebFrame&) { }
+ virtual void willPerformClientRedirectForFrame(WebKit::WebPage&, WebKit::WebFrame&, const WTF::String&, double /*delay*/, double /*date*/) { }
+ virtual void didHandleOnloadEventsForFrame(WebKit::WebPage&, WebKit::WebFrame&) { }
+
+ virtual void globalObjectIsAvailableForFrame(WebKit::WebPage&, WebKit::WebFrame&, WebCore::DOMWrapperWorld&) { }
+ virtual void willDisconnectDOMWindowExtensionFromGlobalObject(WebKit::WebPage&, WebCore::DOMWindowExtension*) { }
+ virtual void didReconnectDOMWindowExtensionToGlobalObject(WebKit::WebPage&, WebCore::DOMWindowExtension*) { }
+ virtual void willDestroyGlobalObjectForDOMWindowExtension(WebKit::WebPage&, WebCore::DOMWindowExtension*) { }
+
+ virtual bool shouldForceUniversalAccessFromLocalURL(WebKit::WebPage&, const WTF::String&) { return false; }
+
+ virtual void featuresUsedInPage(WebKit::WebPage&, const Vector<WTF::String>&) { }
+
+ virtual void willDestroyFrame(WebKit::WebPage&, WebKit::WebFrame&) { }
+ virtual WTF::String userAgentForURL(WebKit::WebFrame&, const WebCore::URL&) const { return WTF::String(); }
+
+ virtual WebCore::LayoutMilestones layoutMilestones() const { return 0; }
+};
+
+} // namespace InjectedBundle
+
+} // namespace API
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp 2017-06-13 06:28:48 UTC (rev 218164)
@@ -35,6 +35,7 @@
#include "InjectedBundleNodeHandle.h"
#include "InjectedBundlePageEditorClient.h"
#include "InjectedBundlePageFormClient.h"
+#include "InjectedBundlePageLoaderClient.h"
#include "InjectedBundlePageUIClient.h"
#include "PageBanner.h"
#include "WKAPICast.h"
@@ -94,7 +95,7 @@
void WKBundlePageSetPageLoaderClient(WKBundlePageRef pageRef, WKBundlePageLoaderClientBase* wkClient)
{
- toImpl(pageRef)->initializeInjectedBundleLoaderClient(wkClient);
+ toImpl(pageRef)->setInjectedBundlePageLoaderClient(std::make_unique<InjectedBundlePageLoaderClient>(wkClient));
}
void WKBundlePageSetResourceLoadClient(WKBundlePageRef pageRef, WKBundlePageResourceLoadClientBase* wkClient)
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm 2017-06-13 06:28:48 UTC (rev 218164)
@@ -255,7 +255,7 @@
client.didLayoutForFrame = didLayoutForFrame;
client.didLayout = didReachLayoutMilestone;
- page.initializeInjectedBundleLoaderClient(&client.base);
+ WKBundlePageSetPageLoaderClient(toAPI(&page), &client.base);
}
static WKURLRequestRef willSendRequestForFrame(WKBundlePageRef, WKBundleFrameRef frame, uint64_t resourceIdentifier, WKURLRequestRef request, WKURLResponseRef redirectResponse, const void* clientInfo)
@@ -349,7 +349,7 @@
setUpPageLoaderClient(self, *_page);
setUpResourceLoadClient(self, *_page);
} else {
- _page->initializeInjectedBundleLoaderClient(nullptr);
+ WKBundlePageSetPageLoaderClient(toAPI(_page.get()), nullptr);
_page->initializeInjectedBundleResourceLoadClient(nullptr);
}
}
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp 2017-06-13 06:28:48 UTC (rev 218164)
@@ -46,12 +46,17 @@
namespace WebKit {
-void InjectedBundlePageLoaderClient::willLoadURLRequest(WebPage* page, const ResourceRequest& request, API::Object* userData)
+InjectedBundlePageLoaderClient::InjectedBundlePageLoaderClient(const WKBundlePageLoaderClientBase* client)
{
+ initialize(client);
+}
+
+void InjectedBundlePageLoaderClient::willLoadURLRequest(WebPage& page, const ResourceRequest& request, API::Object* userData)
+{
if (!m_client.willLoadURLRequest)
return;
- m_client.willLoadURLRequest(toAPI(page), toAPI(request), toAPI(userData), m_client.base.clientInfo);
+ m_client.willLoadURLRequest(toAPI(&page), toAPI(request), toAPI(userData), m_client.base.clientInfo);
}
static void releaseSharedBuffer(unsigned char*, const void* data)
@@ -60,250 +65,250 @@
static_cast<SharedBuffer*>(const_cast<void*>(data))->deref();
}
-void InjectedBundlePageLoaderClient::willLoadDataRequest(WebPage* page, const ResourceRequest& request, SharedBuffer* sharedBuffer, const String& MIMEType, const String& encodingName, const URL& unreachableURL, API::Object* userData)
+void InjectedBundlePageLoaderClient::willLoadDataRequest(WebPage& page, const ResourceRequest& request, SharedBuffer* sharedBuffer, const String& MIMEType, const String& encodingName, const URL& unreachableURL, API::Object* userData)
{
if (!m_client.willLoadDataRequest)
return;
RefPtr<API::Data> data;
- if (data) {
+ if (sharedBuffer) {
sharedBuffer->ref();
data = "" unsigned char*)sharedBuffer->data(), sharedBuffer->size(), releaseSharedBuffer, sharedBuffer);
}
- m_client.willLoadDataRequest(toAPI(page), toAPI(request), toAPI(data.get()), toAPI(MIMEType.impl()), toAPI(encodingName.impl()), toURLRef(unreachableURL.string().impl()), toAPI(userData), m_client.base.clientInfo);
+ m_client.willLoadDataRequest(toAPI(&page), toAPI(request), toAPI(data.get()), toAPI(MIMEType.impl()), toAPI(encodingName.impl()), toURLRef(unreachableURL.string().impl()), toAPI(userData), m_client.base.clientInfo);
}
-bool InjectedBundlePageLoaderClient::shouldGoToBackForwardListItem(WebPage* page, InjectedBundleBackForwardListItem* item, RefPtr<API::Object>& userData)
+bool InjectedBundlePageLoaderClient::shouldGoToBackForwardListItem(WebPage& page, InjectedBundleBackForwardListItem& item, RefPtr<API::Object>& userData)
{
if (!m_client.shouldGoToBackForwardListItem)
return true;
- WKTypeRef userDataToPass = 0;
- bool result = m_client.shouldGoToBackForwardListItem(toAPI(page), toAPI(item), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ bool result = m_client.shouldGoToBackForwardListItem(toAPI(&page), toAPI(&item), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
return result;
}
-void InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didStartProvisionalLoadForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didStartProvisionalLoadForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didReceiveServerRedirectForProvisionalLoadForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPage* page, WebFrame* frame, const ResourceError& error, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPage& page, WebFrame& frame, const ResourceError& error, RefPtr<API::Object>& userData)
{
if (!m_client.didFailProvisionalLoadWithErrorForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(&page), toAPI(&frame), toAPI(error), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didCommitLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didCommitLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didCommitLoadForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didCommitLoadForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didFinishDocumentLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didFinishDocumentLoadForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didFinishDocumentLoadForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didFinishLoadForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didFinishLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didFinishLoadForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didFinishLoadForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didFinishProgress(WebPage* page)
+void InjectedBundlePageLoaderClient::didFinishProgress(WebPage& page)
{
if (!m_client.didFinishProgress)
return;
- m_client.didFinishProgress(toAPI(page), m_client.base.clientInfo);
+ m_client.didFinishProgress(toAPI(&page), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame(WebPage* page, WebFrame* frame, const ResourceError& error, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didFailLoadWithErrorForFrame(WebPage& page, WebFrame& frame, const ResourceError& error, RefPtr<API::Object>& userData)
{
if (!m_client.didFailLoadWithErrorForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didFailLoadWithErrorForFrame(toAPI(&page), toAPI(&frame), toAPI(error), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didSameDocumentNavigationForFrame(WebPage* page, WebFrame* frame, SameDocumentNavigationType type, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didSameDocumentNavigationForFrame(WebPage& page, WebFrame& frame, SameDocumentNavigationType type, RefPtr<API::Object>& userData)
{
if (!m_client.didSameDocumentNavigationForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didSameDocumentNavigationForFrame(toAPI(&page), toAPI(&frame), toAPI(type), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didReceiveTitleForFrame(WebPage* page, const String& title, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didReceiveTitleForFrame(WebPage& page, const String& title, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didReceiveTitleForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didReceiveTitleForFrame(toAPI(&page), toAPI(title.impl()), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didRemoveFrameFromHierarchy(WebPage* page , WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didRemoveFrameFromHierarchy(WebPage& page , WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didRemoveFrameFromHierarchy)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didRemoveFrameFromHierarchy(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didDisplayInsecureContentForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didDisplayInsecureContentForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didDisplayInsecureContentForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didRunInsecureContentForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didRunInsecureContentForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didRunInsecureContentForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didRunInsecureContentForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didDetectXSSForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didDetectXSSForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didDetectXSSForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didDetectXSSForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didDetectXSSForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didFirstLayoutForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didFirstLayoutForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didFirstLayoutForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didFirstLayoutForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame(WebPage* page, WebFrame* frame, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didFirstVisuallyNonEmptyLayoutForFrame)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didLayoutForFrame(WebPage* page, WebFrame* frame)
+void InjectedBundlePageLoaderClient::didLayoutForFrame(WebPage& page, WebFrame& frame)
{
if (!m_client.didLayoutForFrame)
return;
- m_client.didLayoutForFrame(toAPI(page), toAPI(frame), m_client.base.clientInfo);
+ m_client.didLayoutForFrame(toAPI(&page), toAPI(&frame), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::didReachLayoutMilestone(WebPage* page, LayoutMilestones milestones, RefPtr<API::Object>& userData)
+void InjectedBundlePageLoaderClient::didReachLayoutMilestone(WebPage& page, LayoutMilestones milestones, RefPtr<API::Object>& userData)
{
if (!m_client.didLayout)
return;
- WKTypeRef userDataToPass = 0;
- m_client.didLayout(toAPI(page), toWKLayoutMilestones(milestones), &userDataToPass, m_client.base.clientInfo);
+ WKTypeRef userDataToPass = nullptr;
+ m_client.didLayout(toAPI(&page), toWKLayoutMilestones(milestones), &userDataToPass, m_client.base.clientInfo);
userData = adoptRef(toImpl(userDataToPass));
}
-void InjectedBundlePageLoaderClient::didClearWindowObjectForFrame(WebPage* page, WebFrame* frame, DOMWrapperWorld& world)
+void InjectedBundlePageLoaderClient::didClearWindowObjectForFrame(WebPage& page, WebFrame& frame, DOMWrapperWorld& world)
{
if (!m_client.didClearWindowObjectForFrame)
return;
- m_client.didClearWindowObjectForFrame(toAPI(page), toAPI(frame), toAPI(InjectedBundleScriptWorld::getOrCreate(world).ptr()), m_client.base.clientInfo);
+ m_client.didClearWindowObjectForFrame(toAPI(&page), toAPI(&frame), toAPI(InjectedBundleScriptWorld::getOrCreate(world).ptr()), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::didCancelClientRedirectForFrame(WebPage* page, WebFrame* frame)
+void InjectedBundlePageLoaderClient::didCancelClientRedirectForFrame(WebPage& page, WebFrame& frame)
{
if (!m_client.didCancelClientRedirectForFrame)
return;
- m_client.didCancelClientRedirectForFrame(toAPI(page), toAPI(frame), m_client.base.clientInfo);
+ m_client.didCancelClientRedirectForFrame(toAPI(&page), toAPI(&frame), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame(WebPage* page, WebFrame* frame, const String& url, double delay, double date)
+void InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame(WebPage& page, WebFrame& frame, const String& url, double delay, double date)
{
if (!m_client.willPerformClientRedirectForFrame)
return;
- m_client.willPerformClientRedirectForFrame(toAPI(page), toAPI(frame), toURLRef(url.impl()), delay, date, m_client.base.clientInfo);
+ m_client.willPerformClientRedirectForFrame(toAPI(&page), toAPI(&frame), toURLRef(url.impl()), delay, date, m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::didHandleOnloadEventsForFrame(WebPage* page, WebFrame* frame)
+void InjectedBundlePageLoaderClient::didHandleOnloadEventsForFrame(WebPage& page, WebFrame& frame)
{
if (!m_client.didHandleOnloadEventsForFrame)
return;
- m_client.didHandleOnloadEventsForFrame(toAPI(page), toAPI(frame), m_client.base.clientInfo);
+ m_client.didHandleOnloadEventsForFrame(toAPI(&page), toAPI(&frame), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame(WebPage* page, WebFrame* frame, WebCore::DOMWrapperWorld& world)
+void InjectedBundlePageLoaderClient::globalObjectIsAvailableForFrame(WebPage& page, WebFrame& frame, DOMWrapperWorld& world)
{
if (!m_client.globalObjectIsAvailableForFrame)
return;
RefPtr<InjectedBundleScriptWorld> injectedWorld = InjectedBundleScriptWorld::getOrCreate(world);
- m_client.globalObjectIsAvailableForFrame(toAPI(page), toAPI(frame), toAPI(injectedWorld.get()), m_client.base.clientInfo);
+ m_client.globalObjectIsAvailableForFrame(toAPI(&page), toAPI(&frame), toAPI(injectedWorld.get()), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::willDisconnectDOMWindowExtensionFromGlobalObject(WebPage* page, WebCore::DOMWindowExtension* coreExtension)
+void InjectedBundlePageLoaderClient::willDisconnectDOMWindowExtensionFromGlobalObject(WebPage& page, DOMWindowExtension* coreExtension)
{
if (!m_client.willDisconnectDOMWindowExtensionFromGlobalObject)
return;
@@ -310,10 +315,10 @@
RefPtr<InjectedBundleDOMWindowExtension> extension = InjectedBundleDOMWindowExtension::get(coreExtension);
ASSERT(extension);
- m_client.willDisconnectDOMWindowExtensionFromGlobalObject(toAPI(page), toAPI(extension.get()), m_client.base.clientInfo);
+ m_client.willDisconnectDOMWindowExtensionFromGlobalObject(toAPI(&page), toAPI(extension.get()), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::didReconnectDOMWindowExtensionToGlobalObject(WebPage* page, WebCore::DOMWindowExtension* coreExtension)
+void InjectedBundlePageLoaderClient::didReconnectDOMWindowExtensionToGlobalObject(WebPage& page, DOMWindowExtension* coreExtension)
{
if (!m_client.didReconnectDOMWindowExtensionToGlobalObject)
return;
@@ -320,10 +325,10 @@
RefPtr<InjectedBundleDOMWindowExtension> extension = InjectedBundleDOMWindowExtension::get(coreExtension);
ASSERT(extension);
- m_client.didReconnectDOMWindowExtensionToGlobalObject(toAPI(page), toAPI(extension.get()), m_client.base.clientInfo);
+ m_client.didReconnectDOMWindowExtensionToGlobalObject(toAPI(&page), toAPI(extension.get()), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::willDestroyGlobalObjectForDOMWindowExtension(WebPage* page, WebCore::DOMWindowExtension* coreExtension)
+void InjectedBundlePageLoaderClient::willDestroyGlobalObjectForDOMWindowExtension(WebPage& page, DOMWindowExtension* coreExtension)
{
if (!m_client.willDestroyGlobalObjectForDOMWindowExtension)
return;
@@ -330,31 +335,41 @@
RefPtr<InjectedBundleDOMWindowExtension> extension = InjectedBundleDOMWindowExtension::get(coreExtension);
ASSERT(extension);
- m_client.willDestroyGlobalObjectForDOMWindowExtension(toAPI(page), toAPI(extension.get()), m_client.base.clientInfo);
+ m_client.willDestroyGlobalObjectForDOMWindowExtension(toAPI(&page), toAPI(extension.get()), m_client.base.clientInfo);
}
-bool InjectedBundlePageLoaderClient::shouldForceUniversalAccessFromLocalURL(WebPage* page, const String& url)
+bool InjectedBundlePageLoaderClient::shouldForceUniversalAccessFromLocalURL(WebPage& page, const String& url)
{
if (!m_client.shouldForceUniversalAccessFromLocalURL)
return false;
- return m_client.shouldForceUniversalAccessFromLocalURL(toAPI(page), toAPI(url.impl()), m_client.base.clientInfo);
+ return m_client.shouldForceUniversalAccessFromLocalURL(toAPI(&page), toAPI(url.impl()), m_client.base.clientInfo);
}
-void InjectedBundlePageLoaderClient::featuresUsedInPage(WebPage* page, const Vector<String>& features)
+void InjectedBundlePageLoaderClient::featuresUsedInPage(WebPage& page, const Vector<String>& features)
{
if (!m_client.featuresUsedInPage)
return;
- return m_client.featuresUsedInPage(toAPI(page), toAPI(API::Array::createStringArray(features).ptr()), m_client.base.clientInfo);
+ return m_client.featuresUsedInPage(toAPI(&page), toAPI(API::Array::createStringArray(features).ptr()), m_client.base.clientInfo);
}
-API::String* InjectedBundlePageLoaderClient::userAgentForURL(WebFrame* frame, API::URL* url) const
+String InjectedBundlePageLoaderClient::userAgentForURL(WebFrame& frame, const URL& url) const
{
if (!m_client.userAgentForURL)
- return nullptr;
- WKStringRef userAgent = m_client.userAgentForURL(toAPI(frame), toAPI(url), m_client.base.clientInfo);
- return toImpl(userAgent);
+ return String();
+ WKStringRef userAgent = m_client.userAgentForURL(toAPI(&frame), toAPI(API::URL::create(url).ptr()), m_client.base.clientInfo);
+ return toImpl(userAgent)->string();
}
-
+
+LayoutMilestones InjectedBundlePageLoaderClient::layoutMilestones() const
+{
+ LayoutMilestones milestones = 0;
+ if (m_client.didFirstLayoutForFrame)
+ milestones |= WebCore::DidFirstLayout;
+ if (m_client.didFirstVisuallyNonEmptyLayoutForFrame)
+ milestones |= WebCore::DidFirstVisuallyNonEmptyLayout;
+ return milestones;
+}
+
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h 2017-06-13 06:28:48 UTC (rev 218164)
@@ -27,9 +27,8 @@
#define InjectedBundlePageLoaderClient_h
#include "APIClient.h"
-#include "SameDocumentNavigationType.h"
+#include "APIInjectedBundlePageLoaderClient.h"
#include "WKBundlePageLoaderClient.h"
-#include <WebCore/LayoutMilestones.h>
#include <wtf/Forward.h>
#include <wtf/Vector.h>
@@ -43,64 +42,53 @@
};
}
-namespace WebCore {
-class DOMWindowExtension;
-class DOMWrapperWorld;
-class ResourceError;
-class ResourceRequest;
-class ResourceResponse;
-class SharedBuffer;
-class URL;
-}
-
namespace WebKit {
-class InjectedBundleBackForwardListItem;
-class WebPage;
-class WebFrame;
-
-class InjectedBundlePageLoaderClient : public API::Client<WKBundlePageLoaderClientBase> {
+class InjectedBundlePageLoaderClient : public API::Client<WKBundlePageLoaderClientBase>, public API::InjectedBundle::PageLoaderClient {
public:
- void willLoadURLRequest(WebPage*, const WebCore::ResourceRequest&, API::Object*);
- void willLoadDataRequest(WebPage*, const WebCore::ResourceRequest&, WebCore::SharedBuffer*, const String&, const String&, const WebCore::URL&, API::Object*);
+ explicit InjectedBundlePageLoaderClient(const WKBundlePageLoaderClientBase*);
- bool shouldGoToBackForwardListItem(WebPage*, InjectedBundleBackForwardListItem*, RefPtr<API::Object>& userData);
- void didStartProvisionalLoadForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didReceiveServerRedirectForProvisionalLoadForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didFailProvisionalLoadWithErrorForFrame(WebPage*, WebFrame*, const WebCore::ResourceError&, RefPtr<API::Object>& userData);
- void didCommitLoadForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didFinishDocumentLoadForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didFinishLoadForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didFinishProgress(WebPage*);
- void didFailLoadWithErrorForFrame(WebPage*, WebFrame*, const WebCore::ResourceError&, RefPtr<API::Object>& userData);
- void didSameDocumentNavigationForFrame(WebPage*, WebFrame*, SameDocumentNavigationType, RefPtr<API::Object>& userData);
- void didReceiveTitleForFrame(WebPage*, const String&, WebFrame*, RefPtr<API::Object>& userData);
- void didRemoveFrameFromHierarchy(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didDisplayInsecureContentForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didRunInsecureContentForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didDetectXSSForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
+ void willLoadURLRequest(WebPage&, const WebCore::ResourceRequest&, API::Object*) override;
+ void willLoadDataRequest(WebPage&, const WebCore::ResourceRequest&, WebCore::SharedBuffer*, const WTF::String&, const WTF::String&, const WebCore::URL&, API::Object*) override;
- void didFirstLayoutForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didFirstVisuallyNonEmptyLayoutForFrame(WebPage*, WebFrame*, RefPtr<API::Object>& userData);
- void didLayoutForFrame(WebPage*, WebFrame*);
- void didReachLayoutMilestone(WebPage*, WebCore::LayoutMilestones, RefPtr<API::Object>& userData);
+ bool shouldGoToBackForwardListItem(WebPage&, InjectedBundleBackForwardListItem&, RefPtr<API::Object>&) override;
+ void didStartProvisionalLoadForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didReceiveServerRedirectForProvisionalLoadForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didFailProvisionalLoadWithErrorForFrame(WebPage&, WebFrame&, const WebCore::ResourceError&, RefPtr<API::Object>&) override;
+ void didCommitLoadForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didFinishDocumentLoadForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didFinishLoadForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didFinishProgress(WebPage&) override;
+ void didFailLoadWithErrorForFrame(WebPage&, WebFrame&, const WebCore::ResourceError&, RefPtr<API::Object>&) override;
+ void didSameDocumentNavigationForFrame(WebPage&, WebFrame&, SameDocumentNavigationType, RefPtr<API::Object>&) override;
+ void didReceiveTitleForFrame(WebPage&, const WTF::String&, WebFrame&, RefPtr<API::Object>&) override;
+ void didRemoveFrameFromHierarchy(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didDisplayInsecureContentForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didRunInsecureContentForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didDetectXSSForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
- void didClearWindowObjectForFrame(WebPage*, WebFrame*, WebCore::DOMWrapperWorld&);
- void didCancelClientRedirectForFrame(WebPage*, WebFrame*);
- void willPerformClientRedirectForFrame(WebPage*, WebFrame*, const String& url, double delay, double date);
- void didHandleOnloadEventsForFrame(WebPage*, WebFrame*);
+ void didFirstLayoutForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didFirstVisuallyNonEmptyLayoutForFrame(WebPage&, WebFrame&, RefPtr<API::Object>&) override;
+ void didLayoutForFrame(WebPage&, WebFrame&) override;
+ void didReachLayoutMilestone(WebPage&, WebCore::LayoutMilestones, RefPtr<API::Object>&) override;
- void globalObjectIsAvailableForFrame(WebPage*, WebFrame*, WebCore::DOMWrapperWorld&);
- void willDisconnectDOMWindowExtensionFromGlobalObject(WebPage*, WebCore::DOMWindowExtension*);
- void didReconnectDOMWindowExtensionToGlobalObject(WebPage*, WebCore::DOMWindowExtension*);
- void willDestroyGlobalObjectForDOMWindowExtension(WebPage*, WebCore::DOMWindowExtension*);
+ void didClearWindowObjectForFrame(WebPage&, WebFrame&, WebCore::DOMWrapperWorld&) override;
+ void didCancelClientRedirectForFrame(WebPage&, WebFrame&) override;
+ void willPerformClientRedirectForFrame(WebPage&, WebFrame&, const WTF::String&, double /*delay*/, double /*date*/) override;
+ void didHandleOnloadEventsForFrame(WebPage&, WebFrame&) override;
- bool shouldForceUniversalAccessFromLocalURL(WebPage*, const String& url);
+ void globalObjectIsAvailableForFrame(WebPage&, WebFrame&, WebCore::DOMWrapperWorld&) override;
+ void willDisconnectDOMWindowExtensionFromGlobalObject(WebPage&, WebCore::DOMWindowExtension*) override;
+ void didReconnectDOMWindowExtensionToGlobalObject(WebPage&, WebCore::DOMWindowExtension*) override;
+ void willDestroyGlobalObjectForDOMWindowExtension(WebPage&, WebCore::DOMWindowExtension*) override;
- void featuresUsedInPage(WebPage*, const Vector<String>&);
+ bool shouldForceUniversalAccessFromLocalURL(WebPage&, const WTF::String&) override;
- void willDestroyFrame(WebPage*, WebFrame*);
- API::String* userAgentForURL(WebFrame*, API::URL*) const;
+ void featuresUsedInPage(WebPage&, const Vector<WTF::String>&) override;
+
+ WTF::String userAgentForURL(WebFrame&, const WebCore::URL&) const override;
+
+ WebCore::LayoutMilestones layoutMilestones() const override;
};
} // namespace WebKit
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2017-06-13 06:28:48 UTC (rev 218164)
@@ -147,7 +147,7 @@
RefPtr<API::Object> userData;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didRemoveFrameFromHierarchy(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didRemoveFrameFromHierarchy(*webPage, *m_frame, userData);
}
void WebFrameLoaderClient::detachedFromParent3()
@@ -269,7 +269,7 @@
return;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didHandleOnloadEventsForFrame(webPage, m_frame);
+ webPage->injectedBundleLoaderClient().didHandleOnloadEventsForFrame(*webPage, *m_frame);
}
void WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad()
@@ -283,7 +283,7 @@
RefPtr<API::Object> userData;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didReceiveServerRedirectForProvisionalLoadForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didReceiveServerRedirectForProvisionalLoadForFrame(*webPage, *m_frame, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidReceiveServerRedirectForProvisionalLoadForFrame(m_frame->frameID(), documentLoader.navigationID(), url, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -306,7 +306,7 @@
return;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didCancelClientRedirectForFrame(webPage, m_frame);
+ webPage->injectedBundleLoaderClient().didCancelClientRedirectForFrame(*webPage, *m_frame);
}
void WebFrameLoaderClient::dispatchWillPerformClientRedirect(const URL& url, double interval, double fireDate)
@@ -316,7 +316,7 @@
return;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().willPerformClientRedirectForFrame(webPage, m_frame, url.string(), interval, fireDate);
+ webPage->injectedBundleLoaderClient().willPerformClientRedirectForFrame(*webPage, *m_frame, url, interval, fireDate);
}
void WebFrameLoaderClient::dispatchDidChangeLocationWithinPage()
@@ -330,7 +330,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(webPage, m_frame, SameDocumentNavigationAnchorNavigation, userData);
+ webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(*webPage, *m_frame, SameDocumentNavigationAnchorNavigation, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame->frameID(), navigationID, SameDocumentNavigationAnchorNavigation, m_frame->coreFrame()->document()->url().string(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -356,7 +356,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(webPage, m_frame, SameDocumentNavigationSessionStatePush, userData);
+ webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(*webPage, *m_frame, SameDocumentNavigationSessionStatePush, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame->frameID(), navigationID, SameDocumentNavigationSessionStatePush, m_frame->coreFrame()->document()->url().string(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -373,7 +373,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(webPage, m_frame, SameDocumentNavigationSessionStateReplace, userData);
+ webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(*webPage, *m_frame, SameDocumentNavigationSessionStateReplace, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame->frameID(), navigationID, SameDocumentNavigationSessionStateReplace, m_frame->coreFrame()->document()->url().string(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -390,7 +390,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(webPage, m_frame, SameDocumentNavigationSessionStatePop, userData);
+ webPage->injectedBundleLoaderClient().didSameDocumentNavigationForFrame(*webPage, *m_frame, SameDocumentNavigationSessionStatePop, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame->frameID(), navigationID, SameDocumentNavigationSessionStatePop, m_frame->coreFrame()->document()->url().string(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -426,7 +426,7 @@
RefPtr<API::Object> userData;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didStartProvisionalLoadForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didStartProvisionalLoadForFrame(*webPage, *m_frame, userData);
String unreachableURL = provisionalLoader.unreachableURL().string();
@@ -448,7 +448,7 @@
// Notify the bundle client.
// FIXME: Use direction of title.
- webPage->injectedBundleLoaderClient().didReceiveTitleForFrame(webPage, truncatedTitle.string, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didReceiveTitleForFrame(*webPage, truncatedTitle.string, *m_frame, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidReceiveTitleForFrame(m_frame->frameID(), truncatedTitle.string, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -464,7 +464,7 @@
RefPtr<API::Object> userData;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didCommitLoadForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didCommitLoadForFrame(*webPage, *m_frame, userData);
webPage->sandboxExtensionTracker().didCommitProvisionalLoad(m_frame);
@@ -482,7 +482,7 @@
RefPtr<API::Object> userData;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didFailProvisionalLoadWithErrorForFrame(webPage, m_frame, error, userData);
+ webPage->injectedBundleLoaderClient().didFailProvisionalLoadWithErrorForFrame(*webPage, *m_frame, error, userData);
webPage->sandboxExtensionTracker().didFailProvisionalLoad(m_frame);
@@ -518,7 +518,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didFailLoadWithErrorForFrame(webPage, m_frame, error, userData);
+ webPage->injectedBundleLoaderClient().didFailLoadWithErrorForFrame(*webPage, *m_frame, error, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidFailLoadForFrame(m_frame->frameID(), navigationID, error, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -539,7 +539,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didFinishDocumentLoadForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didFinishDocumentLoadForFrame(*webPage, *m_frame, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidFinishDocumentLoadForFrame(m_frame->frameID(), navigationID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -556,7 +556,7 @@
auto navigationID = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().documentLoader()).navigationID();
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didFinishLoadForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didFinishLoadForFrame(*webPage, *m_frame, userData);
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidFinishLoadForFrame(m_frame->frameID(), navigationID, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
@@ -592,7 +592,7 @@
if (milestones & DidFirstLayout) {
// FIXME: We should consider removing the old didFirstLayout API since this is doing double duty with the
// new didLayout API.
- webPage->injectedBundleLoaderClient().didFirstLayoutForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didFirstLayoutForFrame(*webPage, *m_frame, userData);
webPage->send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame->frameID(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
#if PLATFORM(MAC)
@@ -620,7 +620,7 @@
// FIXME: We should consider removing the old didFirstVisuallyNonEmptyLayoutForFrame API since this is doing
// double duty with the new didLayout API.
- webPage->injectedBundleLoaderClient().didFirstVisuallyNonEmptyLayoutForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didFirstVisuallyNonEmptyLayoutForFrame(*webPage, *m_frame, userData);
webPage->send(Messages::WebPageProxy::DidFirstVisuallyNonEmptyLayoutForFrame(m_frame->frameID(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
}
}
@@ -632,7 +632,7 @@
return;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didLayoutForFrame(webPage, m_frame);
+ webPage->injectedBundleLoaderClient().didLayoutForFrame(*webPage, *m_frame);
webPage->recomputeShortCircuitHorizontalWheelEventsState();
@@ -1070,7 +1070,7 @@
RefPtr<API::Object> userData;
// Ask the bundle client first
- bool shouldGoToBackForwardListItem = webPage->injectedBundleLoaderClient().shouldGoToBackForwardListItem(webPage, bundleItem.get(), userData);
+ bool shouldGoToBackForwardListItem = webPage->injectedBundleLoaderClient().shouldGoToBackForwardListItem(*webPage, *bundleItem, userData);
if (!shouldGoToBackForwardListItem)
return false;
@@ -1086,7 +1086,7 @@
RefPtr<API::Object> userData;
- webPage->injectedBundleLoaderClient().didDisplayInsecureContentForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didDisplayInsecureContentForFrame(*webPage, *m_frame, userData);
webPage->send(Messages::WebPageProxy::DidDisplayInsecureContentForFrame(m_frame->frameID(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
}
@@ -1099,7 +1099,7 @@
RefPtr<API::Object> userData;
- webPage->injectedBundleLoaderClient().didRunInsecureContentForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didRunInsecureContentForFrame(*webPage, *m_frame, userData);
webPage->send(Messages::WebPageProxy::DidRunInsecureContentForFrame(m_frame->frameID(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
}
@@ -1112,7 +1112,7 @@
RefPtr<API::Object> userData;
- webPage->injectedBundleLoaderClient().didDetectXSSForFrame(webPage, m_frame, userData);
+ webPage->injectedBundleLoaderClient().didDetectXSSForFrame(*webPage, *m_frame, userData);
webPage->send(Messages::WebPageProxy::DidDetectXSSForFrame(m_frame->frameID(), UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
}
@@ -1620,7 +1620,7 @@
if (!webPage)
return;
- webPage->injectedBundleLoaderClient().didClearWindowObjectForFrame(webPage, m_frame, world);
+ webPage->injectedBundleLoaderClient().didClearWindowObjectForFrame(*webPage, *m_frame, world);
WebAutomationSessionProxy* automationSessionProxy = WebProcess::singleton().automationSessionProxy();
@@ -1640,7 +1640,7 @@
if (!webPage)
return;
- webPage->injectedBundleLoaderClient().globalObjectIsAvailableForFrame(webPage, m_frame, world);
+ webPage->injectedBundleLoaderClient().globalObjectIsAvailableForFrame(*webPage, *m_frame, world);
}
void WebFrameLoaderClient::dispatchWillDisconnectDOMWindowExtensionFromGlobalObject(WebCore::DOMWindowExtension* extension)
@@ -1649,7 +1649,7 @@
if (!webPage)
return;
- webPage->injectedBundleLoaderClient().willDisconnectDOMWindowExtensionFromGlobalObject(webPage, extension);
+ webPage->injectedBundleLoaderClient().willDisconnectDOMWindowExtensionFromGlobalObject(*webPage, extension);
}
void WebFrameLoaderClient::dispatchDidReconnectDOMWindowExtensionToGlobalObject(WebCore::DOMWindowExtension* extension)
@@ -1658,7 +1658,7 @@
if (!webPage)
return;
- webPage->injectedBundleLoaderClient().didReconnectDOMWindowExtensionToGlobalObject(webPage, extension);
+ webPage->injectedBundleLoaderClient().didReconnectDOMWindowExtensionToGlobalObject(*webPage, extension);
}
void WebFrameLoaderClient::dispatchWillDestroyGlobalObjectForDOMWindowExtension(WebCore::DOMWindowExtension* extension)
@@ -1667,7 +1667,7 @@
if (!webPage)
return;
- webPage->injectedBundleLoaderClient().willDestroyGlobalObjectForDOMWindowExtension(webPage, extension);
+ webPage->injectedBundleLoaderClient().willDestroyGlobalObjectForDOMWindowExtension(*webPage, extension);
}
void WebFrameLoaderClient::registerForIconNotification(bool /*listen*/)
@@ -1748,7 +1748,7 @@
if (!webPage)
return false;
- return webPage->injectedBundleLoaderClient().shouldForceUniversalAccessFromLocalURL(webPage, url.string());
+ return webPage->injectedBundleLoaderClient().shouldForceUniversalAccessFromLocalURL(*webPage, url);
}
Ref<FrameNetworkingContext> WebFrameLoaderClient::createNetworkingContext()
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp 2017-06-13 06:28:48 UTC (rev 218164)
@@ -73,7 +73,7 @@
m_webPage.setMainFrameProgressCompleted(true);
// Notify the bundle client.
- m_webPage.injectedBundleLoaderClient().didFinishProgress(&m_webPage);
+ m_webPage.injectedBundleLoaderClient().didFinishProgress(m_webPage);
m_webPage.send(Messages::WebPageProxy::DidFinishProgress());
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2017-06-13 06:28:48 UTC (rev 218164)
@@ -339,6 +339,7 @@
#endif
, m_editorClient { std::make_unique<API::InjectedBundle::EditorClient>() }
, m_formClient(std::make_unique<API::InjectedBundle::FormClient>())
+ , m_loaderClient(std::make_unique<API::InjectedBundle::PageLoaderClient>())
, m_uiClient(std::make_unique<API::InjectedBundle::PageUIClient>())
, m_findController(makeUniqueRef<FindController>(this))
, m_userContentController(WebUserContentController::getOrCreate(parameters.userContentControllerID))
@@ -725,22 +726,19 @@
m_formClient = WTFMove(formClient);
}
-void WebPage::initializeInjectedBundleLoaderClient(WKBundlePageLoaderClientBase* client)
+void WebPage::setInjectedBundlePageLoaderClient(std::unique_ptr<API::InjectedBundle::PageLoaderClient> loaderClient)
{
- m_loaderClient.initialize(client);
+ if (!loaderClient) {
+ m_loaderClient = std::make_unique<API::InjectedBundle::PageLoaderClient>();
+ return;
+ }
+ m_loaderClient = WTFMove(loaderClient);
+
// It would be nice to get rid of this code and transition all clients to using didLayout instead of
// didFirstLayoutInFrame and didFirstVisuallyNonEmptyLayoutInFrame. In the meantime, this is required
// for backwards compatibility.
- LayoutMilestones milestones = 0;
- if (client) {
- if (m_loaderClient.client().didFirstLayoutForFrame)
- milestones |= WebCore::DidFirstLayout;
- if (m_loaderClient.client().didFirstVisuallyNonEmptyLayoutForFrame)
- milestones |= WebCore::DidFirstVisuallyNonEmptyLayout;
- }
-
- if (milestones)
+ if (auto milestones = m_loaderClient->layoutMilestones())
listenForLayoutMilestones(milestones);
}
@@ -1150,7 +1148,7 @@
#endif
m_editorClient = std::make_unique<API::InjectedBundle::EditorClient>();
m_formClient = std::make_unique<API::InjectedBundle::FormClient>();
- m_loaderClient.initialize(0);
+ m_loaderClient = std::make_unique<API::InjectedBundle::PageLoaderClient>();
m_policyClient.initialize(0);
m_resourceLoadClient.initialize(0);
m_uiClient = std::make_unique<API::InjectedBundle::PageUIClient>();
@@ -1218,7 +1216,7 @@
// Let the InjectedBundle know we are about to start the load, passing the user data from the UIProcess
// to all the client to set up any needed state.
- m_loaderClient.willLoadURLRequest(this, loadParameters.request, WebProcess::singleton().transformHandlesToObjects(loadParameters.userData.object()).get());
+ m_loaderClient->willLoadURLRequest(*this, loadParameters.request, WebProcess::singleton().transformHandlesToObjects(loadParameters.userData.object()).get());
platformDidReceiveLoadParameters(loadParameters);
@@ -1244,7 +1242,7 @@
// Let the InjectedBundle know we are about to start the load, passing the user data from the UIProcess
// to all the client to set up any needed state.
- m_loaderClient.willLoadDataRequest(this, request, const_cast<SharedBuffer*>(substituteData.content()), substituteData.mimeType(), substituteData.textEncoding(), substituteData.failingURL(), WebProcess::singleton().transformHandlesToObjects(userData.object()).get());
+ m_loaderClient->willLoadDataRequest(*this, request, const_cast<SharedBuffer*>(substituteData.content()), substituteData.mimeType(), substituteData.textEncoding(), substituteData.failingURL(), WebProcess::singleton().transformHandlesToObjects(userData.object()).get());
// Initate the load in WebCore.
m_mainFrame->coreFrame()->loader().load(FrameLoadRequest(m_mainFrame->coreFrame(), request, ShouldOpenExternalURLsPolicy::ShouldNotAllow, substituteData));
@@ -2786,10 +2784,10 @@
String WebPage::userAgent(WebFrame* frame, const URL& webcoreURL) const
{
- if (frame && m_loaderClient.client().userAgentForURL) {
- API::String* apiString = m_loaderClient.userAgentForURL(frame, API::URL::create(webcoreURL).ptr());
- if (apiString)
- return apiString->string();
+ if (frame) {
+ String userAgent = m_loaderClient->userAgentForURL(*frame, webcoreURL);
+ if (!userAgent.isEmpty())
+ return userAgent;
}
String userAgent = platformUserAgent(webcoreURL);
@@ -5598,7 +5596,7 @@
void WebPage::reportUsedFeatures()
{
Vector<String> namedFeatures;
- m_loaderClient.featuresUsedInPage(this, namedFeatures);
+ m_loaderClient->featuresUsedInPage(*this, namedFeatures);
}
void WebPage::updateWebsitePolicies(const WebsitePolicies& websitePolicies)
@@ -5828,7 +5826,7 @@
void WebPage::dispatchDidReachLayoutMilestone(WebCore::LayoutMilestones milestones)
{
RefPtr<API::Object> userData;
- injectedBundleLoaderClient().didReachLayoutMilestone(this, milestones, userData);
+ injectedBundleLoaderClient().didReachLayoutMilestone(*this, milestones, userData);
// Clients should not set userData for this message, and it won't be passed through.
ASSERT(!userData);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (218163 => 218164)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2017-06-13 03:14:21 UTC (rev 218163)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2017-06-13 06:28:48 UTC (rev 218164)
@@ -28,12 +28,12 @@
#include "APIInjectedBundleEditorClient.h"
#include "APIInjectedBundleFormClient.h"
#include "APIInjectedBundlePageContextMenuClient.h"
+#include "APIInjectedBundlePageLoaderClient.h"
#include "APIInjectedBundlePageUIClient.h"
#include "APIObject.h"
#include "EditingRange.h"
#include "InjectedBundlePageContextMenuClient.h"
#include "InjectedBundlePageFullScreenClient.h"
-#include "InjectedBundlePageLoaderClient.h"
#include "InjectedBundlePagePolicyClient.h"
#include "InjectedBundlePageResourceLoadClient.h"
#include "LayerTreeContext.h"
@@ -330,7 +330,7 @@
#endif
void setInjectedBundleEditorClient(std::unique_ptr<API::InjectedBundle::EditorClient>);
void setInjectedBundleFormClient(std::unique_ptr<API::InjectedBundle::FormClient>);
- void initializeInjectedBundleLoaderClient(WKBundlePageLoaderClientBase*);
+ void setInjectedBundlePageLoaderClient(std::unique_ptr<API::InjectedBundle::PageLoaderClient>);
void initializeInjectedBundlePolicyClient(WKBundlePagePolicyClientBase*);
void initializeInjectedBundleResourceLoadClient(WKBundlePageResourceLoadClientBase*);
void setInjectedBundleUIClient(std::unique_ptr<API::InjectedBundle::PageUIClient>);
@@ -343,7 +343,7 @@
#endif
API::InjectedBundle::EditorClient& injectedBundleEditorClient() { return *m_editorClient.get(); }
API::InjectedBundle::FormClient& injectedBundleFormClient() { return *m_formClient.get(); }
- InjectedBundlePageLoaderClient& injectedBundleLoaderClient() { return m_loaderClient; }
+ API::InjectedBundle::PageLoaderClient& injectedBundleLoaderClient() { return *m_loaderClient; }
InjectedBundlePagePolicyClient& injectedBundlePolicyClient() { return m_policyClient; }
InjectedBundlePageResourceLoadClient& injectedBundleResourceLoadClient() { return m_resourceLoadClient; }
API::InjectedBundle::PageUIClient& injectedBundleUIClient() { return *m_uiClient.get(); }
@@ -1382,7 +1382,7 @@
#endif
std::unique_ptr<API::InjectedBundle::EditorClient> m_editorClient;
std::unique_ptr<API::InjectedBundle::FormClient> m_formClient;
- InjectedBundlePageLoaderClient m_loaderClient;
+ std::unique_ptr<API::InjectedBundle::PageLoaderClient> m_loaderClient;
InjectedBundlePagePolicyClient m_policyClient;
InjectedBundlePageResourceLoadClient m_resourceLoadClient;
std::unique_ptr<API::InjectedBundle::PageUIClient> m_uiClient;