Index: content/browser/devtools/render_view_devtools_agent_host.cc |
diff --git a/content/browser/devtools/render_view_devtools_agent_host.cc b/content/browser/devtools/render_view_devtools_agent_host.cc |
index f3eaf3a76bf05ccd47592f950a5596f95f294fee..68745d1590e46a9e0bc7555085bdbe3cea8e093f 100644 |
--- a/content/browser/devtools/render_view_devtools_agent_host.cc |
+++ b/content/browser/devtools/render_view_devtools_agent_host.cc |
@@ -20,6 +20,7 @@ |
#include "content/common/devtools_messages.h" |
#include "content/common/view_messages.h" |
#include "content/public/browser/content_browser_client.h" |
+#include "content/public/browser/devtools_manager_delegate.h" |
#include "content/public/browser/notification_service.h" |
#include "content/public/browser/notification_types.h" |
#include "content/public/browser/render_widget_host_iterator.h" |
@@ -185,12 +186,26 @@ RenderViewHost* RenderViewDevToolsAgentHost::GetRenderViewHost() { |
void RenderViewDevToolsAgentHost::DispatchOnInspectorBackend( |
const std::string& message) { |
std::string error_message; |
+ |
+ scoped_ptr<base::DictionaryValue> message_dict( |
+ DevToolsProtocol::ParseMessage(message, &error_message)); |
scoped_refptr<DevToolsProtocol::Command> command = |
- DevToolsProtocol::ParseCommand(message, &error_message); |
+ DevToolsProtocol::ParseCommand(message_dict.get(), &error_message); |
if (command) { |
- scoped_refptr<DevToolsProtocol::Response> overridden_response = |
- overrides_handler_->HandleCommand(command); |
+ scoped_refptr<DevToolsProtocol::Response> overridden_response; |
+ |
+ DevToolsManagerDelegate* delegate = |
+ DevToolsManagerImpl::GetInstance()->delegate(); |
+ if (delegate) { |
+ scoped_ptr<base::DictionaryValue> overridden_response_value( |
+ delegate->HandleCommand(this, message_dict.get())); |
+ if (overridden_response_value) |
+ overridden_response = DevToolsProtocol::ParseResponse( |
+ overridden_response_value.get()); |
+ } |
+ if (!overridden_response) |
+ overridden_response = overrides_handler_->HandleCommand(command); |
if (!overridden_response) |
overridden_response = tracing_handler_->HandleCommand(command); |
if (!overridden_response) |