Index: content/browser/devtools/devtools_http_handler_impl.cc |
diff --git a/content/browser/devtools/devtools_http_handler_impl.cc b/content/browser/devtools/devtools_http_handler_impl.cc |
index f2017cbb83454d6150e64cf33cbd159afd2c637c..1cd9222e24cc35c90f10f07ef6cc3eec549044cc 100644 |
--- a/content/browser/devtools/devtools_http_handler_impl.cc |
+++ b/content/browser/devtools/devtools_http_handler_impl.cc |
@@ -349,23 +349,16 @@ class DevToolsAgentHostClientImpl : public DevToolsAgentHostClient { |
void AgentHostClosed(DevToolsAgentHost* agent_host, |
bool replaced_with_another_client) override { |
DCHECK(agent_host == agent_host_.get()); |
- agent_host_ = NULL; |
- |
- base::DictionaryValue notification; |
- notification.SetString( |
- devtools::Inspector::detached::kParamReason, |
- replaced_with_another_client ? |
- "replaced_with_devtools" : "target_closed"); |
- std::string response = DevToolsProtocol::CreateNotification( |
- devtools::Inspector::detached::kName, |
- notification.DeepCopy())->Serialize(); |
- message_loop_->PostTask( |
- FROM_HERE, |
- base::Bind(&ServerWrapper::SendOverWebSocket, |
- base::Unretained(server_wrapper_), |
- connection_id_, |
- response)); |
+ base::Callback<void(const std::string&)> raw_message_callback( |
+ base::Bind(&DevToolsAgentHostClientImpl::DispatchProtocolMessage, |
+ base::Unretained(this), base::Unretained(agent_host))); |
+ devtools::inspector::Client inspector(raw_message_callback); |
+ inspector.Detached(devtools::inspector::DetachedParams::Create() |
+ ->set_reason(replaced_with_another_client ? |
+ "replaced_with_devtools" : "target_closed")); |
+ |
+ agent_host_ = nullptr; |
message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&ServerWrapper::Close, |