| Index: Source/core/inspector/WorkerDebuggerAgent.cpp
|
| diff --git a/Source/core/inspector/WorkerDebuggerAgent.cpp b/Source/core/inspector/WorkerDebuggerAgent.cpp
|
| index 7026b98549ca49054ffef4f9069325734571b16b..bc9cfacbb24c8a6085f650b53c415735a59d9d75 100644
|
| --- a/Source/core/inspector/WorkerDebuggerAgent.cpp
|
| +++ b/Source/core/inspector/WorkerDebuggerAgent.cpp
|
| @@ -31,7 +31,7 @@
|
| #include "config.h"
|
| #include "core/inspector/WorkerDebuggerAgent.h"
|
|
|
| -#include "bindings/core/v8/ScriptDebugServer.h"
|
| +#include "bindings/core/v8/WorkerScriptDebugServer.h"
|
| #include "core/inspector/InjectedScript.h"
|
| #include "core/inspector/WorkerInspectorController.h"
|
| #include "core/workers/WorkerGlobalScope.h"
|
| @@ -44,33 +44,34 @@ namespace {
|
|
|
| class RunInspectorCommandsTask final : public ScriptDebugServer::Task {
|
| public:
|
| - explicit RunInspectorCommandsTask(WorkerThread* thread)
|
| - : m_thread(thread) { }
|
| + explicit RunInspectorCommandsTask(WorkerThread* thread, WebThread::TaskObserver* taskObserver)
|
| + : m_thread(thread)
|
| + , m_taskObserver(taskObserver) { }
|
| virtual ~RunInspectorCommandsTask() { }
|
| virtual void run() override
|
| {
|
| - // Process all queued debugger commands. WorkerThread is certainly
|
| - // alive if this task is being executed.
|
| - m_thread->willEnterNestedLoop();
|
| + m_taskObserver->willProcessTask();
|
| while (MessageQueueMessageReceived == m_thread->runDebuggerTask(WorkerThread::DontWaitForMessage)) { }
|
| - m_thread->didLeaveNestedLoop();
|
| + m_taskObserver->didProcessTask();
|
| }
|
|
|
| private:
|
| WorkerThread* m_thread;
|
| + WebThread::TaskObserver* m_taskObserver;
|
| };
|
|
|
| } // namespace
|
|
|
| -PassOwnPtrWillBeRawPtr<WorkerDebuggerAgent> WorkerDebuggerAgent::create(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager)
|
| +PassOwnPtrWillBeRawPtr<WorkerDebuggerAgent> WorkerDebuggerAgent::create(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager, WebThread::TaskObserver* taskObserver)
|
| {
|
| - return adoptPtrWillBeNoop(new WorkerDebuggerAgent(scriptDebugServer, inspectedWorkerGlobalScope, injectedScriptManager));
|
| + return adoptPtrWillBeNoop(new WorkerDebuggerAgent(scriptDebugServer, inspectedWorkerGlobalScope, injectedScriptManager, taskObserver));
|
| }
|
|
|
| -WorkerDebuggerAgent::WorkerDebuggerAgent(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager)
|
| +WorkerDebuggerAgent::WorkerDebuggerAgent(WorkerScriptDebugServer* scriptDebugServer, WorkerGlobalScope* inspectedWorkerGlobalScope, InjectedScriptManager* injectedScriptManager, WebThread::TaskObserver* taskObserver)
|
| : InspectorDebuggerAgent(injectedScriptManager, scriptDebugServer->scriptDebugServer()->isolate())
|
| , m_scriptDebugServer(scriptDebugServer)
|
| , m_inspectedWorkerGlobalScope(inspectedWorkerGlobalScope)
|
| + , m_taskObserver(taskObserver)
|
| {
|
| }
|
|
|
| @@ -86,7 +87,7 @@ DEFINE_TRACE(WorkerDebuggerAgent)
|
|
|
| void WorkerDebuggerAgent::interruptAndDispatchInspectorCommands()
|
| {
|
| - scriptDebugServer().interruptAndRun(adoptPtr(new RunInspectorCommandsTask(m_inspectedWorkerGlobalScope->thread())));
|
| + scriptDebugServer().interruptAndRun(adoptPtr(new RunInspectorCommandsTask(m_inspectedWorkerGlobalScope->thread(), m_taskObserver)));
|
| }
|
|
|
| void WorkerDebuggerAgent::startListeningScriptDebugServer()
|
|
|