Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp

Issue 2709193002: WorkerLoaderProxy: stop accessing cross-thread execution context (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 70d417fbcc337f9098f74069ad38ca12dcd349ec..c3ed20dea8868b673e585a7fa24baa3800290624 100644
--- a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp
@@ -31,7 +31,6 @@
#include "core/loader/WorkerThreadableLoader.h"
#include "core/dom/Document.h"
-#include "core/dom/ExecutionContextTask.h"
#include "core/loader/DocumentThreadableLoader.h"
#include "core/timing/WorkerGlobalScopePerformance.h"
#include "core/workers/WorkerGlobalScope.h"
@@ -236,7 +235,7 @@ void WorkerThreadableLoader::start(const ResourceRequest& originalRequest) {
m_workerLoaderProxy->postTaskToLoader(
BLINK_FROM_HERE,
- createCrossThreadTask(
+ crossThreadBind(
&MainThreadLoaderHolder::createAndStart,
wrapCrossThreadPersistent(this), m_workerLoaderProxy,
wrapCrossThreadPersistent(
@@ -272,16 +271,17 @@ void WorkerThreadableLoader::overrideTimeout(
return;
m_workerLoaderProxy->postTaskToLoader(
BLINK_FROM_HERE,
- createCrossThreadTask(&MainThreadLoaderHolder::overrideTimeout,
- m_mainThreadLoaderHolder, timeoutMilliseconds));
+ crossThreadBind(&MainThreadLoaderHolder::overrideTimeout,
+ m_mainThreadLoaderHolder, timeoutMilliseconds));
}
void WorkerThreadableLoader::cancel() {
DCHECK(!isMainThread());
if (m_mainThreadLoaderHolder) {
m_workerLoaderProxy->postTaskToLoader(
- BLINK_FROM_HERE, createCrossThreadTask(&MainThreadLoaderHolder::cancel,
- m_mainThreadLoaderHolder));
+ BLINK_FROM_HERE,
+ crossThreadBind(&MainThreadLoaderHolder::cancel,
+ m_mainThreadLoaderHolder));
m_mainThreadLoaderHolder = nullptr;
}
@@ -306,9 +306,9 @@ void WorkerThreadableLoader::didStart(
if (!m_client) {
// The thread is terminating.
m_workerLoaderProxy->postTaskToLoader(
- BLINK_FROM_HERE, createCrossThreadTask(&MainThreadLoaderHolder::cancel,
- wrapCrossThreadPersistent(
- mainThreadLoaderHolder)));
+ BLINK_FROM_HERE,
+ crossThreadBind(&MainThreadLoaderHolder::cancel,
+ wrapCrossThreadPersistent(mainThreadLoaderHolder)));
return;
}
@@ -432,11 +432,13 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::createAndStart(
std::unique_ptr<CrossThreadResourceRequestData> request,
const ThreadableLoaderOptions& options,
const ResourceLoaderOptions& resourceLoaderOptions,
- PassRefPtr<WaitableEventWithTasks> eventWithTasks,
- ExecutionContext* executionContext) {
+ PassRefPtr<WaitableEventWithTasks> eventWithTasks) {
DCHECK(isMainThread());
TaskForwarder* forwarder;
RefPtr<WorkerLoaderProxy> loaderProxy = passLoaderProxy;
+ ExecutionContext* loaderContext = loaderProxy->getLoaderExecutionContext();
+ if (!loaderContext)
+ return;
if (eventWithTasks)
forwarder = new SyncTaskForwarder(std::move(eventWithTasks));
else
@@ -456,9 +458,8 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::createAndStart(
crossThreadBind(&WorkerThreadableLoader::didStart,
wrapCrossThreadPersistent(workerLoader),
wrapCrossThreadPersistent(mainThreadLoaderHolder)));
- mainThreadLoaderHolder->start(*toDocument(executionContext),
- std::move(request), options,
- resourceLoaderOptions);
+ mainThreadLoaderHolder->start(*toDocument(loaderContext), std::move(request),
+ options, resourceLoaderOptions);
}
WorkerThreadableLoader::MainThreadLoaderHolder::~MainThreadLoaderHolder() {

Powered by Google App Engine
This is Rietveld 408576698