Revert r238819 which is unneeded and caused a performance regression.
https://bugs.webkit.org/show_bug.cgi?id=192272
<rdar://problem/46664625>
Source/WebCore:
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
Source/WebKit:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
(API::InjectedBundle::PageLoaderClient::didStartProvisionalLoadForFrame):
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
* WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(PageLoaderClient::didStartProvisionalLoadForFrame):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Source/WebKitLegacy/mac:
* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
Source/WebKitLegacy/win:
* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
* WebCoreSupport/WebFrameLoaderClient.h:
Tools:
* TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm:
(-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:didCommitLoadForFrame:]):
(-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:willStartProvisionalLoadForFrame:completionHandler:]): Deleted.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@240808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 511461a..2b94de3 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2019-01-31 Alex Christensen <achristensen@webkit.org>
+
+ Revert r238819 which is unneeded and caused a performance regression.
+ https://bugs.webkit.org/show_bug.cgi?id=192272
+ <rdar://problem/46664625>
+
+ * loader/EmptyFrameLoaderClient.h:
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::prepareForLoadStart):
+ (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
+ (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
+ * loader/FrameLoader.h:
+ * loader/FrameLoaderClient.h:
+
2019-01-31 Justin Fan <justin_fan@apple.com>
[WebGPU] WebGPUAdapterDescriptor -> GPURequestAdapterOptions and take powerPreference into account
diff --git a/Source/WebCore/loader/EmptyFrameLoaderClient.h b/Source/WebCore/loader/EmptyFrameLoaderClient.h
index a43e20b..0bc12b7 100644
--- a/Source/WebCore/loader/EmptyFrameLoaderClient.h
+++ b/Source/WebCore/loader/EmptyFrameLoaderClient.h
@@ -81,7 +81,7 @@
void dispatchDidReplaceStateWithinPage() final { }
void dispatchDidPopStateWithinPage() final { }
void dispatchWillClose() final { }
- void dispatchDidStartProvisionalLoad(CompletionHandler<void()>&& completionHandler) final { completionHandler(); }
+ void dispatchDidStartProvisionalLoad() final { }
void dispatchDidReceiveTitle(const StringWithDirection&) final { }
void dispatchDidCommitLoad(Optional<HasInsecureContent>) final { }
void dispatchDidFailProvisionalLoad(const ResourceError&) final { }
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp
index 6b3fde7..0a0d7e7 100644
--- a/Source/WebCore/loader/FrameLoader.cpp
+++ b/Source/WebCore/loader/FrameLoader.cpp
@@ -1215,20 +1215,19 @@
frame->loader().m_isComplete = false;
}
-void FrameLoader::prepareForLoadStart(CompletionHandler<void()>&& completionHandler)
+void FrameLoader::prepareForLoadStart()
{
RELEASE_LOG_IF_ALLOWED("prepareForLoadStart: Starting frame load (frame = %p, main = %d)", &m_frame, m_frame.isMainFrame());
m_progressTracker->progressStarted();
- m_client.dispatchDidStartProvisionalLoad([this, protectedFrame = makeRef(m_frame), completionHandler = WTFMove(completionHandler)] () mutable {
- if (AXObjectCache::accessibilityEnabled()) {
- if (AXObjectCache* cache = m_frame.document()->existingAXObjectCache()) {
- AXObjectCache::AXLoadingEvent loadingEvent = loadType() == FrameLoadType::Reload ? AXObjectCache::AXLoadingReloaded : AXObjectCache::AXLoadingStarted;
- cache->frameLoadingEventNotification(&m_frame, loadingEvent);
- }
+ m_client.dispatchDidStartProvisionalLoad();
+
+ if (AXObjectCache::accessibilityEnabled()) {
+ if (AXObjectCache* cache = m_frame.document()->existingAXObjectCache()) {
+ AXObjectCache::AXLoadingEvent loadingEvent = loadType() == FrameLoadType::Reload ? AXObjectCache::AXLoadingReloaded : AXObjectCache::AXLoadingStarted;
+ cache->frameLoadingEventNotification(&m_frame, loadingEvent);
}
- completionHandler();
- });
+ }
}
void FrameLoader::setupForReplace()
@@ -3439,25 +3438,24 @@
return;
}
- prepareForLoadStart([this, protectedFrame = WTFMove(protectedFrame)] {
+ prepareForLoadStart();
- // The load might be cancelled inside of prepareForLoadStart(), nulling out the m_provisionalDocumentLoader,
- // so we need to null check it again.
- if (!m_provisionalDocumentLoader) {
- RELEASE_LOG_IF_ALLOWED("prepareForLoadStart completionHandler: Frame load canceled #2 (frame = %p, main = %d)", &m_frame, m_frame.isMainFrame());
- return;
- }
-
- DocumentLoader* activeDocLoader = activeDocumentLoader();
- if (activeDocLoader && activeDocLoader->isLoadingMainResource()) {
- RELEASE_LOG_IF_ALLOWED("prepareForLoadStart completionHandler: Main frame already being loaded (frame = %p, main = %d)", &m_frame, m_frame.isMainFrame());
- return;
- }
-
- m_loadingFromCachedPage = false;
+ // The load might be cancelled inside of prepareForLoadStart(), nulling out the m_provisionalDocumentLoader,
+ // so we need to null check it again.
+ if (!m_provisionalDocumentLoader) {
+ RELEASE_LOG_IF_ALLOWED("prepareForLoadStart completionHandler: Frame load canceled #2 (frame = %p, main = %d)", &m_frame, m_frame.isMainFrame());
+ return;
+ }
+
+ DocumentLoader* activeDocLoader = activeDocumentLoader();
+ if (activeDocLoader && activeDocLoader->isLoadingMainResource()) {
+ RELEASE_LOG_IF_ALLOWED("prepareForLoadStart completionHandler: Main frame already being loaded (frame = %p, main = %d)", &m_frame, m_frame.isMainFrame());
+ return;
+ }
+
+ m_loadingFromCachedPage = false;
- m_provisionalDocumentLoader->startLoadingMainResource();
- });
+ m_provisionalDocumentLoader->startLoadingMainResource();
};
if (!formState) {
@@ -3599,20 +3597,20 @@
void FrameLoader::loadProvisionalItemFromCachedPage()
{
- prepareForLoadStart([this, protectedFrame = makeRef(m_frame)] {
- DocumentLoader* provisionalLoader = provisionalDocumentLoader();
- LOG(PageCache, "WebCorePageCache: Loading provisional DocumentLoader %p with URL '%s' from CachedPage", provisionalDocumentLoader(), provisionalDocumentLoader()->url().stringCenterEllipsizedToLength().utf8().data());
+ DocumentLoader* provisionalLoader = provisionalDocumentLoader();
+ LOG(PageCache, "WebCorePageCache: Loading provisional DocumentLoader %p with URL '%s' from CachedPage", provisionalDocumentLoader(), provisionalDocumentLoader()->url().stringCenterEllipsizedToLength().utf8().data());
- m_loadingFromCachedPage = true;
-
- // Should have timing data from previous time(s) the page was shown.
- ASSERT(provisionalLoader->timing().startTime());
- provisionalLoader->resetTiming();
- provisionalLoader->timing().markStartTime();
-
- provisionalLoader->setCommitted(true);
- commitProvisionalLoad();
- });
+ prepareForLoadStart();
+
+ m_loadingFromCachedPage = true;
+
+ // Should have timing data from previous time(s) the page was shown.
+ ASSERT(provisionalLoader->timing().startTime());
+ provisionalLoader->resetTiming();
+ provisionalLoader->timing().markStartTime();
+
+ provisionalLoader->setCommitted(true);
+ commitProvisionalLoad();
}
bool FrameLoader::shouldTreatURLAsSameAsCurrent(const URL& url) const
diff --git a/Source/WebCore/loader/FrameLoader.h b/Source/WebCore/loader/FrameLoader.h
index 047cff4..c37c440 100644
--- a/Source/WebCore/loader/FrameLoader.h
+++ b/Source/WebCore/loader/FrameLoader.h
@@ -389,7 +389,7 @@
void loadInSameDocument(const URL&, SerializedScriptValue* stateObject, bool isNewNavigation);
- void prepareForLoadStart(CompletionHandler<void()>&&);
+ void prepareForLoadStart();
void provisionalLoadStarted();
void willTransitionToCommitted();
diff --git a/Source/WebCore/loader/FrameLoaderClient.h b/Source/WebCore/loader/FrameLoaderClient.h
index 6b0023f..a4b0250 100644
--- a/Source/WebCore/loader/FrameLoaderClient.h
+++ b/Source/WebCore/loader/FrameLoaderClient.h
@@ -173,7 +173,7 @@
virtual void dispatchDidPopStateWithinPage() = 0;
virtual void dispatchWillClose() = 0;
virtual void dispatchDidReceiveIcon() { }
- virtual void dispatchDidStartProvisionalLoad(CompletionHandler<void()>&&) = 0;
+ virtual void dispatchDidStartProvisionalLoad() = 0;
virtual void dispatchDidReceiveTitle(const StringWithDirection&) = 0;
virtual void dispatchDidCommitLoad(Optional<HasInsecureContent>) = 0;
virtual void dispatchDidFailProvisionalLoad(const ResourceError&) = 0;
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index fda715d..48722c2 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,22 @@
+2019-01-31 Alex Christensen <achristensen@webkit.org>
+
+ Revert r238819 which is unneeded and caused a performance regression.
+ https://bugs.webkit.org/show_bug.cgi?id=192272
+ <rdar://problem/46664625>
+
+ * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
+ (API::InjectedBundle::PageLoaderClient::didStartProvisionalLoadForFrame):
+ * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
+ * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
+ * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+ (PageLoaderClient::didStartProvisionalLoadForFrame):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+ (WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):
+ * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+
2019-01-31 Jiewen Tan <jiewen_tan@apple.com>
Formalize WebKitAdditions mechanism of LoadOptimizer
diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h b/Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h
index 2d5efb8..c6e97ab 100644
--- a/Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h
+++ b/Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h
@@ -27,7 +27,6 @@
#include "SameDocumentNavigationType.h"
#include <WebCore/LayoutMilestone.h>
-#include <wtf/CompletionHandler.h>
#include <wtf/Forward.h>
#include <wtf/WallTime.h>
#include <wtf/text/WTFString.h>
@@ -58,7 +57,7 @@
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 WTF::URL&, API::Object*) { }
- virtual void didStartProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, CompletionHandler<void(RefPtr<API::Object>&&)>&& completionHandler) { completionHandler(nullptr); }
+ 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>&) { }
diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h b/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h
index de31d58..bfbc4fb 100644
--- a/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h
+++ b/Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h
@@ -37,7 +37,6 @@
// Frame loading
- (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller didStartProvisionalLoadForFrame:(WKWebProcessPlugInFrame *)frame;
-- (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller willStartProvisionalLoadForFrame:(WKWebProcessPlugInFrame *)frame completionHandler:(void(^)(void))completionHandler;
- (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller didReceiveServerRedirectForProvisionalLoadForFrame:(WKWebProcessPlugInFrame *)frame;
- (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller didCommitLoadForFrame:(WKWebProcessPlugInFrame *)frame;
- (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller didFinishDocumentLoadForFrame:(WKWebProcessPlugInFrame *)frame;
diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp
index 1ef1f23..47f0f04 100644
--- a/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp
+++ b/Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp
@@ -170,12 +170,11 @@
return documentLoader->url().string().utf8();
}
- void didStartProvisionalLoadForFrame(WebPage&, WebFrame& frame, CompletionHandler<void(RefPtr<API::Object>&&)>&& completionHandler) override
+ void didStartProvisionalLoadForFrame(WebPage&, WebFrame& frame, RefPtr<API::Object>&) override
{
if (!frame.isMainFrame())
- return completionHandler(nullptr);
+ return;
webkitWebPageSetURI(m_webPage, getDocumentLoaderURL(frame.coreFrame()->loader().provisionalDocumentLoader()));
- completionHandler(nullptr);
}
void didReceiveServerRedirectForProvisionalLoadForFrame(WebPage&, WebFrame& frame, RefPtr<API::Object>&) override
diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm b/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
index 4ae20f4..d150c56d 100644
--- a/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
+++ b/Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm
@@ -97,7 +97,7 @@
: m_controller(controller)
, m_delegate(delegate) { }
- void didStartProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, CompletionHandler<void(RefPtr<API::Object>&&)>&&) override;
+ void didStartProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) override;
void didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) override;
void didFailProvisionalLoadWithErrorForFrame(WebKit::WebPage&, WebKit::WebFrame&, const WebCore::ResourceError&, RefPtr<API::Object>&) override;
void didCommitLoadForFrame(WebKit::WebPage&, WebKit::WebFrame&, RefPtr<API::Object>&) override;
@@ -135,25 +135,10 @@
RetainPtr<_WKRemoteObjectRegistry> _remoteObjectRegistry;
}
-void PageLoaderClient::didStartProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame& frame, CompletionHandler<void(RefPtr<API::Object>&&)>&& completionHandler)
+void PageLoaderClient::didStartProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame& frame, RefPtr<API::Object>&)
{
- if ([loadDelegate() respondsToSelector:@selector(webProcessPlugInBrowserContextController:didStartProvisionalLoadForFrame:)]) {
+ if ([loadDelegate() respondsToSelector:@selector(webProcessPlugInBrowserContextController:didStartProvisionalLoadForFrame:)])
[loadDelegate() webProcessPlugInBrowserContextController:pluginContextController() didStartProvisionalLoadForFrame:wrapper(frame)];
- completionHandler(nullptr);
- return;
- }
- SEL selector = @selector(webProcessPlugInBrowserContextController:willStartProvisionalLoadForFrame:completionHandler:);
- if ([loadDelegate() respondsToSelector:selector]) {
- auto checker = WebKit::CompletionHandlerCallChecker::create(loadDelegate(), selector);
- [loadDelegate() webProcessPlugInBrowserContextController:pluginContextController() willStartProvisionalLoadForFrame:wrapper(frame) completionHandler:makeBlockPtr([completionHandler = WTFMove(completionHandler), checker = WTFMove(checker)] () mutable {
- if (checker->completionHandlerHasBeenCalled())
- return;
- checker->didCallCompletionHandler();
- completionHandler(nullptr);
- }).get()];
- return;
- }
- completionHandler(nullptr);
}
void PageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebKit::WebPage&, WebKit::WebFrame& frame, RefPtr<API::Object>&)
diff --git a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp
index a7d6e7b..1805e38 100644
--- a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp
+++ b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp
@@ -81,14 +81,14 @@
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);
}
-void InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame(WebPage& page, WebFrame& frame, CompletionHandler<void(RefPtr<API::Object>&&)>&& completionHandler)
+void InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
{
if (!m_client.didStartProvisionalLoadForFrame)
- return completionHandler(nullptr);
+ return;
WKTypeRef userDataToPass = nullptr;
m_client.didStartProvisionalLoadForFrame(toAPI(&page), toAPI(&frame), &userDataToPass, m_client.base.clientInfo);
- completionHandler(adoptRef(toImpl(userDataToPass)));
+ userData = adoptRef(toImpl(userDataToPass));
}
void InjectedBundlePageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebPage& page, WebFrame& frame, RefPtr<API::Object>& userData)
diff --git a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
index 5f5fd24..6d3e492 100644
--- a/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
+++ b/Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h
@@ -49,7 +49,7 @@
void willLoadURLRequest(WebPage&, const WebCore::ResourceRequest&, API::Object*) override;
void willLoadDataRequest(WebPage&, const WebCore::ResourceRequest&, WebCore::SharedBuffer*, const WTF::String&, const WTF::String&, const URL&, API::Object*) override;
- void didStartProvisionalLoadForFrame(WebPage&, WebFrame&, CompletionHandler<void(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;
diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
index e8613d2..f1e2369 100644
--- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
@@ -458,11 +458,11 @@
notImplemented();
}
-void WebFrameLoaderClient::dispatchDidStartProvisionalLoad(CompletionHandler<void()>&& completionHandler)
+void WebFrameLoaderClient::dispatchDidStartProvisionalLoad()
{
WebPage* webPage = m_frame->page();
if (!webPage)
- return completionHandler();
+ return;
#if ENABLE(FULLSCREEN_API)
Element* documentElement = m_frame->coreFrame()->document()->documentElement();
@@ -474,13 +474,16 @@
webPage->sandboxExtensionTracker().didStartProvisionalLoad(m_frame);
WebDocumentLoader& provisionalLoader = static_cast<WebDocumentLoader&>(*m_frame->coreFrame()->loader().provisionalDocumentLoader());
+ auto& url = provisionalLoader.url();
+ RefPtr<API::Object> userData;
// Notify the bundle client.
- webPage->injectedBundleLoaderClient().didStartProvisionalLoadForFrame(*webPage, *m_frame, [completionHandler = WTFMove(completionHandler), webPage = makeRef(*webPage), url = provisionalLoader.url(), unreachableURL = provisionalLoader.unreachableURL(), frameID = m_frame->frameID(), navigationID = provisionalLoader.navigationID()] (RefPtr<API::Object>&& userData) mutable {
- // Notify the UIProcess.
- webPage->send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(frameID, navigationID, url, unreachableURL, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
- completionHandler();
- });
+ webPage->injectedBundleLoaderClient().didStartProvisionalLoadForFrame(*webPage, *m_frame, userData);
+
+ auto& unreachableURL = provisionalLoader.unreachableURL();
+
+ // Notify the UIProcess.
+ webPage->send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(m_frame->frameID(), provisionalLoader.navigationID(), url, unreachableURL, UserData(WebProcess::singleton().transformObjectsToHandles(userData.get()).get())));
}
static constexpr unsigned maxTitleLength = 1000; // Closest power of 10 above the W3C recommendation for Title length.
diff --git a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
index c988177..11cd9b54 100644
--- a/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
+++ b/Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h
@@ -109,7 +109,7 @@
void dispatchDidReplaceStateWithinPage() final;
void dispatchDidPopStateWithinPage() final;
void dispatchWillClose() final;
- void dispatchDidStartProvisionalLoad(CompletionHandler<void()>&&) final;
+ void dispatchDidStartProvisionalLoad() final;
void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) final;
void dispatchDidCommitLoad(Optional<WebCore::HasInsecureContent>) final;
void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) final;
diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog
index b5cbcd3..a22164a 100644
--- a/Source/WebKitLegacy/mac/ChangeLog
+++ b/Source/WebKitLegacy/mac/ChangeLog
@@ -1,3 +1,13 @@
+2019-01-31 Alex Christensen <achristensen@webkit.org>
+
+ Revert r238819 which is unneeded and caused a performance regression.
+ https://bugs.webkit.org/show_bug.cgi?id=192272
+ <rdar://problem/46664625>
+
+ * WebCoreSupport/WebFrameLoaderClient.h:
+ * WebCoreSupport/WebFrameLoaderClient.mm:
+ (WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
+
2019-01-28 Devin Rousso <drousso@apple.com>
Web Inspector: provide a way to edit page WebRTC settings on a remote target
diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
index 0a42178..195ffdb 100644
--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
@@ -114,7 +114,7 @@
void dispatchDidPopStateWithinPage() final;
void dispatchWillClose() final;
- void dispatchDidStartProvisionalLoad(CompletionHandler<void()>&&) final;
+ void dispatchDidStartProvisionalLoad() final;
void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) final;
void dispatchDidCommitLoad(Optional<WebCore::HasInsecureContent>) final;
void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) final;
diff --git a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
index 7a391f6..6e89d98 100644
--- a/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
+++ b/Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
@@ -670,7 +670,7 @@
#endif
}
-void WebFrameLoaderClient::dispatchDidStartProvisionalLoad(CompletionHandler<void()>&& completionHandler)
+void WebFrameLoaderClient::dispatchDidStartProvisionalLoad()
{
ASSERT(!m_webFrame->_private->provisionalURL);
m_webFrame->_private->provisionalURL = core(m_webFrame.get())->loader().provisionalDocumentLoader()->url().string();
@@ -687,7 +687,6 @@
WebFrameLoadDelegateImplementationCache* implementations = WebViewGetFrameLoadDelegateImplementations(webView);
if (implementations->didStartProvisionalLoadForFrameFunc)
CallFrameLoadDelegate(implementations->didStartProvisionalLoadForFrameFunc, webView, @selector(webView:didStartProvisionalLoadForFrame:), m_webFrame.get());
- completionHandler();
}
static constexpr unsigned maxTitleLength = 1000; // Closest power of 10 above the W3C recommendation for Title length.
diff --git a/Source/WebKitLegacy/win/ChangeLog b/Source/WebKitLegacy/win/ChangeLog
index b79b24c..4730527 100644
--- a/Source/WebKitLegacy/win/ChangeLog
+++ b/Source/WebKitLegacy/win/ChangeLog
@@ -1,3 +1,13 @@
+2019-01-31 Alex Christensen <achristensen@webkit.org>
+
+ Revert r238819 which is unneeded and caused a performance regression.
+ https://bugs.webkit.org/show_bug.cgi?id=192272
+ <rdar://problem/46664625>
+
+ * WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
+ * WebCoreSupport/WebFrameLoaderClient.h:
+
2019-01-31 Takashi Komori <Takashi.Komori@sony.com>
[Curl] Fix DRT crash related to private browsing.
diff --git a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp
index ee8198a..7031fc7 100644
--- a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp
+++ b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp
@@ -419,13 +419,12 @@
frameLoadDelegate->willCloseFrame(webView, m_webFrame);
}
-void WebFrameLoaderClient::dispatchDidStartProvisionalLoad(CompletionHandler<void()>&& completionHandler)
+void WebFrameLoaderClient::dispatchDidStartProvisionalLoad()
{
WebView* webView = m_webFrame->webView();
COMPtr<IWebFrameLoadDelegate> frameLoadDelegate;
if (SUCCEEDED(webView->frameLoadDelegate(&frameLoadDelegate)))
frameLoadDelegate->didStartProvisionalLoadForFrame(webView, m_webFrame);
- completionHandler();
}
void WebFrameLoaderClient::dispatchDidReceiveTitle(const StringWithDirection& title)
diff --git a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h
index a965f59..1b0499b 100644
--- a/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h
+++ b/Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h
@@ -91,7 +91,7 @@
void dispatchDidReplaceStateWithinPage() override;
void dispatchDidPopStateWithinPage() override;
void dispatchWillClose() override;
- void dispatchDidStartProvisionalLoad(CompletionHandler<void()>&&) override;
+ void dispatchDidStartProvisionalLoad() override;
void dispatchDidReceiveTitle(const WebCore::StringWithDirection&) override;
void dispatchDidCommitLoad(Optional<WebCore::HasInsecureContent>) override;
void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&) override;