| Index: third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
|
| diff --git a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
|
| index 6e1493d99a8c68133dcd112305ca1a9bdb85e9d9..13101ccf9b30788fb875fda70c98dbd5ada63037 100644
|
| --- a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
|
| +++ b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
|
| @@ -59,25 +59,6 @@ namespace blink {
|
|
|
| namespace {
|
|
|
| -class PageInspectorProxy final : public InspectorFrontendChannel {
|
| - USING_FAST_MALLOC(PageInspectorProxy);
|
| -public:
|
| - explicit PageInspectorProxy(WorkerGlobalScope* workerGlobalScope) : m_workerGlobalScope(workerGlobalScope) { }
|
| - ~PageInspectorProxy() override { }
|
| -private:
|
| - void sendProtocolResponse(int callId, PassRefPtr<JSONObject> message) override
|
| - {
|
| - // Worker messages are wrapped, no need to handle callId.
|
| - m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message->toJSONString());
|
| - }
|
| - void sendProtocolNotification(PassRefPtr<JSONObject> message) override
|
| - {
|
| - m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message->toJSONString());
|
| - }
|
| - void flush() override { }
|
| - WorkerGlobalScope* m_workerGlobalScope;
|
| -};
|
| -
|
| class WorkerStateClient final : public InspectorStateClient {
|
| USING_FAST_MALLOC(WorkerStateClient);
|
| public:
|
| @@ -108,6 +89,40 @@ private:
|
|
|
| }
|
|
|
| +class WorkerInspectorController::PageInspectorProxy final : public NoBaseWillBeGarbageCollectedFinalized<WorkerInspectorController::PageInspectorProxy>, public InspectorFrontendChannel {
|
| + USING_FAST_MALLOC_WILL_BE_REMOVED(PageInspectorProxy);
|
| +public:
|
| + static PassOwnPtrWillBeRawPtr<PageInspectorProxy> create(WorkerGlobalScope* workerGlobalScope)
|
| + {
|
| + return adoptPtrWillBeNoop(new PageInspectorProxy(workerGlobalScope));
|
| + }
|
| + ~PageInspectorProxy() override { }
|
| +
|
| + DEFINE_INLINE_TRACE()
|
| + {
|
| + visitor->trace(m_workerGlobalScope);
|
| + }
|
| +
|
| +private:
|
| + explicit PageInspectorProxy(WorkerGlobalScope* workerGlobalScope)
|
| + : m_workerGlobalScope(workerGlobalScope)
|
| + {
|
| + }
|
| +
|
| + void sendProtocolResponse(int callId, PassRefPtr<JSONObject> message) override
|
| + {
|
| + // Worker messages are wrapped, no need to handle callId.
|
| + m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message->toJSONString());
|
| + }
|
| + void sendProtocolNotification(PassRefPtr<JSONObject> message) override
|
| + {
|
| + m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message->toJSONString());
|
| + }
|
| + void flush() override { }
|
| +
|
| + RawPtrWillBeMember<WorkerGlobalScope> m_workerGlobalScope;
|
| +};
|
| +
|
| class WorkerInjectedScriptHostClient: public InjectedScriptHostClient {
|
| public:
|
| WorkerInjectedScriptHostClient() { }
|
| @@ -162,9 +177,9 @@ void WorkerInspectorController::connectFrontend()
|
| {
|
| ASSERT(!m_frontend);
|
| m_state->unmute();
|
| - m_frontendChannel = adoptPtr(new PageInspectorProxy(m_workerGlobalScope));
|
| - m_frontend = adoptPtr(new InspectorFrontend(m_frontendChannel.get()));
|
| - m_backendDispatcher = InspectorBackendDispatcher::create(m_frontendChannel.get());
|
| + m_pageInspectorProxy = PageInspectorProxy::create(m_workerGlobalScope);
|
| + m_frontend = adoptPtr(new InspectorFrontend(frontendChannel()));
|
| + m_backendDispatcher = InspectorBackendDispatcher::create(frontendChannel());
|
| m_agents.registerInDispatcher(m_backendDispatcher.get());
|
| m_agents.setFrontend(m_frontend.get());
|
| InspectorInstrumentation::frontendCreated();
|
| @@ -182,7 +197,7 @@ void WorkerInspectorController::disconnectFrontend()
|
| m_agents.clearFrontend();
|
| m_frontend.clear();
|
| InspectorInstrumentation::frontendDeleted();
|
| - m_frontendChannel.clear();
|
| + m_pageInspectorProxy.clear();
|
| }
|
|
|
| void WorkerInspectorController::restoreInspectorStateFromCookie(const String& inspectorCookie)
|
| @@ -223,6 +238,11 @@ bool WorkerInspectorController::isRunRequired()
|
| return m_paused;
|
| }
|
|
|
| +InspectorFrontendChannel* WorkerInspectorController::frontendChannel() const
|
| +{
|
| + return static_cast<InspectorFrontendChannel*>(m_pageInspectorProxy.get());
|
| +}
|
| +
|
| void WorkerInspectorController::workerContextInitialized(bool shouldPauseOnStart)
|
| {
|
| m_beforeInitlizedScope.clear();
|
| @@ -245,6 +265,7 @@ DEFINE_TRACE(WorkerInspectorController)
|
| visitor->trace(m_injectedScriptManager);
|
| visitor->trace(m_backendDispatcher);
|
| visitor->trace(m_agents);
|
| + visitor->trace(m_pageInspectorProxy);
|
| visitor->trace(m_workerDebuggerAgent);
|
| visitor->trace(m_workerRuntimeAgent);
|
| }
|
|
|