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

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: . 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..75ba90957c8d99875d4cc9b5456d6ded5554db11 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.
@@ -286,6 +288,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);
+ 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 +329,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