| 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 5eae3a1c4f4025ee2f9f9d7e2c5003b31f5941ae..893809f0db8e49bd834b28dff37ae9ef92bc586a 100644
|
| --- a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
|
| @@ -282,14 +282,14 @@ PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLoc
|
| // TODO(dgozman): we should actually pass the view instead of frame, but during
|
| // remote->local transition we cannot access mainFrameImpl() yet, so we have to store the
|
| // frame which will become the main frame later.
|
| - agent->registerAgent(InspectorRenderingAgent::create(frame, agent->m_overlay.get()));
|
| - agent->registerAgent(InspectorEmulationAgent::create(frame, agent));
|
| + agent->m_agents.append(InspectorRenderingAgent::create(frame, agent->m_overlay.get()));
|
| + agent->m_agents.append(InspectorEmulationAgent::create(frame, agent));
|
| // TODO(dgozman): migrate each of the following agents to frame once module is ready.
|
| - agent->registerAgent(InspectorDatabaseAgent::create(view->page()));
|
| - agent->registerAgent(DeviceOrientationInspectorAgent::create(view->page()));
|
| - agent->registerAgent(InspectorAccessibilityAgent::create(view->page()));
|
| - agent->registerAgent(InspectorDOMStorageAgent::create(view->page()));
|
| - agent->registerAgent(InspectorCacheStorageAgent::create());
|
| + agent->m_agents.append(InspectorDatabaseAgent::create(view->page()));
|
| + agent->m_agents.append(DeviceOrientationInspectorAgent::create(view->page()));
|
| + agent->m_agents.append(InspectorAccessibilityAgent::create(view->page()));
|
| + agent->m_agents.append(InspectorDOMStorageAgent::create(view->page()));
|
| + agent->m_agents.append(InspectorCacheStorageAgent::create());
|
| agent->layerTreeViewChanged(view->layerTreeView());
|
| return adoptPtrWillBeNoop(agent);
|
| }
|
| @@ -308,53 +308,19 @@ WebDevToolsAgentImpl::WebDevToolsAgentImpl(
|
| , m_resourceContentLoader(InspectorResourceContentLoader::create(m_webLocalFrameImpl->frame()))
|
| , m_overlay(overlay)
|
| , m_inspectedFrames(InspectedFrames::create(m_webLocalFrameImpl->frame()))
|
| - , m_inspectorAgent(nullptr)
|
| , m_domAgent(nullptr)
|
| , m_pageAgent(nullptr)
|
| , m_resourceAgent(nullptr)
|
| , m_layerTreeAgent(nullptr)
|
| , m_tracingAgent(nullptr)
|
| - , m_pageRuntimeAgent(nullptr)
|
| - , m_pageConsoleAgent(nullptr)
|
| , m_agents(m_instrumentingAgents.get())
|
| , m_deferredAgentsInitialized(false)
|
| , m_sessionId(0)
|
| , m_stateMuted(false)
|
| + , m_layerTreeId(0)
|
| {
|
| ASSERT(isMainThread());
|
| ASSERT(m_webLocalFrameImpl->frame());
|
| -
|
| - 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(), mainThreadDebugger->contextGroupId(m_inspectedFrames->root())));
|
| - 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(m_inspectedFrames.get(), pageConsoleAgentPtr.get());
|
| -
|
| - OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgentPtr = InspectorTracingAgent::create(this, workerAgentPtr.get(), m_inspectedFrames.get());
|
| - m_tracingAgent = tracingAgentPtr.get();
|
| - m_agents.append(tracingAgentPtr.release());
|
| -
|
| - m_agents.append(workerAgentPtr.release());
|
| - m_agents.append(pageConsoleAgentPtr.release());
|
| }
|
|
|
| WebDevToolsAgentImpl::~WebDevToolsAgentImpl()
|
| @@ -393,14 +359,11 @@ DEFINE_TRACE(WebDevToolsAgentImpl)
|
| visitor->trace(m_resourceContentLoader);
|
| visitor->trace(m_overlay);
|
| visitor->trace(m_inspectedFrames);
|
| - visitor->trace(m_inspectorAgent);
|
| visitor->trace(m_domAgent);
|
| visitor->trace(m_pageAgent);
|
| visitor->trace(m_resourceAgent);
|
| visitor->trace(m_layerTreeAgent);
|
| visitor->trace(m_tracingAgent);
|
| - visitor->trace(m_pageRuntimeAgent);
|
| - visitor->trace(m_pageConsoleAgent);
|
| visitor->trace(m_agents);
|
| }
|
|
|
| @@ -421,48 +384,75 @@ void WebDevToolsAgentImpl::initializeDeferredAgents()
|
| return;
|
| m_deferredAgentsInitialized = true;
|
|
|
| - OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgentPtr(InspectorResourceAgent::create(m_inspectedFrames.get()));
|
| - m_resourceAgent = resourceAgentPtr.get();
|
| - m_agents.append(resourceAgentPtr.release());
|
| + ClientMessageLoopAdapter::ensureMainThreadDebuggerCreated(m_client);
|
| + MainThreadDebugger* mainThreadDebugger = MainThreadDebugger::instance();
|
| + v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
|
| +
|
| + OwnPtrWillBeRawPtr<InspectorInspectorAgent> inspectorAgent = InspectorInspectorAgent::create();
|
| + InspectorInspectorAgent* inspectorAgentPtr = inspectorAgent.get();
|
| + m_agents.append(inspectorAgent.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());
|
| + OwnPtrWillBeRawPtr<PageRuntimeAgent> pageRuntimeAgent = PageRuntimeAgent::create(this, mainThreadDebugger->debugger(), m_inspectedFrames.get(), mainThreadDebugger->contextGroupId(m_inspectedFrames->root()));
|
| + V8RuntimeAgent* runtimeAgent = pageRuntimeAgent->v8Agent();
|
| + m_agents.append(pageRuntimeAgent.release());
|
|
|
| - m_agents.append(InspectorAnimationAgent::create(m_inspectedFrames.get(), m_domAgent, cssAgent, m_pageRuntimeAgent->v8Agent()));
|
| + OwnPtrWillBeRawPtr<InspectorDOMAgent> domAgent = InspectorDOMAgent::create(isolate, m_inspectedFrames.get(), runtimeAgent, m_overlay.get());
|
| + m_domAgent = domAgent.get();
|
| + m_agents.append(domAgent.release());
|
| +
|
| + OwnPtrWillBeRawPtr<InspectorLayerTreeAgent> layerTreeAgent = InspectorLayerTreeAgent::create(m_inspectedFrames.get());
|
| + m_layerTreeAgent = layerTreeAgent.get();
|
| + m_agents.append(layerTreeAgent.release());
|
| +
|
| + OwnPtrWillBeRawPtr<InspectorResourceAgent> resourceAgent = InspectorResourceAgent::create(m_inspectedFrames.get());
|
| + m_resourceAgent = resourceAgent.get();
|
| + m_agents.append(resourceAgent.release());
|
| +
|
| + OwnPtrWillBeRawPtr<InspectorCSSAgent> cssAgent = InspectorCSSAgent::create(m_domAgent, m_inspectedFrames.get(), m_resourceAgent, m_resourceContentLoader.get());
|
| + InspectorCSSAgent* cssAgentPtr = cssAgent.get();
|
| + m_agents.append(cssAgent.release());
|
| +
|
| + m_agents.append(InspectorAnimationAgent::create(m_inspectedFrames.get(), m_domAgent, cssAgentPtr, runtimeAgent));
|
|
|
| m_agents.append(InspectorMemoryAgent::create());
|
|
|
| m_agents.append(InspectorApplicationCacheAgent::create(m_inspectedFrames.get()));
|
| +
|
| m_agents.append(InspectorIndexedDBAgent::create(m_inspectedFrames.get()));
|
|
|
| - OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgentPtr(PageDebuggerAgent::create(m_inspectedFrames.get(), m_pageRuntimeAgent->v8Agent()));
|
| - InspectorDebuggerAgent* debuggerAgent = debuggerAgentPtr.get();
|
| - m_agents.append(debuggerAgentPtr.release());
|
| + OwnPtrWillBeRawPtr<InspectorDebuggerAgent> debuggerAgent = PageDebuggerAgent::create(m_inspectedFrames.get(), runtimeAgent);
|
| + InspectorDebuggerAgent* debuggerAgentPtr = debuggerAgent.get();
|
| + m_agents.append(debuggerAgent.release());
|
|
|
| - v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
|
| + OwnPtrWillBeRawPtr<PageConsoleAgent> pageConsoleAgent = PageConsoleAgent::create(runtimeAgent, debuggerAgentPtr->v8Agent(), m_domAgent, m_inspectedFrames.get());
|
| + PageConsoleAgent* pageConsoleAgentPtr = pageConsoleAgent.get();
|
| + m_agents.append(pageConsoleAgent.release());
|
| +
|
| + OwnPtrWillBeRawPtr<InspectorWorkerAgent> workerAgent = InspectorWorkerAgent::create(m_inspectedFrames.get(), pageConsoleAgentPtr);
|
| + InspectorWorkerAgent* workerAgentPtr = workerAgent.get();
|
| + m_agents.append(workerAgent.release());
|
| +
|
| + OwnPtrWillBeRawPtr<InspectorTracingAgent> tracingAgent = InspectorTracingAgent::create(this, workerAgentPtr, m_inspectedFrames.get());
|
| + m_tracingAgent = tracingAgent.get();
|
| + m_agents.append(tracingAgent.release());
|
| +
|
| + m_agents.append(InspectorDOMDebuggerAgent::create(isolate, m_domAgent, runtimeAgent, debuggerAgentPtr->v8Agent()));
|
|
|
| - 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<InspectorPageAgent> pageAgentPtr(InspectorPageAgent::create(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgent));
|
| - m_pageAgent = pageAgentPtr.get();
|
| - m_agents.append(pageAgentPtr.release());
|
| + m_agents.append(InspectorProfilerAgent::create(MainThreadDebugger::instance()->debugger(), m_overlay.get()));
|
|
|
| - m_pageConsoleAgent->setDebuggerAgent(debuggerAgent->v8Agent());
|
| + m_agents.append(InspectorHeapProfilerAgent::create(isolate, runtimeAgent));
|
|
|
| - m_pageRuntimeAgent->v8Agent()->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAllMessages, m_pageConsoleAgent.get()));
|
| - m_pageRuntimeAgent->v8Agent()->setInspectObjectCallback(bind<PassOwnPtr<protocol::Runtime::RemoteObject>, PassOwnPtr<protocol::DictionaryValue>>(&InspectorInspectorAgent::inspect, m_inspectorAgent.get()));
|
| + OwnPtrWillBeRawPtr<InspectorPageAgent> pageAgent = InspectorPageAgent::create(m_inspectedFrames.get(), this, m_resourceContentLoader.get(), debuggerAgentPtr);
|
| + m_pageAgent = pageAgent.get();
|
| + m_agents.append(pageAgent.release());
|
|
|
| + runtimeAgent->setClearConsoleCallback(bind<>(&InspectorConsoleAgent::clearAllMessages, pageConsoleAgentPtr));
|
| + runtimeAgent->setInspectObjectCallback(bind<PassOwnPtr<protocol::Runtime::RemoteObject>, PassOwnPtr<protocol::DictionaryValue>>(&InspectorInspectorAgent::inspect, inspectorAgentPtr));
|
| + m_tracingAgent->setLayerTreeId(m_layerTreeId);
|
| if (m_overlay)
|
| - m_overlay->init(cssAgent, debuggerAgent, m_domAgent.get());
|
| -}
|
| -
|
| -void WebDevToolsAgentImpl::registerAgent(PassOwnPtrWillBeRawPtr<InspectorAgent> agent)
|
| -{
|
| - m_agents.append(agent);
|
| + m_overlay->init(cssAgentPtr, debuggerAgentPtr, m_domAgent);
|
| }
|
|
|
| void WebDevToolsAgentImpl::attach(const WebString& hostId, int sessionId)
|
| @@ -544,17 +534,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)
|
| @@ -591,6 +585,8 @@ void WebDevToolsAgentImpl::dispatchMessageFromFrontend(int sessionId, const Stri
|
|
|
| void WebDevToolsAgentImpl::inspectElementAt(const WebPoint& pointInRootFrame)
|
| {
|
| + if (!m_domAgent)
|
| + return;
|
| HitTestRequest::HitTestRequestType hitType = HitTestRequest::Move | HitTestRequest::ReadOnly | HitTestRequest::AllowChildFrameContent;
|
| HitTestRequest request(hitType);
|
| WebMouseEvent dummyEvent;
|
|
|