summaryrefslogtreecommitdiffstats
path: root/content/renderer/devtools
diff options
context:
space:
mode:
authordgozman <dgozman@chromium.org>2015-04-06 05:01:31 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-06 12:01:52 +0000
commitcf9039cd9c0f1515fce14d2e2c5a8886bd1aa131 (patch)
treeca50db00a025f4226728033c4a2341003c77a530 /content/renderer/devtools
parent5f549c65db02de4b7a88ebf4deeb59a3d6fe9f6d (diff)
downloadchromium_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.cc11
-rw-r--r--content/renderer/devtools/devtools_agent.h10
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);