Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1031)

Unified Diff: content/browser/devtools/worker_devtools_agent_host.cc

Issue 2590293003: [DevTools] Rework DevToolsSession interaction with domain handlers. (Closed)
Patch Set: includes Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/devtools/worker_devtools_agent_host.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..e44544eec121f459cf28fbfca6d00dd200dbf11f 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::AttachSession(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::DetachSession(int session_id) {
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();
+ protocol::InspectorHandler::FromSession(session())->TargetCrashed();
DetachFromWorker();
}
state_ = WORKER_TERMINATED;
« no previous file with comments | « content/browser/devtools/worker_devtools_agent_host.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698