WebKit Bugzilla
Attachment 348209 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-20180827151038.patch (text/plain), 31.57 KB, created by
Alex Christensen
on 2018-08-27 15:10:38 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2018-08-27 15:10:38 PDT
Size:
31.57 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 235403) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,62 @@ >+2018-08-27 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!). >+ >+ NavigationClient is the way of the future. We only have to support LoaderClient and PolicyClient for the few legacy clients that still use them. >+ This makes the default flow of information simpler, and it makes us less likely to make mistakes for future features. >+ >+ * 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::shouldKeepCurrentBackForwardListItemInList): >+ (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::didFirstVisuallyNonEmptyLayoutForFrame): >+ (WebKit::WebPageProxy::didReachLayoutMilestone): >+ (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): >+ (WebKit::WebPageProxy::didRunInsecureContentForFrame): >+ (WebKit::WebPageProxy::decidePolicyForNavigationAction): >+ (WebKit::WebPageProxy::decidePolicyForNewWindowAction): >+ (WebKit::WebPageProxy::decidePolicyForResponse): >+ (WebKit::WebPageProxy::unableToImplementPolicy): >+ (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-08-27 Aditya Keerthi <akeerthi@apple.com> > > Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER >Index: Source/WebKit/UIProcess/WebPageProxy.cpp >=================================================================== >--- Source/WebKit/UIProcess/WebPageProxy.cpp (revision 235398) >+++ Source/WebKit/UIProcess/WebPageProxy.cpp (working copy) >@@ -378,8 +378,7 @@ Ref<WebPageProxy> WebPageProxy::create(P > WebPageProxy::WebPageProxy(PageClient& pageClient, WebProcessProxy& process, uint64_t pageID, Ref<API::PageConfiguration>&& configuration) > : m_pageClient(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>()) >@@ -556,28 +555,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); > } > >@@ -895,9 +884,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>(); >@@ -1270,8 +1259,7 @@ void WebPageProxy::didChangeBackForwardL > { > PageClientProtector protector(m_pageClient); > >- if (m_navigationClient) >- m_navigationClient->didChangeBackForwardList(*this, added, removed); >+ m_navigationClient->didChangeBackForwardList(*this, added, removed); > > auto transaction = m_pageLoadState.transaction(); > >@@ -1283,17 +1271,15 @@ void WebPageProxy::willGoToBackForwardLi > { > PageClientProtector protector(m_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(m_pageClient); > >- return m_loaderClient->shouldKeepCurrentBackForwardListItemInList(*this, item); >+ return !m_loaderClient || m_loaderClient->shouldKeepCurrentBackForwardListItemInList(*this, item); > } > > bool WebPageProxy::canShowMIMEType(const String& mimeType) >@@ -2193,8 +2179,7 @@ void WebPageProxy::findPlugin(const Stri > }; > > #if PLATFORM(COCOA) >- if (m_navigationClient) >- m_navigationClient->decidePolicyForPluginLoad(*this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), WTFMove(findPluginCompletion)); >+ m_navigationClient->decidePolicyForPluginLoad(*this, static_cast<PluginModuleLoadPolicy>(pluginLoadPolicy), pluginInformation.get(), WTFMove(findPluginCompletion)); > #endif > findPluginCompletion(pluginLoadPolicy, { }); > } >@@ -3452,11 +3437,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) >@@ -3484,11 +3468,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) >@@ -3498,10 +3481,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) >@@ -3511,10 +3492,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) >@@ -3570,15 +3549,10 @@ 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 { >- // FIXME: Get the main frame's current navigation. >- m_navigationClient->didFailProvisionalLoadInSubframeWithError(*this, *frame, frameSecurityOrigin, nullptr, 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()); > > m_failingProvisionalLoadURL = { }; > } >@@ -3670,7 +3644,7 @@ void WebPageProxy::didCommitLoadForFrame > #endif > > m_pageLoadState.commitChanges(); >- if (m_navigationClient && frame->isMainFrame()) >+ if (frame->isMainFrame()) > m_navigationClient->didCommitNavigation(*this, navigation.get(), m_process->transformHandlesToObjects(userData.object()).get()); > > #if ENABLE(ATTACHMENT_ELEMENT) >@@ -3696,7 +3670,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()); > } > >@@ -3728,11 +3702,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(); >@@ -3775,11 +3748,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); >@@ -3817,7 +3789,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) >@@ -3868,7 +3840,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()) > m_pageClient.didFirstVisuallyNonEmptyLayoutForMainFrame(); >@@ -3883,10 +3856,10 @@ void WebPageProxy::didReachLayoutMilesto > { > PageClientProtector protector(m_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) >@@ -3900,8 +3873,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) >@@ -3915,8 +3887,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&) >@@ -4041,7 +4012,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_loaderClient) >+ 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) >@@ -4055,8 +4028,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; > } >@@ -4088,7 +4060,9 @@ void WebPageProxy::decidePolicyForNewWin > })); > }, ShouldExpectSafeBrowsingResult::No)); > >- if (m_navigationClient) { >+ if (m_loaderClient) >+ 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()); >@@ -4099,8 +4073,7 @@ 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) >@@ -4124,11 +4097,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) >@@ -4138,7 +4112,8 @@ void WebPageProxy::unableToImplementPoli > WebFrameProxy* frame = m_process->webFrame(frameID); > MESSAGE_CHECK(frame); > >- m_policyClient->unableToImplementPolicy(*this, *frame, error, m_process->transformHandlesToObjects(userData.object()).get()); >+ if (m_policyClient) >+ m_policyClient->unableToImplementPolicy(*this, *frame, error, m_process->transformHandlesToObjects(userData.object()).get()); > } > > // FormClient >@@ -4158,8 +4133,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) >@@ -4417,22 +4391,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) > >@@ -5826,8 +5794,7 @@ void WebPageProxy::processDidBecomeUnres > > updateBackingStoreDiscardableState(); > >- if (m_navigationClient) >- m_navigationClient->processDidBecomeUnresponsive(*this); >+ m_navigationClient->processDidBecomeUnresponsive(*this); > } > > void WebPageProxy::processDidBecomeResponsive() >@@ -5837,8 +5804,7 @@ void WebPageProxy::processDidBecomeRespo > > updateBackingStoreDiscardableState(); > >- if (m_navigationClient) >- m_navigationClient->processDidBecomeResponsive(*this); >+ m_navigationClient->processDidBecomeResponsive(*this); > } > > void WebPageProxy::willChangeProcessIsResponsive() >@@ -5913,10 +5879,7 @@ static bool shouldReloadAfterProcessTerm > > void WebPageProxy::dispatchProcessDidTerminate(ProcessTerminationReason reason) > { >- bool handledByClient = false; >- if (m_navigationClient) >- handledByClient = m_navigationClient->processDidTerminate(*this, reason); >- >+ bool handledByClient = m_navigationClient->processDidTerminate(*this, reason); > if (!handledByClient && shouldReloadAfterProcessTermination(reason)) > tryReloadAfterProcessTermination(); > } >@@ -6297,10 +6260,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) >@@ -6904,10 +6864,9 @@ 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)) { >+ if (auto keyData = m_navigationClient->webCryptoMasterKey(*this)) >+ masterKey = keyData->dataReference().vector(); >+ else if (!getDefaultWebCryptoMasterKey(masterKey)) { > succeeded = false; > return; > } >@@ -6921,10 +6880,9 @@ 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)) { >+ if (auto keyData = m_navigationClient->webCryptoMasterKey(*this)) >+ masterKey = keyData->dataReference().vector(); >+ else if (!getDefaultWebCryptoMasterKey(masterKey)) { > succeeded = false; > return; > } >@@ -6937,9 +6895,8 @@ void WebPageProxy::signedPublicKeyAndCha > { > PageClientProtector protector(m_pageClient); > >- if (m_navigationClient) { >- if (auto apiString = m_navigationClient->signedPublicKeyAndChallengeString(*this, keySizeIndex, API::String::create(challengeString), url)) >- result = apiString->string(); >+ if (auto apiString = m_navigationClient->signedPublicKeyAndChallengeString(*this, keySizeIndex, API::String::create(challengeString), url)) { >+ result = apiString->string(); > return; > } > result = WebCore::signedPublicKeyAndChallengeString(keySizeIndex, challengeString, url); >@@ -7061,8 +7018,7 @@ void WebPageProxy::navigationGestureDidB > m_isShowingNavigationGestureSnapshot = true; > m_pageClient.navigationGestureDidBegin(); > >- if (m_navigationClient) >- m_navigationClient->didBeginNavigationGesture(*this); >+ m_navigationClient->didBeginNavigationGesture(*this); > } > > void WebPageProxy::navigationGestureWillEnd(bool willNavigate, WebBackForwardListItem& item) >@@ -7071,8 +7027,7 @@ void WebPageProxy::navigationGestureWill > > m_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) >@@ -7081,8 +7036,7 @@ void WebPageProxy::navigationGestureDidE > > m_pageClient.navigationGestureDidEnd(willNavigate, item); > >- if (m_navigationClient) >- m_navigationClient->didEndNavigationGesture(*this, willNavigate, item); >+ m_navigationClient->didEndNavigationGesture(*this, willNavigate, item); > } > > void WebPageProxy::navigationGestureDidEnd() >@@ -7105,8 +7059,7 @@ void WebPageProxy::navigationGestureSnap > > m_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 235398) >+++ 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> > >@@ -424,7 +425,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>&&); >@@ -1836,7 +1837,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 235398) >+++ Source/WebKit/UIProcess/API/C/WKPage.cpp (working copy) >@@ -2220,8 +2220,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/Cocoa/NavigationState.h >=================================================================== >--- Source/WebKit/UIProcess/Cocoa/NavigationState.h (revision 235398) >+++ 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 235398) >+++ 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()
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