| Index: chrome/browser/extensions/api/networking_private/networking_private_service_client.cc
|
| diff --git a/chrome/browser/extensions/api/networking_private/networking_private_service_client.cc b/chrome/browser/extensions/api/networking_private/networking_private_service_client.cc
|
| index 0a5870561e515845dd6dc45ef54a576b93ade2b4..f93a835863ef5fb7a9af12d7f31439a82a8897f6 100644
|
| --- a/chrome/browser/extensions/api/networking_private/networking_private_service_client.cc
|
| +++ b/chrome/browser/extensions/api/networking_private/networking_private_service_client.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/strings/string_util.h"
|
| #include "base/threading/worker_pool.h"
|
| #include "chrome/browser/browser_process.h"
|
| +#include "chrome/browser/extensions/api/networking_private/networking_private_api.h"
|
| #include "chrome/browser/extensions/api/networking_private/networking_private_credentials_getter.h"
|
| #include "chrome/common/extensions/api/networking_private.h"
|
| #include "chrome/common/extensions/api/networking_private/networking_private_crypto.h"
|
| @@ -18,7 +19,6 @@
|
| #include "content/public/browser/utility_process_host.h"
|
|
|
| using content::BrowserThread;
|
| -using extensions::api::networking_private::VerificationProperties;
|
|
|
| namespace extensions {
|
|
|
| @@ -26,82 +26,80 @@ namespace {
|
|
|
| const char kNetworkingPrivateSequenceTokenName[] = "NetworkingPrivate";
|
|
|
| +bool GetVerificationCredentials(
|
| + const NetworkingPrivateDelegate::VerificationProperties& properties,
|
| + NetworkingPrivateServiceClient::CryptoVerify::Credentials* credentials) {
|
| + std::vector<std::string> data_parts;
|
| + data_parts.push_back(properties.device_ssid);
|
| + data_parts.push_back(properties.device_serial);
|
| + data_parts.push_back(properties.device_bssid);
|
| + data_parts.push_back(properties.public_key);
|
| + data_parts.push_back(properties.nonce);
|
| + credentials->unsigned_data = JoinString(data_parts, ",");
|
| + if (!base::Base64Decode(properties.signed_data, &credentials->signed_data)) {
|
| + LOG(ERROR) << "Failed to decode signed data: " << properties.signed_data;
|
| + return false;
|
| + }
|
| + credentials->certificate = properties.certificate;
|
| + credentials->device_bssid = properties.device_bssid;
|
| + if (!base::Base64Decode(properties.public_key, &credentials->public_key)) {
|
| + LOG(ERROR) << "Failed to decode public key";
|
| + return false;
|
| + }
|
| + return true;
|
| +}
|
| +
|
| // Implementation of Verify* methods using NetworkingPrivateCrypto.
|
| // TODO(mef): Move this into NetworkingPrivateCrypto class.
|
| class CryptoVerifyImpl : public NetworkingPrivateServiceClient::CryptoVerify {
|
| - bool VerifyDestination(const VerificationProperties& properties) {
|
| - std::vector<std::string> data_parts;
|
| - data_parts.push_back(properties.device_ssid);
|
| - data_parts.push_back(properties.device_serial);
|
| - data_parts.push_back(properties.device_bssid);
|
| - data_parts.push_back(properties.public_key);
|
| - data_parts.push_back(properties.nonce);
|
| - std::string unsigned_data = JoinString(data_parts, ",");
|
| - std::string signed_data;
|
| - if (!base::Base64Decode(properties.signed_data, &signed_data))
|
| - return false;
|
| + bool VerifyCredentials(const Credentials& credentials) {
|
| NetworkingPrivateCrypto crypto;
|
| - return crypto.VerifyCredentials(properties.certificate,
|
| - signed_data,
|
| - unsigned_data,
|
| - properties.device_bssid);
|
| + return crypto.VerifyCredentials(credentials.certificate,
|
| + credentials.signed_data,
|
| + credentials.unsigned_data,
|
| + credentials.device_bssid);
|
| }
|
|
|
| - virtual void VerifyDestination(scoped_ptr<base::ListValue> args,
|
| + // NetworkingPrivateServiceClient::CryptoVerify
|
| +
|
| + virtual void VerifyDestination(const Credentials& credentials,
|
| bool* verified,
|
| std::string* error) OVERRIDE {
|
| - using api::networking_private::VerifyDestination::Params;
|
| - scoped_ptr<Params> params = Params::Create(*args);
|
| - *verified = VerifyDestination(params->properties);
|
| + *verified = VerifyCredentials(credentials);
|
| }
|
|
|
| virtual void VerifyAndEncryptCredentials(
|
| - scoped_ptr<base::ListValue> args,
|
| + const std::string& network_guid,
|
| + const Credentials& credentials,
|
| const VerifyAndEncryptCredentialsCallback& callback) OVERRIDE {
|
| - using api::networking_private::VerifyAndEncryptCredentials::Params;
|
| - scoped_ptr<Params> params = Params::Create(*args);
|
| - std::string public_key;
|
| -
|
| - if (!VerifyDestination(params->properties)) {
|
| + if (!VerifyCredentials(credentials)) {
|
| callback.Run("", "VerifyError");
|
| return;
|
| }
|
|
|
| - if (!base::Base64Decode(params->properties.public_key, &public_key)) {
|
| - callback.Run("", "DecodeError");
|
| - return;
|
| - }
|
| -
|
| scoped_ptr<NetworkingPrivateCredentialsGetter> credentials_getter(
|
| NetworkingPrivateCredentialsGetter::Create());
|
|
|
| // Start getting credentials. On Windows |callback| will be called
|
| // asynchronously on a different thread after |credentials_getter|
|
| // is deleted.
|
| - credentials_getter->Start(params->network_guid, public_key, callback);
|
| + credentials_getter->Start(network_guid, credentials.public_key, callback);
|
| }
|
|
|
| - virtual void VerifyAndEncryptData(scoped_ptr<base::ListValue> args,
|
| + virtual void VerifyAndEncryptData(const Credentials& credentials,
|
| + const std::string& data,
|
| std::string* base64_encoded_ciphertext,
|
| std::string* error) OVERRIDE {
|
| - using api::networking_private::VerifyAndEncryptData::Params;
|
| - scoped_ptr<Params> params = Params::Create(*args);
|
| -
|
| - if (!VerifyDestination(params->properties)) {
|
| + if (!VerifyCredentials(credentials)) {
|
| *error = "VerifyError";
|
| return;
|
| }
|
|
|
| - std::string public_key;
|
| - if (!base::Base64Decode(params->properties.public_key, &public_key)) {
|
| - *error = "DecodeError";
|
| - return;
|
| - }
|
| -
|
| NetworkingPrivateCrypto crypto;
|
| - std::vector<uint8> public_key_data(public_key.begin(), public_key.end());
|
| + std::vector<uint8> public_key_data(
|
| + credentials.public_key.begin(), credentials.public_key.end());
|
| std::vector<uint8> ciphertext;
|
| - if (!crypto.EncryptByteString(public_key_data, params->data, &ciphertext)) {
|
| + if (!crypto.EncryptByteString(public_key_data, data, &ciphertext)) {
|
| *error = "EncryptError";
|
| return;
|
| }
|
| @@ -133,6 +131,9 @@ void AfterVerifyAndEncryptCredentialsRelay(
|
|
|
| } // namespace
|
|
|
| +NetworkingPrivateServiceClient::CryptoVerify::Credentials::Credentials() {}
|
| +NetworkingPrivateServiceClient::CryptoVerify::Credentials::~Credentials() {}
|
| +
|
| NetworkingPrivateServiceClient::NetworkingPrivateServiceClient(
|
| wifi::WiFiService* wifi_service,
|
| CryptoVerify* crypto_verify)
|
| @@ -225,130 +226,103 @@ void NetworkingPrivateServiceClient::RemoveServiceCallbacks(
|
| callbacks_map_.Remove(callback_id);
|
| }
|
|
|
| +// NetworkingPrivateServiceClient implementation
|
| +
|
| void NetworkingPrivateServiceClient::GetProperties(
|
| - const std::string& network_guid,
|
| - const DictionaryResultCallback& callback,
|
| - const ErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + const DictionaryCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->get_properties_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->get_properties_callback = success_callback;
|
|
|
| - base::DictionaryValue* properties = new base::DictionaryValue();
|
| + scoped_ptr<base::DictionaryValue> properties(new base::DictionaryValue);
|
| std::string* error = new std::string;
|
|
|
| task_runner_->PostTaskAndReply(
|
| FROM_HERE,
|
| base::Bind(&WiFiService::GetProperties,
|
| base::Unretained(wifi_service_.get()),
|
| - network_guid,
|
| - properties,
|
| + guid,
|
| + properties.get(),
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterGetProperties,
|
| weak_factory_.GetWeakPtr(),
|
| service_callbacks->id,
|
| - network_guid,
|
| - base::Owned(properties),
|
| + guid,
|
| + base::Passed(&properties),
|
| base::Owned(error)));
|
| }
|
|
|
| void NetworkingPrivateServiceClient::GetManagedProperties(
|
| - const std::string& network_guid,
|
| - const DictionaryResultCallback& callback,
|
| - const ErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + const DictionaryCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->get_properties_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->get_properties_callback = success_callback;
|
|
|
| - base::DictionaryValue* properties = new base::DictionaryValue();
|
| + scoped_ptr<base::DictionaryValue> properties(new base::DictionaryValue);
|
| std::string* error = new std::string;
|
|
|
| task_runner_->PostTaskAndReply(
|
| FROM_HERE,
|
| base::Bind(&WiFiService::GetManagedProperties,
|
| base::Unretained(wifi_service_.get()),
|
| - network_guid,
|
| - properties,
|
| + guid,
|
| + properties.get(),
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterGetProperties,
|
| weak_factory_.GetWeakPtr(),
|
| service_callbacks->id,
|
| - network_guid,
|
| - base::Owned(properties),
|
| + guid,
|
| + base::Passed(&properties),
|
| base::Owned(error)));
|
| }
|
|
|
| void NetworkingPrivateServiceClient::GetState(
|
| - const std::string& network_guid,
|
| - const DictionaryResultCallback& callback,
|
| - const ErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + const DictionaryCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->get_properties_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->get_properties_callback = success_callback;
|
|
|
| - base::DictionaryValue* properties = new base::DictionaryValue();
|
| + scoped_ptr<base::DictionaryValue> properties(new base::DictionaryValue);
|
| std::string* error = new std::string;
|
|
|
| task_runner_->PostTaskAndReply(
|
| FROM_HERE,
|
| base::Bind(&WiFiService::GetState,
|
| base::Unretained(wifi_service_.get()),
|
| - network_guid,
|
| - properties,
|
| + guid,
|
| + properties.get(),
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterGetProperties,
|
| weak_factory_.GetWeakPtr(),
|
| service_callbacks->id,
|
| - network_guid,
|
| - base::Owned(properties),
|
| + guid,
|
| + base::Passed(&properties),
|
| base::Owned(error)));
|
| }
|
|
|
| -void NetworkingPrivateServiceClient::GetVisibleNetworks(
|
| - const std::string& network_type,
|
| - const ListResultCallback& callback) {
|
| - ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->get_visible_networks_callback = callback;
|
| -
|
| - base::ListValue* networks = new base::ListValue();
|
| -
|
| - task_runner_->PostTaskAndReply(
|
| - FROM_HERE,
|
| - base::Bind(&WiFiService::GetVisibleNetworks,
|
| - base::Unretained(wifi_service_.get()),
|
| - network_type,
|
| - networks,
|
| - false),
|
| - base::Bind(&NetworkingPrivateServiceClient::AfterGetVisibleNetworks,
|
| - weak_factory_.GetWeakPtr(),
|
| - service_callbacks->id,
|
| - base::Owned(networks)));
|
| -}
|
| -
|
| -void NetworkingPrivateServiceClient::RequestNetworkScan() {
|
| - task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&WiFiService::RequestNetworkScan,
|
| - base::Unretained(wifi_service_.get())));
|
| -}
|
| -
|
| void NetworkingPrivateServiceClient::SetProperties(
|
| - const std::string& network_guid,
|
| - const base::DictionaryValue& properties,
|
| - const base::Closure& callback,
|
| - const ErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + scoped_ptr<base::DictionaryValue> properties,
|
| + const VoidCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->set_properties_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->set_properties_callback = success_callback;
|
|
|
| - scoped_ptr<base::DictionaryValue> properties_ptr(properties.DeepCopy());
|
| std::string* error = new std::string;
|
|
|
| task_runner_->PostTaskAndReply(
|
| FROM_HERE,
|
| base::Bind(&WiFiService::SetProperties,
|
| base::Unretained(wifi_service_.get()),
|
| - network_guid,
|
| - base::Passed(&properties_ptr),
|
| + guid,
|
| + base::Passed(&properties),
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterSetProperties,
|
| weak_factory_.GetWeakPtr(),
|
| @@ -358,14 +332,13 @@ void NetworkingPrivateServiceClient::SetProperties(
|
|
|
| void NetworkingPrivateServiceClient::CreateNetwork(
|
| bool shared,
|
| - const base::DictionaryValue& properties,
|
| - const StringResultCallback& callback,
|
| - const ErrorCallback& error_callback) {
|
| + scoped_ptr<base::DictionaryValue> properties,
|
| + const StringCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->create_network_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->create_network_callback = success_callback;
|
|
|
| - scoped_ptr<base::DictionaryValue> properties_ptr(properties.DeepCopy());
|
| std::string* network_guid = new std::string;
|
| std::string* error = new std::string;
|
|
|
| @@ -374,7 +347,7 @@ void NetworkingPrivateServiceClient::CreateNetwork(
|
| base::Bind(&WiFiService::CreateNetwork,
|
| base::Unretained(wifi_service_.get()),
|
| shared,
|
| - base::Passed(&properties_ptr),
|
| + base::Passed(&properties),
|
| network_guid,
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterCreateNetwork,
|
| @@ -384,13 +357,41 @@ void NetworkingPrivateServiceClient::CreateNetwork(
|
| base::Owned(error)));
|
| }
|
|
|
| +void NetworkingPrivateServiceClient::GetNetworks(
|
| + const std::string& network_type,
|
| + bool configured_only,
|
| + bool visible_only,
|
| + int limit,
|
| + const NetworkListCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| + ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->get_visible_networks_callback = success_callback;
|
| +
|
| + scoped_ptr<base::ListValue> networks(new base::ListValue);
|
| +
|
| + // TODO(stevenjb/mef): Apply filters (configured, visible, limit).
|
| +
|
| + task_runner_->PostTaskAndReply(
|
| + FROM_HERE,
|
| + base::Bind(&WiFiService::GetVisibleNetworks,
|
| + base::Unretained(wifi_service_.get()),
|
| + network_type,
|
| + networks.get(),
|
| + false),
|
| + base::Bind(&NetworkingPrivateServiceClient::AfterGetVisibleNetworks,
|
| + weak_factory_.GetWeakPtr(),
|
| + service_callbacks->id,
|
| + base::Passed(&networks)));
|
| +}
|
| +
|
| void NetworkingPrivateServiceClient::StartConnect(
|
| - const std::string& network_guid,
|
| - const base::Closure& callback,
|
| - const ErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + const VoidCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->start_connect_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->start_connect_callback = success_callback;
|
|
|
| std::string* error = new std::string;
|
|
|
| @@ -398,7 +399,7 @@ void NetworkingPrivateServiceClient::StartConnect(
|
| FROM_HERE,
|
| base::Bind(&WiFiService::StartConnect,
|
| base::Unretained(wifi_service_.get()),
|
| - network_guid,
|
| + guid,
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterStartConnect,
|
| weak_factory_.GetWeakPtr(),
|
| @@ -407,12 +408,12 @@ void NetworkingPrivateServiceClient::StartConnect(
|
| }
|
|
|
| void NetworkingPrivateServiceClient::StartDisconnect(
|
| - const std::string& network_guid,
|
| - const base::Closure& callback,
|
| - const ErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + const VoidCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->error_callback = error_callback;
|
| - service_callbacks->start_disconnect_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->start_disconnect_callback = success_callback;
|
|
|
| std::string* error = new std::string;
|
|
|
| @@ -420,7 +421,7 @@ void NetworkingPrivateServiceClient::StartDisconnect(
|
| FROM_HERE,
|
| base::Bind(&WiFiService::StartDisconnect,
|
| base::Unretained(wifi_service_.get()),
|
| - network_guid,
|
| + guid,
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterStartDisconnect,
|
| weak_factory_.GetWeakPtr(),
|
| @@ -429,12 +430,18 @@ void NetworkingPrivateServiceClient::StartDisconnect(
|
| }
|
|
|
| void NetworkingPrivateServiceClient::VerifyDestination(
|
| - scoped_ptr<base::ListValue> args,
|
| - const BoolResultCallback& callback,
|
| - const CryptoErrorCallback& error_callback) {
|
| + const VerificationProperties& verification_properties,
|
| + const BoolCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->crypto_error_callback = error_callback;
|
| - service_callbacks->verify_destination_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->verify_destination_callback = success_callback;
|
| +
|
| + CryptoVerify::Credentials credentials;
|
| + if (!GetVerificationCredentials(verification_properties, &credentials)) {
|
| + failure_callback.Run(networking_private::kErrorEncryptionError);
|
| + return;
|
| + }
|
|
|
| bool* result = new bool;
|
| std::string* error = new std::string;
|
| @@ -443,7 +450,7 @@ void NetworkingPrivateServiceClient::VerifyDestination(
|
| FROM_HERE,
|
| base::Bind(&CryptoVerify::VerifyDestination,
|
| base::Unretained(crypto_verify_.get()),
|
| - base::Passed(&args),
|
| + credentials,
|
| result,
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterVerifyDestination,
|
| @@ -454,12 +461,19 @@ void NetworkingPrivateServiceClient::VerifyDestination(
|
| }
|
|
|
| void NetworkingPrivateServiceClient::VerifyAndEncryptCredentials(
|
| - scoped_ptr<base::ListValue> args,
|
| - const StringResultCallback& callback,
|
| - const CryptoErrorCallback& error_callback) {
|
| + const std::string& guid,
|
| + const VerificationProperties& verification_properties,
|
| + const StringCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->crypto_error_callback = error_callback;
|
| - service_callbacks->verify_and_encrypt_credentials_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->verify_and_encrypt_credentials_callback = success_callback;
|
| +
|
| + CryptoVerify::Credentials credentials;
|
| + if (!GetVerificationCredentials(verification_properties, &credentials)) {
|
| + failure_callback.Run(networking_private::kErrorEncryptionError);
|
| + return;
|
| + }
|
|
|
| CryptoVerify::VerifyAndEncryptCredentialsCallback callback_relay(base::Bind(
|
| &AfterVerifyAndEncryptCredentialsRelay,
|
| @@ -472,17 +486,25 @@ void NetworkingPrivateServiceClient::VerifyAndEncryptCredentials(
|
| task_runner_->PostTask(FROM_HERE,
|
| base::Bind(&CryptoVerify::VerifyAndEncryptCredentials,
|
| base::Unretained(crypto_verify_.get()),
|
| - base::Passed(&args),
|
| + guid,
|
| + credentials,
|
| callback_relay));
|
| }
|
|
|
| void NetworkingPrivateServiceClient::VerifyAndEncryptData(
|
| - scoped_ptr<base::ListValue> args,
|
| - const StringResultCallback& callback,
|
| - const CryptoErrorCallback& error_callback) {
|
| + const VerificationProperties& verification_properties,
|
| + const std::string& data,
|
| + const StringCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| ServiceCallbacks* service_callbacks = AddServiceCallbacks();
|
| - service_callbacks->crypto_error_callback = error_callback;
|
| - service_callbacks->verify_and_encrypt_data_callback = callback;
|
| + service_callbacks->failure_callback = failure_callback;
|
| + service_callbacks->verify_and_encrypt_data_callback = success_callback;
|
| +
|
| + CryptoVerify::Credentials credentials;
|
| + if (!GetVerificationCredentials(verification_properties, &credentials)) {
|
| + failure_callback.Run(networking_private::kErrorEncryptionError);
|
| + return;
|
| + }
|
|
|
| std::string* result = new std::string;
|
| std::string* error = new std::string;
|
| @@ -491,7 +513,8 @@ void NetworkingPrivateServiceClient::VerifyAndEncryptData(
|
| FROM_HERE,
|
| base::Bind(&CryptoVerify::VerifyAndEncryptData,
|
| base::Unretained(crypto_verify_.get()),
|
| - base::Passed(&args),
|
| + credentials,
|
| + data,
|
| result,
|
| error),
|
| base::Bind(&NetworkingPrivateServiceClient::AfterVerifyAndEncryptData,
|
| @@ -501,31 +524,78 @@ void NetworkingPrivateServiceClient::VerifyAndEncryptData(
|
| base::Owned(error)));
|
| }
|
|
|
| +void NetworkingPrivateServiceClient::SetWifiTDLSEnabledState(
|
| + const std::string& ip_or_mac_address,
|
| + bool enabled,
|
| + const StringCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| + failure_callback.Run(networking_private::kErrorNotSupported);
|
| +}
|
| +
|
| +void NetworkingPrivateServiceClient::GetWifiTDLSStatus(
|
| + const std::string& ip_or_mac_address,
|
| + const StringCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| + failure_callback.Run(networking_private::kErrorNotSupported);
|
| +}
|
| +
|
| +void NetworkingPrivateServiceClient::GetCaptivePortalStatus(
|
| + const std::string& guid,
|
| + const StringCallback& success_callback,
|
| + const FailureCallback& failure_callback) {
|
| + failure_callback.Run(networking_private::kErrorNotSupported);
|
| +}
|
| +
|
| +scoped_ptr<base::ListValue>
|
| +NetworkingPrivateServiceClient::GetEnabledNetworkTypes() {
|
| + scoped_ptr<base::ListValue> network_list;
|
| + return network_list.Pass();
|
| +}
|
| +
|
| +bool NetworkingPrivateServiceClient::EnableNetworkType(
|
| + const std::string& type) {
|
| + return false;
|
| +}
|
| +
|
| +bool NetworkingPrivateServiceClient::DisableNetworkType(
|
| + const std::string& type) {
|
| + return false;
|
| +}
|
| +
|
| +bool NetworkingPrivateServiceClient::RequestScan() {
|
| + task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&WiFiService::RequestNetworkScan,
|
| + base::Unretained(wifi_service_.get())));
|
| + return true;
|
| +}
|
| +
|
| +////////////////////////////////////////////////////////////////////////////////
|
| +
|
| void NetworkingPrivateServiceClient::AfterGetProperties(
|
| ServiceCallbacksID callback_id,
|
| const std::string& network_guid,
|
| - const base::DictionaryValue* properties,
|
| + scoped_ptr<base::DictionaryValue> properties,
|
| const std::string* error) {
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->error_callback.is_null());
|
| - service_callbacks->error_callback.Run(*error,
|
| - scoped_ptr<base::DictionaryValue>());
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->get_properties_callback.is_null());
|
| - service_callbacks->get_properties_callback.Run(network_guid, *properties);
|
| + service_callbacks->get_properties_callback.Run(properties.Pass());
|
| }
|
| RemoveServiceCallbacks(callback_id);
|
| }
|
|
|
| void NetworkingPrivateServiceClient::AfterGetVisibleNetworks(
|
| ServiceCallbacksID callback_id,
|
| - const base::ListValue* networks) {
|
| + scoped_ptr<base::ListValue> networks) {
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| DCHECK(!service_callbacks->get_visible_networks_callback.is_null());
|
| - service_callbacks->get_visible_networks_callback.Run(*networks);
|
| + service_callbacks->get_visible_networks_callback.Run(networks.Pass());
|
| RemoveServiceCallbacks(callback_id);
|
| }
|
|
|
| @@ -535,9 +605,8 @@ void NetworkingPrivateServiceClient::AfterSetProperties(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->error_callback.is_null());
|
| - service_callbacks->error_callback.Run(*error,
|
| - scoped_ptr<base::DictionaryValue>());
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->set_properties_callback.is_null());
|
| service_callbacks->set_properties_callback.Run();
|
| @@ -552,9 +621,8 @@ void NetworkingPrivateServiceClient::AfterCreateNetwork(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->error_callback.is_null());
|
| - service_callbacks->error_callback.Run(*error,
|
| - scoped_ptr<base::DictionaryValue>());
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->create_network_callback.is_null());
|
| service_callbacks->create_network_callback.Run(*network_guid);
|
| @@ -568,9 +636,8 @@ void NetworkingPrivateServiceClient::AfterStartConnect(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->error_callback.is_null());
|
| - service_callbacks->error_callback.Run(*error,
|
| - scoped_ptr<base::DictionaryValue>());
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->start_connect_callback.is_null());
|
| service_callbacks->start_connect_callback.Run();
|
| @@ -584,9 +651,8 @@ void NetworkingPrivateServiceClient::AfterStartDisconnect(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->error_callback.is_null());
|
| - service_callbacks->error_callback.Run(*error,
|
| - scoped_ptr<base::DictionaryValue>());
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->start_disconnect_callback.is_null());
|
| service_callbacks->start_disconnect_callback.Run();
|
| @@ -601,8 +667,8 @@ void NetworkingPrivateServiceClient::AfterVerifyDestination(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->crypto_error_callback.is_null());
|
| - service_callbacks->crypto_error_callback.Run(*error, *error);
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->verify_destination_callback.is_null());
|
| service_callbacks->verify_destination_callback.Run(*result);
|
| @@ -618,8 +684,8 @@ void NetworkingPrivateServiceClient::AfterVerifyAndEncryptCredentials(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error.empty()) {
|
| - DCHECK(!service_callbacks->crypto_error_callback.is_null());
|
| - service_callbacks->crypto_error_callback.Run(error, error);
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(error);
|
| } else {
|
| DCHECK(
|
| !service_callbacks->verify_and_encrypt_credentials_callback.is_null());
|
| @@ -636,8 +702,8 @@ void NetworkingPrivateServiceClient::AfterVerifyAndEncryptData(
|
| ServiceCallbacks* service_callbacks = callbacks_map_.Lookup(callback_id);
|
| DCHECK(service_callbacks);
|
| if (!error->empty()) {
|
| - DCHECK(!service_callbacks->crypto_error_callback.is_null());
|
| - service_callbacks->crypto_error_callback.Run(*error, *error);
|
| + DCHECK(!service_callbacks->failure_callback.is_null());
|
| + service_callbacks->failure_callback.Run(*error);
|
| } else {
|
| DCHECK(!service_callbacks->verify_and_encrypt_data_callback.is_null());
|
| service_callbacks->verify_and_encrypt_data_callback.Run(*result);
|
|
|