| Index: content/browser/devtools/render_frame_devtools_agent_host.cc
|
| diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc
|
| index 302338e406ed8c2ef20c8bf1ac8f1e49f5cd59bd..0169d37e7cfad007a7c1c192b97d136ef7b8cd68 100644
|
| --- a/content/browser/devtools/render_frame_devtools_agent_host.cc
|
| +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
|
| @@ -395,7 +395,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
|
| RenderFrameHostImpl* host)
|
| : DevToolsAgentHostImpl(base::GenerateGUID()),
|
| input_handler_(new devtools::input::InputHandler()),
|
| - target_handler_(new devtools::target::TargetHandler()),
|
| frame_trace_recorder_(nullptr),
|
| protocol_handler_(new DevToolsProtocolHandler(this)),
|
| handlers_frame_host_(nullptr),
|
| @@ -404,7 +403,6 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost(
|
| frame_tree_node_(host->frame_tree_node()) {
|
| DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher();
|
| dispatcher->SetInputHandler(input_handler_.get());
|
| - dispatcher->SetTargetHandler(target_handler_.get());
|
|
|
| SetPending(host);
|
| CommitPending();
|
| @@ -513,6 +511,10 @@ void RenderFrameDevToolsAgentHost::Attach() {
|
| storage_handler_.reset(new protocol::StorageHandler());
|
| storage_handler_->Wire(session()->dispatcher());
|
|
|
| + target_handler_.reset(new protocol::TargetHandler());
|
| + target_handler_->Wire(session()->dispatcher());
|
| + target_handler_->SetRenderFrameHost(handlers_frame_host_);
|
| +
|
| tracing_handler_.reset(new protocol::TracingHandler(
|
| protocol::TracingHandler::Renderer,
|
| frame_tree_node_->frame_tree_node_id(),
|
| @@ -553,6 +555,8 @@ void RenderFrameDevToolsAgentHost::Detach() {
|
| service_worker_handler_.reset();
|
| storage_handler_->Disable();
|
| storage_handler_.reset();
|
| + target_handler_->Disable();
|
| + target_handler_.reset();
|
| tracing_handler_->Disable();
|
| tracing_handler_.reset();
|
|
|
| @@ -617,7 +621,6 @@ void RenderFrameDevToolsAgentHost::OnClientDetached() {
|
| #if defined(OS_ANDROID)
|
| power_save_blocker_.reset();
|
| #endif
|
| - target_handler_->Detached();
|
| frame_trace_recorder_.reset();
|
| in_navigation_protocol_message_buffer_.clear();
|
| }
|
| @@ -691,7 +694,7 @@ void RenderFrameDevToolsAgentHost::DidFinishNavigation(
|
| DispatchBufferedProtocolMessagesIfNecessary();
|
|
|
| DCHECK(CheckConsistency());
|
| - if (navigation_handle->HasCommitted())
|
| + if (target_handler_ && navigation_handle->HasCommitted())
|
| target_handler_->UpdateServiceWorkers();
|
| }
|
|
|
| @@ -737,7 +740,8 @@ void RenderFrameDevToolsAgentHost::RenderFrameHostChanged(
|
| // CommitPending may destruct |this|.
|
| scoped_refptr<RenderFrameDevToolsAgentHost> protect(this);
|
|
|
| - target_handler_->UpdateFrames();
|
| + if (target_handler_)
|
| + target_handler_->UpdateFrames();
|
|
|
| if (IsBrowserSideNavigationEnabled())
|
| return;
|
| @@ -904,7 +908,8 @@ void RenderFrameDevToolsAgentHost::DidCommitProvisionalLoadForFrame(
|
| if (pending_ && pending_->host() == render_frame_host)
|
| CommitPending();
|
| DCHECK(CheckConsistency());
|
| - target_handler_->UpdateServiceWorkers();
|
| + if (target_handler_)
|
| + target_handler_->UpdateServiceWorkers();
|
| }
|
|
|
| void RenderFrameDevToolsAgentHost::DidFailProvisionalLoad(
|
| @@ -971,7 +976,8 @@ void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers(
|
| security_handler_->SetRenderFrameHost(host);
|
| if (storage_handler_)
|
| storage_handler_->SetRenderFrameHost(host);
|
| - target_handler_->SetRenderFrameHost(host);
|
| + if (target_handler_)
|
| + target_handler_->SetRenderFrameHost(host);
|
| }
|
|
|
| void RenderFrameDevToolsAgentHost::DisconnectWebContents() {
|
|
|