| Index: Source/core/loader/WorkerThreadableLoader.cpp
|
| diff --git a/Source/core/loader/WorkerThreadableLoader.cpp b/Source/core/loader/WorkerThreadableLoader.cpp
|
| index 64e21d055f371f728a7203726a5ed40514fe8cc8..b4ee50843c962ada01edb1c1be031428711ec5e9 100644
|
| --- a/Source/core/loader/WorkerThreadableLoader.cpp
|
| +++ b/Source/core/loader/WorkerThreadableLoader.cpp
|
| @@ -51,10 +51,10 @@
|
|
|
| namespace WebCore {
|
|
|
| -WorkerThreadableLoader::WorkerThreadableLoader(WorkerGlobalScope& workerGlobalScope, PassRefPtr<ThreadableLoaderClientWrapper> clientWrapper, PassOwnPtr<ThreadableLoaderClient> clientBridge, const ResourceRequest& request, const ThreadableLoaderOptions& options)
|
| +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, workerGlobalScope.url().strippedForUseAsReferrer())))
|
| + , m_bridge(*(new MainThreadBridge(m_workerClientWrapper, clientBridge, workerGlobalScope.thread()->workerLoaderProxy(), request, options, resourceLoaderOptions, workerGlobalScope.url().strippedForUseAsReferrer())))
|
| {
|
| }
|
|
|
| @@ -63,7 +63,7 @@ WorkerThreadableLoader::~WorkerThreadableLoader()
|
| m_bridge.destroy();
|
| }
|
|
|
| -void WorkerThreadableLoader::loadResourceSynchronously(WorkerGlobalScope& workerGlobalScope, const ResourceRequest& request, ThreadableLoaderClient& client, const ThreadableLoaderOptions& options)
|
| +void WorkerThreadableLoader::loadResourceSynchronously(WorkerGlobalScope& workerGlobalScope, const ResourceRequest& request, ThreadableLoaderClient& client, const ThreadableLoaderOptions& options, const ResourceLoaderOptions& resourceLoaderOptions)
|
| {
|
| blink::WebWaitableEvent* shutdownEvent =
|
| workerGlobalScope.thread()->shutdownEvent();
|
| @@ -80,7 +80,7 @@ void WorkerThreadableLoader::loadResourceSynchronously(WorkerGlobalScope& worker
|
| // This must be valid while loader is around.
|
| WorkerLoaderClientBridgeSyncHelper* clientBridgePtr = clientBridge.get();
|
|
|
| - RefPtr<WorkerThreadableLoader> loader = WorkerThreadableLoader::create(workerGlobalScope, clientWrapper, clientBridge.release(), request, options);
|
| + RefPtr<WorkerThreadableLoader> loader = WorkerThreadableLoader::create(workerGlobalScope, clientWrapper, clientBridge.release(), request, options, resourceLoaderOptions);
|
|
|
| blink::WebWaitableEvent* signalled;
|
| {
|
| @@ -104,7 +104,10 @@ WorkerThreadableLoader::MainThreadBridge::MainThreadBridge(
|
| PassRefPtr<ThreadableLoaderClientWrapper> workerClientWrapper,
|
| PassOwnPtr<ThreadableLoaderClient> clientBridge,
|
| WorkerLoaderProxy& loaderProxy,
|
| - const ResourceRequest& request, const ThreadableLoaderOptions& options, const String& outgoingReferrer)
|
| + const ResourceRequest& request,
|
| + const ThreadableLoaderOptions& options,
|
| + const ResourceLoaderOptions& resourceLoaderOptions,
|
| + const String& outgoingReferrer)
|
| : m_clientBridge(clientBridge)
|
| , m_workerClientWrapper(workerClientWrapper)
|
| , m_loaderProxy(loaderProxy)
|
| @@ -112,23 +115,22 @@ WorkerThreadableLoader::MainThreadBridge::MainThreadBridge(
|
| ASSERT(m_workerClientWrapper.get());
|
| ASSERT(m_clientBridge.get());
|
| m_loaderProxy.postTaskToLoader(
|
| - createCallbackTask(&MainThreadBridge::mainThreadCreateLoader,
|
| - AllowCrossThreadAccess(this), request, options, outgoingReferrer));
|
| + createCallbackTask(&MainThreadBridge::mainThreadCreateLoader, AllowCrossThreadAccess(this), request, options, resourceLoaderOptions, outgoingReferrer));
|
| }
|
|
|
| WorkerThreadableLoader::MainThreadBridge::~MainThreadBridge()
|
| {
|
| }
|
|
|
| -void WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader(ExecutionContext* context, MainThreadBridge* thisPtr, PassOwnPtr<CrossThreadResourceRequestData> requestData, ThreadableLoaderOptions options, const String& outgoingReferrer)
|
| +void WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader(ExecutionContext* context, MainThreadBridge* thisPtr, PassOwnPtr<CrossThreadResourceRequestData> requestData, ThreadableLoaderOptions options, ResourceLoaderOptions resourceLoaderOptions, const String& outgoingReferrer)
|
| {
|
| ASSERT(isMainThread());
|
| Document* document = toDocument(context);
|
|
|
| OwnPtr<ResourceRequest> request(ResourceRequest::adopt(requestData));
|
| request->setHTTPReferrer(Referrer(outgoingReferrer, ReferrerPolicyDefault));
|
| - options.requestInitiatorContext = WorkerContext;
|
| - thisPtr->m_mainThreadLoader = DocumentThreadableLoader::create(*document, thisPtr, *request, options);
|
| + resourceLoaderOptions.requestInitiatorContext = WorkerContext;
|
| + thisPtr->m_mainThreadLoader = DocumentThreadableLoader::create(*document, thisPtr, *request, options, resourceLoaderOptions);
|
| if (!thisPtr->m_mainThreadLoader) {
|
| // DocumentThreadableLoader::create may return 0 when the document loader has been already changed.
|
| thisPtr->didFail(ResourceError(errorDomainBlinkInternal, 0, request->url().string(), "Can't create DocumentThreadableLoader"));
|
|
|