| Index: third_party/WebKit/Source/core/workers/WorkerThread.cpp
|
| diff --git a/third_party/WebKit/Source/core/workers/WorkerThread.cpp b/third_party/WebKit/Source/core/workers/WorkerThread.cpp
|
| index 4401616c834082d49ee317be279be78917a56e13..59b921c0ccbe635b2af1bb50dd1182c2ee5467c8 100644
|
| --- a/third_party/WebKit/Source/core/workers/WorkerThread.cpp
|
| +++ b/third_party/WebKit/Source/core/workers/WorkerThread.cpp
|
| @@ -26,9 +26,12 @@
|
|
|
| #include "core/workers/WorkerThread.h"
|
|
|
| +#include <limits.h>
|
| +#include <memory>
|
| #include "bindings/core/v8/Microtask.h"
|
| #include "bindings/core/v8/ScriptSourceCode.h"
|
| #include "bindings/core/v8/WorkerOrWorkletScriptController.h"
|
| +#include "core/dom/TaskRunnerHelper.h"
|
| #include "core/inspector/ConsoleMessageStorage.h"
|
| #include "core/inspector/InspectorInstrumentation.h"
|
| #include "core/inspector/InspectorTaskRunner.h"
|
| @@ -53,8 +56,6 @@
|
| #include "wtf/PtrUtil.h"
|
| #include "wtf/Threading.h"
|
| #include "wtf/text/WTFString.h"
|
| -#include <limits.h>
|
| -#include <memory>
|
|
|
| namespace blink {
|
|
|
| @@ -105,18 +106,20 @@ WorkerThread::~WorkerThread() {
|
| }
|
|
|
| void WorkerThread::start(std::unique_ptr<WorkerThreadStartupData> startupData,
|
| - ParentFrameTaskRunners* parentFrameTaskRunners) {
|
| + FrameTaskRunnersHolder* frameTaskRunners) {
|
| DCHECK(isMainThread());
|
|
|
| if (m_requestedToStart)
|
| return;
|
|
|
| m_requestedToStart = true;
|
| - m_parentFrameTaskRunners = parentFrameTaskRunners;
|
| + m_frameTaskRunners = frameTaskRunners;
|
| workerBackingThread().backingThread().postTask(
|
| - BLINK_FROM_HERE, crossThreadBind(&WorkerThread::initializeOnWorkerThread,
|
| - crossThreadUnretained(this),
|
| - WTF::passed(std::move(startupData))));
|
| + BLINK_FROM_HERE,
|
| + crossThreadBind(&WorkerThread::initializeOnWorkerThread,
|
| + crossThreadUnretained(this),
|
| + WTF::passed(std::move(startupData)),
|
| + wrapCrossThreadPersistent(frameTaskRunners)));
|
| }
|
|
|
| void WorkerThread::terminate() {
|
| @@ -341,7 +344,7 @@ void WorkerThread::terminateInternal(TerminationMode mode) {
|
| case TerminationMode::Graceful:
|
| DCHECK(!m_forcibleTerminationTaskHandle.isActive());
|
| m_forcibleTerminationTaskHandle =
|
| - m_parentFrameTaskRunners->get(TaskType::UnspecedTimer)
|
| + m_frameTaskRunners->get(TaskType::UnspecedTimer)
|
| ->postDelayedCancellableTask(
|
| BLINK_FROM_HERE,
|
| WTF::bind(&WorkerThread::mayForciblyTerminateExecution,
|
| @@ -430,7 +433,8 @@ bool WorkerThread::isInShutdown() {
|
| }
|
|
|
| void WorkerThread::initializeOnWorkerThread(
|
| - std::unique_ptr<WorkerThreadStartupData> startupData) {
|
| + std::unique_ptr<WorkerThreadStartupData> startupData,
|
| + FrameTaskRunnersHolder* frameTaskRunners) {
|
| DCHECK(isCurrentThread());
|
| DCHECK_EQ(ThreadState::NotStarted, m_threadState);
|
|
|
| @@ -461,6 +465,7 @@ void WorkerThread::initializeOnWorkerThread(
|
|
|
| m_consoleMessageStorage = new ConsoleMessageStorage();
|
| m_globalScope = createWorkerGlobalScope(std::move(startupData));
|
| + FrameTaskRunnerHelper::setTaskRunners(globalScope(), frameTaskRunners);
|
| m_workerReportingProxy.didCreateWorkerGlobalScope(globalScope());
|
| m_workerInspectorController = WorkerInspectorController::create(this);
|
|
|
|
|