| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/cros/network_library_impl_stub.h" | 5 #include "chrome/browser/chromeos/cros/network_library_impl_stub.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/stl_util.h" |
| 9 #include "chrome/browser/chromeos/cros/native_network_constants.h" | 10 #include "chrome/browser/chromeos/cros/native_network_constants.h" |
| 10 #include "chrome/common/chrome_switches.h" | 11 #include "chrome/common/chrome_switches.h" |
| 11 #include "content/public/browser/browser_thread.h" | 12 #include "content/public/browser/browser_thread.h" |
| 12 #include "third_party/cros_system_api/dbus/service_constants.h" | 13 #include "third_party/cros_system_api/dbus/service_constants.h" |
| 13 | 14 |
| 14 using content::BrowserThread; | 15 using content::BrowserThread; |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 bool IsEthernetEnabled() { | 19 bool IsEthernetEnabled() { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 36 if (IsEthernetEnabled()) | 37 if (IsEthernetEnabled()) |
| 37 check_portal_list_ = "ethernet,wifi,cellular"; | 38 check_portal_list_ = "ethernet,wifi,cellular"; |
| 38 else | 39 else |
| 39 check_portal_list_ = "wifi,cellular"; | 40 check_portal_list_ = "wifi,cellular"; |
| 40 } | 41 } |
| 41 | 42 |
| 42 NetworkLibraryImplStub::~NetworkLibraryImplStub() { | 43 NetworkLibraryImplStub::~NetworkLibraryImplStub() { |
| 43 disabled_wifi_networks_.clear(); | 44 disabled_wifi_networks_.clear(); |
| 44 disabled_cellular_networks_.clear(); | 45 disabled_cellular_networks_.clear(); |
| 45 disabled_wimax_networks_.clear(); | 46 disabled_wimax_networks_.clear(); |
| 47 STLDeleteValues(&service_configurations_); |
| 46 } | 48 } |
| 47 | 49 |
| 48 void NetworkLibraryImplStub::Init() { | 50 void NetworkLibraryImplStub::Init() { |
| 49 is_locked_ = false; | 51 is_locked_ = false; |
| 50 | 52 |
| 51 // Devices | 53 // Devices |
| 52 int devices = (1 << TYPE_WIFI) | (1 << TYPE_CELLULAR) | (1 << TYPE_WIMAX); | 54 int devices = (1 << TYPE_WIFI) | (1 << TYPE_CELLULAR) | (1 << TYPE_WIMAX); |
| 53 if (IsEthernetEnabled()) | 55 if (IsEthernetEnabled()) |
| 54 devices |= 1 << TYPE_ETHERNET; | 56 devices |= 1 << TYPE_ETHERNET; |
| 55 available_devices_ = devices; | 57 available_devices_ = devices; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 wifi2->set_encryption(SECURITY_NONE); | 122 wifi2->set_encryption(SECURITY_NONE); |
| 121 AddStubNetwork(wifi2, PROFILE_SHARED); | 123 AddStubNetwork(wifi2, PROFILE_SHARED); |
| 122 | 124 |
| 123 WifiNetwork* wifi3 = new WifiNetwork("wifi3"); | 125 WifiNetwork* wifi3 = new WifiNetwork("wifi3"); |
| 124 wifi3->set_name("Fake WiFi3 Encrypted with a long name"); | 126 wifi3->set_name("Fake WiFi3 Encrypted with a long name"); |
| 125 wifi3->set_strength(60); | 127 wifi3->set_strength(60); |
| 126 wifi3->set_encryption(SECURITY_WEP); | 128 wifi3->set_encryption(SECURITY_WEP); |
| 127 wifi3->set_passphrase_required(true); | 129 wifi3->set_passphrase_required(true); |
| 128 AddStubNetwork(wifi3, PROFILE_USER); | 130 AddStubNetwork(wifi3, PROFILE_USER); |
| 129 | 131 |
| 132 CertificatePattern pattern; |
| 133 IssuerSubjectPattern issuer; |
| 134 issuer.set_organization("Google, Inc."); |
| 135 pattern.set_issuer(issuer); |
| 136 std::vector<std::string> enrollment_uris; |
| 137 enrollment_uris.push_back("http://youtu.be/dQw4w9WgXcQ"); |
| 138 enrollment_uris.push_back("chrome-extension://abc/keygen-cert.html"); |
| 139 pattern.set_enrollment_uri_list(enrollment_uris); |
| 140 |
| 130 WifiNetwork* wifi_cert_pattern = new WifiNetwork("wifi_cert_pattern"); | 141 WifiNetwork* wifi_cert_pattern = new WifiNetwork("wifi_cert_pattern"); |
| 131 wifi_cert_pattern->set_name("Fake WiFi CertPattern 802.1x"); | 142 wifi_cert_pattern->set_name("Fake WiFi CertPattern 802.1x"); |
| 132 wifi_cert_pattern->set_strength(50); | 143 wifi_cert_pattern->set_strength(50); |
| 133 wifi_cert_pattern->set_connectable(false); | 144 wifi_cert_pattern->set_connectable(false); |
| 134 wifi_cert_pattern->set_encryption(SECURITY_8021X); | 145 wifi_cert_pattern->set_encryption(SECURITY_8021X); |
| 135 wifi_cert_pattern->SetEAPMethod(EAP_METHOD_TLS); | 146 wifi_cert_pattern->SetEAPMethod(EAP_METHOD_TLS); |
| 136 wifi_cert_pattern->SetEAPUseSystemCAs(true); | 147 wifi_cert_pattern->SetEAPUseSystemCAs(true); |
| 137 wifi_cert_pattern->SetEAPIdentity("user@example.com"); | 148 wifi_cert_pattern->SetEAPIdentity("user@example.com"); |
| 138 wifi_cert_pattern->SetEAPPhase2Auth(EAP_PHASE_2_AUTH_AUTO); | 149 wifi_cert_pattern->SetEAPPhase2Auth(EAP_PHASE_2_AUTH_AUTO); |
| 139 wifi_cert_pattern->set_client_cert_type(CLIENT_CERT_TYPE_PATTERN); | 150 wifi_cert_pattern->set_client_cert_type(CLIENT_CERT_TYPE_PATTERN); |
| 140 CertificatePattern pattern; | |
| 141 IssuerSubjectPattern subject; | |
| 142 subject.set_organization("Google Inc"); | |
| 143 pattern.set_subject(subject); | |
| 144 std::vector<std::string> enrollment_uris; | |
| 145 enrollment_uris.push_back("http://www.google.com/chromebook"); | |
| 146 pattern.set_enrollment_uri_list(enrollment_uris); | |
| 147 wifi_cert_pattern->set_client_cert_pattern(pattern); | 151 wifi_cert_pattern->set_client_cert_pattern(pattern); |
| 148 wifi_cert_pattern->set_eap_save_credentials(true); | 152 wifi_cert_pattern->set_eap_save_credentials(true); |
| 149 | 153 |
| 150 AddStubNetwork(wifi_cert_pattern, PROFILE_USER); | 154 AddStubNetwork(wifi_cert_pattern, PROFILE_USER); |
| 151 | 155 |
| 152 WifiNetwork* wifi4 = new WifiNetwork("wifi4"); | 156 WifiNetwork* wifi4 = new WifiNetwork("wifi4"); |
| 153 wifi4->set_name("Fake WiFi4 802.1x"); | 157 wifi4->set_name("Fake WiFi4 802.1x"); |
| 154 wifi4->set_strength(50); | 158 wifi4->set_strength(50); |
| 155 wifi4->set_connectable(false); | 159 wifi4->set_connectable(false); |
| 156 wifi4->set_encryption(SECURITY_8021X); | 160 wifi4->set_encryption(SECURITY_8021X); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 | 268 |
| 265 VirtualNetwork* vpn4 = new VirtualNetwork("vpn4"); | 269 VirtualNetwork* vpn4 = new VirtualNetwork("vpn4"); |
| 266 vpn4->set_name("Fake VPN4 (policy-managed)"); | 270 vpn4->set_name("Fake VPN4 (policy-managed)"); |
| 267 vpn4->set_server_hostname("vpn4server.fake.com"); | 271 vpn4->set_server_hostname("vpn4server.fake.com"); |
| 268 vpn4->set_provider_type(PROVIDER_TYPE_OPEN_VPN); | 272 vpn4->set_provider_type(PROVIDER_TYPE_OPEN_VPN); |
| 269 NetworkUIData vpn4_ui_data; | 273 NetworkUIData vpn4_ui_data; |
| 270 vpn4_ui_data.set_onc_source(onc::ONC_SOURCE_DEVICE_POLICY); | 274 vpn4_ui_data.set_onc_source(onc::ONC_SOURCE_DEVICE_POLICY); |
| 271 vpn4->set_ui_data(vpn4_ui_data); | 275 vpn4->set_ui_data(vpn4_ui_data); |
| 272 AddStubNetwork(vpn4, PROFILE_USER); | 276 AddStubNetwork(vpn4, PROFILE_USER); |
| 273 | 277 |
| 278 VirtualNetwork* vpn_cert_pattern = new VirtualNetwork("vpn_cert_pattern"); |
| 279 vpn_cert_pattern->set_name("Fake VPN CertPattern"); |
| 280 vpn_cert_pattern->set_server_hostname("vpn4server.fake.com"); |
| 281 vpn_cert_pattern->set_provider_type(PROVIDER_TYPE_OPEN_VPN); |
| 282 vpn_cert_pattern->set_client_cert_type(CLIENT_CERT_TYPE_PATTERN); |
| 283 vpn_cert_pattern->set_client_cert_pattern(pattern); |
| 284 |
| 285 AddStubNetwork(vpn_cert_pattern, PROFILE_USER); |
| 286 |
| 274 wifi_scanning_ = false; | 287 wifi_scanning_ = false; |
| 275 offline_mode_ = false; | 288 offline_mode_ = false; |
| 276 | 289 |
| 277 // Ensure our active network is connected and vice versa, otherwise our | 290 // Ensure our active network is connected and vice versa, otherwise our |
| 278 // autotest browser_tests sometimes conclude the device is offline. | 291 // autotest browser_tests sometimes conclude the device is offline. |
| 279 CHECK(active_network()->connected()) | 292 CHECK(active_network()->connected()) |
| 280 << "Active: " << active_network()->name(); | 293 << "Active: " << active_network()->name(); |
| 281 CHECK(connected_network()->is_active()); | 294 CHECK(connected_network()->is_active()); |
| 282 | 295 |
| 283 std::string test_blob( | 296 std::string test_blob( |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 remembered_vpn->set_ui_data(vpn_ui_data); | 380 remembered_vpn->set_ui_data(vpn_ui_data); |
| 368 remembered = remembered_vpn; | 381 remembered = remembered_vpn; |
| 369 } | 382 } |
| 370 if (remembered) { | 383 if (remembered) { |
| 371 remembered->set_name(network->name()); | 384 remembered->set_name(network->name()); |
| 372 remembered->set_unique_id(network->unique_id()); | 385 remembered->set_unique_id(network->unique_id()); |
| 373 // ValidateAndAddRememberedNetwork will insert the network into the right | 386 // ValidateAndAddRememberedNetwork will insert the network into the right |
| 374 // remembered_*_networks_ list and the remembered_network_map_. | 387 // remembered_*_networks_ list and the remembered_network_map_. |
| 375 if (!ValidateAndAddRememberedNetwork(remembered)) | 388 if (!ValidateAndAddRememberedNetwork(remembered)) |
| 376 NOTREACHED(); | 389 NOTREACHED(); |
| 390 remembered->set_profile_path(profile->path); |
| 391 remembered->set_profile_type(profile->type); |
| 377 } | 392 } |
| 378 } | 393 } |
| 379 | 394 |
| 380 void NetworkLibraryImplStub::ConnectToNetwork(Network* network) { | 395 void NetworkLibraryImplStub::ConnectToNetwork(Network* network) { |
| 381 std::string passphrase; | 396 std::string passphrase; |
| 382 if (network->type() == TYPE_WIFI) { | 397 if (network->type() == TYPE_WIFI) { |
| 383 WifiNetwork* wifi = static_cast<WifiNetwork*>(network); | 398 WifiNetwork* wifi = static_cast<WifiNetwork*>(network); |
| 384 if (wifi->passphrase_required()) | 399 if (wifi->passphrase_required()) |
| 385 passphrase = wifi->passphrase(); | 400 passphrase = wifi->passphrase(); |
| 386 } else if (network->type() == TYPE_WIMAX) { | 401 } else if (network->type() == TYPE_WIMAX) { |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 const std::string& service_path) {} | 471 const std::string& service_path) {} |
| 457 | 472 |
| 458 void NetworkLibraryImplStub::MonitorNetworkDeviceStart( | 473 void NetworkLibraryImplStub::MonitorNetworkDeviceStart( |
| 459 const std::string& device_path) {} | 474 const std::string& device_path) {} |
| 460 | 475 |
| 461 void NetworkLibraryImplStub::MonitorNetworkDeviceStop( | 476 void NetworkLibraryImplStub::MonitorNetworkDeviceStop( |
| 462 const std::string& device_path) {} | 477 const std::string& device_path) {} |
| 463 | 478 |
| 464 void NetworkLibraryImplStub::CallConfigureService( | 479 void NetworkLibraryImplStub::CallConfigureService( |
| 465 const std::string& identifier, | 480 const std::string& identifier, |
| 466 const DictionaryValue* info) {} | 481 const DictionaryValue* info) { |
| 482 DictionaryValue*& config_entry = service_configurations_[identifier]; |
| 483 delete config_entry; |
| 484 config_entry = info->DeepCopy(); |
| 485 } |
| 467 | 486 |
| 468 void NetworkLibraryImplStub::CallConnectToNetwork(Network* network) { | 487 void NetworkLibraryImplStub::CallConnectToNetwork(Network* network) { |
| 469 // Immediately set the network to active to mimic shill's behavior. | 488 // Immediately set the network to active to mimic shill's behavior. |
| 470 SetActiveNetwork(network->type(), network->service_path()); | 489 SetActiveNetwork(network->type(), network->service_path()); |
| 471 // If a delay has been set (i.e. we are interactive), delay the call to | 490 // If a delay has been set (i.e. we are interactive), delay the call to |
| 472 // ConnectToNetwork (but signal observers since we changed connecting state). | 491 // ConnectToNetwork (but signal observers since we changed connecting state). |
| 473 if (connect_delay_ms_) { | 492 if (connect_delay_ms_) { |
| 474 // This class is a Singleton and won't be deleted until this callbacks has | 493 // This class is a Singleton and won't be deleted until this callbacks has |
| 475 // run. | 494 // run. |
| 476 BrowserThread::PostDelayedTask( | 495 BrowserThread::PostDelayedTask( |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 739 dictionary->SetString(flimflam::kTypeProperty, | 758 dictionary->SetString(flimflam::kTypeProperty, |
| 740 ConnectionTypeToString(network->type())); | 759 ConnectionTypeToString(network->type())); |
| 741 dictionary->SetString(flimflam::kNameProperty, network->name()); | 760 dictionary->SetString(flimflam::kNameProperty, network->name()); |
| 742 dictionary->SetString(flimflam::kGuidProperty, network->unique_id()); | 761 dictionary->SetString(flimflam::kGuidProperty, network->unique_id()); |
| 743 dictionary->SetString(flimflam::kStateProperty, | 762 dictionary->SetString(flimflam::kStateProperty, |
| 744 ConnectionStateToString(network->state())); | 763 ConnectionStateToString(network->state())); |
| 745 } | 764 } |
| 746 callback.Run(service_path, dictionary.get()); | 765 callback.Run(service_path, dictionary.get()); |
| 747 } | 766 } |
| 748 | 767 |
| 768 const std::map<std::string, base::DictionaryValue*>& |
| 769 NetworkLibraryImplStub::GetConfigurations() { |
| 770 return service_configurations_; |
| 771 } |
| 772 |
| 749 } // namespace chromeos | 773 } // namespace chromeos |
| OLD | NEW |