Index: ash/system/chromeos/network/network_connect.cc |
diff --git a/ash/system/chromeos/network/network_connect.cc b/ash/system/chromeos/network/network_connect.cc |
deleted file mode 100644 |
index 82c80f58fba4afe89d4b4cc70103c3571e8bb71f..0000000000000000000000000000000000000000 |
--- a/ash/system/chromeos/network/network_connect.cc |
+++ /dev/null |
@@ -1,648 +0,0 @@ |
-// Copyright (c) 2013 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 "ash/system/chromeos/network/network_connect.h" |
- |
-#include "ash/system/chromeos/network/network_state_notifier.h" |
-#include "base/bind.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "base/values.h" |
-#include "chromeos/login/login_state.h" |
-#include "chromeos/network/device_state.h" |
-#include "chromeos/network/network_activation_handler.h" |
-#include "chromeos/network/network_configuration_handler.h" |
-#include "chromeos/network/network_connection_handler.h" |
-#include "chromeos/network/network_event_log.h" |
-#include "chromeos/network/network_handler_callbacks.h" |
-#include "chromeos/network/network_profile.h" |
-#include "chromeos/network/network_profile_handler.h" |
-#include "chromeos/network/network_state.h" |
-#include "chromeos/network/network_state_handler.h" |
-#include "grit/ash_resources.h" |
-#include "grit/ash_strings.h" |
-#include "third_party/cros_system_api/dbus/service_constants.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/message_center/message_center.h" |
-#include "ui/message_center/notification.h" |
- |
-using chromeos::DeviceState; |
-using chromeos::NetworkConfigurationHandler; |
-using chromeos::NetworkConnectionHandler; |
-using chromeos::NetworkHandler; |
-using chromeos::NetworkProfile; |
-using chromeos::NetworkProfileHandler; |
-using chromeos::NetworkState; |
-using chromeos::NetworkStateHandler; |
-using chromeos::NetworkTypePattern; |
- |
-namespace ash { |
- |
-namespace { |
- |
-// Returns true for carriers that can be activated through Shill instead of |
-// through a WebUI dialog. |
-bool IsDirectActivatedCarrier(const std::string& carrier) { |
- if (carrier == shill::kCarrierSprint) |
- return true; |
- return false; |
-} |
- |
-const NetworkState* GetNetworkState(const std::string& service_path) { |
- return NetworkHandler::Get()->network_state_handler()->GetNetworkState( |
- service_path); |
-} |
- |
-class NetworkConnectImpl : public NetworkConnect { |
- public: |
- explicit NetworkConnectImpl(Delegate* delegate); |
- ~NetworkConnectImpl() override; |
- |
- // NetworkConnect |
- void ConnectToNetwork(const std::string& service_path) override; |
- void SetTechnologyEnabled(const chromeos::NetworkTypePattern& technology, |
- bool enabled_state) override; |
- void ActivateCellular(const std::string& service_path) override; |
- void ShowMobileSetup(const std::string& service_path) override; |
- void ConfigureNetworkAndConnect(const std::string& service_path, |
- const base::DictionaryValue& properties, |
- bool shared) override; |
- void CreateConfigurationAndConnect(base::DictionaryValue* properties, |
- bool shared) override; |
- void CreateConfiguration(base::DictionaryValue* properties, |
- bool shared) override; |
- base::string16 GetErrorString(const std::string& error, |
- const std::string& service_path) override; |
- void ShowNetworkSettings(const std::string& service_path) override; |
- |
- private: |
- void HandleUnconfiguredNetwork(const std::string& service_path); |
- void OnConnectFailed(const std::string& service_path, |
- const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data); |
- bool GetNetworkProfilePath(bool shared, std::string* profile_path); |
- void OnConnectSucceeded(const std::string& service_path); |
- void CallConnectToNetwork(const std::string& service_path, |
- bool check_error_state); |
- void OnActivateFailed(const std::string& service_path, |
- const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data); |
- void OnActivateSucceeded(const std::string& service_path); |
- void OnConfigureFailed(const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data); |
- void OnConfigureSucceeded(bool connect_on_configure, |
- const std::string& service_path); |
- void CallCreateConfiguration(base::DictionaryValue* properties, |
- bool shared, |
- bool connect_on_configure); |
- void SetPropertiesFailed(const std::string& desc, |
- const std::string& service_path, |
- const std::string& config_error_name, |
- scoped_ptr<base::DictionaryValue> error_data); |
- void SetPropertiesToClear(base::DictionaryValue* properties_to_set, |
- std::vector<std::string>* properties_to_clear); |
- void ClearPropertiesAndConnect( |
- const std::string& service_path, |
- const std::vector<std::string>& properties_to_clear); |
- void ConfigureSetProfileSucceeded( |
- const std::string& service_path, |
- scoped_ptr<base::DictionaryValue> properties_to_set); |
- |
- Delegate* delegate_; |
- scoped_ptr<NetworkStateNotifier> network_state_notifier_; |
- base::WeakPtrFactory<NetworkConnectImpl> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(NetworkConnectImpl); |
-}; |
- |
-NetworkConnectImpl::NetworkConnectImpl(Delegate* delegate) |
- : delegate_(delegate), weak_factory_(this) { |
- network_state_notifier_.reset(new NetworkStateNotifier(this)); |
-} |
- |
-NetworkConnectImpl::~NetworkConnectImpl() { |
-} |
- |
-void NetworkConnectImpl::HandleUnconfiguredNetwork( |
- const std::string& service_path) { |
- const NetworkState* network = GetNetworkState(service_path); |
- if (!network) { |
- NET_LOG_ERROR("Configuring unknown network", service_path); |
- return; |
- } |
- |
- if (network->type() == shill::kTypeWifi) { |
- // Only show the config view for secure networks, otherwise do nothing. |
- if (network->security() != shill::kSecurityNone) { |
- delegate_->ShowNetworkConfigure(service_path); |
- } |
- return; |
- } |
- |
- if (network->type() == shill::kTypeWimax || |
- network->type() == shill::kTypeVPN) { |
- delegate_->ShowNetworkConfigure(service_path); |
- return; |
- } |
- |
- if (network->type() == shill::kTypeCellular) { |
- if (network->RequiresActivation()) { |
- ActivateCellular(service_path); |
- return; |
- } |
- if (network->cellular_out_of_credits()) { |
- ShowMobileSetup(service_path); |
- return; |
- } |
- // No special configure or setup for |network|, show the settings UI. |
- if (chromeos::LoginState::Get()->IsUserLoggedIn()) { |
- delegate_->ShowNetworkSettings(service_path); |
- } |
- return; |
- } |
- NOTREACHED(); |
-} |
- |
-// If |shared| is true, sets |profile_path| to the shared profile path. |
-// Otherwise sets |profile_path| to the user profile path if authenticated and |
-// available. Returns 'false' if unable to set |profile_path|. |
-bool NetworkConnectImpl::GetNetworkProfilePath(bool shared, |
- std::string* profile_path) { |
- if (shared) { |
- *profile_path = NetworkProfileHandler::GetSharedProfilePath(); |
- return true; |
- } |
- |
- if (!chromeos::LoginState::Get()->UserHasNetworkProfile()) { |
- NET_LOG_ERROR("User profile specified before login", ""); |
- return false; |
- } |
- |
- const NetworkProfile* profile = |
- NetworkHandler::Get()->network_profile_handler()->GetDefaultUserProfile(); |
- if (!profile) { |
- NET_LOG_ERROR("No user profile for unshared network configuration", ""); |
- return false; |
- } |
- |
- *profile_path = profile->path; |
- return true; |
-} |
- |
-void NetworkConnectImpl::OnConnectFailed( |
- const std::string& service_path, |
- const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data) { |
- NET_LOG_ERROR("Connect Failed: " + error_name, service_path); |
- |
- // If a new connect attempt canceled this connect, no need to notify the |
- // user. |
- if (error_name == NetworkConnectionHandler::kErrorConnectCanceled) |
- return; |
- |
- if (error_name == shill::kErrorBadPassphrase || |
- error_name == NetworkConnectionHandler::kErrorPassphraseRequired || |
- error_name == NetworkConnectionHandler::kErrorConfigurationRequired || |
- error_name == NetworkConnectionHandler::kErrorAuthenticationRequired) { |
- HandleUnconfiguredNetwork(service_path); |
- return; |
- } |
- |
- if (error_name == NetworkConnectionHandler::kErrorCertificateRequired) { |
- if (!delegate_->ShowEnrollNetwork(service_path)) { |
- HandleUnconfiguredNetwork(service_path); |
- } |
- return; |
- } |
- |
- if (error_name == NetworkConnectionHandler::kErrorActivationRequired) { |
- ActivateCellular(service_path); |
- return; |
- } |
- |
- if (error_name == NetworkConnectionHandler::kErrorConnected || |
- error_name == NetworkConnectionHandler::kErrorConnecting) { |
- ShowNetworkSettings(service_path); |
- return; |
- } |
- |
- // ConnectFailed or unknown error; show a notification. |
- network_state_notifier_->ShowNetworkConnectError(error_name, service_path); |
- |
- // Only show a configure dialog if there was a ConnectFailed error. |
- if (error_name != shill::kErrorConnectFailed) |
- return; |
- |
- // If Shill reports an InProgress error, don't try to configure the network. |
- std::string dbus_error_name; |
- error_data.get()->GetString(chromeos::network_handler::kDbusErrorName, |
- &dbus_error_name); |
- if (dbus_error_name == shill::kErrorResultInProgress) |
- return; |
- |
- HandleUnconfiguredNetwork(service_path); |
-} |
- |
-void NetworkConnectImpl::OnConnectSucceeded(const std::string& service_path) { |
- NET_LOG_USER("Connect Succeeded", service_path); |
- network_state_notifier_->RemoveConnectNotification(); |
-} |
- |
-// If |check_error_state| is true, error state for the network is checked, |
-// otherwise any current error state is ignored (e.g. for recently configured |
-// networks or repeat connect attempts). |
-void NetworkConnectImpl::CallConnectToNetwork(const std::string& service_path, |
- bool check_error_state) { |
- network_state_notifier_->RemoveConnectNotification(); |
- NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork( |
- service_path, base::Bind(&NetworkConnectImpl::OnConnectSucceeded, |
- weak_factory_.GetWeakPtr(), service_path), |
- base::Bind(&NetworkConnectImpl::OnConnectFailed, |
- weak_factory_.GetWeakPtr(), service_path), |
- check_error_state); |
-} |
- |
-void NetworkConnectImpl::OnActivateFailed( |
- const std::string& service_path, |
- const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data) { |
- NET_LOG_ERROR("Unable to activate network", service_path); |
- network_state_notifier_->ShowNetworkConnectError(kErrorActivateFailed, |
- service_path); |
-} |
- |
-void NetworkConnectImpl::OnActivateSucceeded(const std::string& service_path) { |
- NET_LOG_USER("Activation Succeeded", service_path); |
-} |
- |
-void NetworkConnectImpl::OnConfigureFailed( |
- const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data) { |
- NET_LOG_ERROR("Unable to configure network", ""); |
- network_state_notifier_->ShowNetworkConnectError( |
- NetworkConnectionHandler::kErrorConfigureFailed, ""); |
-} |
- |
-void NetworkConnectImpl::OnConfigureSucceeded(bool connect_on_configure, |
- const std::string& service_path) { |
- NET_LOG_USER("Configure Succeeded", service_path); |
- if (!connect_on_configure) |
- return; |
- // After configuring a network, ignore any (possibly stale) error state. |
- const bool check_error_state = false; |
- CallConnectToNetwork(service_path, check_error_state); |
-} |
- |
-void NetworkConnectImpl::CallCreateConfiguration( |
- base::DictionaryValue* properties, |
- bool shared, |
- bool connect_on_configure) { |
- std::string profile_path; |
- if (!GetNetworkProfilePath(shared, &profile_path)) { |
- network_state_notifier_->ShowNetworkConnectError( |
- NetworkConnectionHandler::kErrorConfigureFailed, ""); |
- return; |
- } |
- properties->SetStringWithoutPathExpansion(shill::kProfileProperty, |
- profile_path); |
- NetworkHandler::Get()->network_configuration_handler()->CreateConfiguration( |
- *properties, base::Bind(&NetworkConnectImpl::OnConfigureSucceeded, |
- weak_factory_.GetWeakPtr(), connect_on_configure), |
- base::Bind(&NetworkConnectImpl::OnConfigureFailed, |
- weak_factory_.GetWeakPtr())); |
-} |
- |
-void NetworkConnectImpl::SetPropertiesFailed( |
- const std::string& desc, |
- const std::string& service_path, |
- const std::string& config_error_name, |
- scoped_ptr<base::DictionaryValue> error_data) { |
- NET_LOG_ERROR(desc + ": Failed: " + config_error_name, service_path); |
- network_state_notifier_->ShowNetworkConnectError( |
- NetworkConnectionHandler::kErrorConfigureFailed, service_path); |
-} |
- |
-void NetworkConnectImpl::SetPropertiesToClear( |
- base::DictionaryValue* properties_to_set, |
- std::vector<std::string>* properties_to_clear) { |
- // Move empty string properties to properties_to_clear. |
- for (base::DictionaryValue::Iterator iter(*properties_to_set); |
- !iter.IsAtEnd(); iter.Advance()) { |
- std::string value_str; |
- if (iter.value().GetAsString(&value_str) && value_str.empty()) |
- properties_to_clear->push_back(iter.key()); |
- } |
- // Remove cleared properties from properties_to_set. |
- for (std::vector<std::string>::iterator iter = properties_to_clear->begin(); |
- iter != properties_to_clear->end(); ++iter) { |
- properties_to_set->RemoveWithoutPathExpansion(*iter, NULL); |
- } |
-} |
- |
-void NetworkConnectImpl::ClearPropertiesAndConnect( |
- const std::string& service_path, |
- const std::vector<std::string>& properties_to_clear) { |
- NET_LOG_USER("ClearPropertiesAndConnect", service_path); |
- // After configuring a network, ignore any (possibly stale) error state. |
- const bool check_error_state = false; |
- NetworkHandler::Get()->network_configuration_handler()->ClearProperties( |
- service_path, properties_to_clear, |
- base::Bind(&NetworkConnectImpl::CallConnectToNetwork, |
- weak_factory_.GetWeakPtr(), service_path, check_error_state), |
- base::Bind(&NetworkConnectImpl::SetPropertiesFailed, |
- weak_factory_.GetWeakPtr(), "ClearProperties", service_path)); |
-} |
- |
-void NetworkConnectImpl::ConfigureSetProfileSucceeded( |
- const std::string& service_path, |
- scoped_ptr<base::DictionaryValue> properties_to_set) { |
- std::vector<std::string> properties_to_clear; |
- SetPropertiesToClear(properties_to_set.get(), &properties_to_clear); |
- NetworkHandler::Get()->network_configuration_handler()->SetProperties( |
- service_path, *properties_to_set, |
- base::Bind(&NetworkConnectImpl::ClearPropertiesAndConnect, |
- weak_factory_.GetWeakPtr(), service_path, properties_to_clear), |
- base::Bind(&NetworkConnectImpl::SetPropertiesFailed, |
- weak_factory_.GetWeakPtr(), "SetProperties", service_path)); |
-} |
- |
-// Public methods |
- |
-void NetworkConnectImpl::ConnectToNetwork(const std::string& service_path) { |
- NET_LOG_USER("ConnectToNetwork", service_path); |
- const NetworkState* network = GetNetworkState(service_path); |
- if (network) { |
- if (!network->error().empty() && !network->security().empty()) { |
- NET_LOG_USER("Configure: " + network->error(), service_path); |
- // If the network is in an error state, show the configuration UI |
- // directly to avoid a spurious notification. |
- HandleUnconfiguredNetwork(service_path); |
- return; |
- } else if (network->RequiresActivation()) { |
- ActivateCellular(service_path); |
- return; |
- } |
- } |
- const bool check_error_state = true; |
- CallConnectToNetwork(service_path, check_error_state); |
-} |
- |
-void NetworkConnectImpl::SetTechnologyEnabled( |
- const NetworkTypePattern& technology, |
- bool enabled_state) { |
- std::string log_string = base::StringPrintf( |
- "technology %s, target state: %s", technology.ToDebugString().c_str(), |
- (enabled_state ? "ENABLED" : "DISABLED")); |
- NET_LOG_USER("SetTechnologyEnabled", log_string); |
- NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); |
- bool enabled = handler->IsTechnologyEnabled(technology); |
- if (enabled_state == enabled) { |
- NET_LOG_USER("Technology already in target state.", log_string); |
- return; |
- } |
- if (enabled) { |
- // User requested to disable the technology. |
- handler->SetTechnologyEnabled(technology, false, |
- chromeos::network_handler::ErrorCallback()); |
- return; |
- } |
- // If we're dealing with a mobile network, then handle SIM lock here. |
- // SIM locking only applies to cellular, so the code below won't execute |
- // if |technology| has been explicitly set to WiMAX. |
- if (technology.MatchesPattern(NetworkTypePattern::Mobile())) { |
- const DeviceState* mobile = handler->GetDeviceStateByType(technology); |
- if (!mobile) { |
- NET_LOG_ERROR("SetTechnologyEnabled with no device", log_string); |
- return; |
- } |
- // The following only applies to cellular. |
- if (mobile->type() == shill::kTypeCellular) { |
- if (mobile->IsSimAbsent()) { |
- // If this is true, then we have a cellular device with no SIM |
- // inserted. TODO(armansito): Chrome should display a notification here, |
- // prompting the user to insert a SIM card and restart the device to |
- // enable cellular. See crbug.com/125171. |
- NET_LOG_USER("Cannot enable cellular device without SIM.", log_string); |
- return; |
- } |
- if (!mobile->sim_lock_type().empty()) { |
- // A SIM has been inserted, but it is locked. Let the user unlock it |
- // via the dialog. |
- delegate_->ShowMobileSimDialog(); |
- return; |
- } |
- } |
- } |
- handler->SetTechnologyEnabled(technology, true, |
- chromeos::network_handler::ErrorCallback()); |
-} |
- |
-void NetworkConnectImpl::ActivateCellular(const std::string& service_path) { |
- NET_LOG_USER("ActivateCellular", service_path); |
- const NetworkState* cellular = GetNetworkState(service_path); |
- if (!cellular || cellular->type() != shill::kTypeCellular) { |
- NET_LOG_ERROR("ActivateCellular with no Service", service_path); |
- return; |
- } |
- const DeviceState* cellular_device = |
- NetworkHandler::Get()->network_state_handler()->GetDeviceState( |
- cellular->device_path()); |
- if (!cellular_device) { |
- NET_LOG_ERROR("ActivateCellular with no Device", service_path); |
- return; |
- } |
- if (!IsDirectActivatedCarrier(cellular_device->carrier())) { |
- // For non direct activation, show the mobile setup dialog which can be |
- // used to activate the network. |
- ShowMobileSetup(service_path); |
- return; |
- } |
- if (cellular->activation_state() == shill::kActivationStateActivated) { |
- NET_LOG_ERROR("ActivateCellular for activated service", service_path); |
- return; |
- } |
- |
- NetworkHandler::Get()->network_activation_handler()->Activate( |
- service_path, |
- "", // carrier |
- base::Bind(&NetworkConnectImpl::OnActivateSucceeded, |
- weak_factory_.GetWeakPtr(), service_path), |
- base::Bind(&NetworkConnectImpl::OnActivateFailed, |
- weak_factory_.GetWeakPtr(), service_path)); |
-} |
- |
-void NetworkConnectImpl::ShowMobileSetup(const std::string& service_path) { |
- NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); |
- const NetworkState* cellular = handler->GetNetworkState(service_path); |
- if (!cellular || cellular->type() != shill::kTypeCellular) { |
- NET_LOG_ERROR("ShowMobileSetup without Cellular network", service_path); |
- return; |
- } |
- if (cellular->activation_state() != shill::kActivationStateActivated && |
- cellular->activation_type() == shill::kActivationTypeNonCellular && |
- !handler->DefaultNetwork()) { |
- network_state_notifier_->ShowMobileActivationError(service_path); |
- return; |
- } |
- delegate_->ShowMobileSetupDialog(service_path); |
-} |
- |
-void NetworkConnectImpl::ConfigureNetworkAndConnect( |
- const std::string& service_path, |
- const base::DictionaryValue& properties, |
- bool shared) { |
- NET_LOG_USER("ConfigureNetworkAndConnect", service_path); |
- |
- scoped_ptr<base::DictionaryValue> properties_to_set(properties.DeepCopy()); |
- |
- std::string profile_path; |
- if (!GetNetworkProfilePath(shared, &profile_path)) { |
- network_state_notifier_->ShowNetworkConnectError( |
- NetworkConnectionHandler::kErrorConfigureFailed, service_path); |
- return; |
- } |
- NetworkHandler::Get()->network_configuration_handler()->SetNetworkProfile( |
- service_path, profile_path, |
- base::Bind(&NetworkConnectImpl::ConfigureSetProfileSucceeded, |
- weak_factory_.GetWeakPtr(), service_path, |
- base::Passed(&properties_to_set)), |
- base::Bind(&NetworkConnectImpl::SetPropertiesFailed, |
- weak_factory_.GetWeakPtr(), "SetProfile: " + profile_path, |
- service_path)); |
-} |
- |
-void NetworkConnectImpl::CreateConfigurationAndConnect( |
- base::DictionaryValue* properties, |
- bool shared) { |
- NET_LOG_USER("CreateConfigurationAndConnect", ""); |
- CallCreateConfiguration(properties, shared, true /* connect_on_configure */); |
-} |
- |
-void NetworkConnectImpl::CreateConfiguration(base::DictionaryValue* properties, |
- bool shared) { |
- NET_LOG_USER("CreateConfiguration", ""); |
- CallCreateConfiguration(properties, shared, false /* connect_on_configure */); |
-} |
- |
-base::string16 NetworkConnectImpl::GetErrorString( |
- const std::string& error, |
- const std::string& service_path) { |
- if (error.empty()) |
- return base::string16(); |
- if (error == shill::kErrorOutOfRange) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_OUT_OF_RANGE); |
- if (error == shill::kErrorPinMissing) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_PIN_MISSING); |
- if (error == shill::kErrorDhcpFailed) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_DHCP_FAILED); |
- if (error == shill::kErrorConnectFailed) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_CONNECT_FAILED); |
- if (error == shill::kErrorBadPassphrase) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_BAD_PASSPHRASE); |
- if (error == shill::kErrorBadWEPKey) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_BAD_WEPKEY); |
- if (error == shill::kErrorActivationFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_ACTIVATION_FAILED); |
- } |
- if (error == shill::kErrorNeedEvdo) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_NEED_EVDO); |
- if (error == shill::kErrorNeedHomeNetwork) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_NEED_HOME_NETWORK); |
- } |
- if (error == shill::kErrorOtaspFailed) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_OTASP_FAILED); |
- if (error == shill::kErrorAaaFailed) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_AAA_FAILED); |
- if (error == shill::kErrorInternal) |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_INTERNAL); |
- if (error == shill::kErrorDNSLookupFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_DNS_LOOKUP_FAILED); |
- } |
- if (error == shill::kErrorHTTPGetFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_HTTP_GET_FAILED); |
- } |
- if (error == shill::kErrorIpsecPskAuthFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_IPSEC_PSK_AUTH_FAILED); |
- } |
- if (error == shill::kErrorIpsecCertAuthFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_CERT_AUTH_FAILED); |
- } |
- if (error == shill::kErrorEapAuthenticationFailed) { |
- const NetworkState* network = GetNetworkState(service_path); |
- // TLS always requires a client certificate, so show a cert auth |
- // failed message for TLS. Other EAP methods do not generally require |
- // a client certicate. |
- if (network && network->eap_method() == shill::kEapMethodTLS) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_CERT_AUTH_FAILED); |
- } else { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_EAP_AUTH_FAILED); |
- } |
- } |
- if (error == shill::kErrorEapLocalTlsFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_EAP_LOCAL_TLS_FAILED); |
- } |
- if (error == shill::kErrorEapRemoteTlsFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_EAP_REMOTE_TLS_FAILED); |
- } |
- if (error == shill::kErrorPppAuthFailed) { |
- return l10n_util::GetStringUTF16( |
- IDS_CHROMEOS_NETWORK_ERROR_PPP_AUTH_FAILED); |
- } |
- |
- if (base::StringToLowerASCII(error) == |
- base::StringToLowerASCII(std::string(shill::kUnknownString))) { |
- return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_UNKNOWN); |
- } |
- return l10n_util::GetStringFUTF16(IDS_NETWORK_UNRECOGNIZED_ERROR, |
- base::UTF8ToUTF16(error)); |
-} |
- |
-void NetworkConnectImpl::ShowNetworkSettings(const std::string& service_path) { |
- delegate_->ShowNetworkSettings(service_path); |
-} |
- |
-} // namespace |
- |
-const char NetworkConnect::kErrorActivateFailed[] = "activate-failed"; |
- |
-static NetworkConnect* g_network_connect = NULL; |
- |
-// static |
-void NetworkConnect::Initialize(Delegate* delegate) { |
- CHECK(g_network_connect == NULL); |
- g_network_connect = new NetworkConnectImpl(delegate); |
-} |
- |
-// static |
-void NetworkConnect::Shutdown() { |
- CHECK(g_network_connect); |
- delete g_network_connect; |
- g_network_connect = NULL; |
-} |
- |
-// static |
-NetworkConnect* NetworkConnect::Get() { |
- CHECK(g_network_connect); |
- return g_network_connect; |
-} |
- |
-NetworkConnect::NetworkConnect() { |
-} |
- |
-NetworkConnect::~NetworkConnect() { |
-} |
- |
-} // ash |