WebKit Bugzilla
Attachment 349942 Details for
Bug 189012
: Make WebPageProxy always have a API::NavigationClient instead of always having a API::LoaderClient and API::PolicyClient
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-189012-20180917143443.patch (text/plain), 33.45 KB, created by
Alex Christensen
on 2018-09-17 14:34:44 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-09-17 14:34:44 PDT
Size:
33.45 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 236079) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,56 @@ >+2018-09-17 Alex Christensen <achristensen@webkit.org> >+ >+ Make WebPageProxy always have a API::NavigationClient instead of always having a API::LoaderClient and API::PolicyClient >+ https://bugs.webkit.org/show_bug.cgi?id=189012 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/API/C/WKPage.cpp: >+ (WKPageSetPageNavigationClient): >+ * UIProcess/Cocoa/NavigationState.h: >+ * UIProcess/Cocoa/NavigationState.mm: >+ (WebKit::NavigationState::createNavigationClient): >+ * UIProcess/WebPageProxy.cpp: >+ (WebKit::WebPageProxy::WebPageProxy): >+ (WebKit::WebPageProxy::setNavigationClient): >+ (WebKit::WebPageProxy::setLoaderClient): >+ (WebKit::WebPageProxy::setPolicyClient): >+ (WebKit::WebPageProxy::close): >+ (WebKit::WebPageProxy::didChangeBackForwardList): >+ (WebKit::WebPageProxy::willGoToBackForwardListItem): >+ (WebKit::WebPageProxy::findPlugin): >+ (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): >+ (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): >+ (WebKit::WebPageProxy::willPerformClientRedirectForFrame): >+ (WebKit::WebPageProxy::didCancelClientRedirectForFrame): >+ (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): >+ (WebKit::WebPageProxy::didCommitLoadForFrame): >+ (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): >+ (WebKit::WebPageProxy::didFinishLoadForFrame): >+ (WebKit::WebPageProxy::didFailLoadForFrame): >+ (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): >+ (WebKit::WebPageProxy::didReachLayoutMilestone): >+ (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): >+ (WebKit::WebPageProxy::didRunInsecureContentForFrame): >+ (WebKit::WebPageProxy::decidePolicyForNavigationAction): >+ (WebKit::WebPageProxy::decidePolicyForNewWindowAction): >+ (WebKit::WebPageProxy::decidePolicyForResponse): >+ (WebKit::WebPageProxy::contentRuleListNotification): >+ (WebKit::WebPageProxy::webGLPolicyForURL): >+ (WebKit::WebPageProxy::resolveWebGLPolicyForURL): >+ (WebKit::WebPageProxy::processDidBecomeUnresponsive): >+ (WebKit::WebPageProxy::processDidBecomeResponsive): >+ (WebKit::WebPageProxy::dispatchProcessDidTerminate): >+ (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): >+ (WebKit::WebPageProxy::wrapCryptoKey): >+ (WebKit::WebPageProxy::unwrapCryptoKey): >+ (WebKit::WebPageProxy::signedPublicKeyAndChallengeString): >+ (WebKit::WebPageProxy::navigationGestureDidBegin): >+ (WebKit::WebPageProxy::navigationGestureWillEnd): >+ (WebKit::WebPageProxy::navigationGestureDidEnd): >+ (WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): >+ * UIProcess/WebPageProxy.h: >+ > 2018-09-17 Alex Christensen <achristensen@webkit.org> > > Expose WKWebProcess.h as a private header >Index: Source/WebKit/UIProcess/WebPageProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebPageProxy.cpp (revision 236078) >+++ Source/WebKit/UIProcess/WebPageProxy.cpp (working copy) >@@ -380,8 +380,7 @@ Ref<WebPageProxy> WebPageProxy::create(P > WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration) > : m_pageClient(makeWeakPtr(pageClient)) > , m_configuration(WTFMove(configuration)) >- , m_loaderClient(std::make_unique<API::LoaderClient>()) >- , m_policyClient(std::make_unique<API::PolicyClient>()) >+ , m_navigationClient(makeUniqueRef<API::NavigationClient>()) > , m_iconLoadingClient(std::make_unique<API::IconLoadingClient>()) > , m_formClient(std::make_unique<API::FormClient>()) > , m_uiClient(std::make_unique<API::UIClient>()) >@@ -567,28 +566,18 @@ void WebPageProxy::setHistoryClient(std: > m_historyClient = WTFMove(historyClient); > } > >-void WebPageProxy::setNavigationClient(std::unique_ptr<API::NavigationClient>&& navigationClient) >+void WebPageProxy::setNavigationClient(UniqueRef<API::NavigationClient>&& navigationClient) > { > m_navigationClient = WTFMove(navigationClient); > } > > void WebPageProxy::setLoaderClient(std::unique_ptr<API::LoaderClient>&& loaderClient) > { >- if (!loaderClient) { >- m_loaderClient = std::make_unique<API::LoaderClient>(); >- return; >- } >- > m_loaderClient = WTFMove(loaderClient); > } > > void WebPageProxy::setPolicyClient(std::unique_ptr<API::PolicyClient>&& policyClient) > { >- if (!policyClient) { >- m_policyClient = std::make_unique<API::PolicyClient>(); >- return; >- } >- > m_policyClient = WTFMove(policyClient); > } > >@@ -909,9 +898,9 @@ void WebPageProxy::close() > > resetState(ResetStateReason::PageInvalidated); > >- m_loaderClient = std::make_unique<API::LoaderClient>(); >- m_navigationClient = nullptr; >- m_policyClient = std::make_unique<API::PolicyClient>(); >+ m_loaderClient = nullptr; >+ m_navigationClient = makeUniqueRef<API::NavigationClient>(); >+ m_policyClient = nullptr; > m_iconLoadingClient = std::make_unique<API::IconLoadingClient>(); > m_formClient = std::make_unique<API::FormClient>(); > m_uiClient = std::make_unique<API::UIClient>(); >@@ -1284,7 +1273,7 @@ void WebPageProxy::didChangeBackForwardL > { > PageClientProtector protector(pageClient()); > >- if (!m_navigationClient || !m_navigationClient->didChangeBackForwardList(*this, added, removed)) >+ if (!m_navigationClient->didChangeBackForwardList(*this, added, removed) && m_loaderClient) > m_loaderClient->didChangeBackForwardList(*this, added, WTFMove(removed)); > > auto transaction = m_pageLoadState.transaction(); >@@ -1297,17 +1286,15 @@ void WebPageProxy::willGoToBackForwardLi > { > PageClientProtector protector(pageClient()); > >- if (auto* item = m_backForwardList->itemForID(itemID)) { >- if (m_navigationClient) >- m_navigationClient->willGoToBackForwardListItem(*this, *item, inPageCache, m_process->transformHandlesToObjects(userData.object()).get()); >- } >+ if (auto* item = m_backForwardList->itemForID(itemID)) >+ m_navigationClient->willGoToBackForwardListItem(*this, *item, inPageCache, m_process->transformHandlesToObjects(userData.object()).get()); > } > > bool WebPageProxy::shouldKeepCurrentBackForwardListItemInList(WebBackForwardListItem& item) > { > PageClientProtector protector(pageClient()); > >- return m_loaderClient->shouldKeepCurrentBackForwardListItemInList(*this, item); >+ return !m_loaderClient || m_loaderClient->shouldKeepCurrentBackForwardListItemInList(*this, item); > } > > bool WebPageProxy::canShowMIMEType(const String& mimeType) >@@ -2207,12 +2194,10 @@ void WebPageProxy::findPlugin(const Stri > }; > > #if PLATFORM(COCOA) >- if (m_navigationClient) { >- m_navigationClient->decidePolicyForPluginLoad(*this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), WTFMove(findPluginCompletion)); >- return; >- } >-#endif >+ m_navigationClient->decidePolicyForPluginLoad(*this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), WTFMove(findPluginCompletion)); >+#else > findPluginCompletion(pluginLoadPolicy, { }); >+#endif > } > > #endif // ENABLE(NETSCAPE_PLUGIN_API) >@@ -3503,11 +3488,10 @@ void WebPageProxy::didStartProvisionalLo > frame->didStartProvisionalLoad(url); > > m_pageLoadState.commitChanges(); >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->didStartProvisionalNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >- } else >+ if (m_loaderClient) > m_loaderClient->didStartProvisionalLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >+ else if (frame->isMainFrame()) >+ m_navigationClient->didStartProvisionalNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); > } > > void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, ResourceRequest&& request, const UserData& userData) >@@ -3535,11 +3519,10 @@ void WebPageProxy::didReceiveServerRedir > frame->didReceiveServerRedirectForProvisionalLoad(request.url()); > > m_pageLoadState.commitChanges(); >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->didReceiveServerRedirectForProvisionalNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >- } else >+ if (m_loaderClient) > m_loaderClient->didReceiveServerRedirectForProvisionalLoadForFrame(*this, *frame, frame->isMainFrame() ? navigation.get() : nullptr, m_process->transformHandlesToObjects(userData.object()).get()); >+ else if (frame->isMainFrame()) >+ m_navigationClient->didReceiveServerRedirectForProvisionalNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); > } > > void WebPageProxy::willPerformClientRedirectForFrame(uint64_t frameID, const String& url, double delay) >@@ -3549,10 +3532,8 @@ void WebPageProxy::willPerformClientRedi > WebFrameProxy* frame = m_process->webFrame(frameID); > MESSAGE_CHECK(frame); > >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->willPerformClientRedirect(*this, url, delay); >- } >+ if (frame->isMainFrame()) >+ m_navigationClient->willPerformClientRedirect(*this, url, delay); > } > > void WebPageProxy::didCancelClientRedirectForFrame(uint64_t frameID) >@@ -3562,10 +3543,8 @@ void WebPageProxy::didCancelClientRedire > WebFrameProxy* frame = m_process->webFrame(frameID); > MESSAGE_CHECK(frame); > >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->didCancelClientRedirect(*this); >- } >+ if (frame->isMainFrame()) >+ m_navigationClient->didCancelClientRedirect(*this); > } > > void WebPageProxy::didChangeProvisionalURLForFrame(uint64_t frameID, uint64_t, WebCore::URL&& url) >@@ -3621,15 +3600,14 @@ void WebPageProxy::didFailProvisionalLoa > ASSERT(!m_failingProvisionalLoadURL); > m_failingProvisionalLoadURL = provisionalURL; > >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->didFailProvisionalNavigationWithError(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); >- else { >+ if (m_loaderClient) >+ m_loaderClient->didFailProvisionalLoadWithErrorForFrame(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); >+ else if (frame->isMainFrame()) >+ m_navigationClient->didFailProvisionalNavigationWithError(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); >+ else { > // FIXME: Get the main frame's current navigation. > m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, frameSecurityOrigin, nullptr, error, m_process->transformHandlesToObjects(userData.object()).get()); >- } >- } else >- m_loaderClient->didFailProvisionalLoadWithErrorForFrame(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); >+ } > > m_failingProvisionalLoadURL = { }; > } >@@ -3722,11 +3700,11 @@ void WebPageProxy::didCommitLoadForFrame > #endif > > m_pageLoadState.commitChanges(); >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->didCommitNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >- } else >+ if (m_loaderClient) > m_loaderClient->didCommitLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >+ else if (frame->isMainFrame()) >+ m_navigationClient->didCommitNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >+ > #if ENABLE(ATTACHMENT_ELEMENT) > if (frame->isMainFrame()) > invalidateAllAttachments(); >@@ -3750,7 +3728,7 @@ void WebPageProxy::didFinishDocumentLoad > if (frame->isMainFrame() && navigationID) > navigation = &navigationState().navigation(navigationID); > >- if (m_navigationClient && frame->isMainFrame()) >+ if (frame->isMainFrame()) > m_navigationClient->didFinishDocumentLoad(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); > } > >@@ -3782,11 +3760,10 @@ void WebPageProxy::didFinishLoadForFrame > frame->didFinishLoad(); > > m_pageLoadState.commitChanges(); >- if (m_navigationClient) { >- if (isMainFrame) >- m_navigationClient->didFinishNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >- } else >+ if (m_loaderClient) > m_loaderClient->didFinishLoadForFrame(*this, *frame, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); >+ else if (isMainFrame) >+ m_navigationClient->didFinishNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); > > if (isMainFrame) { > reportPageLoadResult(); >@@ -3829,11 +3806,10 @@ void WebPageProxy::didFailLoadForFrame(u > frame->didFailLoad(); > > m_pageLoadState.commitChanges(); >- if (m_navigationClient) { >- if (frame->isMainFrame()) >- m_navigationClient->didFailNavigationWithError(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); >- } else >+ if (m_loaderClient) > m_loaderClient->didFailLoadWithErrorForFrame(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); >+ else if (frame->isMainFrame()) >+ m_navigationClient->didFailNavigationWithError(*this, *frame, navigation.get(), error, m_process->transformHandlesToObjects(userData.object()).get()); > > if (isMainFrame) { > reportPageLoadResult(error); >@@ -3871,7 +3847,7 @@ void WebPageProxy::didSameDocumentNaviga > m_pageLoadState.commitChanges(); > > SameDocumentNavigationType navigationType = static_cast<SameDocumentNavigationType>(opaqueSameDocumentNavigationType); >- if (m_navigationClient && isMainFrame) >+ if (isMainFrame) > m_navigationClient->didSameDocumentNavigation(*this, navigation.get(), navigationType, m_process->transformHandlesToObjects(userData.object()).get()); > > if (isMainFrame) >@@ -3922,7 +3898,8 @@ void WebPageProxy::didFirstVisuallyNonEm > WebFrameProxy* frame = m_process->webFrame(frameID); > MESSAGE_CHECK(frame); > >- m_loaderClient->didFirstVisuallyNonEmptyLayoutForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get()); >+ if (m_loaderClient) >+ m_loaderClient->didFirstVisuallyNonEmptyLayoutForFrame(*this, *frame, m_process->transformHandlesToObjects(userData.object()).get()); > > if (frame->isMainFrame()) > pageClient().didFirstVisuallyNonEmptyLayoutForMainFrame(); >@@ -3937,10 +3914,10 @@ void WebPageProxy::didReachLayoutMilesto > { > PageClientProtector protector(pageClient()); > >- if (m_navigationClient) >- m_navigationClient->renderingProgressDidChange(*this, static_cast<LayoutMilestones>(layoutMilestones)); >- else >+ if (m_loaderClient) > m_loaderClient->didReachLayoutMilestone(*this, static_cast<LayoutMilestones>(layoutMilestones)); >+ else >+ m_navigationClient->renderingProgressDidChange(*this, static_cast<LayoutMilestones>(layoutMilestones)); > } > > void WebPageProxy::didDisplayInsecureContentForFrame(uint64_t frameID, const UserData& userData) >@@ -3954,8 +3931,7 @@ void WebPageProxy::didDisplayInsecureCon > m_pageLoadState.didDisplayOrRunInsecureContent(transaction); > m_pageLoadState.commitChanges(); > >- if (m_navigationClient) >- m_navigationClient->didDisplayInsecureContent(*this, m_process->transformHandlesToObjects(userData.object()).get()); >+ m_navigationClient->didDisplayInsecureContent(*this, m_process->transformHandlesToObjects(userData.object()).get()); > } > > void WebPageProxy::didRunInsecureContentForFrame(uint64_t frameID, const UserData& userData) >@@ -3969,8 +3945,7 @@ void WebPageProxy::didRunInsecureContent > m_pageLoadState.didDisplayOrRunInsecureContent(transaction); > m_pageLoadState.commitChanges(); > >- if (m_navigationClient) >- m_navigationClient->didRunInsecureContent(*this, m_process->transformHandlesToObjects(userData.object()).get()); >+ m_navigationClient->didRunInsecureContent(*this, m_process->transformHandlesToObjects(userData.object()).get()); > } > > void WebPageProxy::didDetectXSSForFrame(uint64_t, const UserData&) >@@ -4077,7 +4052,9 @@ void WebPageProxy::decidePolicyForNaviga > if (auto* resourceLoadStatisticsStore = websiteDataStore().resourceLoadStatistics()) > resourceLoadStatisticsStore->logFrameNavigation(*frame, URL(URL(), m_pageLoadState.url()), request, redirectResponse.url()); > >- if (m_navigationClient) { >+ if (m_policyClient) >+ m_policyClient->decidePolicyForNavigationAction(*this, frame, WTFMove(navigationActionData), originatingFrame, originalRequest, WTFMove(request), WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >+ else { > auto destinationFrameInfo = API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin()); > RefPtr<API::FrameInfo> sourceFrameInfo; > if (!fromAPI && originatingFrame == frame) >@@ -4091,8 +4068,7 @@ void WebPageProxy::decidePolicyForNaviga > auto navigationAction = API::NavigationAction::create(WTFMove(navigationActionData), sourceFrameInfo.get(), destinationFrameInfo.ptr(), std::nullopt, WTFMove(request), originalRequest.url(), shouldOpenAppLinks, WTFMove(userInitiatedActivity), mainFrameNavigation); > > m_navigationClient->decidePolicyForNavigationAction(*this, WTFMove(navigationAction), WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >- } else >- m_policyClient->decidePolicyForNavigationAction(*this, frame, WTFMove(navigationActionData), originatingFrame, originalRequest, WTFMove(request), WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >+ } > > m_shouldSuppressAppLinksInNextNavigationPolicyDecision = false; > } >@@ -4124,7 +4100,9 @@ void WebPageProxy::decidePolicyForNewWin > })); > }, ShouldExpectSafeBrowsingResult::No)); > >- if (m_navigationClient) { >+ if (m_policyClient) >+ m_policyClient->decidePolicyForNewWindowAction(*this, *frame, navigationActionData, request, frameName, WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >+ else { > RefPtr<API::FrameInfo> sourceFrameInfo; > if (frame) > sourceFrameInfo = API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin()); >@@ -4135,8 +4113,8 @@ void WebPageProxy::decidePolicyForNewWin > > m_navigationClient->decidePolicyForNavigationAction(*this, navigationAction.get(), WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); > >- } else >- m_policyClient->decidePolicyForNewWindowAction(*this, *frame, navigationActionData, request, frameName, WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >+ } >+ > } > > void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const SecurityOriginData& frameSecurityOrigin, uint64_t navigationID, const ResourceResponse& response, const ResourceRequest& request, bool canShowMIMEType, uint64_t listenerID, const UserData& userData) >@@ -4160,11 +4138,12 @@ void WebPageProxy::decidePolicyForRespon > })); > }, ShouldExpectSafeBrowsingResult::No)); > >- if (m_navigationClient) { >+ if (m_policyClient) >+ m_policyClient->decidePolicyForResponse(*this, *frame, response, request, canShowMIMEType, WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >+ else { > auto navigationResponse = API::NavigationResponse::create(API::FrameInfo::create(*frame, frameSecurityOrigin.securityOrigin()).get(), request, response, canShowMIMEType); > m_navigationClient->decidePolicyForNavigationResponse(*this, WTFMove(navigationResponse), WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >- } else >- m_policyClient->decidePolicyForResponse(*this, *frame, response, request, canShowMIMEType, WTFMove(listener), m_process->transformHandlesToObjects(userData.object()).get()); >+ } > } > > void WebPageProxy::unableToImplementPolicy(uint64_t frameID, const ResourceError& error, const UserData& userData) >@@ -4194,8 +4173,7 @@ void WebPageProxy::willSubmitForm(uint64 > > void WebPageProxy::contentRuleListNotification(WebCore::URL&& url, Vector<String>&& identifiers, Vector<String>&& notifications) > { >- if (m_navigationClient) >- m_navigationClient->contentRuleListNotification(*this, WTFMove(url), WTFMove(identifiers), WTFMove(notifications)); >+ m_navigationClient->contentRuleListNotification(*this, WTFMove(url), WTFMove(identifiers), WTFMove(notifications)); > } > > void WebPageProxy::didNavigateWithNavigationData(const WebNavigationDataStore& store, uint64_t frameID) >@@ -4455,22 +4433,16 @@ void WebPageProxy::unavailablePluginButt > #if ENABLE(WEBGL) > void WebPageProxy::webGLPolicyForURL(URL&& url, Messages::WebPageProxy::WebGLPolicyForURL::DelayedReply&& reply) > { >- if (m_navigationClient) { >- m_navigationClient->webGLLoadPolicy(*this, url, [reply = WTFMove(reply)] (WebGLLoadPolicy policy) mutable { >- reply(static_cast<uint32_t>(policy)); >- }); >- } else >- reply(static_cast<uint32_t>(WebCore::WebGLLoadPolicy::WebGLAllowCreation)); >+ m_navigationClient->webGLLoadPolicy(*this, url, [reply = WTFMove(reply)] (WebGLLoadPolicy policy) mutable { >+ reply(static_cast<uint32_t>(policy)); >+ }); > } > > void WebPageProxy::resolveWebGLPolicyForURL(URL&& url, Messages::WebPageProxy::ResolveWebGLPolicyForURL::DelayedReply&& reply) > { >- if (m_navigationClient) { >- m_navigationClient->resolveWebGLLoadPolicy(*this, url, [reply = WTFMove(reply)] (WebGLLoadPolicy policy) mutable { >- reply(static_cast<uint32_t>(policy)); >- }); >- } else >- reply(static_cast<uint32_t>(WebCore::WebGLLoadPolicy::WebGLAllowCreation)); >+ m_navigationClient->resolveWebGLLoadPolicy(*this, url, [reply = WTFMove(reply)] (WebGLLoadPolicy policy) mutable { >+ reply(static_cast<uint32_t>(policy)); >+ }); > } > #endif // ENABLE(WEBGL) > >@@ -5870,8 +5842,7 @@ void WebPageProxy::processDidBecomeUnres > > updateBackingStoreDiscardableState(); > >- if (m_navigationClient) >- m_navigationClient->processDidBecomeUnresponsive(*this); >+ m_navigationClient->processDidBecomeUnresponsive(*this); > } > > void WebPageProxy::processDidBecomeResponsive() >@@ -5881,8 +5852,7 @@ void WebPageProxy::processDidBecomeRespo > > updateBackingStoreDiscardableState(); > >- if (m_navigationClient) >- m_navigationClient->processDidBecomeResponsive(*this); >+ m_navigationClient->processDidBecomeResponsive(*this); > } > > void WebPageProxy::willChangeProcessIsResponsive() >@@ -5958,10 +5928,10 @@ static bool shouldReloadAfterProcessTerm > void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) > { > bool handledByClient = false; >- if (m_navigationClient) >+ if (m_loaderClient) >+ handledByClient = reason != ProcessTerminationReason::RequestedByClient && m_loaderClient->processDidCrash(*this); >+ else > handledByClient = m_navigationClient->processDidTerminate(*this, reason); >- else if (reason != ProcessTerminationReason::RequestedByClient) >- handledByClient = m_loaderClient->processDidCrash(*this); > > if (!handledByClient && shouldReloadAfterProcessTermination(reason)) > tryReloadAfterProcessTermination(); >@@ -6345,10 +6315,7 @@ void WebPageProxy::didReceiveAuthenticat > } > #endif > >- if (m_navigationClient) >- m_navigationClient->didReceiveAuthenticationChallenge(*this, authenticationChallenge.get()); >- else >- authenticationChallenge->performDefaultHandling(); >+ m_navigationClient->didReceiveAuthenticationChallenge(*this, authenticationChallenge.get()); > } > > void WebPageProxy::exceededDatabaseQuota(uint64_t frameID, const String& originIdentifier, const String& databaseName, const String& displayName, uint64_t currentQuota, uint64_t currentOriginUsage, uint64_t currentDatabaseUsage, uint64_t expectedUsage, Messages::WebPageProxy::ExceededDatabaseQuota::DelayedReply&& reply) >@@ -6952,13 +6919,8 @@ void WebPageProxy::wrapCryptoKey(const V > > Vector<uint8_t> masterKey; > >- if (m_navigationClient) { >- if (RefPtr<API::Data> keyData = m_navigationClient->webCryptoMasterKey(*this)) >- masterKey = keyData->dataReference().vector(); >- } else if (!getDefaultWebCryptoMasterKey(masterKey)) { >- succeeded = false; >- return; >- } >+ if (RefPtr<API::Data> keyData = m_navigationClient->webCryptoMasterKey(*this)) >+ masterKey = keyData->dataReference().vector(); > > succeeded = wrapSerializedCryptoKey(masterKey, key, wrappedKey); > } >@@ -6969,13 +6931,8 @@ void WebPageProxy::unwrapCryptoKey(const > > Vector<uint8_t> masterKey; > >- if (m_navigationClient) { >- if (RefPtr<API::Data> keyData = m_navigationClient->webCryptoMasterKey(*this)) >- masterKey = keyData->dataReference().vector(); >- } else if (!getDefaultWebCryptoMasterKey(masterKey)) { >- succeeded = false; >- return; >- } >+ if (RefPtr<API::Data> keyData = m_navigationClient->webCryptoMasterKey(*this)) >+ masterKey = keyData->dataReference().vector(); > > succeeded = unwrapSerializedCryptoKey(masterKey, wrappedKey, key); > } >@@ -6985,12 +6942,8 @@ void WebPageProxy::signedPublicKeyAndCha > { > PageClientProtector protector(pageClient()); > >- if (m_navigationClient) { >- if (auto apiString = m_navigationClient->signedPublicKeyAndChallengeString(*this, keySizeIndex, API::String::create(challengeString), url)) >- result = apiString->string(); >- return; >- } >- result = WebCore::signedPublicKeyAndChallengeString(keySizeIndex, challengeString, url); >+ if (auto apiString = m_navigationClient->signedPublicKeyAndChallengeString(*this, keySizeIndex, API::String::create(challengeString), url)) >+ result = apiString->string(); > } > > void WebPageProxy::addMIMETypeWithCustomContentProvider(const String& mimeType) >@@ -7109,8 +7062,7 @@ void WebPageProxy::navigationGestureDidB > m_isShowingNavigationGestureSnapshot = true; > pageClient().navigationGestureDidBegin(); > >- if (m_navigationClient) >- m_navigationClient->didBeginNavigationGesture(*this); >+ m_navigationClient->didBeginNavigationGesture(*this); > } > > void WebPageProxy::navigationGestureWillEnd(bool willNavigate, WebBackForwardListItem& item) >@@ -7119,8 +7071,7 @@ void WebPageProxy::navigationGestureWill > > pageClient().navigationGestureWillEnd(willNavigate, item); > >- if (m_navigationClient) >- m_navigationClient->willEndNavigationGesture(*this, willNavigate, item); >+ m_navigationClient->willEndNavigationGesture(*this, willNavigate, item); > } > > void WebPageProxy::navigationGestureDidEnd(bool willNavigate, WebBackForwardListItem& item) >@@ -7129,8 +7080,7 @@ void WebPageProxy::navigationGestureDidE > > pageClient().navigationGestureDidEnd(willNavigate, item); > >- if (m_navigationClient) >- m_navigationClient->didEndNavigationGesture(*this, willNavigate, item); >+ m_navigationClient->didEndNavigationGesture(*this, willNavigate, item); > } > > void WebPageProxy::navigationGestureDidEnd() >@@ -7153,8 +7103,7 @@ void WebPageProxy::navigationGestureSnap > > pageClient().didRemoveNavigationGestureSnapshot(); > >- if (m_navigationClient) >- m_navigationClient->didRemoveNavigationGestureSnapshot(*this); >+ m_navigationClient->didRemoveNavigationGestureSnapshot(*this); > } > > void WebPageProxy::isPlayingMediaDidChange(MediaProducer::MediaStateFlags newState, uint64_t sourceElementID) >Index: Source/WebKit/UIProcess/WebPageProxy.h >=================================================================== >--- Source/WebKit/UIProcess/WebPageProxy.h (revision 236078) >+++ Source/WebKit/UIProcess/WebPageProxy.h (working copy) >@@ -94,6 +94,7 @@ > #include <wtf/Ref.h> > #include <wtf/RefPtr.h> > #include <wtf/RunLoop.h> >+#include <wtf/UniqueRef.h> > #include <wtf/Vector.h> > #include <wtf/text/WTFString.h> > >@@ -421,7 +422,7 @@ public: > API::DiagnosticLoggingClient* diagnosticLoggingClient() { return m_diagnosticLoggingClient.get(); } > void setDiagnosticLoggingClient(std::unique_ptr<API::DiagnosticLoggingClient>&&); > void setFormClient(std::unique_ptr<API::FormClient>&&); >- void setNavigationClient(std::unique_ptr<API::NavigationClient>&&); >+ void setNavigationClient(UniqueRef<API::NavigationClient>&&); > void setHistoryClient(std::unique_ptr<API::HistoryClient>&&); > void setLoaderClient(std::unique_ptr<API::LoaderClient>&&); > void setPolicyClient(std::unique_ptr<API::PolicyClient>&&); >@@ -1838,7 +1839,7 @@ private: > > std::unique_ptr<API::LoaderClient> m_loaderClient; > std::unique_ptr<API::PolicyClient> m_policyClient; >- std::unique_ptr<API::NavigationClient> m_navigationClient; >+ UniqueRef<API::NavigationClient> m_navigationClient; > std::unique_ptr<API::HistoryClient> m_historyClient; > std::unique_ptr<API::IconLoadingClient> m_iconLoadingClient; > std::unique_ptr<API::FormClient> m_formClient; >Index: Source/WebKit/UIProcess/API/C/WKPage.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/C/WKPage.cpp (revision 236078) >+++ Source/WebKit/UIProcess/API/C/WKPage.cpp (working copy) >@@ -2255,8 +2255,7 @@ void WKPageSetPageNavigationClient(WKPag > > WebPageProxy* webPageProxy = toImpl(pageRef); > >- auto navigationClient = std::make_unique<NavigationClient>(wkClient); >- webPageProxy->setNavigationClient(WTFMove(navigationClient)); >+ webPageProxy->setNavigationClient(makeUniqueRef<NavigationClient>(wkClient)); > } > > void WKPageRunJavaScriptInMainFrame(WKPageRef pageRef, WKStringRef scriptRef, void* context, WKPageRunJavaScriptFunction callback) >Index: Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp >=================================================================== >--- Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp (revision 236078) >+++ Source/WebKit/UIProcess/API/glib/WebKitNavigationClient.cpp (working copy) >@@ -140,6 +140,6 @@ private: > > void attachNavigationClientToView(WebKitWebView* webView) > { >- webkitWebViewGetPage(webView).setNavigationClient(std::make_unique<NavigationClient>(webView)); >+ webkitWebViewGetPage(webView).setNavigationClient(makeUniqueRef<NavigationClient>(webView)); > } > >Index: Source/WebKit/UIProcess/Cocoa/NavigationState.h >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/NavigationState.h (revision 236078) >+++ Source/WebKit/UIProcess/Cocoa/NavigationState.h (working copy) >@@ -36,6 +36,7 @@ > #import "ProcessThrottler.h" > #import <wtf/RetainPtr.h> > #import <wtf/RunLoop.h> >+#import <wtf/UniqueRef.h> > #import <wtf/WeakObjCPtr.h> > > @class WKWebView; >@@ -61,7 +62,7 @@ public: > > static NavigationState& fromWebPage(WebPageProxy&); > >- std::unique_ptr<API::NavigationClient> createNavigationClient(); >+ UniqueRef<API::NavigationClient> createNavigationClient(); > std::unique_ptr<API::HistoryClient> createHistoryClient(); > > RetainPtr<id <WKNavigationDelegate> > navigationDelegate(); >Index: Source/WebKit/UIProcess/Cocoa/NavigationState.mm >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/NavigationState.mm (revision 236078) >+++ Source/WebKit/UIProcess/Cocoa/NavigationState.mm (working copy) >@@ -121,9 +121,9 @@ NavigationState& NavigationState::fromWe > return *navigationStates().get(&webPageProxy); > } > >-std::unique_ptr<API::NavigationClient> NavigationState::createNavigationClient() >+UniqueRef<API::NavigationClient> NavigationState::createNavigationClient() > { >- return std::make_unique<NavigationClient>(*this); >+ return makeUniqueRef<NavigationClient>(*this); > } > > std::unique_ptr<API::HistoryClient> NavigationState::createHistoryClient() >Index: Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm >=================================================================== >--- Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (revision 236078) >+++ Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (working copy) >@@ -1123,14 +1123,12 @@ void WebPageProxy::didStartLoadForQuickL > { > // Ensure that fileName isn't really a path name > static_assert(notFound + 1 == 0, "The following line assumes WTF::notFound equals -1"); >- if (m_navigationClient) >- m_navigationClient->didStartLoadForQuickLookDocumentInMainFrame(fileName.substring(fileName.reverseFind('/') + 1), uti); >+ m_navigationClient->didStartLoadForQuickLookDocumentInMainFrame(fileName.substring(fileName.reverseFind('/') + 1), uti); > } > > void WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame(const QuickLookDocumentData& data) > { >- if (m_navigationClient) >- m_navigationClient->didFinishLoadForQuickLookDocumentInMainFrame(data); >+ m_navigationClient->didFinishLoadForQuickLookDocumentInMainFrame(data); > } > > void WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame(const String& fileName)
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 189012
:
348209
|
349925
|
349933
|
349942
|
350036