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 9a05a18e2fed5100fc884b3434136c9c5f9be9a1..07318438917b3e5723da78d9326de9fbb01f296e 100644 |
--- a/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/WorkerThreadableLoader.cpp |
@@ -467,6 +467,7 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::overrideTimeout(unsigned lo |
void WorkerThreadableLoader::MainThreadLoaderHolder::cancel() |
{ |
DCHECK(isMainThread()); |
+ m_workerLoader = nullptr; |
if (!m_mainThreadLoader) |
return; |
m_mainThreadLoader->cancel(); |
@@ -521,7 +522,7 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::didReceiveCachedMetadata(co |
void WorkerThreadableLoader::MainThreadLoaderHolder::didFinishLoading(unsigned long identifier, double finishTime) |
{ |
DCHECK(isMainThread()); |
- CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.get(); |
+ CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.release(); |
if (!workerLoader || !m_forwarder) |
return; |
m_forwarder->forwardTaskWithDoneSignal(BLINK_FROM_HERE, createCrossThreadTask(&WorkerThreadableLoader::didFinishLoading, workerLoader, identifier, finishTime)); |
@@ -531,7 +532,7 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::didFinishLoading(unsigned l |
void WorkerThreadableLoader::MainThreadLoaderHolder::didFail(const ResourceError& error) |
{ |
DCHECK(isMainThread()); |
- CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.get(); |
+ CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.release(); |
if (!workerLoader || !m_forwarder) |
return; |
m_forwarder->forwardTaskWithDoneSignal(BLINK_FROM_HERE, createCrossThreadTask(&WorkerThreadableLoader::didFail, workerLoader, error)); |
@@ -541,7 +542,7 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::didFail(const ResourceError |
void WorkerThreadableLoader::MainThreadLoaderHolder::didFailAccessControlCheck(const ResourceError& error) |
{ |
DCHECK(isMainThread()); |
- CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.get(); |
+ CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.release(); |
if (!workerLoader || !m_forwarder) |
return; |
m_forwarder->forwardTaskWithDoneSignal(BLINK_FROM_HERE, createCrossThreadTask(&WorkerThreadableLoader::didFailAccessControlCheck, workerLoader, error)); |
@@ -551,7 +552,7 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::didFailAccessControlCheck(c |
void WorkerThreadableLoader::MainThreadLoaderHolder::didFailRedirectCheck() |
{ |
DCHECK(isMainThread()); |
- CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.get(); |
+ CrossThreadPersistent<WorkerThreadableLoader> workerLoader = m_workerLoader.release(); |
if (!workerLoader || !m_forwarder) |
return; |
m_forwarder->forwardTaskWithDoneSignal(BLINK_FROM_HERE, createCrossThreadTask(&WorkerThreadableLoader::didFailRedirectCheck, workerLoader)); |
@@ -574,7 +575,6 @@ void WorkerThreadableLoader::MainThreadLoaderHolder::contextDestroyed() |
m_forwarder->abort(); |
m_forwarder = nullptr; |
} |
- m_workerLoader = nullptr; |
cancel(); |
} |