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 00be4f0ceb3ca8429d7cae669f32a3d68beab9b3..015de82387eeb6ef5a11ccd79a5eb564663aa429 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 |
@@ -44,6 +44,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. |
@@ -185,19 +187,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; |
@@ -286,6 +289,35 @@ void NetworkingPrivateCreateNetworkFunction::ResultCallback( |
} |
//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetNetworksFunction |
+ |
+NetworkingPrivateGetNetworksFunction:: |
+~NetworkingPrivateGetNetworksFunction() { |
+} |
+ |
+bool NetworkingPrivateGetNetworksFunction::RunAsync() { |
+ scoped_ptr<api::GetNetworks::Params> params = |
+ api::GetNetworks::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ std::string type = |
+ api::GetNetworks::Params::Filter::ToString(params->filter.type); |
+ NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType( |
+ type); |
pneubeck (no reviews)
2014/05/15 18:28:37
this assumes that the filter.type is a valid ONC n
stevenjb
2014/05/15 20:12:41
From the .json file:
"type": {
"t
|
+ 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:: |
@@ -298,9 +330,11 @@ bool NetworkingPrivateGetVisibleNetworksFunction::RunAsync() { |
EXTENSION_FUNCTION_VALIDATE(params); |
NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType( |
api::GetVisibleNetworks::Params::ToString(params->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; |