Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1437)

Unified Diff: chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc

Issue 280023003: Implement networkingPrivate.getNetworks (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tests (sort ServiceCompleteList) Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698