Index: chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc |
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc b/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc |
index 8da9206fec406910939cd4e47381309b19de86e7..72de9dfcb02cf0b802bfb65549db5acd3b29fc04 100644 |
--- a/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc |
+++ b/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc |
@@ -43,6 +43,8 @@ using chromeos::ShillManagerClient; |
namespace { |
+const int kDefaultNetworkListLimit = 1000; |
+ |
// Helper function that converts between the two types of verification |
// properties. They should always have the same fields, but we do this here to |
// prevent ShillManagerClient from depending directly on the extension API. |
@@ -179,19 +181,20 @@ bool NetworkingPrivateGetStateFunction::RunAsync() { |
if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_)) |
return false; |
- const NetworkState* state = NetworkHandler::Get()->network_state_handler()-> |
- GetNetworkState(service_path); |
- if (!state) { |
+ const FavoriteState* favorite_state = |
+ NetworkHandler::Get() |
+ ->network_state_handler() |
+ ->GetFavoriteStateFromServicePath(service_path, |
+ false /* configured_only */); |
+ if (!favorite_state) { |
error_ = "Error.NetworkUnavailable"; |
return false; |
} |
- scoped_ptr<base::DictionaryValue> result_dict(new base::DictionaryValue); |
- state->GetStateProperties(result_dict.get()); |
- scoped_ptr<base::DictionaryValue> onc_network_part = |
- chromeos::onc::TranslateShillServiceToONCPart(*result_dict, |
- &chromeos::onc::kNetworkWithStateSignature); |
- SetResult(onc_network_part.release()); |
+ scoped_ptr<base::DictionaryValue> network_properties = |
+ chromeos::network_util::TranslateFavoriteStateToONC(favorite_state); |
+ |
+ SetResult(network_properties.release()); |
SendResponse(true); |
return true; |
@@ -280,6 +283,33 @@ void NetworkingPrivateCreateNetworkFunction::ResultCallback( |
} |
//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetNetworksFunction |
+ |
+NetworkingPrivateGetNetworksFunction:: |
+~NetworkingPrivateGetNetworksFunction() { |
+} |
+ |
+bool NetworkingPrivateGetNetworksFunction::RunAsync() { |
+ scoped_ptr<api::GetNetworks::Params> params = |
+ api::GetNetworks::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType( |
+ api::ToString(params->filter.network_type)); |
+ const bool configured_only = |
+ params->filter.configured ? *params->filter.configured : false; |
+ const bool visible_only = |
+ params->filter.visible ? *params->filter.visible : false; |
+ const int limit = |
+ params->filter.limit ? *params->filter.limit : kDefaultNetworkListLimit; |
+ scoped_ptr<base::ListValue> network_properties_list = |
+ chromeos::network_util::TranslateNetworkListToONC( |
+ pattern, configured_only, visible_only, limit); |
+ SetResult(network_properties_list.release()); |
+ SendResponse(true); |
+ return true; |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
// NetworkingPrivateGetVisibleNetworksFunction |
NetworkingPrivateGetVisibleNetworksFunction:: |
@@ -291,10 +321,12 @@ bool NetworkingPrivateGetVisibleNetworksFunction::RunAsync() { |
api::GetVisibleNetworks::Params::Create(*args_); |
EXTENSION_FUNCTION_VALIDATE(params); |
NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType( |
- api::GetVisibleNetworks::Params::ToString(params->type)); |
- |
+ api::ToString(params->network_type)); |
+ const bool configured_only = false; |
+ const bool visible_only = true; |
scoped_ptr<base::ListValue> network_properties_list = |
- chromeos::network_util::TranslateNetworkListToONC(pattern); |
+ chromeos::network_util::TranslateNetworkListToONC( |
+ pattern, configured_only, visible_only, kDefaultNetworkListLimit); |
SetResult(network_properties_list.release()); |
SendResponse(true); |
return true; |
@@ -314,11 +346,13 @@ bool NetworkingPrivateGetEnabledNetworkTypesFunction::RunSync() { |
base::ListValue* network_list = new base::ListValue; |
if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Ethernet())) |
- network_list->AppendString("Ethernet"); |
+ network_list->AppendString(api::ToString(api::NETWORK_TYPE_ETHERNET)); |
if (state_handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())) |
- network_list->AppendString("WiFi"); |
+ network_list->AppendString(api::ToString(api::NETWORK_TYPE_WIFI)); |
+ if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) |
+ network_list->AppendString(api::ToString(api::NETWORK_TYPE_WIMAX)); |
if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) |
- network_list->AppendString("Cellular"); |
+ network_list->AppendString(api::ToString(api::NETWORK_TYPE_CELLULAR)); |
SetResult(network_list); |
return true; |
@@ -335,31 +369,13 @@ bool NetworkingPrivateEnableNetworkTypeFunction::RunSync() { |
scoped_ptr<api::EnableNetworkType::Params> params = |
api::EnableNetworkType::Params::Create(*args_); |
EXTENSION_FUNCTION_VALIDATE(params); |
- NetworkStateHandler* state_handler = |
- NetworkHandler::Get()->network_state_handler(); |
- switch (params->network_type) { |
- case api::NETWORK_TYPE_ETHERNET: |
- state_handler->SetTechnologyEnabled( |
- NetworkTypePattern::Ethernet(), true, |
- chromeos::network_handler::ErrorCallback()); |
- break; |
- |
- case api::NETWORK_TYPE_WIFI: |
- state_handler->SetTechnologyEnabled( |
- NetworkTypePattern::WiFi(), true, |
- chromeos::network_handler::ErrorCallback()); |
- break; |
- |
- case api::NETWORK_TYPE_CELLULAR: |
- state_handler->SetTechnologyEnabled( |
- NetworkTypePattern::Cellular(), true, |
- chromeos::network_handler::ErrorCallback()); |
- break; |
- |
- default: |
- break; |
- } |
+ NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType( |
+ api::ToString(params->network_type)); |
+ |
+ NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
+ pattern, true, chromeos::network_handler::ErrorCallback()); |
+ |
return true; |
} |
@@ -373,31 +389,12 @@ NetworkingPrivateDisableNetworkTypeFunction:: |
bool NetworkingPrivateDisableNetworkTypeFunction::RunSync() { |
scoped_ptr<api::DisableNetworkType::Params> params = |
api::DisableNetworkType::Params::Create(*args_); |
- NetworkStateHandler* state_handler = |
- NetworkHandler::Get()->network_state_handler(); |
- switch (params->network_type) { |
- case api::NETWORK_TYPE_ETHERNET: |
- state_handler->SetTechnologyEnabled( |
- NetworkTypePattern::Ethernet(), false, |
- chromeos::network_handler::ErrorCallback()); |
- break; |
- |
- case api::NETWORK_TYPE_WIFI: |
- state_handler->SetTechnologyEnabled( |
- NetworkTypePattern::WiFi(), false, |
- chromeos::network_handler::ErrorCallback()); |
- break; |
- |
- case api::NETWORK_TYPE_CELLULAR: |
- state_handler->SetTechnologyEnabled( |
- NetworkTypePattern::Cellular(), false, |
- chromeos::network_handler::ErrorCallback()); |
- break; |
- |
- default: |
- break; |
- } |
+ NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType( |
+ api::ToString(params->network_type)); |
+ |
+ NetworkHandler::Get()->network_state_handler()->SetTechnologyEnabled( |
+ pattern, false, chromeos::network_handler::ErrorCallback()); |
return true; |
} |