summaryrefslogtreecommitdiffstats
path: root/chromium/content/renderer/devtools/devtools_agent_filter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/devtools/devtools_agent_filter.cc')
-rw-r--r--chromium/content/renderer/devtools/devtools_agent_filter.cc44
1 files changed, 37 insertions, 7 deletions
diff --git a/chromium/content/renderer/devtools/devtools_agent_filter.cc b/chromium/content/renderer/devtools/devtools_agent_filter.cc
index fc9e34f8a8a..b0a60f00514 100644
--- a/chromium/content/renderer/devtools/devtools_agent_filter.cc
+++ b/chromium/content/renderer/devtools/devtools_agent_filter.cc
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
+#include "content/child/child_process.h"
#include "content/common/devtools_messages.h"
#include "content/renderer/devtools/devtools_agent.h"
#include "third_party/WebKit/public/platform/WebString.h"
@@ -20,21 +21,21 @@ namespace {
class MessageImpl : public WebDevToolsAgent::MessageDescriptor {
public:
- MessageImpl(const std::string& message, int host_id)
- : msg(message),
- host_id(host_id) {
+ MessageImpl(const std::string& message, int routing_id)
+ : msg_(message),
+ routing_id_(routing_id) {
}
virtual ~MessageImpl() {}
virtual WebDevToolsAgent* agent() {
- DevToolsAgent* agent = DevToolsAgent::FromHostId(host_id);
+ DevToolsAgent* agent = DevToolsAgent::FromRoutingId(routing_id_);
if (!agent)
return 0;
return agent->GetWebAgent();
}
- virtual WebString message() { return WebString::fromUTF8(msg); }
+ virtual WebString message() { return WebString::fromUTF8(msg_); }
private:
- std::string msg;
- int host_id;
+ std::string msg_;
+ int routing_id_;
};
} // namespace
@@ -42,6 +43,7 @@ class MessageImpl : public WebDevToolsAgent::MessageDescriptor {
DevToolsAgentFilter::DevToolsAgentFilter()
: message_handled_(false),
render_thread_loop_(base::MessageLoop::current()),
+ io_message_loop_proxy_(ChildProcess::current()->io_message_loop_proxy()),
current_routing_id_(0) {}
bool DevToolsAgentFilter::OnMessageReceived(const IPC::Message& message) {
@@ -60,6 +62,11 @@ DevToolsAgentFilter::~DevToolsAgentFilter() {}
void DevToolsAgentFilter::OnDispatchOnInspectorBackend(
const std::string& message) {
+ if (embedded_worker_routes_.find(current_routing_id_) !=
+ embedded_worker_routes_.end()) {
+ message_handled_ = false;
+ return;
+ }
if (!WebDevToolsAgent::shouldInterruptForMessage(
WebString::fromUTF8(message))) {
message_handled_ = false;
@@ -72,4 +79,27 @@ void DevToolsAgentFilter::OnDispatchOnInspectorBackend(
FROM_HERE, base::Bind(&WebDevToolsAgent::processPendingMessages));
}
+void DevToolsAgentFilter::AddEmbeddedWorkerRouteOnMainThread(int32 routing_id) {
+ io_message_loop_proxy_->PostTask(
+ FROM_HERE,
+ base::Bind(
+ &DevToolsAgentFilter::AddEmbeddedWorkerRoute, this, routing_id));
+}
+
+void DevToolsAgentFilter::RemoveEmbeddedWorkerRouteOnMainThread(
+ int32 routing_id) {
+ io_message_loop_proxy_->PostTask(
+ FROM_HERE,
+ base::Bind(
+ &DevToolsAgentFilter::RemoveEmbeddedWorkerRoute, this, routing_id));
+}
+
+void DevToolsAgentFilter::AddEmbeddedWorkerRoute(int32 routing_id) {
+ embedded_worker_routes_.insert(routing_id);
+}
+
+void DevToolsAgentFilter::RemoveEmbeddedWorkerRoute(int32 routing_id) {
+ embedded_worker_routes_.erase(routing_id);
+}
+
} // namespace content