Commit 2cd7f315 authored by dgozman's avatar dgozman Committed by Commit bot

[DevTools] Create agents on attach.

To support multiple attached devtools, we have to instantiate
individual agents on demand, rather than on creation.
This patch moves regular of agents, with view-specific and worker's left.

BUG=590878

Review URL: https://codereview.chromium.org/1834073002

Cr-Commit-Position: refs/heads/master@{#383833}
parent d993d51b
......@@ -123,8 +123,8 @@ void InspectorAgentRegistry::registerInDispatcher(protocol::Dispatcher* dispatch
void InspectorAgentRegistry::discardAgents()
{
for (size_t i = 0; i < m_agents.size(); i++)
m_agents[i]->discardAgent();
for (size_t i = m_agents.size(); i > 0; i--)
m_agents[i - 1]->discardAgent();
}
void InspectorAgentRegistry::flushPendingProtocolNotifications()
......
......@@ -43,10 +43,10 @@ namespace ConsoleAgentState {
static const char consoleMessagesEnabled[] = "consoleMessagesEnabled";
}
InspectorConsoleAgent::InspectorConsoleAgent(V8RuntimeAgent* runtimeAgent)
InspectorConsoleAgent::InspectorConsoleAgent(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent)
: InspectorBaseAgent<InspectorConsoleAgent, protocol::Frontend::Console>("Console")
, m_runtimeAgent(runtimeAgent)
, m_debuggerAgent(nullptr)
, m_debuggerAgent(debuggerAgent)
, m_enabled(false)
{
}
......
......@@ -40,11 +40,9 @@ class V8RuntimeAgent;
class CORE_EXPORT InspectorConsoleAgent : public InspectorBaseAgent<InspectorConsoleAgent, protocol::Frontend::Console>, public protocol::Backend::Console {
WTF_MAKE_NONCOPYABLE(InspectorConsoleAgent);
public:
explicit InspectorConsoleAgent(V8RuntimeAgent*);
InspectorConsoleAgent(V8RuntimeAgent*, V8DebuggerAgent*);
~InspectorConsoleAgent() override;
void setDebuggerAgent(V8DebuggerAgent* debuggerAgent) { m_debuggerAgent = debuggerAgent; }
void enable(ErrorString*) override;
bool enabled() { return m_enabled; }
......
......@@ -45,8 +45,8 @@ namespace blink {
int PageConsoleAgent::s_enabledAgentCount = 0;
PageConsoleAgent::PageConsoleAgent(V8RuntimeAgent* runtimeAgent, InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames)
: InspectorConsoleAgent(runtimeAgent)
PageConsoleAgent::PageConsoleAgent(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames)
: InspectorConsoleAgent(runtimeAgent, debuggerAgent)
, m_inspectorDOMAgent(domAgent)
, m_inspectedFrames(inspectedFrames)
{
......
......@@ -47,9 +47,9 @@ class WorkerGlobalScopeProxy;
class CORE_EXPORT PageConsoleAgent final : public InspectorConsoleAgent {
WTF_MAKE_NONCOPYABLE(PageConsoleAgent);
public:
static PassOwnPtrWillBeRawPtr<PageConsoleAgent> create(V8RuntimeAgent* runtimeAgent, InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames)
static PassOwnPtrWillBeRawPtr<PageConsoleAgent> create(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, InspectorDOMAgent* domAgent, InspectedFrames* inspectedFrames)
{
return adoptPtrWillBeNoop(new PageConsoleAgent(runtimeAgent, domAgent, inspectedFrames));
return adoptPtrWillBeNoop(new PageConsoleAgent(runtimeAgent, debuggerAgent, domAgent, inspectedFrames));
}
~PageConsoleAgent() override;
DECLARE_VIRTUAL_TRACE();
......@@ -67,7 +67,7 @@ protected:
void disableStackCapturingIfNeeded() override;
private:
PageConsoleAgent(V8RuntimeAgent*, InspectorDOMAgent*, InspectedFrames*);
PageConsoleAgent(V8RuntimeAgent*, V8DebuggerAgent*, InspectorDOMAgent*, InspectedFrames*);
void clearMessages(ErrorString*) override;
RawPtrWillBeMember<InspectorDOMAgent> m_inspectorDOMAgent;
......
......@@ -61,11 +61,6 @@ DEFINE_TRACE(PageRuntimeAgent)
InspectorRuntimeAgent::trace(visitor);
}
void PageRuntimeAgent::init()
{
InspectorRuntimeAgent::init();
}
void PageRuntimeAgent::enable(ErrorString* errorString)
{
if (m_enabled)
......
......@@ -48,7 +48,6 @@ public:
}
~PageRuntimeAgent() override;
DECLARE_VIRTUAL_TRACE();
void init() override;
void enable(ErrorString*) override;
void disable(ErrorString*) override;
......
......@@ -38,8 +38,8 @@
namespace blink {
WorkerConsoleAgent::WorkerConsoleAgent(V8RuntimeAgent* runtimeAgent, WorkerGlobalScope* workerGlobalScope)
: InspectorConsoleAgent(runtimeAgent)
WorkerConsoleAgent::WorkerConsoleAgent(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, WorkerGlobalScope* workerGlobalScope)
: InspectorConsoleAgent(runtimeAgent, debuggerAgent)
, m_workerGlobalScope(workerGlobalScope)
{
}
......
......@@ -41,9 +41,9 @@ class WorkerGlobalScope;
class WorkerConsoleAgent final : public InspectorConsoleAgent {
WTF_MAKE_NONCOPYABLE(WorkerConsoleAgent);
public:
static PassOwnPtrWillBeRawPtr<WorkerConsoleAgent> create(V8RuntimeAgent* runtimeAgent, WorkerGlobalScope* workerGlobalScope)
static PassOwnPtrWillBeRawPtr<WorkerConsoleAgent> create(V8RuntimeAgent* runtimeAgent, V8DebuggerAgent* debuggerAgent, WorkerGlobalScope* workerGlobalScope)
{
return adoptPtrWillBeNoop(new WorkerConsoleAgent(runtimeAgent, workerGlobalScope));
return adoptPtrWillBeNoop(new WorkerConsoleAgent(runtimeAgent, debuggerAgent, workerGlobalScope));
}
~WorkerConsoleAgent() override;
DECLARE_VIRTUAL_TRACE();
......@@ -58,7 +58,7 @@ protected:
void disableStackCapturingIfNeeded() override;
private:
WorkerConsoleAgent(V8RuntimeAgent*, WorkerGlobalScope*);
WorkerConsoleAgent(V8RuntimeAgent*, V8DebuggerAgent*, WorkerGlobalScope*);
RawPtrWillBeMember<WorkerGlobalScope> m_workerGlobalScope;
};
......
......@@ -72,9 +72,8 @@ WorkerInspectorController::WorkerInspectorController(WorkerGlobalScope* workerGl
m_agents.append(InspectorProfilerAgent::create(debugger, 0));
m_agents.append(InspectorHeapProfilerAgent::create(workerGlobalScope->thread()->isolate(), m_workerRuntimeAgent->v8Agent()));
OwnPtrWillBeRawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAgent::create(m_workerRuntimeAgent->v8Agent(), workerGlobalScope);
OwnPtrWillBeRawPtr<WorkerConsoleAgent> workerConsoleAgent = WorkerConsoleAgent::create(m_workerRuntimeAgent->v8Agent(), m_workerDebuggerAgent->v8Agent(), workerGlobalScope);
WorkerConsoleAgent* workerConsoleAgentPtr = workerConsoleAgent.get();
workerConsoleAgentPtr->setDebuggerAgent(m_workerDebuggerAgent->v8Agent());
m_agents.append(workerConsoleAgent.release());
m_workerRuntimeAgent->v8Agent()->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAllMessages, workerConsoleAgentPtr));
......
......@@ -48,13 +48,10 @@ namespace blink {
class GraphicsLayer;
class InspectedFrames;
class InspectorInspectorAgent;
class InspectorOverlay;
class InspectorResourceContentLoader;
class LocalFrame;
class Page;
class PageConsoleAgent;
class PageRuntimeAgent;
class PlatformGestureEvent;
class PlatformKeyboardEvent;
class PlatformMouseEvent;
......@@ -91,7 +88,6 @@ public:
InspectorOverlay* overlay() const { return m_overlay.get(); }
void flushPendingProtocolNotifications();
void dispatchMessageFromFrontend(int sessionId, const String& message);
void registerAgent(PassOwnPtrWillBeRawPtr<InspectorAgent>);
static void webViewImplClosed(WebViewImpl*);
static void webFrameWidgetImplClosed(WebFrameWidgetImpl*);
......@@ -156,14 +152,11 @@ private:
OwnPtrWillBeMember<InspectorOverlay> m_overlay;
OwnPtrWillBeMember<InspectedFrames> m_inspectedFrames;
RawPtrWillBeMember<InspectorInspectorAgent> m_inspectorAgent;
RawPtrWillBeMember<InspectorDOMAgent> m_domAgent;
RawPtrWillBeMember<InspectorPageAgent> m_pageAgent;
RawPtrWillBeMember<InspectorResourceAgent> m_resourceAgent;
RawPtrWillBeMember<InspectorLayerTreeAgent> m_layerTreeAgent;
RawPtrWillBeMember<InspectorTracingAgent> m_tracingAgent;
RawPtrWillBeMember<PageRuntimeAgent> m_pageRuntimeAgent;
RawPtrWillBeMember<PageConsoleAgent> m_pageConsoleAgent;
OwnPtr<protocol::Dispatcher> m_inspectorBackendDispatcher;
OwnPtr<protocol::Frontend> m_inspectorFrontend;
......@@ -175,6 +168,7 @@ private:
int m_sessionId;
String m_stateCookie;
bool m_stateMuted;
int m_layerTreeId;
};
} // namespace blink
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment