Title: [260890] trunk/Source
Revision
260890
Author
[email protected]
Date
2020-04-29 03:23:01 -0700 (Wed, 29 Apr 2020)

Log Message

Make PolicyChecker an inner class of FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=211138

Patch by Rob Buis <[email protected]> on 2020-04-29
Reviewed by Alex Christensen.

Source/WebCore:

PolicyChecker HistoryController an inner class of FrameLoader, this allows us to move some methods
only used by PolicyChecker out of the FrameLoader public API. Because it is not possible to forward declare
an enum class in an inner class, move ShouldContinue out of the PolicyChecker class and rename it
to ShouldContinuePolicyCheck.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
* loader/FrameLoader.h:
* loader/FrameLoaderTypes.h:
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResource::responseReceived):
* loader/PolicyChecker.cpp:
* loader/PolicyChecker.h:
* platform/graphics/PlatformMediaResourceLoader.h:
(WebCore::PlatformMediaResourceClient::responseReceived):
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::PlatformResourceMediaLoader::responseReceived):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::responseReceived):
* platform/network/cocoa/WebCoreNSURLSession.mm:
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):

Source/WebKit:

Adapt to PolicyChecker::ShouldContinue change.

* GPUProcess/media/RemoteMediaResource.cpp:
(WebKit::RemoteMediaResource::responseReceived):
* GPUProcess/media/RemoteMediaResource.h:
* GPUProcess/media/RemoteMediaResourceManager.cpp:
(WebKit::RemoteMediaResourceManager::responseReceived):
* GPUProcess/media/RemoteMediaResourceManager.h:
* GPUProcess/media/RemoteMediaResourceManager.messages.in:
* Scripts/webkit/messages.py:
* WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:
(WebKit::RemoteMediaResourceProxy::responseReceived):
* WebProcess/GPU/media/RemoteMediaResourceProxy.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (260889 => 260890)


--- trunk/Source/WebCore/ChangeLog	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/ChangeLog	2020-04-29 10:23:01 UTC (rev 260890)
@@ -1,3 +1,36 @@
+2020-04-29  Rob Buis  <[email protected]>
+
+        Make PolicyChecker an inner class of FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=211138
+
+        Reviewed by Alex Christensen.
+
+        PolicyChecker HistoryController an inner class of FrameLoader, this allows us to move some methods
+        only used by PolicyChecker out of the FrameLoader public API. Because it is not possible to forward declare
+        an enum class in an inner class, move ShouldContinue out of the PolicyChecker class and rename it
+        to ShouldContinuePolicyCheck.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadURL):
+        (WebCore::FrameLoader::load):
+        (WebCore::FrameLoader::loadPostRequest):
+        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
+        * loader/FrameLoader.h:
+        * loader/FrameLoaderTypes.h:
+        * loader/MediaResourceLoader.cpp:
+        (WebCore::MediaResource::responseReceived):
+        * loader/PolicyChecker.cpp:
+        * loader/PolicyChecker.h:
+        * platform/graphics/PlatformMediaResourceLoader.h:
+        (WebCore::PlatformMediaResourceClient::responseReceived):
+        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
+        (WebCore::PlatformResourceMediaLoader::responseReceived):
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (CachedResourceStreamingClient::responseReceived):
+        * platform/network/cocoa/WebCoreNSURLSession.mm:
+        (WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
+        (-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):
+
 2020-04-29  Adrian Perez de Castro  <[email protected]>
 
         [GTK] Misplaced right click menu on web page due to deprecated gtk_menu_popup()

Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (260889 => 260890)


--- trunk/Source/WebCore/loader/FrameLoader.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -1384,7 +1384,7 @@
     AllowNavigationToInvalidURL allowNavigationToInvalidURL = frameLoadRequest.allowNavigationToInvalidURL();
     if (!targetFrame && !effectiveFrameName.isEmpty()) {
         action = "" frameLoadRequest));
-        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::ShouldContinue shouldContinue) mutable {
+        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 {
             continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy);
             completionHandler();
         });
@@ -1467,7 +1467,7 @@
 
     if (request.shouldCheckNewWindowPolicy()) {
         NavigationAction action { request.requester(), request.resourceRequest(), InitiatedByMainFrame::Unknown, NavigationType::Other, request.shouldOpenExternalURLsPolicy() };
-        policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request.resourceRequest()), { }, request.frameName(), [this] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, PolicyChecker::ShouldContinue shouldContinue) {
+        policyChecker().checkNewWindowPolicy(WTFMove(action), WTFMove(request.resourceRequest()), { }, request.frameName(), [this] (const ResourceRequest& request, WeakPtr<FormState>&& formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue) {
             continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress);
         });
 
@@ -3021,7 +3021,7 @@
             return;
         }
 
-        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::ShouldContinue shouldContinue) mutable {
+        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 {
             continueLoadAfterNewWindowPolicy(request, formState.get(), frameName, action, shouldContinue, allowNavigationToInvalidURL, openerPolicy);
             completionHandler();
         });
@@ -3500,9 +3500,9 @@
 }
 
 void FrameLoader::continueLoadAfterNewWindowPolicy(const ResourceRequest& request,
-    FormState* formState, const String& frameName, const NavigationAction& action, PolicyChecker::ShouldContinue shouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy openerPolicy)
+    FormState* formState, const String& frameName, const NavigationAction& action, ShouldContinuePolicyCheck shouldContinue, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy openerPolicy)
 {
-    if (shouldContinue != PolicyChecker::ShouldContinue::Yes)
+    if (shouldContinue != ShouldContinuePolicyCheck::Yes)
         return;
 
     Ref<Frame> frame(m_frame);

Modified: trunk/Source/WebCore/loader/FrameLoader.h (260889 => 260890)


--- trunk/Source/WebCore/loader/FrameLoader.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/loader/FrameLoader.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -39,7 +39,6 @@
 #include "LayoutMilestone.h"
 #include "MixedContentChecker.h"
 #include "PageIdentifier.h"
-#include "PolicyChecker.h"
 #include "ReferrerPolicy.h"
 #include "ResourceLoadNotifier.h"
 #include "ResourceLoaderOptions.h"
@@ -77,7 +76,6 @@
 class NetworkingContext;
 class Node;
 class Page;
-class PolicyChecker;
 class ResourceError;
 class ResourceRequest;
 class ResourceResponse;
@@ -110,6 +108,7 @@
 
     Frame& frame() const { return m_frame; }
 
+    class PolicyChecker;
     PolicyChecker& policyChecker() const { return *m_policyChecker; }
 
     class HistoryController;
@@ -156,7 +155,6 @@
     void stopLoading(UnloadEventPolicy);
     void closeURL();
     void cancelAndClear();
-    void clearProvisionalLoadForPolicyCheck();
     // FIXME: clear() is trying to do too many things. We should break it down into smaller functions (ideally with fewer raw Boolean parameters).
     void clear(Document* newDocument, bool clearWindowProperties = true, bool clearScriptObjects = true, bool clearFrameView = true, WTF::Function<void()>&& handleDOMWindowCreation = nullptr);
 
@@ -256,7 +254,6 @@
     WEBCORE_EXPORT Frame* opener();
     WEBCORE_EXPORT void setOpener(Frame*);
     WEBCORE_EXPORT void detachFromAllOpenedFrames();
-    bool hasOpenedFrames() const { return !m_openedFrames.isEmpty(); }
 
     void resetMultipleFormSubmissionProtection();
 
@@ -363,7 +360,7 @@
     void dispatchUnloadEvents(UnloadEventPolicy);
 
     void continueLoadAfterNavigationPolicy(const ResourceRequest&, FormState*, NavigationPolicyDecision, AllowNavigationToInvalidURL);
-    void continueLoadAfterNewWindowPolicy(const ResourceRequest&, FormState*, const String& frameName, const NavigationAction&, PolicyChecker::ShouldContinue, AllowNavigationToInvalidURL, NewFrameOpenerPolicy);
+    void continueLoadAfterNewWindowPolicy(const ResourceRequest&, FormState*, const String& frameName, const NavigationAction&, ShouldContinuePolicyCheck, AllowNavigationToInvalidURL, NewFrameOpenerPolicy);
     void continueFragmentScrollAfterNavigationPolicy(const ResourceRequest&, bool shouldContinue);
 
     bool shouldPerformFragmentNavigation(bool isFormSubmission, const String& httpMethod, FrameLoadType, const URL&);
@@ -430,6 +427,10 @@
     void loadURLIntoChildFrame(const URL&, const String& referer, Frame*);
     void started();
 
+    // PolicyChecker specific.
+    void clearProvisionalLoadForPolicyCheck();
+    bool hasOpenedFrames() const { return !m_openedFrames.isEmpty(); }
+
     Frame& m_frame;
     UniqueRef<FrameLoaderClient> m_client;
 

Modified: trunk/Source/WebCore/loader/FrameLoaderTypes.h (260889 => 260890)


--- trunk/Source/WebCore/loader/FrameLoaderTypes.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/loader/FrameLoaderTypes.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -112,6 +112,11 @@
     return PolicyCheckIdentifier { *process, policyCheck };
 }
 
+enum class ShouldContinuePolicyCheck : bool {
+    Yes,
+    No
+};
+
 enum class NewFrameOpenerPolicy : uint8_t {
     Suppress,
     Allow

Modified: trunk/Source/WebCore/loader/MediaResourceLoader.cpp (260889 => 260890)


--- trunk/Source/WebCore/loader/MediaResourceLoader.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/loader/MediaResourceLoader.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -182,7 +182,7 @@
         m_client->responseReceived(*this, response, [this, protectedThis = makeRef(*this), completionHandler = completionHandlerCaller.release()] (auto shouldContinue) mutable {
             if (completionHandler)
                 completionHandler();
-            if (shouldContinue == PolicyChecker::ShouldContinue::No)
+            if (shouldContinue == ShouldContinuePolicyCheck::No)
                 stop();
         });
 

Modified: trunk/Source/WebCore/loader/PolicyChecker.cpp (260889 => 260890)


--- trunk/Source/WebCore/loader/PolicyChecker.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/loader/PolicyChecker.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -91,7 +91,7 @@
     return m_policyCheck == expectedIdentifier.m_policyCheck;
 }
 
-PolicyChecker::PolicyChecker(Frame& frame)
+FrameLoader::PolicyChecker::PolicyChecker(Frame& frame)
     : m_frame(frame)
     , m_delegateIsDecidingNavigationPolicy(false)
     , m_delegateIsHandlingUnimplementablePolicy(false)
@@ -99,12 +99,12 @@
 {
 }
 
-void PolicyChecker::checkNavigationPolicy(ResourceRequest&& newRequest, const ResourceResponse& redirectResponse, NavigationPolicyDecisionFunction&& function)
+void FrameLoader::PolicyChecker::checkNavigationPolicy(ResourceRequest&& newRequest, const ResourceResponse& redirectResponse, NavigationPolicyDecisionFunction&& function)
 {
     checkNavigationPolicy(WTFMove(newRequest), redirectResponse, m_frame.loader().activeDocumentLoader(), { }, WTFMove(function));
 }
 
-CompletionHandlerCallingScope PolicyChecker::extendBlobURLLifetimeIfNecessary(ResourceRequest& request) const
+CompletionHandlerCallingScope FrameLoader::PolicyChecker::extendBlobURLLifetimeIfNecessary(ResourceRequest& request) const
 {
     if (!request.url().protocolIsBlob())
         return { };
@@ -118,7 +118,7 @@
     });
 }
 
-void PolicyChecker::checkNavigationPolicy(ResourceRequest&& request, const ResourceResponse& redirectResponse, DocumentLoader* loader, RefPtr<FormState>&& formState, NavigationPolicyDecisionFunction&& function, PolicyDecisionMode policyDecisionMode)
+void FrameLoader::PolicyChecker::checkNavigationPolicy(ResourceRequest&& request, const ResourceResponse& redirectResponse, DocumentLoader* loader, RefPtr<FormState>&& formState, NavigationPolicyDecisionFunction&& function, PolicyDecisionMode policyDecisionMode)
 {
     NavigationAction action = ""
     if (action.isEmpty()) {
@@ -247,13 +247,13 @@
         m_frame.loader().client().dispatchDecidePolicyForNavigationAction(action, request, redirectResponse, formState.get(), policyDecisionMode, requestIdentifier, WTFMove(decisionHandler));
 }
 
-void PolicyChecker::checkNewWindowPolicy(NavigationAction&& navigationAction, ResourceRequest&& request, RefPtr<FormState>&& formState, const String& frameName, NewWindowPolicyDecisionFunction&& function)
+void FrameLoader::PolicyChecker::checkNewWindowPolicy(NavigationAction&& navigationAction, ResourceRequest&& request, RefPtr<FormState>&& formState, const String& frameName, NewWindowPolicyDecisionFunction&& function)
 {
     if (m_frame.document() && m_frame.document()->isSandboxed(SandboxPopups))
-        return function({ }, nullptr, { }, { }, ShouldContinue::No);
+        return function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No);
 
     if (!DOMWindow::allowPopUp(m_frame))
-        return function({ }, nullptr, { }, { }, ShouldContinue::No);
+        return function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No);
 
     auto blobURLLifetimeExtension = extendBlobURLLifetimeIfNecessary(request);
 
@@ -263,7 +263,7 @@
         requestIdentifier] (PolicyAction policyAction, PolicyCheckIdentifier responseIdentifier) mutable {
 
         if (!responseIdentifier.isValidFor(requestIdentifier))
-            return function({ }, nullptr, { }, { }, ShouldContinue::No);
+            return function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No);
 
         switch (policyAction) {
         case PolicyAction::Download:
@@ -270,14 +270,14 @@
             frame->loader().client().startDownload(request);
             FALLTHROUGH;
         case PolicyAction::Ignore:
-            function({ }, nullptr, { }, { }, ShouldContinue::No);
+            function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No);
             return;
         case PolicyAction::StopAllLoads:
             ASSERT_NOT_REACHED();
-            function({ }, nullptr, { }, { }, ShouldContinue::No);
+            function({ }, nullptr, { }, { }, ShouldContinuePolicyCheck::No);
             return;
         case PolicyAction::Use:
-            function(request, makeWeakPtr(formState.get()), frameName, navigationAction, ShouldContinue::Yes);
+            function(request, makeWeakPtr(formState.get()), frameName, navigationAction, ShouldContinuePolicyCheck::Yes);
             return;
         }
         ASSERT_NOT_REACHED();
@@ -284,17 +284,17 @@
     });
 }
 
-void PolicyChecker::stopCheck()
+void FrameLoader::PolicyChecker::stopCheck()
 {
     m_frame.loader().client().cancelPolicyCheck();
 }
 
-void PolicyChecker::cannotShowMIMEType(const ResourceResponse& response)
+void FrameLoader::PolicyChecker::cannotShowMIMEType(const ResourceResponse& response)
 {
     handleUnimplementablePolicy(m_frame.loader().client().cannotShowMIMETypeError(response));
 }
 
-void PolicyChecker::handleUnimplementablePolicy(const ResourceError& error)
+void FrameLoader::PolicyChecker::handleUnimplementablePolicy(const ResourceError& error)
 {
     m_delegateIsHandlingUnimplementablePolicy = true;
     m_frame.loader().client().dispatchUnableToImplementPolicy(error);

Modified: trunk/Source/WebCore/loader/PolicyChecker.h (260889 => 260890)


--- trunk/Source/WebCore/loader/PolicyChecker.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/loader/PolicyChecker.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -29,7 +29,7 @@
 
 #pragma once
 
-#include "FrameLoaderTypes.h"
+#include "FrameLoader.h"
 #include "ResourceRequest.h"
 #include <wtf/WeakPtr.h>
 #include <wtf/text/WTFString.h>
@@ -60,19 +60,14 @@
 
 enum class PolicyDecisionMode { Synchronous, Asynchronous };
 
-class PolicyChecker {
+class FrameLoader::PolicyChecker {
     WTF_MAKE_NONCOPYABLE(PolicyChecker);
     WTF_MAKE_FAST_ALLOCATED;
 public:
     explicit PolicyChecker(Frame&);
 
-    enum class ShouldContinue {
-        Yes,
-        No
-    };
-
     using NavigationPolicyDecisionFunction = CompletionHandler<void(ResourceRequest&&, WeakPtr<FormState>&&, NavigationPolicyDecision)>;
-    using NewWindowPolicyDecisionFunction = CompletionHandler<void(const ResourceRequest&, WeakPtr<FormState>&&, const String& frameName, const NavigationAction&, ShouldContinue)>;
+    using NewWindowPolicyDecisionFunction = CompletionHandler<void(const ResourceRequest&, WeakPtr<FormState>&&, const String& frameName, const NavigationAction&, ShouldContinuePolicyCheck)>;
 
     void checkNavigationPolicy(ResourceRequest&&, const ResourceResponse& redirectResponse, DocumentLoader*, RefPtr<FormState>&&, NavigationPolicyDecisionFunction&&, PolicyDecisionMode = PolicyDecisionMode::Asynchronous);
     void checkNavigationPolicy(ResourceRequest&&, const ResourceResponse& redirectResponse, NavigationPolicyDecisionFunction&&);
@@ -112,16 +107,3 @@
 };
 
 } // namespace WebCore
-
-// To support encoding WebCore::PolicyChecker::ShouldContinue in XPC messages
-namespace WTF {
-
-template<> struct EnumTraits<WebCore::PolicyChecker::ShouldContinue> {
-    using values = EnumValues<
-        WebCore::PolicyChecker::ShouldContinue,
-        WebCore::PolicyChecker::ShouldContinue::No,
-        WebCore::PolicyChecker::ShouldContinue::Yes
-    >;
-};
-
-}

Modified: trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h (260889 => 260890)


--- trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/platform/graphics/PlatformMediaResourceLoader.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -44,7 +44,7 @@
 public:
     virtual ~PlatformMediaResourceClient() = default;
 
-    virtual void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(PolicyChecker::ShouldContinue)>&& completionHandler) { completionHandler(PolicyChecker::ShouldContinue::Yes); }
+    virtual void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler) { completionHandler(ShouldContinuePolicyCheck::Yes); }
     virtual void redirectReceived(PlatformMediaResource&, ResourceRequest&& request, const ResourceResponse&, CompletionHandler<void(ResourceRequest&&)>&& completionHandler) { completionHandler(WTFMove(request)); }
     virtual bool shouldCacheResponse(PlatformMediaResource&, const ResourceResponse&) { return true; }
     virtual void dataSent(PlatformMediaResource&, unsigned long long, unsigned long long) { }

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm (260889 => 260890)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm	2020-04-29 10:23:01 UTC (rev 260890)
@@ -143,7 +143,7 @@
     void loadFinished();
 
     // PlatformMediaResourceClient
-    void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(PolicyChecker::ShouldContinue)>&&) final;
+    void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&&) final;
     void redirectReceived(PlatformMediaResource&, ResourceRequest&& request, const ResourceResponse&, CompletionHandler<void(ResourceRequest&&)>&& completionHandler) final { completionHandler(WTFMove(request)); }
     bool shouldCacheResponse(PlatformMediaResource&, const ResourceResponse&) final { return false; }
     void dataSent(PlatformMediaResource&, unsigned long long, unsigned long long) final { }
@@ -186,10 +186,10 @@
     resource->setClient(nullptr);
 }
 
-void PlatformResourceMediaLoader::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void(PolicyChecker::ShouldContinue)>&& completionHandler)
+void PlatformResourceMediaLoader::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler)
 {
     m_parent.responseReceived(response);
-    completionHandler(PolicyChecker::ShouldContinue::Yes);
+    completionHandler(ShouldContinuePolicyCheck::Yes);
 }
 
 void PlatformResourceMediaLoader::loadFailed(const ResourceError& error)

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp (260889 => 260890)


--- trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -68,7 +68,7 @@
     void checkUpdateBlocksize(unsigned bytesRead);
 
     // PlatformMediaResourceClient virtual methods.
-    void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(PolicyChecker::ShouldContinue)>&&) override;
+    void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&&) override;
     void dataReceived(PlatformMediaResource&, const char*, int) override;
     void accessControlCheckFailed(PlatformMediaResource&, const ResourceError&) override;
     void loadFailed(PlatformMediaResource&, const ResourceError&) override;
@@ -992,7 +992,7 @@
     }
 }
 
-void CachedResourceStreamingClient::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void(PolicyChecker::ShouldContinue)>&& completionHandler)
+void CachedResourceStreamingClient::responseReceived(PlatformMediaResource&, const ResourceResponse& response, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler)
 {
     ASSERT(isMainThread());
     WebKitWebSrc* src = ""
@@ -999,7 +999,7 @@
     WebKitWebSrcPrivate* priv = src->priv;
     DataMutex<WebKitWebSrcPrivate::StreamingMembers>::LockedWrapper members(priv->dataMutex);
     if (members->requestNumber != m_requestNumber) {
-        completionHandler(PolicyChecker::ShouldContinue::No);
+        completionHandler(ShouldContinuePolicyCheck::No);
         return;
     }
 
@@ -1051,7 +1051,7 @@
         GST_ELEMENT_ERROR(src, RESOURCE, READ, ("R%u: Received %d HTTP error code", m_requestNumber, response.httpStatusCode()), (nullptr));
         members->doesHaveEOS = true;
         members->responseCondition.notifyOne();
-        completionHandler(PolicyChecker::ShouldContinue::No);
+        completionHandler(ShouldContinuePolicyCheck::No);
         return;
     }
 
@@ -1062,7 +1062,7 @@
             GST_ELEMENT_ERROR(src, RESOURCE, READ, ("R%u: Received unexpected %d HTTP status code for range request", m_requestNumber, response.httpStatusCode()), (nullptr));
             members->doesHaveEOS = true;
             members->responseCondition.notifyOne();
-            completionHandler(PolicyChecker::ShouldContinue::No);
+            completionHandler(ShouldContinuePolicyCheck::No);
             return;
         }
         GST_DEBUG_OBJECT(src, "R%u: Range request succeeded", m_requestNumber);
@@ -1101,7 +1101,7 @@
     members->wasResponseReceived = true;
     members->responseCondition.notifyOne();
 
-    completionHandler(PolicyChecker::ShouldContinue::Yes);
+    completionHandler(ShouldContinuePolicyCheck::Yes);
 }
 
 void CachedResourceStreamingClient::dataReceived(PlatformMediaResource&, const char* data, int length)

Modified: trunk/Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm (260889 => 260890)


--- trunk/Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm	2020-04-29 10:23:01 UTC (rev 260890)
@@ -57,7 +57,7 @@
 @property (assign) WebCoreNSURLSession * _Nullable session;
 
 - (void)resource:(PlatformMediaResource&)resource sentBytes:(unsigned long long)bytesSent totalBytesToBeSent:(unsigned long long)totalBytesToBeSent;
-- (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void(PolicyChecker::ShouldContinue)>&&)completionHandler;
+- (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void(ShouldContinuePolicyCheck)>&&)completionHandler;
 - (BOOL)resource:(PlatformMediaResource&)resource shouldCacheResponse:(const ResourceResponse&)response;
 - (void)resource:(PlatformMediaResource&)resource receivedData:(const char*)data length:(int)length;
 - (void)resource:(PlatformMediaResource&)resource receivedRedirect:(const ResourceResponse&)response request:(ResourceRequest&&)request completionHandler:(CompletionHandler<void(ResourceRequest&&)>&&)completionHandler;
@@ -382,7 +382,7 @@
 
     void clearTask();
 
-    void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(PolicyChecker::ShouldContinue)>&&) override;
+    void responseReceived(PlatformMediaResource&, const ResourceResponse&, CompletionHandler<void(ShouldContinuePolicyCheck)>&&) override;
     void redirectReceived(PlatformMediaResource&, ResourceRequest&&, const ResourceResponse&, CompletionHandler<void(ResourceRequest&&)>&&) override;
     bool shouldCacheResponse(PlatformMediaResource&, const ResourceResponse&) override;
     void dataSent(PlatformMediaResource&, unsigned long long, unsigned long long) override;
@@ -411,11 +411,11 @@
     [m_task resource:resource sentBytes:bytesSent totalBytesToBeSent:totalBytesToBeSent];
 }
 
-void WebCoreNSURLSessionDataTaskClient::responseReceived(PlatformMediaResource& resource, const ResourceResponse& response, CompletionHandler<void(PolicyChecker::ShouldContinue)>&& completionHandler)
+void WebCoreNSURLSessionDataTaskClient::responseReceived(PlatformMediaResource& resource, const ResourceResponse& response, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler)
 {
     LockHolder locker(m_taskLock);
     if (!m_task)
-        return completionHandler(PolicyChecker::ShouldContinue::No);
+        return completionHandler(ShouldContinuePolicyCheck::No);
 
     [m_task resource:resource receivedResponse:response completionHandler:WTFMove(completionHandler)];
 }
@@ -628,7 +628,7 @@
     // No-op.
 }
 
-- (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void(PolicyChecker::ShouldContinue)>&&)completionHandler
+- (void)resource:(PlatformMediaResource&)resource receivedResponse:(const ResourceResponse&)response completionHandler:(CompletionHandler<void(ShouldContinuePolicyCheck)>&&)completionHandler
 {
     ASSERT(response.source() == ResourceResponse::Source::Network || response.source() == ResourceResponse::Source::DiskCache || response.source() == ResourceResponse::Source::DiskCacheAfterValidation || response.source() == ResourceResponse::Source::ServiceWorker);
     ASSERT_UNUSED(resource, &resource == _resource);
@@ -639,7 +639,7 @@
     RetainPtr<NSURLResponse> strongResponse { response.nsURLResponse() };
     RetainPtr<WebCoreNSURLSessionDataTask> strongSelf { self };
     if (!self.session)
-        return completionHandler(PolicyChecker::ShouldContinue::No);
+        return completionHandler(ShouldContinuePolicyCheck::No);
     [self.session addDelegateOperation:[strongSelf, strongResponse, completionHandler = WTFMove(completionHandler)] () mutable {
         strongSelf->_response = strongResponse.get();
 
@@ -646,7 +646,7 @@
         id<NSURLSessionDataDelegate> dataDelegate = (id<NSURLSessionDataDelegate>)strongSelf.get().session.delegate;
         if (![dataDelegate respondsToSelector:@selector(URLSession:dataTask:didReceiveResponse:completionHandler:)]) {
             callOnMainThread([strongSelf, completionHandler = WTFMove(completionHandler)] () mutable {
-                completionHandler(PolicyChecker::ShouldContinue::Yes);
+                completionHandler(ShouldContinuePolicyCheck::Yes);
             });
             return;
         }
@@ -654,10 +654,10 @@
         [dataDelegate URLSession:(NSURLSession *)strongSelf.get().session dataTask:(NSURLSessionDataTask *)strongSelf.get() didReceiveResponse:strongResponse.get() completionHandler:makeBlockPtr([strongSelf, completionHandler = WTFMove(completionHandler)] (NSURLSessionResponseDisposition disposition) mutable {
             callOnMainThread([strongSelf, disposition, completionHandler = WTFMove(completionHandler)] () mutable {
                 if (disposition == NSURLSessionResponseCancel)
-                    completionHandler(PolicyChecker::ShouldContinue::No);
+                    completionHandler(ShouldContinuePolicyCheck::No);
                 else {
                     ASSERT(disposition == NSURLSessionResponseAllow);
-                    completionHandler(PolicyChecker::ShouldContinue::Yes);
+                    completionHandler(ShouldContinuePolicyCheck::Yes);
                 }
             });
         }).get()];

Modified: trunk/Source/WebKit/ChangeLog (260889 => 260890)


--- trunk/Source/WebKit/ChangeLog	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/ChangeLog	2020-04-29 10:23:01 UTC (rev 260890)
@@ -1,3 +1,24 @@
+2020-04-29  Rob Buis  <[email protected]>
+
+        Make PolicyChecker an inner class of FrameLoader
+        https://bugs.webkit.org/show_bug.cgi?id=211138
+
+        Reviewed by Alex Christensen.
+
+        Adapt to PolicyChecker::ShouldContinue change.
+
+        * GPUProcess/media/RemoteMediaResource.cpp:
+        (WebKit::RemoteMediaResource::responseReceived):
+        * GPUProcess/media/RemoteMediaResource.h:
+        * GPUProcess/media/RemoteMediaResourceManager.cpp:
+        (WebKit::RemoteMediaResourceManager::responseReceived):
+        * GPUProcess/media/RemoteMediaResourceManager.h:
+        * GPUProcess/media/RemoteMediaResourceManager.messages.in:
+        * Scripts/webkit/messages.py:
+        * WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:
+        (WebKit::RemoteMediaResourceProxy::responseReceived):
+        * WebProcess/GPU/media/RemoteMediaResourceProxy.h:
+
 2020-04-29  Adrian Perez de Castro  <[email protected]>
 
         [GTK] Misplaced right click menu on web page due to deprecated gtk_menu_popup()

Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp (260889 => 260890)


--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -66,7 +66,7 @@
     return m_didPassAccessControlCheck;
 }
 
-void RemoteMediaResource::responseReceived(const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(PolicyChecker::ShouldContinue)>&& completionHandler)
+void RemoteMediaResource::responseReceived(const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler)
 {
     if (!m_client)
         return;
@@ -74,7 +74,7 @@
     m_didPassAccessControlCheck = didPassAccessControlCheck;
     m_client->responseReceived(*this, response, [protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)](auto shouldContinue) mutable {
         ASSERT(isMainThread());
-        if (shouldContinue == PolicyChecker::ShouldContinue::No)
+        if (shouldContinue == ShouldContinuePolicyCheck::No)
             protectedThis->stop();
 
         completionHandler(shouldContinue);

Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.h (260889 => 260890)


--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaResource.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -48,7 +48,7 @@
     void stop() final;
     bool didPassAccessControlCheck() const final;
 
-    void responseReceived(const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::PolicyChecker::ShouldContinue)>&&);
+    void responseReceived(const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&);
     void redirectReceived(WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&);
     void dataSent(uint64_t, uint64_t);
     void dataReceived(const char*, int64_t);

Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp (260889 => 260890)


--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -59,11 +59,11 @@
     m_remoteMediaResources.remove(remoteMediaResourceIdentifier);
 }
 
-void RemoteMediaResourceManager::responseReceived(RemoteMediaResourceIdentifier id, const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(PolicyChecker::ShouldContinue)>&& completionHandler)
+void RemoteMediaResourceManager::responseReceived(RemoteMediaResourceIdentifier id, const ResourceResponse& response, bool didPassAccessControlCheck, CompletionHandler<void(ShouldContinuePolicyCheck)>&& completionHandler)
 {
     auto* resource = m_remoteMediaResources.get(id);
     if (!resource || !resource->ready()) {
-        completionHandler(PolicyChecker::ShouldContinue::No);
+        completionHandler(ShouldContinuePolicyCheck::No);
         return;
     }
 

Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h (260889 => 260890)


--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -60,7 +60,7 @@
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
 
 private:
-    void responseReceived(RemoteMediaResourceIdentifier, const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::PolicyChecker::ShouldContinue)>&&);
+    void responseReceived(RemoteMediaResourceIdentifier, const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&);
     void redirectReceived(RemoteMediaResourceIdentifier, WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&);
     void dataSent(RemoteMediaResourceIdentifier, uint64_t, uint64_t);
     void dataReceived(RemoteMediaResourceIdentifier, const IPC::DataReference&);

Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.messages.in (260889 => 260890)


--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.messages.in	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.messages.in	2020-04-29 10:23:01 UTC (rev 260890)
@@ -26,7 +26,7 @@
 #if ENABLE(GPU_PROCESS)
 
 messages -> RemoteMediaResourceManager NotRefCounted {
-    ResponseReceived(WebKit::RemoteMediaResourceIdentifier id, WebCore::ResourceResponse response, bool didPassAccessControlCheck) -> (WebCore::PolicyChecker::ShouldContinue shouldContinue) Async
+    ResponseReceived(WebKit::RemoteMediaResourceIdentifier id, WebCore::ResourceResponse response, bool didPassAccessControlCheck) -> (enum:bool WebCore::ShouldContinuePolicyCheck shouldContinue) Async
     RedirectReceived(WebKit::RemoteMediaResourceIdentifier id, WebCore::ResourceRequest request, WebCore::ResourceResponse response) -> (WebCore::ResourceRequest returnRequest) Async
     DataSent(WebKit::RemoteMediaResourceIdentifier id, uint64_t bytesSent, uint64_t totalBytesToBeSent)
     DataReceived(WebKit::RemoteMediaResourceIdentifier id, IPC::DataReference data)

Modified: trunk/Source/WebKit/Scripts/webkit/messages.py (260889 => 260890)


--- trunk/Source/WebKit/Scripts/webkit/messages.py	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/Scripts/webkit/messages.py	2020-04-29 10:23:01 UTC (rev 260890)
@@ -607,6 +607,7 @@
         'WebCore::PaymentMethodUpdate': ['<WebCore/ApplePaySessionPaymentRequest.h>'],
         'WebCore::PluginInfo': ['<WebCore/PluginData.h>'],
         'WebCore::PolicyAction': ['<WebCore/FrameLoaderTypes.h>'],
+        'WebCore::ShouldContinuePolicyCheck': ['<WebCore/FrameLoaderTypes.h>'],
         'WebCore::PolicyCheckIdentifier': ['<WebCore/FrameLoaderTypes.h>'],
         'WebCore::ProcessIdentifier': ['<WebCore/ProcessIdentifier.h>'],
         'WebCore::RecentSearch': ['<WebCore/SearchPopupMenu.h>'],

Modified: trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp (260889 => 260890)


--- trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp	2020-04-29 10:23:01 UTC (rev 260890)
@@ -46,7 +46,7 @@
 {
 }
 
-void RemoteMediaResourceProxy::responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse& response, CompletionHandler<void(WebCore::PolicyChecker::ShouldContinue)>&& completionHandler)
+void RemoteMediaResourceProxy::responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse& response, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&& completionHandler)
 {
     m_connection->sendWithAsyncReply(Messages::RemoteMediaResourceManager::ResponseReceived(m_id, response, m_platformMediaResource.didPassAccessControlCheck()), [completionHandler = WTFMove(completionHandler)](auto shouldContinue) mutable {
         completionHandler(shouldContinue);

Modified: trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h (260889 => 260890)


--- trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h	2020-04-29 10:06:54 UTC (rev 260889)
+++ trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h	2020-04-29 10:23:01 UTC (rev 260890)
@@ -43,7 +43,7 @@
 
 private:
     // PlatformMediaResourceClient
-    void responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::PolicyChecker::ShouldContinue)>&&) final;
+    void responseReceived(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&) final;
     void redirectReceived(WebCore::PlatformMediaResource&, WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&) final;
     bool shouldCacheResponse(WebCore::PlatformMediaResource&, const WebCore::ResourceResponse&) final;
     void dataSent(WebCore::PlatformMediaResource&, unsigned long long, unsigned long long) final;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to