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 a858ff8382e12da033fddc9b0d196844e5d1dd8b..7b6588a272aaeaefbca42d0dc2d65bac7546a4f3 100644 |
--- a/content/browser/devtools/render_view_devtools_agent_host.cc |
+++ b/content/browser/devtools/render_view_devtools_agent_host.cc |
@@ -13,6 +13,7 @@ |
#include "content/browser/devtools/devtools_protocol.h" |
#include "content/browser/devtools/devtools_protocol_constants.h" |
#include "content/browser/devtools/devtools_tracing_handler.h" |
+#include "content/browser/devtools/protocol/devtools_protocol_handler.h" |
#include "content/browser/devtools/renderer_overrides_handler.h" |
#include "content/browser/renderer_host/render_process_host_impl.h" |
#include "content/browser/renderer_host/render_view_host_impl.h" |
@@ -109,6 +110,7 @@ void RenderViewDevToolsAgentHost::OnCancelPendingNavigation( |
RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh) |
: render_view_host_(NULL), |
+ handler_impl_(new DevToolsProtocolHandlerImpl()), |
overrides_handler_(new RendererOverridesHandler()), |
tracing_handler_( |
new DevToolsTracingHandler(DevToolsTracingHandler::Renderer)), |
@@ -118,6 +120,7 @@ RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh) |
DevToolsProtocol::Notifier notifier(base::Bind( |
&RenderViewDevToolsAgentHost::OnDispatchOnInspectorFrontend, |
base::Unretained(this))); |
+ handler_impl_->SetNotifier(notifier); |
overrides_handler_->SetNotifier(notifier); |
tracing_handler_->SetNotifier(notifier); |
power_handler_->SetNotifier(notifier); |
@@ -156,6 +159,8 @@ void RenderViewDevToolsAgentHost::DispatchProtocolMessage( |
overridden_response = tracing_handler_->HandleCommand(command); |
if (!overridden_response.get()) |
overridden_response = power_handler_->HandleCommand(command); |
+ if (!overridden_response.get()) |
+ overridden_response = handler_impl_->HandleCommand(command); |
if (overridden_response.get()) { |
if (!overridden_response->is_async_promise()) |
OnDispatchOnInspectorFrontend(overridden_response->Serialize()); |
@@ -209,6 +214,7 @@ void RenderViewDevToolsAgentHost::OnClientDetached() { |
overrides_handler_->OnClientDetached(); |
tracing_handler_->OnClientDetached(); |
power_handler_->OnClientDetached(); |
+ handler_impl_->OnClientDetached(); |
ClientDetachedFromRenderer(); |
// TODO(kaznacheev): Move this call back to DevToolsManagerImpl when |
@@ -354,6 +360,7 @@ void RenderViewDevToolsAgentHost::SetRenderViewHost(RenderViewHost* rvh) { |
WebContentsObserver::Observe(WebContents::FromRenderViewHost(rvh)); |
overrides_handler_->SetRenderViewHost(render_view_host_); |
+ handler_impl_->SetRenderViewHost(render_view_host_); |
registrar_.Add( |
this, |
@@ -369,6 +376,7 @@ void RenderViewDevToolsAgentHost::ClearRenderViewHost() { |
content::Source<RenderWidgetHost>(render_view_host_)); |
render_view_host_ = NULL; |
overrides_handler_->ClearRenderViewHost(); |
+ handler_impl_->SetRenderViewHost(NULL); |
} |
void RenderViewDevToolsAgentHost::DisconnectWebContents() { |