Changeset 260890 in webkit
- Timestamp:
- Apr 29, 2020 3:23:01 AM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r260889 r260890 1 2020-04-29 Rob Buis <rbuis@igalia.com> 2 3 Make PolicyChecker an inner class of FrameLoader 4 https://bugs.webkit.org/show_bug.cgi?id=211138 5 6 Reviewed by Alex Christensen. 7 8 PolicyChecker HistoryController an inner class of FrameLoader, this allows us to move some methods 9 only used by PolicyChecker out of the FrameLoader public API. Because it is not possible to forward declare 10 an enum class in an inner class, move ShouldContinue out of the PolicyChecker class and rename it 11 to ShouldContinuePolicyCheck. 12 13 * loader/FrameLoader.cpp: 14 (WebCore::FrameLoader::loadURL): 15 (WebCore::FrameLoader::load): 16 (WebCore::FrameLoader::loadPostRequest): 17 (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): 18 * loader/FrameLoader.h: 19 * loader/FrameLoaderTypes.h: 20 * loader/MediaResourceLoader.cpp: 21 (WebCore::MediaResource::responseReceived): 22 * loader/PolicyChecker.cpp: 23 * loader/PolicyChecker.h: 24 * platform/graphics/PlatformMediaResourceLoader.h: 25 (WebCore::PlatformMediaResourceClient::responseReceived): 26 * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: 27 (WebCore::PlatformResourceMediaLoader::responseReceived): 28 * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: 29 (CachedResourceStreamingClient::responseReceived): 30 * platform/network/cocoa/WebCoreNSURLSession.mm: 31 (WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived): 32 (-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]): 33 1 34 2020-04-29 Adrian Perez de Castro <aperez@igalia.com> 2 35 -
trunk/Source/WebCore/loader/FrameLoader.cpp
r260843 r260890 1385 1385 if (!targetFrame && !effectiveFrameName.isEmpty()) { 1386 1386 action = action.copyWithShouldOpenExternalURLsPolicy(shouldOpenExternalURLsPolicyToApply(m_frame, frameLoadRequest)); 1387 policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request), WTFMove(formState), effectiveFrameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, PolicyChecker::ShouldContinueshouldContinue) mutable {1387 policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request), WTFMove(formState), effectiveFrameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = completionHandlerCaller.release()] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue) mutable { 1388 1388 continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy); 1389 1389 completionHandler(); … … 1468 1468 if (request.shouldCheckNewWindowPolicy()) { 1469 1469 NavigationAction action { request.requester(), request.resourceRequest(), InitiatedByMainFrame::Unknown, NavigationType::Other, request.shouldOpenExternalURLsPolicy() }; 1470 policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request.resourceRequest()), { }, request.frameName(), [this] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, PolicyChecker::ShouldContinueshouldContinue) {1470 policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request.resourceRequest()), { }, request.frameName(), [this] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue) { 1471 1471 continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress); 1472 1472 }); … … 3022 3022 } 3023 3023 3024 policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(workingResourceRequest), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = WTFMove(completionHandler)] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, PolicyChecker::ShouldContinueshouldContinue) mutable {3024 policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(workingResourceRequest), WTFMove(formState), frameName, [this, allowNavigationToInvalidURL, openerPolicy, completionHandler = WTFMove(completionHandler)] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue) mutable { 3025 3025 continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy); 3026 3026 completionHandler(); … … 3501 3501 3502 3502 void FrameLoader::continueLoadAfterNewWindowPolicy(const ResourceRequest& request, 3503 FormState* formState, const String& frameName, const NavigationAction& action, PolicyChecker::ShouldContinueshouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy openerPolicy)3504 { 3505 if (shouldContinue != PolicyChecker::ShouldContinue::Yes)3503 FormState* formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy openerPolicy) 3504 { 3505 if (shouldContinue != ShouldContinuePolicyCheck::Yes) 3506 3506 return; 3507 3507 -
trunk/Source/WebCore/loader/FrameLoader.h
r260843 r260890 40 40 #include "MixedContentChecker.h" 41 41 #include "PageIdentifier.h" 42 #include "PolicyChecker.h"43 42 #include "ReferrerPolicy.h" 44 43 #include "ResourceLoadNotifier.h" … … 78 77 class Node; 79 78 class Page; 80 class PolicyChecker;81 79 class ResourceError; 82 80 class ResourceRequest; … … 111 109 Frame& frame() const { return m_frame; } 112 110 111 class PolicyChecker; 113 112 PolicyChecker& policyChecker() const { return *m_policyChecker; } 114 113 … … 157 156 void closeURL(); 158 157 void cancelAndClear(); 159 void clearProvisionalLoadForPolicyCheck();160 158 // FIXME: clear() is trying to do too many things. We should break it down into smaller functions (ideally with fewer raw Boolean parameters). 161 159 void clear(Document* newDocument, bool clearWindowProperties = true, bool clearScriptObjects = true, bool clearFrameView = true, WTF::Function<void()>&& handleDOMWindowCreation = nullptr); … … 257 255 WEBCORE_EXPORT void setOpener(Frame*); 258 256 WEBCORE_EXPORT void detachFromAllOpenedFrames(); 259 bool hasOpenedFrames() const { return !m_openedFrames.isEmpty(); }260 257 261 258 void resetMultipleFormSubmissionProtection(); … … 364 361 365 362 void continueLoadAfterNavigationPolicy(const ResourceRequest&, FormState*, NavigationPolicyDecision, AllowNavigationToInvalidURL); 366 void continueLoadAfterNewWindowPolicy(const ResourceRequest&, FormState*, const String& frameName, const NavigationAction&, PolicyChecker::ShouldContinue, AllowNavigationToInvalidURL, NewFrameOpenerPolicy);363 void continueLoadAfterNewWindowPolicy(const ResourceRequest&, FormState*, const String& frameName, const NavigationAction&, ShouldContinuePolicyCheck, AllowNavigationToInvalidURL, NewFrameOpenerPolicy); 367 364 void continueFragmentScrollAfterNavigationPolicy(const ResourceRequest&, bool shouldContinue); 368 365 … … 430 427 void loadURLIntoChildFrame(const URL&, const String& referer, Frame*); 431 428 void started(); 429 430 // PolicyChecker specific. 431 void clearProvisionalLoadForPolicyCheck(); 432 bool hasOpenedFrames() const { return !m_openedFrames.isEmpty(); } 432 433 433 434 Frame& m_frame; -
trunk/Source/WebCore/loader/FrameLoaderTypes.h
r257707 r260890 113 113 } 114 114 115 enum class ShouldContinuePolicyCheck : bool { 116 Yes, 117 No 118 }; 119 115 120 enum class NewFrameOpenerPolicy : uint8_t { 116 121 Suppress, -
trunk/Source/WebCore/loader/MediaResourceLoader.cpp
r257655 r260890 183 183 if (completionHandler) 184 184 completionHandler(); 185 if (shouldContinue == PolicyChecker::ShouldContinue::No)185 if (shouldContinue == ShouldContinuePolicyCheck::No) 186 186 stop(); 187 187 }); -
trunk/Source/WebCore/loader/PolicyChecker.cpp
r259752 r260890 92 92 } 93 93 94 PolicyChecker::PolicyChecker(Frame& frame)94 FrameLoader::PolicyChecker::PolicyChecker(Frame& frame) 95 95 : m_frame(frame) 96 96 , m_delegateIsDecidingNavigationPolicy(false) … … 100 100 } 101 101 102 void PolicyChecker::checkNavigationPolicy(ResourceRequest&& newRequest, const ResourceResponse& redirectResponse, NavigationPolicyDecisionFunction&& function)102 void FrameLoader::PolicyChecker::checkNavigationPolicy(ResourceRequest&& newRequest, const ResourceResponse& redirectResponse, NavigationPolicyDecisionFunction&& function) 103 103 { 104 104 checkNavigationPolicy(WTFMove(newRequest), redirectResponse, m_frame.loader().activeDocumentLoader(), { }, WTFMove(function)); 105 105 } 106 106 107 CompletionHandlerCallingScope PolicyChecker::extendBlobURLLifetimeIfNecessary(ResourceRequest& request) const107 CompletionHandlerCallingScope FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary(ResourceRequest& request) const 108 108 { 109 109 if (!request.url().protocolIsBlob()) … … 119 119 } 120 120 121 void PolicyChecker::checkNavigationPolicy(ResourceRequest&& request, const ResourceResponse& redirectResponse, DocumentLoader* loader, RefPtr<FormState>&& formState, NavigationPolicyDecisionFunction&& function, PolicyDecisionMode policyDecisionMode)121 void FrameLoader::PolicyChecker::checkNavigationPolicy(ResourceRequest&& request, const ResourceResponse& redirectResponse, DocumentLoader* loader, RefPtr<FormState>&& formState, NavigationPolicyDecisionFunction&& function, PolicyDecisionMode policyDecisionMode) 122 122 { 123 123 NavigationAction action = loader->triggeringAction(); … … 248 248 } 249 249 250 void PolicyChecker::checkNewWindowPolicy(NavigationAction&& navigationAction, ResourceRequest&& request, RefPtr<FormState>&& formState, const String& frameName, NewWindowPolicyDecisionFunction&& function)250 void FrameLoader::PolicyChecker::checkNewWindowPolicy(NavigationAction&& navigationAction, ResourceRequest&& request, RefPtr<FormState>&& formState, const String& frameName, NewWindowPolicyDecisionFunction&& function) 251 251 { 252 252 if (m_frame.document() && m_frame.document()->isSandboxed(SandboxPopups)) 253 return function({ }, nullptr, { }, { }, ShouldContinue ::No);253 return function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No); 254 254 255 255 if (!DOMWindow::allowPopUp(m_frame)) 256 return function({ }, nullptr, { }, { }, ShouldContinue ::No);256 return function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No); 257 257 258 258 auto blobURLLifetimeExtension = extendBlobURLLifetimeIfNecessary(request); … … 264 264 265 265 if (!responseIdentifier.isValidFor(requestIdentifier)) 266 return function({ }, nullptr, { }, { }, ShouldContinue ::No);266 return function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No); 267 267 268 268 switch (policyAction) { … … 271 271 FALLTHROUGH; 272 272 case PolicyAction::Ignore: 273 function({ }, nullptr, { }, { }, ShouldContinue ::No);273 function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No); 274 274 return; 275 275 case PolicyAction::StopAllLoads: 276 276 ASSERT_NOT_REACHED(); 277 function({ }, nullptr, { }, { }, ShouldContinue ::No);277 function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No); 278 278 return; 279 279 case PolicyAction::Use: 280 function(request, makeWeakPtr(formState.get()), frameName, navigationAction, ShouldContinue ::Yes);280 function(request, makeWeakPtr(formState.get()), frameName, navigationAction, ShouldContinuePolicyCheck::Yes); 281 281 return; 282 282 } … … 285 285 } 286 286 287 void PolicyChecker::stopCheck()287 void FrameLoader::PolicyChecker::stopCheck() 288 288 { 289 289 m_frame.loader().client().cancelPolicyCheck(); 290 290 } 291 291 292 void PolicyChecker::cannotShowMIMEType(const ResourceResponse& response)292 void FrameLoader::PolicyChecker::cannotShowMIMEType(const ResourceResponse& response) 293 293 { 294 294 handleUnimplementablePolicy(m_frame.loader().client().cannotShowMIMETypeError(response)); 295 295 } 296 296 297 void PolicyChecker::handleUnimplementablePolicy(const ResourceError& error)297 void FrameLoader::PolicyChecker::handleUnimplementablePolicy(const ResourceError& error) 298 298 { 299 299 m_delegateIsHandlingUnimplementablePolicy = true; -
trunk/Source/WebCore/loader/PolicyChecker.h
r253964 r260890 30 30 #pragma once 31 31 32 #include "FrameLoader Types.h"32 #include "FrameLoader.h" 33 33 #include "ResourceRequest.h" 34 34 #include <wtf/WeakPtr.h> … … 61 61 enum class PolicyDecisionMode { Synchronous, Asynchronous }; 62 62 63 class PolicyChecker {63 class FrameLoader::PolicyChecker { 64 64 WTF_MAKE_NONCOPYABLE(PolicyChecker); 65 65 WTF_MAKE_FAST_ALLOCATED; … … 67 67 explicit PolicyChecker(Frame&); 68 68 69 enum class ShouldContinue {70 Yes,71 No72 };73 74 69 using NavigationPolicyDecisionFunction = CompletionHandler<void(ResourceRequest&&, WeakPtr<FormState>&&, NavigationPolicyDecision)>; 75 using NewWindowPolicyDecisionFunction = CompletionHandler<void(const ResourceRequest&, WeakPtr<FormState>&&, const String& frameName, const NavigationAction&, ShouldContinue )>;70 using NewWindowPolicyDecisionFunction = CompletionHandler<void(const ResourceRequest&, WeakPtr<FormState>&&, const String& frameName, const NavigationAction&, ShouldContinuePolicyCheck)>; 76 71 77 72 void checkNavigationPolicy(ResourceRequest&&, const ResourceResponse& redirectResponse, DocumentLoader*, RefPtr<FormState>&&, NavigationPolicyDecisionFunction&&, PolicyDecisionMode = PolicyDecisionMode::Asynchronous); … … 113 108 114 109 } // namespace WebCore 115 116 // To support encoding WebCore::PolicyChecker::ShouldContinue in XPC messages117 namespace WTF {118 119 template<> struct EnumTraits<WebCore::PolicyChecker::ShouldContinue> {120 using values = EnumValues<121 WebCore::PolicyChecker::ShouldContinue,122 WebCore::PolicyChecker::ShouldContinue::No,123 WebCore::PolicyChecker::ShouldContinue::Yes124 >;125 };126 127 } -
trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h
r253964 r260890 45 45 virtual ~PlatformMediaResourceClient() = default; 46 46 47 virtual void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void( PolicyChecker::ShouldContinue)>&& completionHandler) { completionHandler(PolicyChecker::ShouldContinue::Yes); }47 virtual void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) { completionHandler(ShouldContinuePolicyCheck::Yes); } 48 48 virtual void redirectReceived(PlatformMediaResource&, ResourceRequest&& request, const ResourceResponse&, CompletionHandler<void(ResourceRequest&&)>&& completionHandler) { completionHandler(WTFMove(request)); } 49 49 virtual bool shouldCacheResponse(PlatformMediaResource&, const ResourceResponse&) { return true; } -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm
r255347 r260890 144 144 145 145 // PlatformMediaResourceClient 146 void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void( PolicyChecker::ShouldContinue)>&&) final;146 void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&&) final; 147 147 void redirectReceived(PlatformMediaResource&, ResourceRequest&& request, const ResourceResponse&, CompletionHandler<void(ResourceRequest&&)>&& completionHandler) final { completionHandler(WTFMove(request)); } 148 148 bool shouldCacheResponse(PlatformMediaResource&, const ResourceResponse&) final { return false; } … … 187 187 } 188 188 189 void PlatformResourceMediaLoader::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void( PolicyChecker::ShouldContinue)>&& completionHandler)189 void PlatformResourceMediaLoader::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) 190 190 { 191 191 m_parent.responseReceived(response); 192 completionHandler( PolicyChecker::ShouldContinue::Yes);192 completionHandler(ShouldContinuePolicyCheck::Yes); 193 193 } 194 194 -
trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
r260755 r260890 69 69 70 70 // PlatformMediaResourceClient virtual methods. 71 void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void( PolicyChecker::ShouldContinue)>&&) override;71 void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&&) override; 72 72 void dataReceived(PlatformMediaResource&, const char*, int) override; 73 73 void accessControlCheckFailed(PlatformMediaResource&, const ResourceError&) override; … … 993 993 } 994 994 995 void CachedResourceStreamingClient::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void( PolicyChecker::ShouldContinue)>&& completionHandler)995 void CachedResourceStreamingClient::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) 996 996 { 997 997 ASSERT(isMainThread()); … … 1000 1000 DataMutex<WebKitWebSrcPrivate::StreamingMembers>::LockedWrapper members(priv->dataMutex); 1001 1001 if (members->requestNumber != m_requestNumber) { 1002 completionHandler( PolicyChecker::ShouldContinue::No);1002 completionHandler(ShouldContinuePolicyCheck::No); 1003 1003 return; 1004 1004 } … … 1052 1052 members->doesHaveEOS = true; 1053 1053 members->responseCondition.notifyOne(); 1054 completionHandler( PolicyChecker::ShouldContinue::No);1054 completionHandler(ShouldContinuePolicyCheck::No); 1055 1055 return; 1056 1056 } … … 1063 1063 members->doesHaveEOS = true; 1064 1064 members->responseCondition.notifyOne(); 1065 completionHandler( PolicyChecker::ShouldContinue::No);1065 completionHandler(ShouldContinuePolicyCheck::No); 1066 1066 return; 1067 1067 } … … 1102 1102 members->responseCondition.notifyOne(); 1103 1103 1104 completionHandler( PolicyChecker::ShouldContinue::Yes);1104 completionHandler(ShouldContinuePolicyCheck::Yes); 1105 1105 } 1106 1106 -
trunk/Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm
r260485 r260890 58 58 59 59 - (void)resource:(PlatformMediaResource&)resource sentBytes:(unsigned long long)bytesSent totalBytesToBeSent:(unsigned long long)totalBytesToBeSent; 60 - (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void( PolicyChecker::ShouldContinue)>&&)completionHandler;60 - (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void(ShouldContinuePolicyCheck)>&&)completionHandler; 61 61 - (BOOL)resource:(PlatformMediaResource&)resource shouldCacheResponse:(const ResourceResponse&)response; 62 62 - (void)resource:(PlatformMediaResource&)resource receivedData:(const char*)data length:(int)length; … … 383 383 void clearTask(); 384 384 385 void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void( PolicyChecker::ShouldContinue)>&&) override;385 void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&&) override; 386 386 void redirectReceived(PlatformMediaResource&, ResourceRequest&&, const ResourceResponse&, CompletionHandler<void(ResourceRequest&&)>&&) override; 387 387 bool shouldCacheResponse(PlatformMediaResource&, const ResourceResponse&) override; … … 412 412 } 413 413 414 void WebCoreNSURLSessionDataTaskClient::responseReceived(PlatformMediaResource& resource, const ResourceResponse& response, CompletionHandler<void( PolicyChecker::ShouldContinue)>&& completionHandler)414 void WebCoreNSURLSessionDataTaskClient::responseReceived(PlatformMediaResource& resource, const ResourceResponse& response, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) 415 415 { 416 416 LockHolder locker(m_taskLock); 417 417 if (!m_task) 418 return completionHandler( PolicyChecker::ShouldContinue::No);418 return completionHandler(ShouldContinuePolicyCheck::No); 419 419 420 420 [m_task resource:resource receivedResponse:response completionHandler:WTFMove(completionHandler)]; … … 629 629 } 630 630 631 - (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void( PolicyChecker::ShouldContinue)>&&)completionHandler631 - (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void(ShouldContinuePolicyCheck)>&&)completionHandler 632 632 { 633 633 ASSERT(response.source() == ResourceResponse::Source::Network || response.source() == ResourceResponse::Source::DiskCache || response.source() == ResourceResponse::Source::DiskCacheAfterValidation || response.source() == ResourceResponse::Source::ServiceWorker); … … 640 640 RetainPtr<WebCoreNSURLSessionDataTask> strongSelf { self }; 641 641 if (!self.session) 642 return completionHandler( PolicyChecker::ShouldContinue::No);642 return completionHandler(ShouldContinuePolicyCheck::No); 643 643 [self.session addDelegateOperation:[strongSelf, strongResponse, completionHandler = WTFMove(completionHandler)] () mutable { 644 644 strongSelf->_response = strongResponse.get(); … … 647 647 if (![dataDelegate respondsToSelector:@selector(URLSession:dataTask:didReceiveResponse:completionHandler:)]) { 648 648 callOnMainThread([strongSelf, completionHandler = WTFMove(completionHandler)] () mutable { 649 completionHandler( PolicyChecker::ShouldContinue::Yes);649 completionHandler(ShouldContinuePolicyCheck::Yes); 650 650 }); 651 651 return; … … 655 655 callOnMainThread([strongSelf, disposition, completionHandler = WTFMove(completionHandler)] () mutable { 656 656 if (disposition == NSURLSessionResponseCancel) 657 completionHandler( PolicyChecker::ShouldContinue::No);657 completionHandler(ShouldContinuePolicyCheck::No); 658 658 else { 659 659 ASSERT(disposition == NSURLSessionResponseAllow); 660 completionHandler( PolicyChecker::ShouldContinue::Yes);660 completionHandler(ShouldContinuePolicyCheck::Yes); 661 661 } 662 662 }); -
trunk/Source/WebKit/ChangeLog
r260889 r260890 1 2020-04-29 Rob Buis <rbuis@igalia.com> 2 3 Make PolicyChecker an inner class of FrameLoader 4 https://bugs.webkit.org/show_bug.cgi?id=211138 5 6 Reviewed by Alex Christensen. 7 8 Adapt to PolicyChecker::ShouldContinue change. 9 10 * GPUProcess/media/RemoteMediaResource.cpp: 11 (WebKit::RemoteMediaResource::responseReceived): 12 * GPUProcess/media/RemoteMediaResource.h: 13 * GPUProcess/media/RemoteMediaResourceManager.cpp: 14 (WebKit::RemoteMediaResourceManager::responseReceived): 15 * GPUProcess/media/RemoteMediaResourceManager.h: 16 * GPUProcess/media/RemoteMediaResourceManager.messages.in: 17 * Scripts/webkit/messages.py: 18 * WebProcess/GPU/media/RemoteMediaResourceProxy.cpp: 19 (WebKit::RemoteMediaResourceProxy::responseReceived): 20 * WebProcess/GPU/media/RemoteMediaResourceProxy.h: 21 1 22 2020-04-29 Adrian Perez de Castro <aperez@igalia.com> 2 23 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp
r253964 r260890 67 67 } 68 68 69 void RemoteMediaResource::responseReceived(const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void( PolicyChecker::ShouldContinue)>&& completionHandler)69 void RemoteMediaResource::responseReceived(const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) 70 70 { 71 71 if (!m_client) … … 75 75 m_client->responseReceived(*this, response, [protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](auto shouldContinue) mutable { 76 76 ASSERT(isMainThread()); 77 if (shouldContinue == PolicyChecker::ShouldContinue::No)77 if (shouldContinue == ShouldContinuePolicyCheck::No) 78 78 protectedThis->stop(); 79 79 -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.h
r253964 r260890 49 49 bool didPassAccessControlCheck() const final; 50 50 51 void responseReceived(const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore:: PolicyChecker::ShouldContinue)>&&);51 void responseReceived(const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&); 52 52 void redirectReceived(WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&); 53 53 void dataSent(uint64_t, uint64_t); -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp
r254809 r260890 60 60 } 61 61 62 void RemoteMediaResourceManager::responseReceived(RemoteMediaResourceIdentifier id, const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void( PolicyChecker::ShouldContinue)>&& completionHandler)62 void RemoteMediaResourceManager::responseReceived(RemoteMediaResourceIdentifier id, const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) 63 63 { 64 64 auto* resource = m_remoteMediaResources.get(id); 65 65 if (!resource || !resource->ready()) { 66 completionHandler( PolicyChecker::ShouldContinue::No);66 completionHandler(ShouldContinuePolicyCheck::No); 67 67 return; 68 68 } -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h
r253964 r260890 61 61 62 62 private: 63 void responseReceived(RemoteMediaResourceIdentifier, const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore:: PolicyChecker::ShouldContinue)>&&);63 void responseReceived(RemoteMediaResourceIdentifier, const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&); 64 64 void redirectReceived(RemoteMediaResourceIdentifier, WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&); 65 65 void dataSent(RemoteMediaResourceIdentifier, uint64_t, uint64_t); -
trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.messages.in
r253964 r260890 27 27 28 28 messages -> RemoteMediaResourceManager NotRefCounted { 29 ResponseReceived(WebKit::RemoteMediaResourceIdentifier id, WebCore::ResourceResponse response, bool didPassAccessControlCheck) -> ( WebCore::PolicyChecker::ShouldContinueshouldContinue) Async29 ResponseReceived(WebKit::RemoteMediaResourceIdentifier id, WebCore::ResourceResponse response, bool didPassAccessControlCheck) -> (enum:bool WebCore::ShouldContinuePolicyCheck shouldContinue) Async 30 30 RedirectReceived(WebKit::RemoteMediaResourceIdentifier id, WebCore::ResourceRequest request, WebCore::ResourceResponse response) -> (WebCore::ResourceRequest returnRequest) Async 31 31 DataSent(WebKit::RemoteMediaResourceIdentifier id, uint64_t bytesSent, uint64_t totalBytesToBeSent) -
trunk/Source/WebKit/Scripts/webkit/messages.py
r260718 r260890 608 608 'WebCore::PluginInfo': ['<WebCore/PluginData.h>'], 609 609 'WebCore::PolicyAction': ['<WebCore/FrameLoaderTypes.h>'], 610 'WebCore::ShouldContinuePolicyCheck': ['<WebCore/FrameLoaderTypes.h>'], 610 611 'WebCore::PolicyCheckIdentifier': ['<WebCore/FrameLoaderTypes.h>'], 611 612 'WebCore::ProcessIdentifier': ['<WebCore/ProcessIdentifier.h>'], -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp
r253964 r260890 47 47 } 48 48 49 void RemoteMediaResourceProxy::responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse& response, CompletionHandler<void(WebCore:: PolicyChecker::ShouldContinue)>&& completionHandler)49 void RemoteMediaResourceProxy::responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse& response, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&& completionHandler) 50 50 { 51 51 m_connection->sendWithAsyncReply(Messages::RemoteMediaResourceManager::ResponseReceived(m_id, response, m_platformMediaResource.didPassAccessControlCheck()), [completionHandler = WTFMove(completionHandler)](auto shouldContinue) mutable { -
trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h
r253964 r260890 44 44 private: 45 45 // PlatformMediaResourceClient 46 void responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore:: PolicyChecker::ShouldContinue)>&&) final;46 void responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&) final; 47 47 void redirectReceived(WebCore::PlatformMediaResource&, WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&) final; 48 48 bool shouldCacheResponse(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse&) final;
Note: See TracChangeset
for help on using the changeset viewer.