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

Side by Side Diff: chromeos/network/network_connect.cc

Issue 2775663005: Adds NetworkConnect::ConnectToNetworkId(), uses it in detailed VPN page (Closed)
Patch Set: Adds NetworkConnect::ConnectToNetworkId(), uses it in detailed VPN page (test) Created 3 years, 9 months 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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chromeos/network/network_connect.h" 5 #include "chromeos/network/network_connect.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/values.h" 11 #include "base/values.h"
12 #include "chromeos/login/login_state.h" 12 #include "chromeos/login/login_state.h"
13 #include "chromeos/network/device_state.h" 13 #include "chromeos/network/device_state.h"
14 #include "chromeos/network/network_activation_handler.h" 14 #include "chromeos/network/network_activation_handler.h"
15 #include "chromeos/network/network_configuration_handler.h" 15 #include "chromeos/network/network_configuration_handler.h"
16 #include "chromeos/network/network_connection_handler.h" 16 #include "chromeos/network/network_connection_handler.h"
17 #include "chromeos/network/network_event_log.h" 17 #include "chromeos/network/network_event_log.h"
18 #include "chromeos/network/network_handler_callbacks.h" 18 #include "chromeos/network/network_handler_callbacks.h"
19 #include "chromeos/network/network_profile.h" 19 #include "chromeos/network/network_profile.h"
20 #include "chromeos/network/network_profile_handler.h" 20 #include "chromeos/network/network_profile_handler.h"
21 #include "chromeos/network/network_state.h" 21 #include "chromeos/network/network_state.h"
22 #include "chromeos/network/network_state_handler.h" 22 #include "chromeos/network/network_state_handler.h"
23 #include "third_party/cros_system_api/dbus/service_constants.h" 23 #include "third_party/cros_system_api/dbus/service_constants.h"
24 24
25 namespace chromeos { 25 namespace chromeos {
26 26
27 namespace { 27 namespace {
28 28
29 void IgnoreDisconnectError(const std::string& error_name,
30 std::unique_ptr<base::DictionaryValue> error_data) {}
31
29 // Returns true for carriers that can be activated through Shill instead of 32 // Returns true for carriers that can be activated through Shill instead of
30 // through a WebUI dialog. 33 // through a WebUI dialog.
31 bool IsDirectActivatedCarrier(const std::string& carrier) { 34 bool IsDirectActivatedCarrier(const std::string& carrier) {
32 if (carrier == shill::kCarrierSprint) 35 if (carrier == shill::kCarrierSprint)
33 return true; 36 return true;
34 return false; 37 return false;
35 } 38 }
36 39
37 const NetworkState* GetNetworkStateFromId(const std::string& network_id) { 40 const NetworkState* GetNetworkStateFromId(const std::string& network_id) {
38 // Note: network_id === NetworkState::guid. 41 // Note: network_id === NetworkState::guid.
39 return NetworkHandler::Get() 42 return NetworkHandler::Get()
40 ->network_state_handler() 43 ->network_state_handler()
41 ->GetNetworkStateFromGuid(network_id); 44 ->GetNetworkStateFromGuid(network_id);
42 } 45 }
43 46
44 class NetworkConnectImpl : public NetworkConnect { 47 class NetworkConnectImpl : public NetworkConnect {
45 public: 48 public:
46 explicit NetworkConnectImpl(Delegate* delegate); 49 explicit NetworkConnectImpl(Delegate* delegate);
47 ~NetworkConnectImpl() override; 50 ~NetworkConnectImpl() override;
48 51
49 // NetworkConnect 52 // NetworkConnect
50 void ConnectToNetworkId(const std::string& network_id) override; 53 void ConnectToNetworkId(const std::string& network_id) override;
54 void DisconnectFromNetworkId(const std::string& network_id) override;
51 bool MaybeShowConfigureUI(const std::string& network_id, 55 bool MaybeShowConfigureUI(const std::string& network_id,
52 const std::string& connect_error) override; 56 const std::string& connect_error) override;
53 void SetTechnologyEnabled(const NetworkTypePattern& technology, 57 void SetTechnologyEnabled(const NetworkTypePattern& technology,
54 bool enabled_state) override; 58 bool enabled_state) override;
55 void ShowMobileSetup(const std::string& network_id) override; 59 void ShowMobileSetup(const std::string& network_id) override;
56 void ConfigureNetworkIdAndConnect( 60 void ConfigureNetworkIdAndConnect(
57 const std::string& network_id, 61 const std::string& network_id,
58 const base::DictionaryValue& shill_properties, 62 const base::DictionaryValue& shill_properties,
59 bool shared) override; 63 bool shared) override;
60 void CreateConfigurationAndConnect(base::DictionaryValue* shill_properties, 64 void CreateConfigurationAndConnect(base::DictionaryValue* shill_properties,
61 bool shared) override; 65 bool shared) override;
62 void CreateConfiguration(base::DictionaryValue* shill_properties, 66 void CreateConfiguration(base::DictionaryValue* shill_properties,
63 bool shared) override; 67 bool shared) override;
64 void SetTetherDelegate(TetherDelegate* tether_delegate) override; 68 void SetTetherDelegate(TetherDelegate* tether_delegate) override;
65 69
66 private: 70 private:
67 void ActivateCellular(const std::string& network_id); 71 void ActivateCellular(const std::string& network_id);
68 void HandleUnconfiguredNetwork(const std::string& network_id); 72 void HandleUnconfiguredNetwork(const std::string& network_id);
69 void OnConnectFailed(const std::string& network_id, 73 void OnConnectFailed(const std::string& network_id,
70 const std::string& error_name, 74 const std::string& error_name,
71 std::unique_ptr<base::DictionaryValue> error_data); 75 std::unique_ptr<base::DictionaryValue> error_data);
72 bool MaybeShowConfigureUIImpl(const std::string& network_id, 76 bool MaybeShowConfigureUIImpl(const std::string& network_id,
73 const std::string& connect_error); 77 const std::string& connect_error);
74 bool GetNetworkProfilePath(bool shared, std::string* profile_path); 78 bool GetNetworkProfilePath(bool shared, std::string* profile_path);
75 void OnConnectSucceeded(const std::string& network_id); 79 void OnConnectSucceeded(const std::string& network_id);
76 void CallConnectToNetwork(const std::string& network_id, 80 void CallConnectToNetwork(const std::string& network_id,
77 bool check_error_state); 81 bool check_error_state);
82 void CallDisconnectFromNetwork(const std::string& network_id);
stevenjb 2017/03/23 21:43:43 We don't really need this. CallConnectToNetwork ex
varkha 2017/03/23 22:46:55 Done.
78 void OnActivateFailed(const std::string& network_id, 83 void OnActivateFailed(const std::string& network_id,
79 const std::string& error_name, 84 const std::string& error_name,
80 std::unique_ptr<base::DictionaryValue> error_data); 85 std::unique_ptr<base::DictionaryValue> error_data);
81 void OnActivateSucceeded(const std::string& network_id); 86 void OnActivateSucceeded(const std::string& network_id);
82 void OnConfigureFailed(const std::string& error_name, 87 void OnConfigureFailed(const std::string& error_name,
83 std::unique_ptr<base::DictionaryValue> error_data); 88 std::unique_ptr<base::DictionaryValue> error_data);
84 void OnConfigureSucceeded(bool connect_on_configure, 89 void OnConfigureSucceeded(bool connect_on_configure,
85 const std::string& service_path, 90 const std::string& service_path,
86 const std::string& network_id); 91 const std::string& network_id);
87 void CallCreateConfiguration(base::DictionaryValue* properties, 92 void CallCreateConfiguration(base::DictionaryValue* properties,
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 } 258 }
254 259
255 NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork( 260 NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
256 network->path(), base::Bind(&NetworkConnectImpl::OnConnectSucceeded, 261 network->path(), base::Bind(&NetworkConnectImpl::OnConnectSucceeded,
257 weak_factory_.GetWeakPtr(), network_id), 262 weak_factory_.GetWeakPtr(), network_id),
258 base::Bind(&NetworkConnectImpl::OnConnectFailed, 263 base::Bind(&NetworkConnectImpl::OnConnectFailed,
259 weak_factory_.GetWeakPtr(), network_id), 264 weak_factory_.GetWeakPtr(), network_id),
260 check_error_state); 265 check_error_state);
261 } 266 }
262 267
268 void NetworkConnectImpl::CallDisconnectFromNetwork(
269 const std::string& network_id) {
270 const NetworkState* network = GetNetworkStateFromId(network_id);
271 if (!network)
272 return;
273 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
274 network->path(), base::Bind(&base::DoNothing),
275 base::Bind(&IgnoreDisconnectError));
276 }
277
263 void NetworkConnectImpl::OnActivateFailed( 278 void NetworkConnectImpl::OnActivateFailed(
264 const std::string& network_id, 279 const std::string& network_id,
265 const std::string& error_name, 280 const std::string& error_name,
266 std::unique_ptr<base::DictionaryValue> error_data) { 281 std::unique_ptr<base::DictionaryValue> error_data) {
267 NET_LOG_ERROR("Unable to activate network", network_id); 282 NET_LOG_ERROR("Unable to activate network", network_id);
268 delegate_->ShowNetworkConnectError( 283 delegate_->ShowNetworkConnectError(
269 NetworkConnectionHandler::kErrorActivateFailed, network_id); 284 NetworkConnectionHandler::kErrorActivateFailed, network_id);
270 } 285 }
271 286
272 void NetworkConnectImpl::OnActivateSucceeded(const std::string& network_id) { 287 void NetworkConnectImpl::OnActivateSucceeded(const std::string& network_id) {
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 return; 410 return;
396 } else if (network->RequiresActivation()) { 411 } else if (network->RequiresActivation()) {
397 ActivateCellular(network_id); 412 ActivateCellular(network_id);
398 return; 413 return;
399 } 414 }
400 } 415 }
401 const bool check_error_state = true; 416 const bool check_error_state = true;
402 CallConnectToNetwork(network_id, check_error_state); 417 CallConnectToNetwork(network_id, check_error_state);
403 } 418 }
404 419
420 void NetworkConnectImpl::DisconnectFromNetworkId(
421 const std::string& network_id) {
422 NET_LOG_USER("DisconnectFromNetwork", network_id);
423 CallDisconnectFromNetwork(network_id);
424 }
425
405 bool NetworkConnectImpl::MaybeShowConfigureUI( 426 bool NetworkConnectImpl::MaybeShowConfigureUI(
406 const std::string& network_id, 427 const std::string& network_id,
407 const std::string& connect_error) { 428 const std::string& connect_error) {
408 return MaybeShowConfigureUIImpl(network_id, connect_error); 429 return MaybeShowConfigureUIImpl(network_id, connect_error);
409 } 430 }
410 431
411 void NetworkConnectImpl::SetTechnologyEnabled( 432 void NetworkConnectImpl::SetTechnologyEnabled(
412 const NetworkTypePattern& technology, 433 const NetworkTypePattern& technology,
413 bool enabled_state) { 434 bool enabled_state) {
414 std::string log_string = base::StringPrintf( 435 std::string log_string = base::StringPrintf(
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 NetworkConnect* NetworkConnect::Get() { 598 NetworkConnect* NetworkConnect::Get() {
578 CHECK(g_network_connect); 599 CHECK(g_network_connect);
579 return g_network_connect; 600 return g_network_connect;
580 } 601 }
581 602
582 NetworkConnect::NetworkConnect() {} 603 NetworkConnect::NetworkConnect() {}
583 604
584 NetworkConnect::~NetworkConnect() {} 605 NetworkConnect::~NetworkConnect() {}
585 606
586 } // namespace chromeos 607 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698