Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(307)

Unified Diff: third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp

Issue 1899933003: [DevTools] Introduce InspectorSession. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: export, comment Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 6a02c5c647b23928930223f45a9ac437e085b8fe..86023f1af75e73a61c9b297fedf4dba56c810679 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
+++ b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
@@ -62,7 +62,6 @@ WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl
: m_debugger(debugger)
, m_workerGlobalScope(workerGlobalScope)
, m_instrumentingAgents(InstrumentingAgents::create())
- , m_agents(m_instrumentingAgents.get())
{
}
@@ -70,55 +69,40 @@ WorkerInspectorController::~WorkerInspectorController()
{
}
-void WorkerInspectorController::initializeAgents()
+void WorkerInspectorController::connectFrontend()
{
+ if (m_session)
+ return;
+
+ // sessionId will be overwritten by WebDevToolsAgent::sendProtocolNotifications call.
+ m_session = new InspectorSession(this, 0, m_instrumentingAgents.get(), true /* autoFlush */);
m_v8Session = m_debugger->debugger()->connect(m_debugger->contextGroupId());
- m_agents.append(WorkerRuntimeAgent::create(m_v8Session->runtimeAgent(), m_workerGlobalScope, this));
- m_agents.append(WorkerDebuggerAgent::create(m_v8Session->debuggerAgent(), m_workerGlobalScope));
- m_agents.append(InspectorProfilerAgent::create(m_v8Session->profilerAgent(), nullptr));
- m_agents.append(InspectorHeapProfilerAgent::create(m_workerGlobalScope->thread()->isolate(), m_v8Session->heapProfilerAgent()));
+
+ m_session->append(WorkerRuntimeAgent::create(m_v8Session->runtimeAgent(), m_workerGlobalScope, this));
+ m_session->append(WorkerDebuggerAgent::create(m_v8Session->debuggerAgent(), m_workerGlobalScope));
+ m_session->append(InspectorProfilerAgent::create(m_v8Session->profilerAgent(), nullptr));
+ m_session->append(InspectorHeapProfilerAgent::create(m_workerGlobalScope->thread()->isolate(), m_v8Session->heapProfilerAgent()));
WorkerConsoleAgent* workerConsoleAgent = WorkerConsoleAgent::create(m_v8Session->runtimeAgent(), m_v8Session->debuggerAgent(), m_workerGlobalScope);
- m_agents.append(workerConsoleAgent);
+ m_session->append(workerConsoleAgent);
m_v8Session->runtimeAgent()->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAllMessages, workerConsoleAgent));
-}
-
-void WorkerInspectorController::destroyAgents()
-{
- m_agents.discardAgents();
- m_instrumentingAgents->reset();
- m_v8Session.clear();
-}
-void WorkerInspectorController::connectFrontend()
-{
- initializeAgents();
- ASSERT(!m_frontend);
- m_frontend = adoptPtr(new protocol::Frontend(this));
- m_backendDispatcher = protocol::Dispatcher::create(this);
- m_agents.registerInDispatcher(m_backendDispatcher.get());
- m_agents.setFrontend(m_frontend.get());
- InspectorInstrumentation::frontendCreated();
+ m_session->attach(nullptr);
}
void WorkerInspectorController::disconnectFrontend()
{
- if (!m_frontend)
+ if (!m_session)
return;
- m_backendDispatcher->clearFrontend();
- m_backendDispatcher.clear();
- m_agents.clearFrontend();
- m_frontend.clear();
- destroyAgents();
- InspectorInstrumentation::frontendDeleted();
+ m_session->detach();
+ m_v8Session.clear();
+ m_session.clear();
}
void WorkerInspectorController::dispatchMessageFromFrontend(const String& message)
{
- if (m_backendDispatcher) {
- // sessionId will be overwritten by WebDevToolsAgent::sendProtocolNotifications call.
- m_backendDispatcher->dispatch(0, message);
- }
+ if (m_session)
+ m_session->dispatchProtocolMessage(message);
}
void WorkerInspectorController::dispose()
@@ -131,26 +115,17 @@ void WorkerInspectorController::resumeStartup()
m_workerGlobalScope->thread()->stopRunningDebuggerTasksOnPause();
}
-void WorkerInspectorController::sendProtocolResponse(int sessionId, int callId, PassOwnPtr<protocol::DictionaryValue> message)
-{
- // Worker messages are wrapped, no need to handle callId.
- m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message->toJSONString());
-}
-
-void WorkerInspectorController::sendProtocolNotification(PassOwnPtr<protocol::DictionaryValue> message)
-{
- m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(message->toJSONString());
-}
-
-void WorkerInspectorController::flush()
+void WorkerInspectorController::sendProtocolMessage(int sessionId, int callId, const String& response, const String& state)
{
+ // Worker messages are wrapped, no need to handle callId or state.
+ m_workerGlobalScope->thread()->workerReportingProxy().postMessageToPageInspector(response);
}
DEFINE_TRACE(WorkerInspectorController)
{
visitor->trace(m_workerGlobalScope);
visitor->trace(m_instrumentingAgents);
- visitor->trace(m_agents);
+ visitor->trace(m_session);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698