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

Side by Side Diff: components/ui_devtools/devtools_client.cc

Issue 2470933002: Disable agents when client disconnects (Closed)
Patch Set: sadruls comments Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/ui_devtools/devtools_client.h" 5 #include "components/ui_devtools/devtools_client.h"
6 6
7 #include "components/ui_devtools/devtools_server.h" 7 #include "components/ui_devtools/devtools_server.h"
8 8
9 namespace ui { 9 namespace ui {
10 namespace devtools { 10 namespace devtools {
11 11
12 UiDevToolsClient::UiDevToolsClient(const std::string& name, 12 UiDevToolsClient::UiDevToolsClient(const std::string& name,
13 UiDevToolsServer* server) 13 UiDevToolsServer* server)
14 : name_(name), 14 : name_(name),
15 connection_id_(kNotConnected), 15 connection_id_(kNotConnected),
16 dispatcher_(this), 16 dispatcher_(this),
17 server_(server) { 17 server_(server) {
18 DCHECK(server_); 18 DCHECK(server_);
19 } 19 }
20 20
21 UiDevToolsClient::~UiDevToolsClient() {} 21 UiDevToolsClient::~UiDevToolsClient() {}
22 22
23 void UiDevToolsClient::AddAgent(std::unique_ptr<UiDevToolsAgent> agent) { 23 void UiDevToolsClient::AddAgent(std::unique_ptr<UiDevToolsAgent> agent) {
24 agent->Init(&dispatcher_); 24 agent->Init(&dispatcher_);
25 agents_.push_back(std::move(agent)); 25 agents_.push_back(std::move(agent));
26 } 26 }
27 27
28 void UiDevToolsClient::DisableAllAgents() {
29 for (std::unique_ptr<UiDevToolsAgent>& agent : agents_)
30 agent->Disable();
31 }
32
33 void UiDevToolsClient::Disconnect() {
34 connection_id_ = kNotConnected;
35 DisableAllAgents();
36 }
37
28 void UiDevToolsClient::Dispatch(const std::string& data) { 38 void UiDevToolsClient::Dispatch(const std::string& data) {
29 dispatcher_.dispatch(protocol::parseJSON(data)); 39 dispatcher_.dispatch(protocol::parseJSON(data));
30 } 40 }
31 41
32 bool UiDevToolsClient::connected() const { 42 bool UiDevToolsClient::connected() const {
33 return connection_id_ != kNotConnected; 43 return connection_id_ != kNotConnected;
34 } 44 }
35 45
36 void UiDevToolsClient::set_connection_id(int connection_id) { 46 void UiDevToolsClient::set_connection_id(int connection_id) {
37 connection_id_ = connection_id; 47 connection_id_ = connection_id;
(...skipping 12 matching lines...) Expand all
50 if (connected()) 60 if (connected())
51 server_->SendOverWebSocket(connection_id_, message); 61 server_->SendOverWebSocket(connection_id_, message);
52 } 62 }
53 63
54 void UiDevToolsClient::flushProtocolNotifications() { 64 void UiDevToolsClient::flushProtocolNotifications() {
55 NOTIMPLEMENTED(); 65 NOTIMPLEMENTED();
56 } 66 }
57 67
58 } // namespace devtools 68 } // namespace devtools
59 } // namespace ui 69 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698