Index: third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
index a63be36a66b406f015433902e069001c006419d0..be1334598daeab03688aa2c5edc120aa17911bd4 100644 |
--- a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
@@ -35,7 +35,6 @@ |
#include "core/loader/ThreadableLoadingContext.h" |
#include "core/timing/WorkerGlobalScopePerformance.h" |
#include "core/workers/WorkerGlobalScope.h" |
-#include "core/workers/WorkerLoaderProxy.h" |
#include "platform/CrossThreadFunctional.h" |
#include "platform/heap/SafePoint.h" |
#include "platform/loader/fetch/ResourceError.h" |
@@ -197,8 +196,6 @@ WorkerThreadableLoader::WorkerThreadableLoader( |
const ResourceLoaderOptions& resource_loader_options, |
BlockingBehavior blocking_behavior) |
: worker_global_scope_(&worker_global_scope), |
- worker_loader_proxy_( |
- worker_global_scope.GetThread()->GetWorkerLoaderProxy()), |
parent_frame_task_runners_( |
worker_global_scope.GetThread()->GetParentFrameTaskRunners()), |
client_(client), |
@@ -225,6 +222,7 @@ WorkerThreadableLoader::~WorkerThreadableLoader() { |
} |
void WorkerThreadableLoader::Start(const ResourceRequest& original_request) { |
+ DCHECK(worker_global_scope_->IsContextThread()); |
ResourceRequest request(original_request); |
if (!request.DidSetHTTPReferrer()) { |
request.SetHTTPReferrer(SecurityPolicy::GenerateReferrer( |
@@ -232,24 +230,25 @@ void WorkerThreadableLoader::Start(const ResourceRequest& original_request) { |
worker_global_scope_->OutgoingReferrer())); |
} |
- DCHECK(!IsMainThread()); |
RefPtr<WaitableEventWithTasks> event_with_tasks; |
if (blocking_behavior_ == kLoadSynchronously) |
event_with_tasks = WaitableEventWithTasks::Create(); |
+ WorkerThread* worker_thread = worker_global_scope_->GetThread(); |
RefPtr<WebTaskRunner> worker_loading_task_runner = TaskRunnerHelper::Get( |
TaskType::kUnspecedLoading, worker_global_scope_.Get()); |
parent_frame_task_runners_->Get(TaskType::kUnspecedLoading) |
->PostTask( |
BLINK_FROM_HERE, |
- CrossThreadBind(&MainThreadLoaderHolder::CreateAndStart, |
- WrapCrossThreadPersistent(this), worker_loader_proxy_, |
- std::move(worker_loading_task_runner), |
- WrapCrossThreadPersistent( |
- worker_global_scope_->GetThread() |
- ->GetWorkerThreadLifecycleContext()), |
- request, threadable_loader_options_, |
- resource_loader_options_, event_with_tasks)); |
+ CrossThreadBind( |
+ &MainThreadLoaderHolder::CreateAndStart, |
+ WrapCrossThreadPersistent(this), |
+ WrapCrossThreadPersistent(worker_thread->GetLoadingContext()), |
+ std::move(worker_loading_task_runner), |
+ WrapCrossThreadPersistent( |
+ worker_thread->GetWorkerThreadLifecycleContext()), |
+ request, threadable_loader_options_, resource_loader_options_, |
+ event_with_tasks)); |
if (blocking_behavior_ == kLoadAsynchronously) |
return; |
@@ -437,7 +436,7 @@ DEFINE_TRACE(WorkerThreadableLoader) { |
void WorkerThreadableLoader::MainThreadLoaderHolder::CreateAndStart( |
WorkerThreadableLoader* worker_loader, |
- RefPtr<WorkerLoaderProxy> loader_proxy, |
+ ThreadableLoadingContext* loading_context, |
RefPtr<WebTaskRunner> worker_loading_task_runner, |
WorkerThreadLifecycleContext* worker_thread_lifecycle_context, |
std::unique_ptr<CrossThreadResourceRequestData> request, |
@@ -446,10 +445,6 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::CreateAndStart( |
PassRefPtr<WaitableEventWithTasks> event_with_tasks) { |
DCHECK(IsMainThread()); |
TaskForwarder* forwarder; |
- ThreadableLoadingContext* loading_context = |
- loader_proxy->GetThreadableLoadingContext(); |
- if (!loading_context) |
- return; |
if (event_with_tasks) |
forwarder = new SyncTaskForwarder(std::move(event_with_tasks)); |
else |