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

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

Issue 275543005: Use GUID instead of ServicePath in networkingPrivate API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase 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 685290e6ed11e19d517e0dc15b87c65f4be4fcd9..00be4f0ceb3ca8429d7cae669f32a3d68beab9b3 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
@@ -16,11 +16,13 @@
#include "chrome/common/extensions/api/networking_private.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/shill_manager_client.h"
+#include "chromeos/network/favorite_state.h"
#include "chromeos/network/managed_network_configuration_handler.h"
#include "chromeos/network/network_connection_handler.h"
#include "chromeos/network/network_device_handler.h"
#include "chromeos/network/network_state.h"
#include "chromeos/network/network_state_handler.h"
+#include "chromeos/network/network_util.h"
#include "chromeos/network/onc/onc_signature.h"
#include "chromeos/network/onc/onc_translator.h"
#include "chromeos/network/onc/onc_utils.h"
@@ -31,6 +33,7 @@
namespace api = extensions::api::networking_private;
using chromeos::DBusThreadManager;
+using chromeos::FavoriteState;
using chromeos::ManagedNetworkConfigurationHandler;
using chromeos::NetworkHandler;
using chromeos::NetworkPortalDetector;
@@ -71,6 +74,20 @@ std::string GetUserIdHash(Profile* profile) {
}
}
+bool GetServicePathFromGuid(const std::string& guid,
+ std::string* service_path,
+ std::string* error) {
+ const FavoriteState* network =
+ NetworkHandler::Get()->network_state_handler()->GetFavoriteStateFromGuid(
+ guid);
+ if (!network) {
+ *error = "Error.InvalidNetworkGuid";
+ return false;
+ }
+ *service_path = network->path();
+ return true;
+}
+
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -84,9 +101,12 @@ bool NetworkingPrivateGetPropertiesFunction::RunAsync() {
scoped_ptr<api::GetProperties::Params> params =
api::GetProperties::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
NetworkHandler::Get()->managed_network_configuration_handler()->GetProperties(
- params->network_guid, // service path
+ service_path,
base::Bind(&NetworkingPrivateGetPropertiesFunction::GetPropertiesSuccess,
this),
base::Bind(&NetworkingPrivateGetPropertiesFunction::GetPropertiesFailed,
@@ -97,10 +117,7 @@ bool NetworkingPrivateGetPropertiesFunction::RunAsync() {
void NetworkingPrivateGetPropertiesFunction::GetPropertiesSuccess(
const std::string& service_path,
const base::DictionaryValue& dictionary) {
- base::DictionaryValue* network_properties = dictionary.DeepCopy();
- network_properties->SetStringWithoutPathExpansion(onc::network_config::kGUID,
- service_path);
- SetResult(network_properties);
+ SetResult(dictionary.DeepCopy());
SendResponse(true);
}
@@ -122,13 +139,16 @@ bool NetworkingPrivateGetManagedPropertiesFunction::RunAsync() {
scoped_ptr<api::GetManagedProperties::Params> params =
api::GetManagedProperties::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
std::string user_id_hash;
pneubeck (no reviews) 2014/05/12 13:37:07 ?? how has this ever worked? ';' -> '=' please
stevenjb 2014/05/13 01:19:00 Yeah, the 'user_id_hash' code is completely broken
GetUserIdHash(GetProfile());
NetworkHandler::Get()->managed_network_configuration_handler()->
GetManagedProperties(
user_id_hash,
- params->network_guid, // service path
+ service_path,
base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Success,
this),
base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Failure,
@@ -139,10 +159,7 @@ bool NetworkingPrivateGetManagedPropertiesFunction::RunAsync() {
void NetworkingPrivateGetManagedPropertiesFunction::Success(
const std::string& service_path,
const base::DictionaryValue& dictionary) {
- base::DictionaryValue* network_properties = dictionary.DeepCopy();
- network_properties->SetStringWithoutPathExpansion(onc::network_config::kGUID,
- service_path);
- SetResult(network_properties);
+ SetResult(dictionary.DeepCopy());
SendResponse(true);
}
@@ -164,13 +181,14 @@ bool NetworkingPrivateGetStateFunction::RunAsync() {
scoped_ptr<api::GetState::Params> params =
api::GetState::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
- // The |network_guid| parameter is storing the service path.
- std::string service_path = params->network_guid;
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
const NetworkState* state = NetworkHandler::Get()->network_state_handler()->
GetNetworkState(service_path);
if (!state) {
- error_ = "Error.InvalidParameter";
+ error_ = "Error.NetworkUnavailable";
pneubeck (no reviews) 2014/05/12 13:37:07 I think, GetState should also return successfully
stevenjb 2014/05/13 01:19:00 In the "getNetworks" CL I fix this for getNetworks
return false;
}
@@ -196,12 +214,15 @@ bool NetworkingPrivateSetPropertiesFunction::RunAsync() {
scoped_ptr<api::SetProperties::Params> params =
api::SetProperties::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
scoped_ptr<base::DictionaryValue> properties_dict(
params->properties.ToValue());
NetworkHandler::Get()->managed_network_configuration_handler()->SetProperties(
- params->network_guid, // service path
+ service_path,
*properties_dict,
base::Bind(&NetworkingPrivateSetPropertiesFunction::ResultCallback,
this),
@@ -275,30 +296,12 @@ bool NetworkingPrivateGetVisibleNetworksFunction::RunAsync() {
scoped_ptr<api::GetVisibleNetworks::Params> params =
api::GetVisibleNetworks::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
- NetworkTypePattern type = chromeos::onc::NetworkTypePatternFromOncType(
+ NetworkTypePattern pattern = chromeos::onc::NetworkTypePatternFromOncType(
api::GetVisibleNetworks::Params::ToString(params->type));
- NetworkStateHandler::NetworkStateList network_states;
- NetworkHandler::Get()->network_state_handler()->GetNetworkListByType(
- type, &network_states);
-
- base::ListValue* network_properties_list = new base::ListValue;
- for (NetworkStateHandler::NetworkStateList::iterator it =
- network_states.begin();
- it != network_states.end(); ++it) {
- base::DictionaryValue shill_dictionary;
- (*it)->GetStateProperties(&shill_dictionary);
-
- scoped_ptr<base::DictionaryValue> onc_network_part =
- chromeos::onc::TranslateShillServiceToONCPart(
- shill_dictionary, &chromeos::onc::kNetworkWithStateSignature);
- // TODO(stevenjb): Fix this to always use GUID: crbug.com/284827
- onc_network_part->SetStringWithoutPathExpansion(
- onc::network_config::kGUID, (*it)->path());
- network_properties_list->Append(onc_network_part.release());
- }
-
- SetResult(network_properties_list);
+ scoped_ptr<base::ListValue> network_properties_list =
+ chromeos::network_util::TranslateNetworkListToONC(pattern);
+ SetResult(network_properties_list.release());
SendResponse(true);
return true;
}
@@ -439,10 +442,13 @@ bool NetworkingPrivateStartConnectFunction::RunAsync() {
scoped_ptr<api::StartConnect::Params> params =
api::StartConnect::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
const bool check_error_state = false;
NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
- params->network_guid, // service path
+ service_path,
base::Bind(
&NetworkingPrivateStartConnectFunction::ConnectionStartSuccess,
this),
@@ -475,9 +481,12 @@ bool NetworkingPrivateStartDisconnectFunction::RunAsync() {
scoped_ptr<api::StartDisconnect::Params> params =
api::StartDisconnect::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
- params->network_guid, // service path
+ service_path,
base::Bind(
&NetworkingPrivateStartDisconnectFunction::DisconnectionStartSuccess,
this),
@@ -536,15 +545,18 @@ bool NetworkingPrivateVerifyAndEncryptCredentialsFunction::RunAsync() {
scoped_ptr<api::VerifyAndEncryptCredentials::Params> params =
api::VerifyAndEncryptCredentials::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
- ShillManagerClient* shill_manager_client =
- DBusThreadManager::Get()->GetShillManagerClient();
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
ShillManagerClient::VerificationProperties verification_properties =
ConvertVerificationProperties(params->properties);
+ ShillManagerClient* shill_manager_client =
+ DBusThreadManager::Get()->GetShillManagerClient();
shill_manager_client->VerifyAndEncryptCredentials(
verification_properties,
- params->guid,
+ service_path,
base::Bind(
&NetworkingPrivateVerifyAndEncryptCredentialsFunction::ResultCallback,
this),
@@ -694,6 +706,9 @@ bool NetworkingPrivateGetCaptivePortalStatusFunction::RunAsync() {
scoped_ptr<api::GetCaptivePortalStatus::Params> params =
api::GetCaptivePortalStatus::Params::Create(*args_);
EXTENSION_FUNCTION_VALIDATE(params);
+ std::string service_path;
+ if (!GetServicePathFromGuid(params->network_guid, &service_path, &error_))
+ return false;
NetworkPortalDetector* detector = NetworkPortalDetector::Get();
if (!detector) {
@@ -702,7 +717,7 @@ bool NetworkingPrivateGetCaptivePortalStatusFunction::RunAsync() {
}
NetworkPortalDetector::CaptivePortalState state =
- detector->GetCaptivePortalState(params->network_path);
+ detector->GetCaptivePortalState(service_path);
SetResult(new base::StringValue(
NetworkPortalDetector::CaptivePortalStatusString(state.status)));

Powered by Google App Engine
This is Rietveld 408576698