Index: Source/core/loader/WorkerThreadableLoader.cpp |
diff --git a/Source/core/loader/WorkerThreadableLoader.cpp b/Source/core/loader/WorkerThreadableLoader.cpp |
index cf4d74e75e2b7bcd4ba7db6b842558885311a721..0a0adf40966c9665a8bfd7f3c087e2faec6f1f2c 100644 |
--- a/Source/core/loader/WorkerThreadableLoader.cpp |
+++ b/Source/core/loader/WorkerThreadableLoader.cpp |
@@ -43,7 +43,6 @@ |
#include "platform/network/ResourceError.h" |
#include "platform/network/ResourceRequest.h" |
#include "platform/network/ResourceResponse.h" |
-#include "platform/weborigin/Referrer.h" |
#include "platform/weborigin/SecurityPolicy.h" |
#include "public/platform/Platform.h" |
#include "public/platform/WebWaitableEvent.h" |
@@ -56,7 +55,7 @@ namespace blink { |
WorkerThreadableLoader::WorkerThreadableLoader(WorkerGlobalScope& workerGlobalScope, PassRefPtr<ThreadableLoaderClientWrapper> clientWrapper, PassOwnPtr<ThreadableLoaderClient> clientBridge, const ResourceRequest& request, const ThreadableLoaderOptions& options, const ResourceLoaderOptions& resourceLoaderOptions) |
: m_workerGlobalScope(&workerGlobalScope) |
, m_workerClientWrapper(clientWrapper) |
- , m_bridge(*(new MainThreadBridge(m_workerClientWrapper, clientBridge, workerGlobalScope.thread()->workerLoaderProxy(), request, options, resourceLoaderOptions, workerGlobalScope.url().strippedForUseAsReferrer()))) |
+ , m_bridge(*(new MainThreadBridge(m_workerClientWrapper, clientBridge, workerGlobalScope.thread()->workerLoaderProxy(), request, options, resourceLoaderOptions, workerGlobalScope.referrerPolicy(), workerGlobalScope.url().strippedForUseAsReferrer()))) |
{ |
} |
@@ -114,6 +113,7 @@ WorkerThreadableLoader::MainThreadBridge::MainThreadBridge( |
const ResourceRequest& request, |
const ThreadableLoaderOptions& options, |
const ResourceLoaderOptions& resourceLoaderOptions, |
+ const ReferrerPolicy referrerPolicy, |
const String& outgoingReferrer) |
: m_clientBridge(clientBridge) |
, m_workerClientWrapper(workerClientWrapper) |
@@ -122,20 +122,20 @@ WorkerThreadableLoader::MainThreadBridge::MainThreadBridge( |
ASSERT(m_workerClientWrapper.get()); |
ASSERT(m_clientBridge.get()); |
m_loaderProxy->postTaskToLoader( |
- createCrossThreadTask(&MainThreadBridge::mainThreadCreateLoader, this, request, options, resourceLoaderOptions, outgoingReferrer)); |
+ createCrossThreadTask(&MainThreadBridge::mainThreadCreateLoader, this, request, options, resourceLoaderOptions, referrerPolicy, outgoingReferrer)); |
} |
WorkerThreadableLoader::MainThreadBridge::~MainThreadBridge() |
{ |
} |
-void WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader(PassOwnPtr<CrossThreadResourceRequestData> requestData, ThreadableLoaderOptions options, ResourceLoaderOptions resourceLoaderOptions, const String& outgoingReferrer, ExecutionContext* context) |
+void WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader(PassOwnPtr<CrossThreadResourceRequestData> requestData, ThreadableLoaderOptions options, ResourceLoaderOptions resourceLoaderOptions, const ReferrerPolicy referrerPolicy, const String& outgoingReferrer, ExecutionContext* context) |
{ |
ASSERT(isMainThread()); |
Document* document = toDocument(context); |
OwnPtr<ResourceRequest> request(ResourceRequest::adopt(requestData)); |
- request->setHTTPReferrer(SecurityPolicy::generateReferrer(ReferrerPolicyDefault, request->url(), outgoingReferrer)); |
+ request->setHTTPReferrer(SecurityPolicy::generateReferrer(referrerPolicy, request->url(), outgoingReferrer)); |
resourceLoaderOptions.requestInitiatorContext = WorkerContext; |
m_mainThreadLoader = DocumentThreadableLoader::create(*document, this, *request, options, resourceLoaderOptions); |
if (!m_mainThreadLoader) { |