WebKit Bugzilla
Attachment 360758 Details for
Bug 192272
: Add WKWebProcessPlugInLoadDelegate SPI willStartProvisionalLoadForFrame with a completion handler
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192272-20190131125410.patch (text/plain), 29.64 KB, created by
Alex Christensen
on 2019-01-31 12:54:10 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2019-01-31 12:54:10 PST
Size:
29.64 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 240805) >+++ Source/WebCore/ChangeLog (working copy) >@@ -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 Jiewen Tan <jiewen_tan@apple.com> > > Formalize WebKitAdditions mechanism of LoadOptimizer >Index: Source/WebCore/loader/EmptyFrameLoaderClient.h >=================================================================== >--- Source/WebCore/loader/EmptyFrameLoaderClient.h (revision 240805) >+++ Source/WebCore/loader/EmptyFrameLoaderClient.h (working copy) >@@ -81,7 +81,7 @@ class WEBCORE_EXPORT EmptyFrameLoaderCli > 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 { } >Index: Source/WebCore/loader/FrameLoader.cpp >=================================================================== >--- Source/WebCore/loader/FrameLoader.cpp (revision 240805) >+++ Source/WebCore/loader/FrameLoader.cpp (working copy) >@@ -1215,20 +1215,19 @@ void FrameLoader::started() > 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 @@ void FrameLoader::continueLoadAfterNavig > 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 @@ bool FrameLoader::shouldInterruptLoadFor > > 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 >Index: Source/WebCore/loader/FrameLoader.h >=================================================================== >--- Source/WebCore/loader/FrameLoader.h (revision 240805) >+++ Source/WebCore/loader/FrameLoader.h (working copy) >@@ -389,7 +389,7 @@ private: > > void loadInSameDocument(const URL&, SerializedScriptValue* stateObject, bool isNewNavigation); > >- void prepareForLoadStart(CompletionHandler<void()>&&); >+ void prepareForLoadStart(); > void provisionalLoadStarted(); > > void willTransitionToCommitted(); >Index: Source/WebCore/loader/FrameLoaderClient.h >=================================================================== >--- Source/WebCore/loader/FrameLoaderClient.h (revision 240805) >+++ Source/WebCore/loader/FrameLoaderClient.h (working copy) >@@ -173,7 +173,7 @@ public: > 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; >Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 240805) >+++ Source/WebKit/ChangeLog (working copy) >@@ -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 >Index: Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp (revision 240805) >+++ Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp (working copy) >@@ -81,14 +81,14 @@ void InjectedBundlePageLoaderClient::wil > 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) >Index: Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h (revision 240805) >+++ Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h (working copy) >@@ -49,7 +49,7 @@ public: > 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; >Index: Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h (revision 240805) >+++ Source/WebKit/WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h (working copy) >@@ -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 @@ public: > 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>&) { } >Index: Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h (revision 240805) >+++ Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h (working copy) >@@ -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; >Index: Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp (revision 240805) >+++ Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp (working copy) >@@ -170,12 +170,11 @@ private: > 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 >Index: Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm >=================================================================== >--- Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (revision 240805) >+++ Source/WebKit/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm (working copy) >@@ -97,7 +97,7 @@ public: > : 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 @@ private: > 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>&) >Index: Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (revision 240805) >+++ Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (working copy) >@@ -458,11 +458,11 @@ void WebFrameLoaderClient::dispatchWillC > 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 @@ void WebFrameLoaderClient::dispatchDidSt > 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. >Index: Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h >=================================================================== >--- Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h (revision 240805) >+++ Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h (working copy) >@@ -109,7 +109,7 @@ private: > 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; >Index: Source/WebKitLegacy/mac/ChangeLog >=================================================================== >--- Source/WebKitLegacy/mac/ChangeLog (revision 240805) >+++ Source/WebKitLegacy/mac/ChangeLog (working copy) >@@ -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 >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h (revision 240805) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h (working copy) >@@ -114,7 +114,7 @@ private: > 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; >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm (revision 240805) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm (working copy) >@@ -670,7 +670,7 @@ void WebFrameLoaderClient::dispatchWillC > #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 @@ void WebFrameLoaderClient::dispatchDidSt > 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. >Index: Source/WebKitLegacy/win/ChangeLog >=================================================================== >--- Source/WebKitLegacy/win/ChangeLog (revision 240805) >+++ Source/WebKitLegacy/win/ChangeLog (working copy) >@@ -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. >Index: Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp (revision 240805) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp (working copy) >@@ -419,13 +419,12 @@ void WebFrameLoaderClient::dispatchWillC > 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) >Index: Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h (revision 240805) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h (working copy) >@@ -91,7 +91,7 @@ public: > 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; >Index: Tools/ChangeLog >=================================================================== >--- Tools/ChangeLog (revision 240806) >+++ Tools/ChangeLog (working copy) >@@ -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> >+ >+ * TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm: >+ (-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:didCommitLoadForFrame:]): >+ (-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:willStartProvisionalLoadForFrame:completionHandler:]): Deleted. >+ > 2019-01-31 Jiewen Tan <jiewen_tan@apple.com> > > Formalize WebKitAdditions mechanism of LoadOptimizer >Index: Tools/TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm >=================================================================== >--- Tools/TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm (revision 240805) >+++ Tools/TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm (working copy) >@@ -37,8 +37,6 @@ > #import <WebKit/_WKRemoteObjectRegistry.h> > #import <wtf/RetainPtr.h> > >-static bool willStartProvisionalLoadForFrameCalled = false; >- > @interface ParserYieldTokenPlugIn : NSObject <WKWebProcessPlugIn, WKWebProcessPlugInLoadDelegate, ParserYieldTokenTestBundle> > @end > >@@ -66,16 +64,8 @@ - (void)releaseDocumentParserToken > --_numberOfTokensToTakeAfterComittingLoad; > } > >-- (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller willStartProvisionalLoadForFrame:(WKWebProcessPlugInFrame *)frame completionHandler:(void(^)(void))completionHandler >-{ >- willStartProvisionalLoadForFrameCalled = true; >- completionHandler(); >-} >- > - (void)webProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController *)controller didCommitLoadForFrame:(WKWebProcessPlugInFrame *)frame > { >- ASSERT(willStartProvisionalLoadForFrameCalled); >- > _loadCommitted = YES; > while (_numberOfTokensToTakeAfterComittingLoad) { > [self takeDocumentParserTokenAfterCommittingLoad];
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 192272
:
356279
|
356287
|
356294
| 360758