Chromium Code Reviews| 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; |