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;