| Index: chrome/browser/chromeos/cros/network_library_impl_stub.cc
|
| diff --git a/chrome/browser/chromeos/cros/network_library_impl_stub.cc b/chrome/browser/chromeos/cros/network_library_impl_stub.cc
|
| deleted file mode 100644
|
| index af7ec4408ca5a40ee6f0f725c3bfeba04e43b7f8..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/cros/network_library_impl_stub.cc
|
| +++ /dev/null
|
| @@ -1,784 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/chromeos/cros/network_library_impl_stub.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/command_line.h"
|
| -#include "base/stl_util.h"
|
| -#include "chrome/browser/chromeos/cros/native_network_constants.h"
|
| -#include "chromeos/chromeos_switches.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "third_party/cros_system_api/dbus/service_constants.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace {
|
| -
|
| -bool IsEthernetEnabled() {
|
| - return !CommandLine::ForCurrentProcess()->HasSwitch(
|
| - chromeos::switches::kDisableStubEthernet);
|
| -}
|
| -
|
| -bool IsInteractive() {
|
| - return CommandLine::ForCurrentProcess()->HasSwitch(
|
| - chromeos::switches::kEnableStubInteractive);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -namespace chromeos {
|
| -
|
| -NetworkLibraryImplStub::NetworkLibraryImplStub()
|
| - : ip_address_("1.1.1.1"),
|
| - hardware_address_("01:23:45:67:89:ab"),
|
| - pin_(""),
|
| - pin_required_(false),
|
| - pin_entered_(false),
|
| - network_priority_order_(0),
|
| - weak_pointer_factory_(this) {
|
| -}
|
| -
|
| -NetworkLibraryImplStub::~NetworkLibraryImplStub() {
|
| - disabled_wifi_networks_.clear();
|
| - disabled_cellular_networks_.clear();
|
| - disabled_wimax_networks_.clear();
|
| - STLDeleteValues(&service_configurations_);
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::Init() {
|
| - is_locked_ = false;
|
| -
|
| - // Enable only Cellular initially
|
| - int devices = (1 << TYPE_WIFI) | (1 << TYPE_CELLULAR) | (1 << TYPE_WIMAX);
|
| - if (IsEthernetEnabled())
|
| - devices |= 1 << TYPE_ETHERNET;
|
| - available_devices_ = devices;
|
| - uninitialized_devices_ = (1 << TYPE_CELLULAR);
|
| - enabled_devices_ = (available_devices_ & (1 << TYPE_ETHERNET));
|
| -
|
| - if (IsInteractive()) {
|
| - const int kWifiInitDelaySeconds = 5;
|
| - const int kCellularInitDelaySeconds = 10;
|
| - const int kCellularActivateDelaySeconds = 15;
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&NetworkLibraryImplStub::CompleteWifiInit,
|
| - weak_pointer_factory_.GetWeakPtr()),
|
| - base::TimeDelta::FromSeconds(kWifiInitDelaySeconds));
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&NetworkLibraryImplStub::CompleteCellularInit,
|
| - weak_pointer_factory_.GetWeakPtr()),
|
| - base::TimeDelta::FromSeconds(kCellularInitDelaySeconds));
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&NetworkLibraryImplStub::CompleteCellularActivate,
|
| - weak_pointer_factory_.GetWeakPtr()),
|
| - base::TimeDelta::FromSeconds(kCellularActivateDelaySeconds));
|
| - } else {
|
| - CompleteWifiInit();
|
| - CompleteCellularInit();
|
| - }
|
| -}
|
| -
|
| -bool NetworkLibraryImplStub::IsCros() const {
|
| - return false;
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////
|
| -// NetworkLibraryImplStub private methods.
|
| -
|
| -void NetworkLibraryImplStub::CompleteWifiInit() {
|
| - VLOG(1) << "CompleteWifiInit()";
|
| -
|
| - uninitialized_devices_ &= ~(1 << TYPE_WIFI);
|
| - enabled_devices_ |= (available_devices_ & (1 << TYPE_WIFI));
|
| -
|
| - // Profiles
|
| - AddProfile("default", PROFILE_SHARED);
|
| - AddProfile("user", PROFILE_USER);
|
| -
|
| - // Networks
|
| - // If these change, the expectations in network_library_unittest and
|
| - // network_menu_icon_unittest need to be changed also.
|
| -
|
| - if (IsEthernetEnabled()) {
|
| - Network* ethernet = new EthernetNetwork("eth1");
|
| - ethernet->set_name("Fake Ethernet");
|
| - ethernet->set_connected();
|
| - AddStubNetwork(ethernet, PROFILE_SHARED);
|
| - ethernet->set_is_active(ethernet->connected());
|
| - }
|
| -
|
| - WifiNetwork* wifi1 = new WifiNetwork("wifi1");
|
| - wifi1->set_name("Fake WiFi1");
|
| - wifi1->set_strength(100);
|
| - wifi1->set_connected();
|
| - wifi1->set_encryption(SECURITY_NONE);
|
| - AddStubNetwork(wifi1, PROFILE_SHARED);
|
| -
|
| - WifiNetwork* wifi2 = new WifiNetwork("wifi2");
|
| - wifi2->set_name("Fake WiFi2");
|
| - wifi2->set_strength(70);
|
| - wifi2->set_encryption(SECURITY_NONE);
|
| - AddStubNetwork(wifi2, PROFILE_SHARED);
|
| -
|
| - WifiNetwork* wifi3 = new WifiNetwork("wifi3");
|
| - wifi3->set_name("Fake WiFi3 Encrypted with a long name");
|
| - wifi3->set_strength(60);
|
| - wifi3->set_encryption(SECURITY_WEP);
|
| - wifi3->set_passphrase_required(true);
|
| - AddStubNetwork(wifi3, PROFILE_USER);
|
| -
|
| - CertificatePattern pattern;
|
| - IssuerSubjectPattern issuer;
|
| - issuer.set_organization("Google, Inc.");
|
| - pattern.set_issuer(issuer);
|
| - std::vector<std::string> enrollment_uris;
|
| - enrollment_uris.push_back("http://youtu.be/dQw4w9WgXcQ");
|
| - enrollment_uris.push_back("chrome-extension://abc/keygen-cert.html");
|
| - pattern.set_enrollment_uri_list(enrollment_uris);
|
| -
|
| - WifiNetwork* wifi_cert_pattern = new WifiNetwork("wifi_cert_pattern");
|
| - wifi_cert_pattern->set_name("Fake WiFi CertPattern 802.1x");
|
| - wifi_cert_pattern->set_strength(50);
|
| - wifi_cert_pattern->set_connectable(false);
|
| - wifi_cert_pattern->set_encryption(SECURITY_8021X);
|
| - wifi_cert_pattern->SetEAPMethod(EAP_METHOD_TLS);
|
| - wifi_cert_pattern->SetEAPUseSystemCAs(true);
|
| - wifi_cert_pattern->SetEAPIdentity("user@example.com");
|
| - wifi_cert_pattern->SetEAPPhase2Auth(EAP_PHASE_2_AUTH_AUTO);
|
| - wifi_cert_pattern->set_client_cert_type(CLIENT_CERT_TYPE_PATTERN);
|
| - wifi_cert_pattern->set_client_cert_pattern(pattern);
|
| - wifi_cert_pattern->set_eap_save_credentials(true);
|
| -
|
| - AddStubNetwork(wifi_cert_pattern, PROFILE_USER);
|
| -
|
| - WifiNetwork* wifi4 = new WifiNetwork("wifi4");
|
| - wifi4->set_name("Fake WiFi4 802.1x");
|
| - wifi4->set_strength(50);
|
| - wifi4->set_connectable(false);
|
| - wifi4->set_encryption(SECURITY_8021X);
|
| - wifi4->SetEAPMethod(EAP_METHOD_PEAP);
|
| - wifi4->SetEAPIdentity("nobody@google.com");
|
| - wifi4->SetEAPPassphrase("password");
|
| - AddStubNetwork(wifi4, PROFILE_NONE);
|
| -
|
| - WifiNetwork* wifi5 = new WifiNetwork("wifi5");
|
| - wifi5->set_name("Fake WiFi5 UTF-8 SSID ");
|
| - wifi5->SetSsid("Fake WiFi5 UTF-8 SSID \u3042\u3044\u3046");
|
| - wifi5->set_strength(25);
|
| - AddStubNetwork(wifi5, PROFILE_NONE);
|
| -
|
| - WifiNetwork* wifi6 = new WifiNetwork("wifi6");
|
| - wifi6->set_name("Fake WiFi6 latin-1 SSID ");
|
| - wifi6->SetSsid("Fake WiFi6 latin-1 SSID \xc0\xcb\xcc\xd6\xfb");
|
| - wifi6->set_strength(20);
|
| - AddStubNetwork(wifi6, PROFILE_NONE);
|
| -
|
| - WifiNetwork* wifi7 = new WifiNetwork("wifi7");
|
| - wifi7->set_name("Fake Wifi7 (policy-managed)");
|
| - wifi7->set_strength(100);
|
| - wifi7->set_connectable(false);
|
| - wifi7->set_passphrase_required(true);
|
| - wifi7->set_encryption(SECURITY_8021X);
|
| - wifi7->SetEAPMethod(EAP_METHOD_PEAP);
|
| - wifi7->SetEAPIdentity("enterprise@example.com");
|
| - wifi7->SetEAPPassphrase("password");
|
| - NetworkUIData wifi7_ui_data;
|
| - wifi7_ui_data.set_onc_source(onc::ONC_SOURCE_DEVICE_POLICY);
|
| - wifi7->set_ui_data(wifi7_ui_data);
|
| - AddStubNetwork(wifi7, PROFILE_USER);
|
| -
|
| - VirtualNetwork* vpn1 = new VirtualNetwork("vpn1");
|
| - vpn1->set_name("Fake VPN1");
|
| - vpn1->set_server_hostname("vpn1server.fake.com");
|
| - vpn1->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_PSK);
|
| - vpn1->set_username("VPN User 1");
|
| - AddStubNetwork(vpn1, PROFILE_USER);
|
| -
|
| - VirtualNetwork* vpn2 = new VirtualNetwork("vpn2");
|
| - vpn2->set_name("Fake VPN2");
|
| - vpn2->set_server_hostname("vpn2server.fake.com");
|
| - vpn2->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT);
|
| - vpn2->set_username("VPN User 2");
|
| - AddStubNetwork(vpn2, PROFILE_USER);
|
| -
|
| - VirtualNetwork* vpn3 = new VirtualNetwork("vpn3");
|
| - vpn3->set_name("Fake VPN3");
|
| - vpn3->set_server_hostname("vpn3server.fake.com");
|
| - vpn3->set_provider_type(PROVIDER_TYPE_OPEN_VPN);
|
| - AddStubNetwork(vpn3, PROFILE_USER);
|
| -
|
| - VirtualNetwork* vpn4 = new VirtualNetwork("vpn4");
|
| - vpn4->set_name("Fake VPN4 (policy-managed)");
|
| - vpn4->set_server_hostname("vpn4server.fake.com");
|
| - vpn4->set_provider_type(PROVIDER_TYPE_OPEN_VPN);
|
| - NetworkUIData vpn4_ui_data;
|
| - vpn4_ui_data.set_onc_source(onc::ONC_SOURCE_DEVICE_POLICY);
|
| - vpn4->set_ui_data(vpn4_ui_data);
|
| - AddStubNetwork(vpn4, PROFILE_USER);
|
| -
|
| - VirtualNetwork* vpn_cert_pattern = new VirtualNetwork("vpn_cert_pattern");
|
| - vpn_cert_pattern->set_name("Fake VPN CertPattern");
|
| - vpn_cert_pattern->set_server_hostname("vpn4server.fake.com");
|
| - vpn_cert_pattern->set_provider_type(PROVIDER_TYPE_OPEN_VPN);
|
| - vpn_cert_pattern->set_client_cert_type(CLIENT_CERT_TYPE_PATTERN);
|
| - vpn_cert_pattern->set_client_cert_pattern(pattern);
|
| -
|
| - AddStubNetwork(vpn_cert_pattern, PROFILE_USER);
|
| -
|
| - wifi_scanning_ = false;
|
| -
|
| - // Ensure our active network is connected and vice versa, otherwise our
|
| - // autotest browser_tests sometimes conclude the device is offline.
|
| - CHECK(active_network()->connected())
|
| - << "Active: " << active_network()->name();
|
| - CHECK(connected_network()->is_active());
|
| -
|
| - std::string test_blob(
|
| - "{"
|
| - " \"NetworkConfigurations\": ["
|
| - " {"
|
| - " \"GUID\": \"guid\","
|
| - " \"Type\": \"VPN\","
|
| - " \"Name\": \"VPNtest\","
|
| - " \"VPN\": {"
|
| - " \"Host\": \"172.22.12.98\","
|
| - " \"Type\": \"L2TP-IPsec\","
|
| - " \"IPsec\": {"
|
| - " \"AuthenticationType\": \"PSK\","
|
| - " \"IKEVersion\": 2,"
|
| - " \"PSK\": \"chromeos\","
|
| - " },"
|
| - " \"L2TP\": {"
|
| - " \"Username\": \"vpntest\","
|
| - " }"
|
| - " }"
|
| - " }"
|
| - " ],"
|
| - " \"Certificates\": []"
|
| - "}");
|
| -// LoadOncNetworks(test_blob, "", onc::ONC_SOURCE_USER_IMPORT, NULL);
|
| -
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CompleteCellularInit() {
|
| - VLOG(1) << "CompleteCellularInit()";
|
| -
|
| - uninitialized_devices_ &= ~(1 << TYPE_CELLULAR);
|
| - uninitialized_devices_ &= ~(1 << TYPE_WIMAX);
|
| - enabled_devices_ |= (available_devices_ & (1 << TYPE_CELLULAR));
|
| - enabled_devices_ |= (available_devices_ & (1 << TYPE_WIMAX));
|
| -
|
| - base::ListValue supported_carriers;
|
| - supported_carriers.Append(new StringValue("Generic CDMA Carrier 1"));
|
| - supported_carriers.Append(new StringValue("Generic UMTS"));
|
| - supported_carriers.Append(new StringValue("Generic CDMA Carrier 2"));
|
| - supported_carriers.Append(new StringValue("Generic CDMA Carrier 3"));
|
| -
|
| - NetworkDevice* cellular = new NetworkDevice("cellular");
|
| - cellular->type_ = TYPE_CELLULAR;
|
| - cellular->set_technology_family(TECHNOLOGY_FAMILY_CDMA);
|
| - cellular->set_carrier("Generic CDMA Carrier 2");
|
| - cellular->imsi_ = "123456789012345";
|
| - cellular->set_supported_carriers(supported_carriers);
|
| - device_map_["cellular"] = cellular;
|
| -
|
| - CellularApn apn;
|
| - apn.apn = "apn";
|
| - apn.network_id = "network_id";
|
| - apn.username = "username";
|
| - apn.password = "password";
|
| - apn.name = "name";
|
| - apn.localized_name = "localized_name";
|
| - apn.language = "language";
|
| -
|
| - CellularApnList apn_list;
|
| - apn_list.push_back(apn);
|
| -
|
| - NetworkDevice* cellular_gsm = new NetworkDevice("cellular_gsm");
|
| - cellular_gsm->type_ = TYPE_CELLULAR;
|
| - cellular_gsm->set_technology_family(TECHNOLOGY_FAMILY_GSM);
|
| - cellular_gsm->imsi_ = "123456789012345";
|
| - cellular_gsm->set_sim_pin_required(SIM_PIN_REQUIRED);
|
| - cellular_gsm->set_provider_apn_list(apn_list);
|
| - cellular_gsm->set_supported_carriers(supported_carriers);
|
| - device_map_["cellular_gsm"] = cellular_gsm;
|
| -
|
| - CellularNetwork* cellular1 = new CellularNetwork("cellular1");
|
| - cellular1->set_name("Fake Cellular 1");
|
| - cellular1->set_device_path(cellular->device_path());
|
| - cellular1->set_strength(100);
|
| - cellular1->set_connected();
|
| - cellular1->set_activation_state(ACTIVATION_STATE_ACTIVATED);
|
| - cellular1->set_payment_url(std::string("http://www.google.com"));
|
| - cellular1->set_usage_url(std::string("http://www.google.com"));
|
| - cellular1->set_network_technology(NETWORK_TECHNOLOGY_EVDO);
|
| - AddStubNetwork(cellular1, PROFILE_NONE);
|
| -
|
| - CellularNetwork* cellular2 = new CellularNetwork("cellular2");
|
| - cellular2->set_name("Fake Cellular 2");
|
| - cellular2->set_device_path(cellular->device_path());
|
| - cellular2->set_strength(50);
|
| - cellular2->set_activation_state(ACTIVATION_STATE_ACTIVATING);
|
| - cellular2->set_network_technology(NETWORK_TECHNOLOGY_UMTS);
|
| - cellular2->set_roaming_state(ROAMING_STATE_ROAMING);
|
| - cellular2->set_payment_url(std::string("http://www.google.com"));
|
| - cellular2->set_usage_url(std::string("http://www.google.com"));
|
| - AddStubNetwork(cellular2, PROFILE_NONE);
|
| -
|
| - CellularNetwork* cellular3 = new CellularNetwork("cellular3");
|
| - cellular3->set_name("Fake Cellular 3 (policy-managed)");
|
| - cellular3->set_device_path(cellular->device_path());
|
| - cellular3->set_activation_state(ACTIVATION_STATE_ACTIVATED);
|
| - cellular3->set_network_technology(NETWORK_TECHNOLOGY_EVDO);
|
| - NetworkUIData cellular3_ui_data;
|
| - cellular3_ui_data.set_onc_source(onc::ONC_SOURCE_USER_POLICY);
|
| - cellular3->set_ui_data(cellular3_ui_data);
|
| - AddStubNetwork(cellular3, PROFILE_NONE);
|
| -
|
| - CellularNetwork* cellular4 = new CellularNetwork("cellular4");
|
| - cellular4->set_name("Fake Cellular 4 (policy-managed)");
|
| - cellular4->set_device_path(cellular_gsm->device_path());
|
| - cellular4->set_activation_state(ACTIVATION_STATE_ACTIVATED);
|
| - cellular4->set_network_technology(NETWORK_TECHNOLOGY_GSM);
|
| - NetworkUIData cellular4_ui_data;
|
| - cellular4_ui_data.set_onc_source(onc::ONC_SOURCE_USER_POLICY);
|
| - cellular4->set_ui_data(cellular4_ui_data);
|
| - AddStubNetwork(cellular4, PROFILE_NONE);
|
| -
|
| - WimaxNetwork* wimax1 = new WimaxNetwork("wimax1");
|
| - wimax1->set_name("Fake WiMAX Protected");
|
| - wimax1->set_strength(75);
|
| - wimax1->set_connectable(true);
|
| - wimax1->set_eap_identity("WiMAX User 1");
|
| - wimax1->set_passphrase_required(true);
|
| - AddStubNetwork(wimax1, PROFILE_NONE);
|
| -
|
| - WimaxNetwork* wimax2 = new WimaxNetwork("wimax2");
|
| - wimax2->set_name("Fake WiMAX Open");
|
| - wimax2->set_strength(50);
|
| - wimax2->set_connected();
|
| - wimax2->set_passphrase_required(false);
|
| - AddStubNetwork(wimax2, PROFILE_NONE);
|
| -
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CompleteCellularActivate() {
|
| - VLOG(1) << "CompleteCellularActivate()";
|
| - CellularNetwork* cellular2 = FindCellularNetworkByPath("cellular2");
|
| - cellular2->set_activation_state(ACTIVATION_STATE_ACTIVATED);
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::AddStubNetwork(
|
| - Network* network, NetworkProfileType profile_type) {
|
| - // Currently we don't prioritize networks in Shill so don't do so in the stub.
|
| - // network->priority_order_ = network_priority_order_++;
|
| - network->CalculateUniqueId();
|
| - if (!network->unique_id().empty())
|
| - network_unique_id_map_[network->unique_id()] = network;
|
| - AddNetwork(network);
|
| - UpdateActiveNetwork(network);
|
| - SetProfileType(network, profile_type);
|
| - AddStubRememberedNetwork(network);
|
| -}
|
| -
|
| -// Add a remembered network to the appropriate profile if specified.
|
| -void NetworkLibraryImplStub::AddStubRememberedNetwork(Network* network) {
|
| - if (network->profile_type() == PROFILE_NONE)
|
| - return;
|
| -
|
| - Network* remembered = FindRememberedFromNetwork(network);
|
| - if (remembered) {
|
| - // This network is already in the rememebred list. Check to see if the
|
| - // type has changed.
|
| - if (remembered->profile_type() == network->profile_type())
|
| - return; // Same type, nothing to do.
|
| - // Delete the existing remembered network from the previous profile.
|
| - DeleteRememberedNetwork(remembered->service_path());
|
| - remembered = NULL;
|
| - }
|
| -
|
| - NetworkProfile* profile = GetProfileForType(network->profile_type());
|
| - if (profile) {
|
| - profile->services.insert(network->service_path());
|
| - } else {
|
| - LOG(ERROR) << "No profile type: " << network->profile_type();
|
| - return;
|
| - }
|
| -
|
| - if (network->type() == TYPE_WIFI) {
|
| - WifiNetwork* remembered_wifi = new WifiNetwork(network->service_path());
|
| - remembered_wifi->set_encryption(remembered_wifi->encryption());
|
| - NetworkUIData wifi_ui_data;
|
| - wifi_ui_data.set_onc_source(network->ui_data().onc_source());
|
| - remembered_wifi->set_ui_data(wifi_ui_data);
|
| - remembered = remembered_wifi;
|
| - } else if (network->type() == TYPE_VPN) {
|
| - VirtualNetwork* remembered_vpn =
|
| - new VirtualNetwork(network->service_path());
|
| - remembered_vpn->set_server_hostname("vpnserver.fake.com");
|
| - remembered_vpn->set_provider_type(PROVIDER_TYPE_L2TP_IPSEC_USER_CERT);
|
| - NetworkUIData vpn_ui_data;
|
| - vpn_ui_data.set_onc_source(network->ui_data().onc_source());
|
| - remembered_vpn->set_ui_data(vpn_ui_data);
|
| - remembered = remembered_vpn;
|
| - }
|
| - if (remembered) {
|
| - remembered->set_name(network->name());
|
| - remembered->set_unique_id(network->unique_id());
|
| - // ValidateAndAddRememberedNetwork will insert the network into the right
|
| - // remembered_*_networks_ list and the remembered_network_map_.
|
| - if (!ValidateAndAddRememberedNetwork(remembered))
|
| - NOTREACHED();
|
| - remembered->set_profile_path(profile->path);
|
| - remembered->set_profile_type(profile->type);
|
| - }
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::ConnectToNetwork(Network* network) {
|
| - std::string passphrase;
|
| - if (network->type() == TYPE_WIFI) {
|
| - WifiNetwork* wifi = static_cast<WifiNetwork*>(network);
|
| - if (wifi->passphrase_required())
|
| - passphrase = wifi->passphrase();
|
| - } else if (network->type() == TYPE_WIMAX) {
|
| - WimaxNetwork* wimax = static_cast<WimaxNetwork*>(network);
|
| - if (wimax->passphrase_required())
|
| - passphrase = wimax->eap_passphrase();
|
| - }
|
| - if (!passphrase.empty()) {
|
| - if (passphrase.find("bad") == 0) {
|
| - NetworkConnectCompleted(network, CONNECT_BAD_PASSPHRASE);
|
| - return;
|
| - } else if (passphrase.find("error") == 0) {
|
| - NetworkConnectCompleted(network, CONNECT_FAILED);
|
| - return;
|
| - }
|
| - }
|
| -
|
| - // Disconnect ethernet when connecting to a new network (for UI testing).
|
| - if (IsEthernetEnabled() && network->type() != TYPE_VPN) {
|
| - ethernet_->set_is_active(false);
|
| - ethernet_->set_disconnected();
|
| - }
|
| -
|
| - // Set connected state.
|
| - network->set_connected();
|
| - network->set_user_connect_state(USER_CONNECT_CONNECTED);
|
| -
|
| - // Make the connected network the highest priority network.
|
| - // Set all other networks of the same type to disconnected + inactive;
|
| - int old_priority_order = network->priority_order_;
|
| - network->priority_order_ = 0;
|
| - for (NetworkMap::iterator iter = network_map_.begin();
|
| - iter != network_map_.end(); ++iter) {
|
| - Network* other = iter->second;
|
| - if (other == network)
|
| - continue;
|
| - if (other->priority_order_ < old_priority_order)
|
| - other->priority_order_++;
|
| - if (other->type() == network->type()) {
|
| - other->set_is_active(false);
|
| - other->set_disconnected();
|
| - }
|
| - }
|
| -
|
| - // Remember connected network.
|
| - if (network->profile_type() == PROFILE_NONE) {
|
| - NetworkProfileType profile_type = PROFILE_USER;
|
| - if (network->type() == TYPE_WIFI) {
|
| - WifiNetwork* wifi = static_cast<WifiNetwork*>(network);
|
| - if (!wifi->encrypted())
|
| - profile_type = PROFILE_SHARED;
|
| - }
|
| - SetProfileType(network, profile_type);
|
| - }
|
| - AddStubRememberedNetwork(network);
|
| -
|
| - // Call Completed and signal observers.
|
| - NetworkConnectCompleted(network, CONNECT_SUCCESS);
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::ScanCompleted() {
|
| - wifi_scanning_ = false;
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -//////////////////////////////////////////////////////////////////////////////
|
| -// NetworkLibraryImplBase implementation.
|
| -
|
| -void NetworkLibraryImplStub::MonitorNetworkStart(
|
| - const std::string& service_path) {}
|
| -
|
| -void NetworkLibraryImplStub::MonitorNetworkStop(
|
| - const std::string& service_path) {}
|
| -
|
| -void NetworkLibraryImplStub::MonitorNetworkDeviceStart(
|
| - const std::string& device_path) {}
|
| -
|
| -void NetworkLibraryImplStub::MonitorNetworkDeviceStop(
|
| - const std::string& device_path) {}
|
| -
|
| -void NetworkLibraryImplStub::CallConfigureService(
|
| - const std::string& identifier,
|
| - const DictionaryValue* info) {
|
| - DictionaryValue*& config_entry = service_configurations_[identifier];
|
| - delete config_entry;
|
| - config_entry = info->DeepCopy();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CallConnectToNetwork(Network* network) {
|
| - // Immediately set the network to active to mimic shill's behavior.
|
| - SetActiveNetwork(network->type(), network->service_path());
|
| - // If a delay has been set (i.e. we are interactive), delay the call to
|
| - // ConnectToNetwork (but signal observers since we changed connecting state).
|
| - if (IsInteractive()) {
|
| - const int kConnectDelayMs = 4 * 1000;
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&NetworkLibraryImplStub::ConnectToNetwork,
|
| - weak_pointer_factory_.GetWeakPtr(), network),
|
| - base::TimeDelta::FromMilliseconds(kConnectDelayMs));
|
| - SignalNetworkManagerObservers();
|
| - NotifyNetworkChanged(network);
|
| - } else {
|
| - ConnectToNetwork(network);
|
| - }
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CallRequestWifiNetworkAndConnect(
|
| - const std::string& ssid, ConnectionSecurity security) {
|
| - WifiNetwork* wifi = new WifiNetwork(ssid);
|
| - wifi->set_name(ssid);
|
| - wifi->set_encryption(security);
|
| - AddNetwork(wifi);
|
| - ConnectToWifiNetworkUsingConnectData(wifi);
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CallRequestVirtualNetworkAndConnect(
|
| - const std::string& service_name,
|
| - const std::string& server_hostname,
|
| - ProviderType provider_type) {
|
| - VirtualNetwork* vpn = new VirtualNetwork(service_name);
|
| - vpn->set_name(service_name);
|
| - vpn->set_server_hostname(server_hostname);
|
| - vpn->set_provider_type(provider_type);
|
| - AddNetwork(vpn);
|
| - ConnectToVirtualNetworkUsingConnectData(vpn);
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CallDeleteRememberedNetwork(
|
| - const std::string& profile_path,
|
| - const std::string& service_path) {}
|
| -
|
| -void NetworkLibraryImplStub::CallEnableNetworkDeviceType(
|
| - ConnectionType device, bool enable) {
|
| - if (enable) {
|
| - if (device == TYPE_WIFI && !wifi_enabled()) {
|
| - wifi_networks_.swap(disabled_wifi_networks_);
|
| - disabled_wifi_networks_.clear();
|
| - RequestNetworkScan();
|
| - } else if (device == TYPE_WIMAX && !wimax_enabled()) {
|
| - wimax_networks_.swap(disabled_wimax_networks_);
|
| - disabled_wimax_networks_.clear();
|
| - } else if (device == TYPE_CELLULAR && !cellular_enabled()) {
|
| - cellular_networks_.swap(disabled_cellular_networks_);
|
| - disabled_cellular_networks_.clear();
|
| - }
|
| - enabled_devices_ |= (1 << device);
|
| - } else {
|
| - if (device == TYPE_WIFI && wifi_enabled()) {
|
| - wifi_networks_.swap(disabled_wifi_networks_);
|
| - wifi_networks_.clear();
|
| - if (active_wifi_)
|
| - DisconnectFromNetwork(active_wifi_);
|
| - } else if (device == TYPE_WIMAX && wimax_enabled()) {
|
| - wimax_networks_.swap(disabled_wimax_networks_);
|
| - wimax_networks_.clear();
|
| - if (active_wimax_)
|
| - DisconnectFromNetwork(active_wimax_);
|
| - } else if (device == TYPE_CELLULAR && cellular_enabled()) {
|
| - cellular_networks_.swap(disabled_cellular_networks_);
|
| - cellular_networks_.clear();
|
| - if (active_cellular_)
|
| - DisconnectFromNetwork(active_cellular_);
|
| - }
|
| - enabled_devices_ &= ~(1 << device);
|
| - }
|
| - SignalNetworkManagerObservers();
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::CallRemoveNetwork(const Network* network) {}
|
| -
|
| -/////////////////////////////////////////////////////////////////////////////
|
| -// NetworkLibrary implementation.
|
| -
|
| -void NetworkLibraryImplStub::ChangePin(const std::string& old_pin,
|
| - const std::string& new_pin) {
|
| - sim_operation_ = SIM_OPERATION_CHANGE_PIN;
|
| - if (!pin_required_ || old_pin == pin_) {
|
| - pin_ = new_pin;
|
| - NotifyPinOperationCompleted(PIN_ERROR_NONE);
|
| - } else {
|
| - NotifyPinOperationCompleted(PIN_ERROR_INCORRECT_CODE);
|
| - }
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::ChangeRequirePin(bool require_pin,
|
| - const std::string& pin) {
|
| - sim_operation_ = SIM_OPERATION_CHANGE_REQUIRE_PIN;
|
| - if (!pin_required_ || pin == pin_) {
|
| - pin_required_ = require_pin;
|
| - NotifyPinOperationCompleted(PIN_ERROR_NONE);
|
| - } else {
|
| - NotifyPinOperationCompleted(PIN_ERROR_INCORRECT_CODE);
|
| - }
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::EnterPin(const std::string& pin) {
|
| - sim_operation_ = SIM_OPERATION_ENTER_PIN;
|
| - if (!pin_required_ || pin == pin_) {
|
| - pin_entered_ = true;
|
| - NotifyPinOperationCompleted(PIN_ERROR_NONE);
|
| - } else {
|
| - NotifyPinOperationCompleted(PIN_ERROR_INCORRECT_CODE);
|
| - }
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::UnblockPin(const std::string& puk,
|
| - const std::string& new_pin) {
|
| - sim_operation_ = SIM_OPERATION_UNBLOCK_PIN;
|
| - // TODO(stevenjb): something?
|
| - NotifyPinOperationCompleted(PIN_ERROR_NONE);
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::RequestCellularScan() {}
|
| -
|
| -void NetworkLibraryImplStub::RequestCellularRegister(
|
| - const std::string& network_id) {}
|
| -
|
| -void NetworkLibraryImplStub::SetCellularDataRoamingAllowed(bool new_value) {}
|
| -
|
| -void NetworkLibraryImplStub::SetCarrier(
|
| - const std::string& carrier,
|
| - const NetworkOperationCallback& completed) {
|
| - // Call the completed callback with a 10s delay if we're interactive.
|
| - int delay_ms = IsInteractive() ? 10000 : 100;
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI,
|
| - FROM_HERE,
|
| - base::Bind(completed, "", NETWORK_METHOD_ERROR_NONE,""),
|
| - base::TimeDelta::FromMilliseconds(delay_ms));
|
| -}
|
| -
|
| -bool NetworkLibraryImplStub::IsCellularAlwaysInRoaming() {
|
| - return false;
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::RequestNetworkScan() {
|
| - // This is triggered by user interaction, so set a network connect delay.
|
| - int scan_delay_ms = IsInteractive() ? 2 * 1000 : 100;
|
| - wifi_scanning_ = true;
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&NetworkLibraryImplStub::ScanCompleted,
|
| - weak_pointer_factory_.GetWeakPtr()),
|
| - base::TimeDelta::FromMilliseconds(scan_delay_ms));
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::DisconnectFromNetwork(const Network* network) {
|
| - // Update the network state here since no network manager in stub impl.
|
| - Network* modify_network = const_cast<Network*>(network);
|
| - modify_network->set_is_active(false);
|
| - modify_network->set_disconnected();
|
| - if (network == active_wifi_)
|
| - active_wifi_ = NULL;
|
| - else if (network == active_cellular_)
|
| - active_cellular_ = NULL;
|
| - else if (network == active_virtual_)
|
| - active_virtual_ = NULL;
|
| - SignalNetworkManagerObservers();
|
| - NotifyNetworkChanged(network);
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::GetIPConfigs(
|
| - const std::string& device_path,
|
| - HardwareAddressFormat format,
|
| - const NetworkGetIPConfigsCallback& callback) {
|
| - callback.Run(ip_configs_, hardware_address_);
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::SetIPParameters(const std::string& service_path,
|
| - const std::string& address,
|
| - const std::string& netmask,
|
| - const std::string& gateway,
|
| - const std::string& name_servers,
|
| - int dhcp_usage_mask) {
|
| - VLOG(1) << "Setting IP parameters:"
|
| - << "\n address: " << address
|
| - << (dhcp_usage_mask & USE_DHCP_ADDRESS ?
|
| - " (ignored)" : " (in use)")
|
| - << "\n netmask: " << netmask
|
| - << (dhcp_usage_mask & USE_DHCP_NETMASK ?
|
| - " (ignored)" : " (in use)")
|
| - << "\n gateway: " << gateway
|
| - << (dhcp_usage_mask & USE_DHCP_GATEWAY ?
|
| - " (ignored)" : " (in use)")
|
| - << "\n name_servers: " << name_servers
|
| - << (dhcp_usage_mask & USE_DHCP_NAME_SERVERS ?
|
| - " (ignored)" : " (in use)");
|
| -
|
| - Network* network = FindNetworkByPath(service_path);
|
| - if (network)
|
| - ip_configs_.push_back(NetworkIPConfig(network->device_path(),
|
| - IPCONFIG_TYPE_IPV4,
|
| - address,
|
| - netmask,
|
| - gateway,
|
| - name_servers));
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::RequestNetworkServiceProperties(
|
| - const std::string& service_path,
|
| - const NetworkServicePropertiesCallback& callback) {
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI,
|
| - FROM_HERE,
|
| - base::Bind(&NetworkLibraryImplStub::SendNetworkServiceProperties,
|
| - weak_pointer_factory_.GetWeakPtr(),
|
| - service_path, callback),
|
| - base::TimeDelta::FromMilliseconds(100));
|
| -}
|
| -
|
| -void NetworkLibraryImplStub::SendNetworkServiceProperties(
|
| - const std::string& service_path,
|
| - const NetworkServicePropertiesCallback& callback) {
|
| - scoped_ptr<base::DictionaryValue> dictionary(new base::DictionaryValue());
|
| - Network* network = FindNetworkByPath(service_path);
|
| - if (network) {
|
| - // Populate a few common properties.
|
| - dictionary->SetString(flimflam::kTypeProperty,
|
| - ConnectionTypeToString(network->type()));
|
| - dictionary->SetString(flimflam::kNameProperty, network->name());
|
| - dictionary->SetString(flimflam::kGuidProperty, network->unique_id());
|
| - dictionary->SetString(flimflam::kStateProperty,
|
| - ConnectionStateToString(network->state()));
|
| - }
|
| - callback.Run(service_path, dictionary.get());
|
| -}
|
| -
|
| -const std::map<std::string, base::DictionaryValue*>&
|
| -NetworkLibraryImplStub::GetConfigurations() {
|
| - return service_configurations_;
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|