| 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 b2577a4286afab7cfab5beb6f83f126df13c4adf..3609203d4b69af7d0ef0375603657efcfdb5d76f 100644
|
| --- a/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
|
| +++ b/third_party/WebKit/Source/web/WebDevToolsAgentImpl.cpp
|
| @@ -84,7 +84,8 @@
|
| #include "public/web/WebSettings.h"
|
| #include "web/DevToolsEmulator.h"
|
| #include "web/InspectorEmulationAgent.h"
|
| -#include "web/InspectorOverlayAgent.h"
|
| +#include "web/InspectorOverlay.h"
|
| +#include "web/InspectorRenderingAgent.h"
|
| #include "web/WebFrameWidgetImpl.h"
|
| #include "web/WebInputEventConversion.h"
|
| #include "web/WebLocalFrameImpl.h"
|
| @@ -232,9 +233,11 @@
|
| WebDevToolsAgentImpl* WebDevToolsAgentImpl::Create(
|
| WebLocalFrameImpl* frame,
|
| WebDevToolsAgentClient* client) {
|
| + InspectorOverlay* overlay = new InspectorOverlay(frame);
|
| +
|
| if (!IsMainFrame(frame)) {
|
| WebDevToolsAgentImpl* agent =
|
| - new WebDevToolsAgentImpl(frame, client, false);
|
| + new WebDevToolsAgentImpl(frame, client, overlay, false);
|
| if (frame->FrameWidget())
|
| agent->LayerTreeViewChanged(
|
| ToWebFrameWidgetImpl(frame->FrameWidget())->LayerTreeView());
|
| @@ -242,7 +245,8 @@
|
| }
|
|
|
| WebViewImpl* view = frame->ViewImpl();
|
| - WebDevToolsAgentImpl* agent = new WebDevToolsAgentImpl(frame, client, true);
|
| + WebDevToolsAgentImpl* agent =
|
| + new WebDevToolsAgentImpl(frame, client, overlay, true);
|
| agent->LayerTreeViewChanged(view->LayerTreeView());
|
| return agent;
|
| }
|
| @@ -250,6 +254,7 @@
|
| WebDevToolsAgentImpl::WebDevToolsAgentImpl(
|
| WebLocalFrameImpl* web_local_frame_impl,
|
| WebDevToolsAgentClient* client,
|
| + InspectorOverlay* overlay,
|
| bool include_view_agents)
|
| : client_(client),
|
| web_local_frame_impl_(web_local_frame_impl),
|
| @@ -257,15 +262,16 @@
|
| web_local_frame_impl_->GetFrame()->InstrumentingAgents()),
|
| resource_content_loader_(InspectorResourceContentLoader::Create(
|
| web_local_frame_impl_->GetFrame())),
|
| + overlay_(overlay),
|
| inspected_frames_(
|
| InspectedFrames::Create(web_local_frame_impl_->GetFrame())),
|
| resource_container_(new InspectorResourceContainer(inspected_frames_)),
|
| + dom_agent_(nullptr),
|
| page_agent_(nullptr),
|
| network_agent_(nullptr),
|
| layer_tree_agent_(nullptr),
|
| tracing_agent_(nullptr),
|
| trace_events_agent_(new InspectorTraceEvents()),
|
| - overlay_agent_(nullptr),
|
| include_view_agents_(include_view_agents),
|
| layer_tree_id_(0) {
|
| DCHECK(IsMainThread());
|
| @@ -281,14 +287,15 @@
|
| visitor->Trace(web_local_frame_impl_);
|
| visitor->Trace(instrumenting_agents_);
|
| visitor->Trace(resource_content_loader_);
|
| + visitor->Trace(overlay_);
|
| visitor->Trace(inspected_frames_);
|
| visitor->Trace(resource_container_);
|
| + visitor->Trace(dom_agent_);
|
| visitor->Trace(page_agent_);
|
| visitor->Trace(network_agent_);
|
| visitor->Trace(layer_tree_agent_);
|
| visitor->Trace(tracing_agent_);
|
| visitor->Trace(trace_events_agent_);
|
| - visitor->Trace(overlay_agent_);
|
| visitor->Trace(session_);
|
| }
|
|
|
| @@ -316,7 +323,8 @@
|
| main_thread_debugger->ContextGroupId(inspected_frames_->Root()), state);
|
|
|
| InspectorDOMAgent* dom_agent = new InspectorDOMAgent(
|
| - isolate, inspected_frames_.Get(), session_->V8Session());
|
| + isolate, inspected_frames_.Get(), session_->V8Session(), overlay_.Get());
|
| + dom_agent_ = dom_agent;
|
| session_->Append(dom_agent);
|
|
|
| InspectorLayerTreeAgent* layer_tree_agent =
|
| @@ -330,7 +338,7 @@
|
| session_->Append(network_agent);
|
|
|
| InspectorCSSAgent* css_agent = InspectorCSSAgent::Create(
|
| - dom_agent, inspected_frames_.Get(), network_agent_,
|
| + dom_agent_, inspected_frames_.Get(), network_agent_,
|
| resource_content_loader_.Get(), resource_container_.Get());
|
| session_->Append(css_agent);
|
|
|
| @@ -354,8 +362,8 @@
|
| tracing_agent_ = tracing_agent;
|
| session_->Append(tracing_agent);
|
|
|
| - session_->Append(
|
| - new InspectorDOMDebuggerAgent(isolate, dom_agent, session_->V8Session()));
|
| + session_->Append(new InspectorDOMDebuggerAgent(isolate, dom_agent_,
|
| + session_->V8Session()));
|
|
|
| session_->Append(InspectorInputAgent::Create(inspected_frames_.Get()));
|
|
|
| @@ -372,12 +380,6 @@
|
| session_->Append(
|
| new DeviceOrientationInspectorAgent(inspected_frames_.Get()));
|
|
|
| - InspectorOverlayAgent* overlay_agent =
|
| - new InspectorOverlayAgent(web_local_frame_impl_, inspected_frames_.Get(),
|
| - session_->V8Session(), dom_agent);
|
| - overlay_agent_ = overlay_agent;
|
| - session_->Append(overlay_agent);
|
| -
|
| tracing_agent_->SetLayerTreeId(layer_tree_id_);
|
| network_agent_->SetHostId(host_id);
|
|
|
| @@ -385,26 +387,34 @@
|
| // 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.
|
| + session_->Append(
|
| + InspectorRenderingAgent::Create(web_local_frame_impl_, overlay_.Get()));
|
| session_->Append(
|
| InspectorEmulationAgent::Create(web_local_frame_impl_, this));
|
| // TODO(dgozman): migrate each of the following agents to frame once module
|
| // is ready.
|
| Page* page = web_local_frame_impl_->ViewImpl()->GetPage();
|
| session_->Append(InspectorDatabaseAgent::Create(page));
|
| - session_->Append(new InspectorAccessibilityAgent(page, dom_agent));
|
| + session_->Append(new InspectorAccessibilityAgent(page, dom_agent_));
|
| session_->Append(InspectorDOMStorageAgent::Create(page));
|
| session_->Append(InspectorCacheStorageAgent::Create());
|
| }
|
|
|
| + if (overlay_)
|
| + overlay_->Init(session_->V8Session(), dom_agent_);
|
| +
|
| Platform::Current()->CurrentThread()->AddTaskObserver(this);
|
| }
|
|
|
| void WebDevToolsAgentImpl::DestroySession() {
|
| - overlay_agent_.Clear();
|
| + if (overlay_)
|
| + overlay_->Clear();
|
| +
|
| tracing_agent_.Clear();
|
| layer_tree_agent_.Clear();
|
| network_agent_.Clear();
|
| page_agent_.Clear();
|
| + dom_agent_.Clear();
|
|
|
| session_->Dispose();
|
| session_.Clear();
|
| @@ -487,13 +497,13 @@
|
| }
|
|
|
| void WebDevToolsAgentImpl::ShowReloadingBlanket() {
|
| - if (overlay_agent_)
|
| - overlay_agent_->ShowReloadingBlanket();
|
| + if (overlay_)
|
| + overlay_->ShowReloadingBlanket();
|
| }
|
|
|
| void WebDevToolsAgentImpl::HideReloadingBlanket() {
|
| - if (overlay_agent_)
|
| - overlay_agent_->HideReloadingBlanket();
|
| + if (overlay_)
|
| + overlay_->HideReloadingBlanket();
|
| }
|
|
|
| void WebDevToolsAgentImpl::SetCPUThrottlingRate(double rate) {
|
| @@ -527,7 +537,7 @@
|
| void WebDevToolsAgentImpl::InspectElementAt(
|
| int session_id,
|
| const WebPoint& point_in_root_frame) {
|
| - if (!overlay_agent_ || !session_ || session_->SessionId() != session_id)
|
| + if (!dom_agent_ || !session_ || session_->SessionId() != session_id)
|
| return;
|
| HitTestRequest::HitTestRequestType hit_type =
|
| HitTestRequest::kMove | HitTestRequest::kReadOnly |
|
| @@ -547,7 +557,7 @@
|
| Node* node = result.InnerNode();
|
| if (!node && web_local_frame_impl_->GetFrame()->GetDocument())
|
| node = web_local_frame_impl_->GetFrame()->GetDocument()->documentElement();
|
| - overlay_agent_->Inspect(node);
|
| + dom_agent_->Inspect(node);
|
| }
|
|
|
| void WebDevToolsAgentImpl::FailedToRequestDevTools() {
|
| @@ -564,8 +574,19 @@
|
| }
|
|
|
| void WebDevToolsAgentImpl::PageLayoutInvalidated(bool resized) {
|
| - if (overlay_agent_)
|
| - overlay_agent_->PageLayoutInvalidated(resized);
|
| + if (overlay_)
|
| + overlay_->PageLayoutInvalidated(resized);
|
| +}
|
| +
|
| +void WebDevToolsAgentImpl::ConfigureOverlay(bool suspended,
|
| + const String& message) {
|
| + if (!overlay_)
|
| + return;
|
| + overlay_->SetPausedInDebuggerMessage(message);
|
| + if (suspended)
|
| + overlay_->Suspend();
|
| + else
|
| + overlay_->Resume();
|
| }
|
|
|
| void WebDevToolsAgentImpl::WaitForCreateWindow(LocalFrame* frame) {
|
| @@ -578,10 +599,10 @@
|
|
|
| WebString WebDevToolsAgentImpl::EvaluateInWebInspectorOverlay(
|
| const WebString& script) {
|
| - if (!overlay_agent_)
|
| + if (!overlay_)
|
| return WebString();
|
|
|
| - return overlay_agent_->EvaluateInOverlayForTest(script);
|
| + return overlay_->EvaluateInOverlayForTest(script);
|
| }
|
|
|
| bool WebDevToolsAgentImpl::CacheDisabled() {
|
|
|