Index: third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp |
diff --git a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp |
index bbeff5191ed000b5c793392c4f66a85ff6857709..608d578a2075a819665a17f3d173e587ac73387e 100644 |
--- a/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp |
+++ b/third_party/WebKit/Source/web/WebSharedWorkerImpl.cpp |
@@ -30,13 +30,14 @@ |
#include "web/WebSharedWorkerImpl.h" |
+#include <memory> |
#include "core/dom/Document.h" |
+#include "core/dom/TaskRunnerHelper.h" |
#include "core/events/MessageEvent.h" |
#include "core/inspector/ConsoleMessage.h" |
#include "core/inspector/InspectorInstrumentation.h" |
#include "core/loader/FrameLoadRequest.h" |
#include "core/loader/FrameLoader.h" |
-#include "core/workers/ParentFrameTaskRunners.h" |
#include "core/workers/SharedWorkerGlobalScope.h" |
#include "core/workers/SharedWorkerThread.h" |
#include "core/workers/WorkerClients.h" |
@@ -70,7 +71,6 @@ |
#include "web/WorkerContentSettingsClient.h" |
#include "wtf/Functional.h" |
#include "wtf/PtrUtil.h" |
-#include <memory> |
namespace blink { |
@@ -265,7 +265,7 @@ void WebSharedWorkerImpl::postTaskToLoader( |
const WebTraceLocation& location, |
std::unique_ptr<WTF::CrossThreadClosure> task) { |
DCHECK(m_workerThread->isCurrentThread()); |
- m_parentFrameTaskRunners->get(TaskType::Networking) |
+ FrameTaskRunnerHelper::get(TaskType::Networking, m_workerThread.get()) |
->postTask(FROM_HERE, std::move(task)); |
} |
@@ -371,17 +371,8 @@ void WebSharedWorkerImpl::onScriptLoaderFinished() { |
m_mainScriptLoader->originTrialTokens(), std::move(workerSettings), |
WorkerV8Settings::Default()); |
- // SharedWorker can sometimes run tasks that are initiated by/associated with |
- // a document's frame but these documents can be from a different process. So |
- // we intentionally populate the task runners with null document in order to |
- // use the thread's default task runner. Note that |m_document| should not be |
- // used as it's a dummy document for loading that doesn't represent the frame |
- // of any associated document. |
- m_parentFrameTaskRunners = ParentFrameTaskRunners::create(nullptr); |
- |
m_loaderProxy = WorkerLoaderProxy::create(this); |
- m_reportingProxy = new WebSharedWorkerReportingProxyImpl( |
- this, m_parentFrameTaskRunners.get()); |
+ m_reportingProxy = new WebSharedWorkerReportingProxyImpl(this); |
m_workerThread = |
SharedWorkerThread::create(m_name, m_loaderProxy, *m_reportingProxy); |
InspectorInstrumentation::scriptImported(m_loadingDocument, |
@@ -389,7 +380,14 @@ void WebSharedWorkerImpl::onScriptLoaderFinished() { |
m_mainScriptLoader->script()); |
m_mainScriptLoader.clear(); |
- workerThread()->start(std::move(startupData), m_parentFrameTaskRunners.get()); |
+ // SharedWorker can sometimes run tasks that are initiated by/associated with |
+ // a document's frame but these documents can be from a different process. So |
+ // we intentionally populate the task runners with null document in order to |
+ // use the thread's default task runner. Note that |m_document| should not be |
+ // used as it's a dummy document for loading that doesn't represent the frame |
+ // of any associated document. |
+ workerThread()->start(std::move(startupData), |
+ FrameTaskRunnersHolder::create(nullptr)); |
m_workerInspectorProxy->workerThreadCreated(toDocument(m_loadingDocument), |
workerThread(), m_url); |
m_client->workerScriptLoaded(); |