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

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 nonchromeos 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 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;
}

Powered by Google App Engine
This is Rietveld 408576698