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

Unified Diff: third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp

Issue 1746393003: [DevTools] Postpone more agents instantiation until attached. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « third_party/WebKit/Source/web/WebDevToolsAgentImpl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
diff --git a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
index b4091c46b4b9de4abc8eb80730d2d844f1824bbe..e352d207960aaa6261f83f8c71f9a4cdc2aa1ae4 100644
--- a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
+++ b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
@@ -343,6 +343,8 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl(
, m_tracingAgent(nullptr)
, m_pageRuntimeAgent(nullptr)
, m_pageConsoleAgent(nullptr)
+ , m_layerTreeId(0)
+ , m_inspectedFrameDidCommitLoad(false)
, m_agents(m_instrumentingAgents.get())
, m_deferredAgentsInitialized(false)
, m_sessionId(0)
@@ -356,36 +358,14 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl(
IdentifiersFactory::setProcessId(processId);
ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client);
- MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance();
OwnPtrWillBeRawPtr<InspectorInspectorAgent> inspectorAgentPtr(InspectorInspectorAgent::create());
m_inspectorAgent = inspectorAgentPtr.get();
m_agents.append(inspectorAgentPtr.release());
- OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgentPtr(PageRuntimeAgent::create(this, mainThreadDebugger->debugger(), m_inspectedFrames.get()));
- m_pageRuntimeAgent = pageRuntimeAgentPtr.get();
- m_agents.append(pageRuntimeAgentPtr.release());
-
- v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
- OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create(isolate, m_inspectedFrames.get(), m_pageRuntimeAgent->v8Agent(), m_overlay.get()));
- m_domAgent = domAgentPtr.get();
- m_agents.append(domAgentPtr.release());
-
- OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgentPtr(InspectorLayerTreeAgent::create(m_inspectedFrames.get()));
- m_layerTreeAgent = layerTreeAgentPtr.get();
- m_agents.append(layerTreeAgentPtr.release());
-
- OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgentPtr = PageConsoleAgent::create(m_pageRuntimeAgent->v8Agent(), m_domAgent, m_inspectedFrames.get());
- m_pageConsoleAgent = pageConsoleAgentPtr.get();
-
- OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgentPtr = InspectorWorkerAgent::create(pageConsoleAgentPtr.get());
-
- OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgentPtr = InspectorTracingAgent::create(this, workerAgentPtr.get(), m_inspectedFrames.get());
- m_tracingAgent = tracingAgentPtr.get();
- m_agents.append(tracingAgentPtr.release());
-
+ OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgentPtr = InspectorWorkerAgent::create();
+ m_workerAgent = workerAgentPtr.get();
m_agents.append(workerAgentPtr.release());
- m_agents.append(pageConsoleAgentPtr.release());
}
WebDevToolsAgentImpl::~WebDevToolsAgentImpl()
@@ -430,6 +410,7 @@ DEFINE_TRACE(WebDevToolsAgentImpl)
visitor->trace(m_resourceAgent);
visitor->trace(m_layerTreeAgent);
visitor->trace(m_tracingAgent);
+ visitor->trace(m_workerAgent);
visitor->trace(m_pageRuntimeAgent);
visitor->trace(m_pageConsoleAgent);
visitor->trace(m_agents);
@@ -452,10 +433,21 @@ void WebDevToolsAgentImpl::initializeDeferredAgents()
return;
m_deferredAgentsInitialized = true;
+ v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
+ MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance();
+
+ OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgentPtr(PageRuntimeAgent::create(this, mainThreadDebugger->debugger(), m_inspectedFrames.get()));
+ m_pageRuntimeAgent = pageRuntimeAgentPtr.get();
+ m_agents.append(pageRuntimeAgentPtr.release());
+
OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgentPtr(InspectorResourceAgent::create(m_inspectedFrames.get()));
m_resourceAgent = resourceAgentPtr.get();
m_agents.append(resourceAgentPtr.release());
+ OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgentPtr(InspectorDOMAgent::create(isolate, m_inspectedFrames.get(), m_pageRuntimeAgent->v8Agent(), m_overlay.get()));
+ m_domAgent = domAgentPtr.get();
+ m_agents.append(domAgentPtr.release());
+
OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgentPtr(InspectorCSSAgent::create(m_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.get()));
InspectorCSSAgent* cssAgent = cssAgentPtr.get();
m_agents.append(cssAgentPtr.release());
@@ -471,19 +463,29 @@ void WebDevToolsAgentImpl::initializeDeferredAgents()
InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get();
m_agents.append(debuggerAgentPtr.release());
- v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
-
m_agents.append(InspectorDOMDebuggerAgent::create(isolate, m_domAgent, m_pageRuntimeAgent->v8Agent(), debuggerAgent->v8Agent()));
m_agents.append(InspectorInputAgent::create(m_inspectedFrames.get()));
m_agents.append(InspectorProfilerAgent::create(MainThreadDebugger::instance()->debugger(), m_overlay.get()));
m_agents.append(InspectorHeapProfilerAgent::create(isolate, m_pageRuntimeAgent->v8Agent()));
+ OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgentPtr = InspectorTracingAgent::create(this, m_workerAgent.get(), m_inspectedFrames.get());
+ m_tracingAgent = tracingAgentPtr.get();
+ m_tracingAgent->setLayerTreeId(m_layerTreeId);
+ m_agents.append(tracingAgentPtr.release());
+
+ OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgentPtr(InspectorLayerTreeAgent::create(m_inspectedFrames.get()));
+ m_layerTreeAgent = layerTreeAgentPtr.get();
+ m_agents.append(layerTreeAgentPtr.release());
+
OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::create(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgent));
m_pageAgent = pageAgentPtr.get();
m_agents.append(pageAgentPtr.release());
- m_pageConsoleAgent->setDebuggerAgent(debuggerAgent->v8Agent());
+ OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgentPtr = PageConsoleAgent::create(m_pageRuntimeAgent->v8Agent(), debuggerAgent->v8Agent(), m_domAgent, m_inspectedFrames.get());
+ m_pageConsoleAgent = pageConsoleAgentPtr.get();
+ m_agents.append(pageConsoleAgentPtr.release());
+ m_workerAgent->setPageConsoleAgent(m_pageConsoleAgent);
m_pageRuntimeAgent->v8Agent()->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAllMessages, m_pageConsoleAgent.get()));
m_pageRuntimeAgent->v8Agent()->setInspectObjectCallback(bind<PassOwnPtr<protocol::Runtime::RemoteObject>, PassRefPtr<protocol::DictionaryValue>>(&InspectorInspectorAgent::inspect, m_inspectorAgent.get()));
@@ -564,6 +566,8 @@ void WebDevToolsAgentImpl::continueProgram()
void WebDevToolsAgentImpl::didCommitLoadForLocalFrame(LocalFrame* frame)
{
+ if (frame == m_inspectedFrames->root())
+ m_inspectedFrameDidCommitLoad = true;
m_resourceContentLoader->didCommitLoadForLocalFrame(frame);
m_agents.didCommitLoadForLocalFrame(frame);
}
@@ -575,17 +579,21 @@ bool WebDevToolsAgentImpl::screencastEnabled()
void WebDevToolsAgentImpl::willAddPageOverlay(const GraphicsLayer* layer)
{
- m_layerTreeAgent->willAddPageOverlay(layer);
+ if (m_layerTreeAgent)
+ m_layerTreeAgent->willAddPageOverlay(layer);
}
void WebDevToolsAgentImpl::didRemovePageOverlay(const GraphicsLayer* layer)
{
- m_layerTreeAgent->didRemovePageOverlay(layer);
+ if (m_layerTreeAgent)
+ m_layerTreeAgent->didRemovePageOverlay(layer);
}
void WebDevToolsAgentImpl::layerTreeViewChanged(WebLayerTreeView* layerTreeView)
{
- m_tracingAgent->setLayerTreeId(layerTreeView ? layerTreeView->layerTreeId() : 0);
+ m_layerTreeId = layerTreeView ? layerTreeView->layerTreeId() : 0;
+ if (m_tracingAgent)
+ m_tracingAgent->setLayerTreeId(m_layerTreeId);
}
void WebDevToolsAgentImpl::enableTracing(const String& categoryFilter)
@@ -680,6 +688,11 @@ void WebDevToolsAgentImpl::resumeStartup()
m_client->resumeStartup();
}
+bool WebDevToolsAgentImpl::didCommitLoadFired()
+{
+ return m_inspectedFrameDidCommitLoad;
+}
+
void WebDevToolsAgentImpl::pageLayoutInvalidated(bool resized)
{
if (m_overlay)
« no previous file with comments | « third_party/WebKit/Source/web/WebDevToolsAgentImpl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698