// static PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* frame, WebDevToolsAgentClient* client) { WebViewImpl* view = frame->viewImpl(); bool isMainFrame = view && view->mainFrameImpl() == frame; if (!isMainFrame) { WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, frame->inspectorOverlay()); if (frame->frameWidget()) agent->layerTreeViewChanged(frame->frameWidget()->layerTreeView()); return adoptPtrWillBeNoop(agent); } WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, view->inspectorOverlay()); agent->registerAgent(InspectorRenderingAgent::create(view)); agent->registerAgent(InspectorEmulationAgent::create(view)); // 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(InspectorFileSystemAgent::create(view->page())); agent->registerAgent(InspectorIndexedDBAgent::create(view->page())); agent->registerAgent(InspectorAccessibilityAgent::create(view->page())); agent->registerAgent(InspectorDOMStorageAgent::create(view->page())); agent->registerAgent(InspectorCacheStorageAgent::create()); agent->layerTreeViewChanged(view->layerTreeView()); return adoptPtrWillBeNoop(agent); }
// static PassOwnPtrWillBeRawPtr<WebDevToolsAgentImpl> WebDevToolsAgentImpl::create(WebLocalFrameImpl* frame, WebDevToolsAgentClient* client) { WebViewImpl* view = frame->viewImpl(); // TODO(dgozman): sometimes view->mainFrameImpl() does return null, even though |frame| is meant to be main frame. // See http://crbug.com/526162. bool isMainFrame = view && !frame->parent(); if (!isMainFrame) { WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, nullptr); if (frame->frameWidget()) agent->layerTreeViewChanged(toWebFrameWidgetImpl(frame->frameWidget())->layerTreeView()); return adoptPtrWillBeNoop(agent); } WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, InspectorOverlay::create(view)); // 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->registerAgent(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->layerTreeViewChanged(view->layerTreeView()); return adoptPtrWillBeNoop(agent); }