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;