Index: webkit/glue/webdevtoolsagent_impl.cc |
diff --git a/webkit/glue/webdevtoolsagent_impl.cc b/webkit/glue/webdevtoolsagent_impl.cc |
index 43ebc89bc685812e61844a39a0b6fe28f5cff296..ab8d9555de114013649dbdeff775a49a613fbf48 100644 |
--- a/webkit/glue/webdevtoolsagent_impl.cc |
+++ b/webkit/glue/webdevtoolsagent_impl.cc |
@@ -41,6 +41,7 @@ |
#include "webkit/glue/devtools/bound_object.h" |
#include "webkit/glue/devtools/debugger_agent_impl.h" |
#include "webkit/glue/devtools/debugger_agent_manager.h" |
+#include "webkit/glue/devtools/profiler_agent_impl.h" |
#include "webkit/glue/glue_util.h" |
#include "webkit/glue/webdevtoolsagent_impl.h" |
@@ -112,6 +113,27 @@ static const char kApuAgentFeatureName[] = "apu-agent"; |
static const char kTimelineFeatureName[] = "timeline-profiler"; |
static const char kResourceTrackingFeatureName[] = "resource-tracking"; |
+class IoRpcDelegate : public DevToolsRpc::Delegate { |
+ public: |
+ IoRpcDelegate() {} |
+ virtual ~IoRpcDelegate() {} |
+ virtual void SendRpcMessage(const String& class_name, |
+ const String& method_name, |
+ const String& p1, |
+ const String& p2, |
+ const String& p3) { |
+ WebDevToolsAgentClient::sendMessageToFrontendOnIOThread( |
+ webkit_glue::StringToWebString(class_name), |
+ webkit_glue::StringToWebString(method_name), |
+ webkit_glue::StringToWebString(p1), |
+ webkit_glue::StringToWebString(p2), |
+ webkit_glue::StringToWebString(p3)); |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(IoRpcDelegate); |
+}; |
+ |
} // namespace |
WebDevToolsAgentImpl::WebDevToolsAgentImpl( |
@@ -604,4 +626,23 @@ void WebDevToolsAgent::setMessageLoopDispatchHandler( |
DebuggerAgentManager::SetMessageLoopDispatchHandler(handler); |
} |
+// static |
+bool WebDevToolsAgent::dispatchMessageFromFrontendOnIOThread( |
+ const WebString& className, |
+ const WebString& methodName, |
+ const WebString& param1, |
+ const WebString& param2, |
+ const WebString& param3) { |
+ IoRpcDelegate transport; |
+ ProfilerAgentDelegateStub stub(&transport); |
+ ProfilerAgentImpl agent(&stub); |
+ return ProfilerAgentDispatch::Dispatch( |
+ &agent, |
+ webkit_glue::WebStringToString(className), |
+ webkit_glue::WebStringToString(methodName), |
+ webkit_glue::WebStringToString(param1), |
+ webkit_glue::WebStringToString(param2), |
+ webkit_glue::WebStringToString(param3)); |
+} |
+ |
} // namespace WebKit |