Index: chrome/browser/extensions/api/networking_private/networking_private_chromeos.cc |
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_chromeos.cc b/chrome/browser/extensions/api/networking_private/networking_private_chromeos.cc |
deleted file mode 100644 |
index 2bcc246a3b42b6680b331269ef30f9a7916b5e1d..0000000000000000000000000000000000000000 |
--- a/chrome/browser/extensions/api/networking_private/networking_private_chromeos.cc |
+++ /dev/null |
@@ -1,340 +0,0 @@ |
-// Copyright 2014 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/extensions/api/networking_private/networking_private_chromeos.h" |
- |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
-#include "base/callback.h" |
-#include "chrome/browser/chromeos/profiles/profile_helper.h" |
-#include "chrome/browser/extensions/api/networking_private/networking_private_api.h" |
-#include "chrome/common/extensions/api/networking_private.h" |
-#include "chromeos/dbus/dbus_thread_manager.h" |
-#include "chromeos/dbus/shill_manager_client.h" |
-#include "chromeos/login/login_state.h" |
-#include "chromeos/network/managed_network_configuration_handler.h" |
-#include "chromeos/network/network_connection_handler.h" |
-#include "chromeos/network/network_device_handler.h" |
-#include "chromeos/network/network_event_log.h" |
-#include "chromeos/network/network_state.h" |
-#include "chromeos/network/network_state_handler.h" |
-#include "chromeos/network/network_util.h" |
-#include "chromeos/network/onc/onc_signature.h" |
-#include "chromeos/network/onc/onc_translator.h" |
-#include "chromeos/network/onc/onc_utils.h" |
-#include "chromeos/network/portal_detector/network_portal_detector.h" |
-#include "components/onc/onc_constants.h" |
-#include "content/public/browser/browser_context.h" |
- |
-using chromeos::NetworkHandler; |
-using chromeos::NetworkTypePattern; |
-using chromeos::ShillManagerClient; |
-using extensions::NetworkingPrivateDelegate; |
- |
-namespace { |
- |
-chromeos::NetworkStateHandler* GetStateHandler() { |
- return NetworkHandler::Get()->network_state_handler(); |
-} |
- |
-chromeos::ManagedNetworkConfigurationHandler* GetManagedConfigurationHandler() { |
- return NetworkHandler::Get()->managed_network_configuration_handler(); |
-} |
- |
-bool GetServicePathFromGuid(const std::string& guid, |
- std::string* service_path, |
- std::string* error) { |
- const chromeos::NetworkState* network = |
- GetStateHandler()->GetNetworkStateFromGuid(guid); |
- if (!network) { |
- *error = extensions::networking_private::kErrorInvalidNetworkGuid; |
- return false; |
- } |
- *service_path = network->path(); |
- return true; |
-} |
- |
-bool GetUserIdHash(content::BrowserContext* browser_context, |
- std::string* user_hash, |
- std::string* error) { |
- std::string profile_user_hash = |
- chromeos::ProfileHelper::GetUserIdHashFromProfile( |
- static_cast<Profile*>(browser_context)); |
- |
- // Currently Chrome OS only configures networks for the primary user. |
- // Configuration attempts from other browser contexts should fail. |
- // TODO(stevenjb): use an ExtensionsBrowserClient method to access |
- // ProfileHelper when moving this to src/extensions. |
- if (profile_user_hash != chromeos::LoginState::Get()->primary_user_hash()) { |
- // Disallow class requiring a user id hash from a non-primary user context |
- // to avoid complexities with the policy code. |
- LOG(ERROR) << "networkingPrivate API call from non primary user: " |
- << profile_user_hash; |
- *error = "Error.NonPrimaryUser"; |
- return false; |
- } |
- *user_hash = profile_user_hash; |
- return true; |
-} |
- |
-void NetworkHandlerDictionaryCallback( |
- const NetworkingPrivateDelegate::DictionaryCallback& callback, |
- const std::string& service_path, |
- const base::DictionaryValue& dictionary) { |
- scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy()); |
- callback.Run(dictionary_copy.Pass()); |
-} |
- |
-void NetworkHandlerFailureCallback( |
- const NetworkingPrivateDelegate::FailureCallback& callback, |
- const std::string& error_name, |
- scoped_ptr<base::DictionaryValue> error_data) { |
- callback.Run(error_name); |
-} |
- |
-} // namespace |
- |
-//////////////////////////////////////////////////////////////////////////////// |
- |
-namespace extensions { |
- |
-NetworkingPrivateChromeOS::NetworkingPrivateChromeOS( |
- content::BrowserContext* browser_context, |
- scoped_ptr<VerifyDelegate> verify_delegate) |
- : NetworkingPrivateDelegate(verify_delegate.Pass()), |
- browser_context_(browser_context) { |
-} |
- |
-NetworkingPrivateChromeOS::~NetworkingPrivateChromeOS() {} |
- |
-void NetworkingPrivateChromeOS::GetProperties( |
- const std::string& guid, |
- const DictionaryCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string service_path, error; |
- if (!GetServicePathFromGuid(guid, &service_path, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- GetManagedConfigurationHandler()->GetProperties( |
- service_path, |
- base::Bind(&NetworkHandlerDictionaryCallback, success_callback), |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::GetManagedProperties( |
- const std::string& guid, |
- const DictionaryCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string service_path, error; |
- if (!GetServicePathFromGuid(guid, &service_path, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- std::string user_id_hash; |
- if (!GetUserIdHash(browser_context_, &user_id_hash, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- GetManagedConfigurationHandler()->GetManagedProperties( |
- user_id_hash, |
- service_path, |
- base::Bind(&NetworkHandlerDictionaryCallback, success_callback), |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::GetState( |
- const std::string& guid, |
- const DictionaryCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string service_path, error; |
- if (!GetServicePathFromGuid(guid, &service_path, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- const chromeos::NetworkState* network_state = |
- GetStateHandler()->GetNetworkStateFromServicePath( |
- service_path, false /* configured_only */); |
- if (!network_state) { |
- failure_callback.Run(networking_private::kErrorNetworkUnavailable); |
- return; |
- } |
- |
- scoped_ptr<base::DictionaryValue> network_properties = |
- chromeos::network_util::TranslateNetworkStateToONC(network_state); |
- |
- success_callback.Run(network_properties.Pass()); |
-} |
- |
-void NetworkingPrivateChromeOS::SetProperties( |
- const std::string& guid, |
- scoped_ptr<base::DictionaryValue> properties, |
- const VoidCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string service_path, error; |
- if (!GetServicePathFromGuid(guid, &service_path, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- GetManagedConfigurationHandler()->SetProperties( |
- service_path, |
- *properties, |
- success_callback, |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::CreateNetwork( |
- bool shared, |
- scoped_ptr<base::DictionaryValue> properties, |
- const StringCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string user_id_hash, error; |
- // Do not allow configuring a non-shared network from a non-primary user. |
- if (!shared && !GetUserIdHash(browser_context_, &user_id_hash, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- GetManagedConfigurationHandler()->CreateConfiguration( |
- user_id_hash, |
- *properties, |
- success_callback, |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::GetNetworks( |
- const std::string& network_type, |
- bool configured_only, |
- bool visible_only, |
- int limit, |
- const NetworkListCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- NetworkTypePattern pattern = |
- chromeos::onc::NetworkTypePatternFromOncType(network_type); |
- scoped_ptr<base::ListValue> network_properties_list = |
- chromeos::network_util::TranslateNetworkListToONC( |
- pattern, configured_only, visible_only, limit, false /* debugging */); |
- success_callback.Run(network_properties_list.Pass()); |
-} |
- |
-void NetworkingPrivateChromeOS::StartConnect( |
- const std::string& guid, |
- const VoidCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string service_path, error; |
- if (!GetServicePathFromGuid(guid, &service_path, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- const bool check_error_state = false; |
- NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork( |
- service_path, |
- success_callback, |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback), |
- check_error_state); |
-} |
- |
-void NetworkingPrivateChromeOS::StartDisconnect( |
- const std::string& guid, |
- const VoidCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- std::string service_path, error; |
- if (!GetServicePathFromGuid(guid, &service_path, &error)) { |
- failure_callback.Run(error); |
- return; |
- } |
- |
- NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork( |
- service_path, |
- success_callback, |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::SetWifiTDLSEnabledState( |
- const std::string& ip_or_mac_address, |
- bool enabled, |
- const StringCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- NetworkHandler::Get()->network_device_handler()->SetWifiTDLSEnabled( |
- ip_or_mac_address, |
- enabled, |
- success_callback, |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::GetWifiTDLSStatus( |
- const std::string& ip_or_mac_address, |
- const StringCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- NetworkHandler::Get()->network_device_handler()->GetWifiTDLSStatus( |
- ip_or_mac_address, |
- success_callback, |
- base::Bind(&NetworkHandlerFailureCallback, failure_callback)); |
-} |
- |
-void NetworkingPrivateChromeOS::GetCaptivePortalStatus( |
- const std::string& guid, |
- const StringCallback& success_callback, |
- const FailureCallback& failure_callback) { |
- if (!chromeos::NetworkPortalDetector::IsInitialized()) { |
- failure_callback.Run(networking_private::kErrorNotReady); |
- return; |
- } |
- |
- chromeos::NetworkPortalDetector::CaptivePortalState state = |
- chromeos::NetworkPortalDetector::Get()->GetCaptivePortalState(guid); |
- success_callback.Run( |
- chromeos::NetworkPortalDetector::CaptivePortalStatusString(state.status)); |
-} |
- |
-scoped_ptr<base::ListValue> |
-NetworkingPrivateChromeOS::GetEnabledNetworkTypes() { |
- chromeos::NetworkStateHandler* state_handler = GetStateHandler(); |
- |
- scoped_ptr<base::ListValue> network_list(new base::ListValue); |
- |
- if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Ethernet())) |
- network_list->AppendString(::onc::network_type::kEthernet); |
- if (state_handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())) |
- network_list->AppendString(::onc::network_type::kWiFi); |
- if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) |
- network_list->AppendString(::onc::network_type::kWimax); |
- if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) |
- network_list->AppendString(::onc::network_type::kCellular); |
- |
- return network_list.Pass(); |
-} |
- |
-bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) { |
- NetworkTypePattern pattern = |
- chromeos::onc::NetworkTypePatternFromOncType(type); |
- |
- GetStateHandler()->SetTechnologyEnabled( |
- pattern, true, chromeos::network_handler::ErrorCallback()); |
- |
- return true; |
-} |
- |
-bool NetworkingPrivateChromeOS::DisableNetworkType(const std::string& type) { |
- NetworkTypePattern pattern = |
- chromeos::onc::NetworkTypePatternFromOncType(type); |
- |
- GetStateHandler()->SetTechnologyEnabled( |
- pattern, false, chromeos::network_handler::ErrorCallback()); |
- |
- return true; |
-} |
- |
-bool NetworkingPrivateChromeOS::RequestScan() { |
- GetStateHandler()->RequestScan(); |
- return true; |
-} |
- |
-} // namespace extensions |