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 76b3866d638974a579b444ec8e8ee4eafc6b3e96..97947d1fa550f3a17dcd7276707ede8fbd84f66f 100644 |
--- a/content/browser/devtools/render_frame_devtools_agent_host.cc |
+++ b/content/browser/devtools/render_frame_devtools_agent_host.cc |
@@ -395,6 +395,8 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( |
RenderFrameHostImpl* host) |
: DevToolsAgentHostImpl(base::GenerateGUID()), |
input_handler_(new devtools::input::InputHandler()), |
+ service_worker_handler_( |
+ new devtools::service_worker::ServiceWorkerHandler()), |
frame_trace_recorder_(nullptr), |
protocol_handler_(new DevToolsProtocolHandler(this)), |
handlers_frame_host_(nullptr), |
@@ -403,6 +405,7 @@ RenderFrameDevToolsAgentHost::RenderFrameDevToolsAgentHost( |
frame_tree_node_(host->frame_tree_node()) { |
DevToolsProtocolDispatcher* dispatcher = protocol_handler_->dispatcher(); |
dispatcher->SetInputHandler(input_handler_.get()); |
+ dispatcher->SetServiceWorkerHandler(service_worker_handler_.get()); |
SetPending(host); |
CommitPending(); |
@@ -504,10 +507,6 @@ void RenderFrameDevToolsAgentHost::Attach() { |
security_handler_->SetRenderFrameHost(handlers_frame_host_); |
} |
- service_worker_handler_.reset(new protocol::ServiceWorkerHandler()); |
- service_worker_handler_->Wire(session()->dispatcher()); |
- service_worker_handler_->SetRenderFrameHost(handlers_frame_host_); |
- |
storage_handler_.reset(new protocol::StorageHandler()); |
storage_handler_->Wire(session()->dispatcher()); |
storage_handler_->SetRenderFrameHost(handlers_frame_host_); |
@@ -552,8 +551,6 @@ void RenderFrameDevToolsAgentHost::Detach() { |
security_handler_->Disable(); |
security_handler_.reset(); |
} |
- service_worker_handler_->Disable(); |
- service_worker_handler_.reset(); |
storage_handler_->Disable(); |
storage_handler_.reset(); |
target_handler_->Disable(); |
@@ -622,6 +619,7 @@ void RenderFrameDevToolsAgentHost::OnClientDetached() { |
#if defined(OS_ANDROID) |
power_save_blocker_.reset(); |
#endif |
+ service_worker_handler_->Detached(); |
frame_trace_recorder_.reset(); |
in_navigation_protocol_message_buffer_.clear(); |
} |
@@ -971,8 +969,7 @@ void RenderFrameDevToolsAgentHost::UpdateProtocolHandlers( |
network_handler_->SetRenderFrameHost(host); |
if (page_handler_) |
page_handler_->SetRenderFrameHost(host); |
- if (service_worker_handler_) |
- service_worker_handler_->SetRenderFrameHost(host); |
+ service_worker_handler_->SetRenderFrameHost(host); |
if (security_handler_) |
security_handler_->SetRenderFrameHost(host); |
if (storage_handler_) |