diff options
author | dgozman <dgozman@chromium.org> | 2015-04-06 05:01:31 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-06 12:01:52 +0000 |
commit | cf9039cd9c0f1515fce14d2e2c5a8886bd1aa131 (patch) | |
tree | ca50db00a025f4226728033c4a2341003c77a530 /content/renderer/devtools | |
parent | 5f549c65db02de4b7a88ebf4deeb59a3d6fe9f6d (diff) | |
download | chromium_src-cf9039cd9c0f1515fce14d2e2c5a8886bd1aa131.zip chromium_src-cf9039cd9c0f1515fce14d2e2c5a8886bd1aa131.tar.gz chromium_src-cf9039cd9c0f1515fce14d2e2c5a8886bd1aa131.tar.bz2 |
[DevTools] Unpause renderer when paused RenderFrame is closed.
BUG=469421
Review URL: https://codereview.chromium.org/1047653003
Cr-Commit-Position: refs/heads/master@{#323902}
Diffstat (limited to 'content/renderer/devtools')
-rw-r--r-- | content/renderer/devtools/devtools_agent.cc | 11 | ||||
-rw-r--r-- | content/renderer/devtools/devtools_agent.h | 10 |
2 files changed, 16 insertions, 5 deletions
diff --git a/content/renderer/devtools/devtools_agent.cc b/content/renderer/devtools/devtools_agent.cc index 357a47f..9b627e0 100644 --- a/content/renderer/devtools/devtools_agent.cc +++ b/content/renderer/devtools/devtools_agent.cc @@ -12,7 +12,6 @@ #include "base/trace_event/trace_event.h" #include "content/common/devtools_messages.h" #include "content/common/frame_messages.h" -#include "content/common/view_messages.h" #include "content/renderer/devtools/devtools_client.h" #include "content/renderer/render_frame_impl.h" #include "content/renderer/render_widget.h" @@ -70,6 +69,7 @@ DevToolsAgent::DevToolsAgent(RenderFrameImpl* frame) is_attached_(false), is_devtools_client_(false), paused_in_mouse_move_(false), + paused_(false), frame_(frame) { g_agent_for_routing_id.Get()[routing_id()] = this; frame_->GetWebFrame()->setDevToolsAgentClient(this); @@ -95,13 +95,16 @@ bool DevToolsAgent::OnMessageReceived(const IPC::Message& message) { IPC_MESSAGE_UNHANDLED(handled = false) IPC_END_MESSAGE_MAP() - if (message.type() == FrameMsg_Navigate::ID || - message.type() == ViewMsg_Close::ID) + if (message.type() == FrameMsg_Navigate::ID) ContinueProgram(); // Don't want to swallow the message. return handled; } +void DevToolsAgent::WidgetWillClose() { + ContinueProgram(); +} + void DevToolsAgent::sendProtocolMessage( int call_id, const blink::WebString& message, @@ -116,11 +119,13 @@ blink::WebDevToolsAgentClient::WebKitClientMessageLoop* } void DevToolsAgent::willEnterDebugLoop() { + paused_ = true; if (RenderWidget* widget = frame_->GetRenderWidget()) paused_in_mouse_move_ = widget->SendAckForMouseMoveFromDebugger(); } void DevToolsAgent::didExitDebugLoop() { + paused_ = false; if (!paused_in_mouse_move_) return; if (RenderWidget* widget = frame_->GetRenderWidget()) { diff --git a/content/renderer/devtools/devtools_agent.h b/content/renderer/devtools/devtools_agent.h index 9db85c4..1979f38 100644 --- a/content/renderer/devtools/devtools_agent.h +++ b/content/renderer/devtools/devtools_agent.h @@ -7,6 +7,7 @@ #include <string> +#include "content/common/content_export.h" #include "content/public/common/console_message_level.h" #include "content/public/renderer/render_frame_observer.h" #include "third_party/WebKit/public/web/WebDevToolsAgentClient.h" @@ -22,8 +23,9 @@ class RenderFrameImpl; // DevToolsAgent belongs to the inspectable RenderFrameImpl and communicates // with WebDevToolsAgent. There is a corresponding DevToolsAgentHost // on the browser side. -class DevToolsAgent : public RenderFrameObserver, - public blink::WebDevToolsAgentClient { +class CONTENT_EXPORT DevToolsAgent + : public RenderFrameObserver, + NON_EXPORTED_BASE(public blink::WebDevToolsAgentClient) { public: explicit DevToolsAgent(RenderFrameImpl* frame); ~DevToolsAgent() override; @@ -43,8 +45,11 @@ class DevToolsAgent : public RenderFrameObserver, bool IsAttached(); private: + friend class DevToolsAgentTest; + // RenderFrameObserver implementation. bool OnMessageReceived(const IPC::Message& message) override; + void WidgetWillClose() override; // WebDevToolsAgentClient implementation. void sendProtocolMessage(int call_id, @@ -72,6 +77,7 @@ class DevToolsAgent : public RenderFrameObserver, bool is_attached_; bool is_devtools_client_; bool paused_in_mouse_move_; + bool paused_; RenderFrameImpl* frame_; DISALLOW_COPY_AND_ASSIGN(DevToolsAgent); |