summaryrefslogtreecommitdiffstats
path: root/chromium/content/renderer/devtools/devtools_agent_filter.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/renderer/devtools/devtools_agent_filter.h')
-rw-r--r--chromium/content/renderer/devtools/devtools_agent_filter.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/chromium/content/renderer/devtools/devtools_agent_filter.h b/chromium/content/renderer/devtools/devtools_agent_filter.h
index e7f78613807..5097f423585 100644
--- a/chromium/content/renderer/devtools/devtools_agent_filter.h
+++ b/chromium/content/renderer/devtools/devtools_agent_filter.h
@@ -5,14 +5,16 @@
#ifndef CONTENT_RENDERER_DEVTOOLS_DEVTOOLS_AGENT_FILTER_H_
#define CONTENT_RENDERER_DEVTOOLS_DEVTOOLS_AGENT_FILTER_H_
+#include <set>
#include <string>
-#include "ipc/ipc_channel_proxy.h"
+#include "ipc/message_filter.h"
struct DevToolsMessageData;
namespace base {
class MessageLoop;
+class MessageLoopProxy;
}
namespace content {
@@ -23,26 +25,38 @@ namespace content {
// are being dispatched there. While holding the thread in a tight loop,
// v8 provides thread-safe Api for controlling debugger. In our case v8's Api
// is being used from this communication agent on the IO thread.
-class DevToolsAgentFilter : public IPC::ChannelProxy::MessageFilter {
+class DevToolsAgentFilter : public IPC::MessageFilter {
public:
// There is a single instance of this class instantiated by the RenderThread.
DevToolsAgentFilter();
static void SendRpcMessage(const DevToolsMessageData& data);
- // IPC::ChannelProxy::MessageFilter override. Called on IO thread.
+ // IPC::MessageFilter override. Called on IO thread.
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
+ // Called on the main thread.
+ void AddEmbeddedWorkerRouteOnMainThread(int32 routing_id);
+ void RemoveEmbeddedWorkerRouteOnMainThread(int32 routing_id);
+
protected:
virtual ~DevToolsAgentFilter();
private:
void OnDispatchOnInspectorBackend(const std::string& message);
+ // Called on IO thread
+ void AddEmbeddedWorkerRoute(int32 routing_id);
+ void RemoveEmbeddedWorkerRoute(int32 routing_id);
+
bool message_handled_;
base::MessageLoop* render_thread_loop_;
+ // Proxy to the IO message loop.
+ scoped_refptr<base::MessageLoopProxy> io_message_loop_proxy_;
int current_routing_id_;
+ std::set<int32> embedded_worker_routes_;
+
DISALLOW_COPY_AND_ASSIGN(DevToolsAgentFilter);
};