diff options
Diffstat (limited to 'chromium/content/renderer/devtools/devtools_agent_filter.h')
-rw-r--r-- | chromium/content/renderer/devtools/devtools_agent_filter.h | 20 |
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); }; |