| Index: content/browser/devtools/worker_devtools_agent_host.cc
|
| diff --git a/content/browser/devtools/worker_devtools_agent_host.cc b/content/browser/devtools/worker_devtools_agent_host.cc
|
| index 5b919596764591ab4825c75ada98b330a59835fb..621d88bae5624aa2df97661872d65623fcf8dd56 100644
|
| --- a/content/browser/devtools/worker_devtools_agent_host.cc
|
| +++ b/content/browser/devtools/worker_devtools_agent_host.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/browser/devtools/worker_devtools_agent_host.h"
|
|
|
| #include "base/guid.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "content/browser/devtools/devtools_session.h"
|
| #include "content/browser/devtools/protocol/inspector_handler.h"
|
| #include "content/browser/devtools/protocol/network_handler.h"
|
| @@ -20,35 +21,25 @@ BrowserContext* WorkerDevToolsAgentHost::GetBrowserContext() {
|
| return rph ? rph->GetBrowserContext() : nullptr;
|
| }
|
|
|
| -void WorkerDevToolsAgentHost::Attach() {
|
| +void WorkerDevToolsAgentHost::Attach(DevToolsSession* session) {
|
| if (state_ != WORKER_INSPECTED) {
|
| state_ = WORKER_INSPECTED;
|
| AttachToWorker();
|
| }
|
| if (RenderProcessHost* host = RenderProcessHost::FromID(worker_id_.first)) {
|
| host->Send(new DevToolsAgentMsg_Attach(
|
| - worker_id_.second, GetId(), session()->session_id()));
|
| + worker_id_.second, GetId(), session->session_id()));
|
| }
|
| - session()->dispatcher()->setFallThroughForNotFound(true);
|
| - inspector_handler_.reset(new protocol::InspectorHandler());
|
| - inspector_handler_->Wire(session()->dispatcher());
|
| - network_handler_.reset(new protocol::NetworkHandler());
|
| - network_handler_->Wire(session()->dispatcher());
|
| - schema_handler_.reset(new protocol::SchemaHandler());
|
| - schema_handler_->Wire(session()->dispatcher());
|
| - session()->dispatcher()->setFallThroughForNotFound(true);
|
| + session->SetFallThroughForNotFound(true);
|
| + session->AddHandler(base::WrapUnique(new protocol::InspectorHandler()));
|
| + session->AddHandler(base::WrapUnique(new protocol::NetworkHandler()));
|
| + session->AddHandler(base::WrapUnique(new protocol::SchemaHandler()));
|
| OnAttachedStateChanged(true);
|
| }
|
|
|
| -void WorkerDevToolsAgentHost::Detach() {
|
| +void WorkerDevToolsAgentHost::Detach(DevToolsSession* session) {
|
| if (RenderProcessHost* host = RenderProcessHost::FromID(worker_id_.first))
|
| host->Send(new DevToolsAgentMsg_Detach(worker_id_.second));
|
| - inspector_handler_->Disable();
|
| - inspector_handler_.reset();
|
| - network_handler_->Disable();
|
| - network_handler_.reset();
|
| - schema_handler_->Disable();
|
| - schema_handler_.reset();
|
| OnAttachedStateChanged(false);
|
| if (state_ == WORKER_INSPECTED) {
|
| state_ = WORKER_UNINSPECTED;
|
| @@ -59,20 +50,21 @@ void WorkerDevToolsAgentHost::Detach() {
|
| }
|
|
|
| bool WorkerDevToolsAgentHost::DispatchProtocolMessage(
|
| + DevToolsSession* session,
|
| const std::string& message) {
|
| if (state_ != WORKER_INSPECTED)
|
| return true;
|
|
|
| int call_id = 0;
|
| std::string method;
|
| - if (session()->Dispatch(message, &call_id, &method) !=
|
| + if (session->Dispatch(message, true, &call_id, &method) !=
|
| protocol::Response::kFallThrough) {
|
| return true;
|
| }
|
|
|
| if (RenderProcessHost* host = RenderProcessHost::FromID(worker_id_.first)) {
|
| host->Send(new DevToolsAgentMsg_DispatchOnInspectorBackend(
|
| - worker_id_.second, session()->session_id(), call_id, method, message));
|
| + worker_id_.second, session->session_id(), call_id, method, message));
|
| }
|
| return true;
|
| }
|
| @@ -123,7 +115,7 @@ void WorkerDevToolsAgentHost::WorkerDestroyed() {
|
| DCHECK_NE(WORKER_TERMINATED, state_);
|
| if (state_ == WORKER_INSPECTED) {
|
| DCHECK(IsAttached());
|
| - inspector_handler_->TargetCrashed();
|
| + session()->GetInspectorHandler()->TargetCrashed();
|
| DetachFromWorker();
|
| }
|
| state_ = WORKER_TERMINATED;
|
|
|