Index: chrome/browser/extensions/api/networking_private/networking_private_api.cc |
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_api.cc b/chrome/browser/extensions/api/networking_private/networking_private_api.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d698a0d22e4a9b9f409ef5aa656d8a7a2bc4d27f |
--- /dev/null |
+++ b/chrome/browser/extensions/api/networking_private/networking_private_api.cc |
@@ -0,0 +1,613 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/extensions/api/networking_private/networking_private_api.h" |
+ |
+#include "base/bind.h" |
+#include "base/bind_helpers.h" |
+#include "base/callback.h" |
+#include "chrome/browser/extensions/api/networking_private/networking_private_delegate.h" |
+#include "chrome/common/extensions/api/networking_private.h" |
+#include "components/onc/onc_constants.h" |
+#include "extensions/browser/extension_function_registry.h" |
+ |
+namespace { |
+ |
+const int kDefaultNetworkListLimit = 1000; |
+ |
+extensions::NetworkingPrivateDelegate* GetDelegate( |
+ content::BrowserContext* browser_context) { |
+ return extensions::NetworkingPrivateDelegate::GetForBrowserContext( |
+ browser_context); |
+} |
+ |
+} // namespace |
+ |
+namespace private_api = extensions::api::networking_private; |
+ |
+namespace extensions { |
+ |
+namespace networking_private { |
+ |
+// static |
+const char kErrorInvalidNetworkGuid[] = "Error.InvalidNetworkGuid"; |
+const char kErrorNetworkUnavailable[] = "Error.NetworkUnavailable"; |
+const char kErrorEncryptionError[] = "Error.EncryptionError"; |
+const char kErrorNotReady[] = "Error.NotReady"; |
+const char kErrorNotSupported[] = "Error.NotSupported"; |
+ |
+} // namespace networking_private |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetPropertiesFunction |
+ |
+NetworkingPrivateGetPropertiesFunction:: |
+ ~NetworkingPrivateGetPropertiesFunction() { |
+} |
+ |
+bool NetworkingPrivateGetPropertiesFunction::RunAsync() { |
+ scoped_ptr<private_api::GetProperties::Params> params = |
+ private_api::GetProperties::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->GetProperties( |
+ params->network_guid, |
+ base::Bind(&NetworkingPrivateGetPropertiesFunction::Success, this), |
+ base::Bind(&NetworkingPrivateGetPropertiesFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetPropertiesFunction::Success( |
+ scoped_ptr<base::DictionaryValue> result) { |
+ SetResult(result.release()); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetPropertiesFunction::Failure(const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetManagedPropertiesFunction |
+ |
+NetworkingPrivateGetManagedPropertiesFunction:: |
+ ~NetworkingPrivateGetManagedPropertiesFunction() { |
+} |
+ |
+bool NetworkingPrivateGetManagedPropertiesFunction::RunAsync() { |
+ scoped_ptr<private_api::GetManagedProperties::Params> params = |
+ private_api::GetManagedProperties::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->GetManagedProperties( |
+ params->network_guid, |
+ base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Success, this), |
+ base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Failure, |
+ this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetManagedPropertiesFunction::Success( |
+ scoped_ptr<base::DictionaryValue> result) { |
+ SetResult(result.release()); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetManagedPropertiesFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetStateFunction |
+ |
+NetworkingPrivateGetStateFunction::~NetworkingPrivateGetStateFunction() { |
+} |
+ |
+bool NetworkingPrivateGetStateFunction::RunAsync() { |
+ scoped_ptr<private_api::GetState::Params> params = |
+ private_api::GetState::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->GetState( |
+ params->network_guid, |
+ base::Bind(&NetworkingPrivateGetStateFunction::Success, this), |
+ base::Bind(&NetworkingPrivateGetStateFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetStateFunction::Success( |
+ scoped_ptr<base::DictionaryValue> result) { |
+ SetResult(result.release()); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetStateFunction::Failure(const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateSetPropertiesFunction |
+ |
+NetworkingPrivateSetPropertiesFunction:: |
+ ~NetworkingPrivateSetPropertiesFunction() { |
+} |
+ |
+bool NetworkingPrivateSetPropertiesFunction::RunAsync() { |
+ scoped_ptr<private_api::SetProperties::Params> params = |
+ private_api::SetProperties::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ scoped_ptr<base::DictionaryValue> properties_dict( |
+ params->properties.ToValue()); |
+ |
+ GetDelegate(browser_context())->SetProperties( |
+ params->network_guid, |
+ properties_dict.Pass(), |
+ base::Bind(&NetworkingPrivateSetPropertiesFunction::Success, this), |
+ base::Bind(&NetworkingPrivateSetPropertiesFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateSetPropertiesFunction::Success() { |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateSetPropertiesFunction::Failure(const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateCreateNetworkFunction |
+ |
+NetworkingPrivateCreateNetworkFunction:: |
+ ~NetworkingPrivateCreateNetworkFunction() { |
+} |
+ |
+bool NetworkingPrivateCreateNetworkFunction::RunAsync() { |
+ scoped_ptr<private_api::CreateNetwork::Params> params = |
+ private_api::CreateNetwork::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ scoped_ptr<base::DictionaryValue> properties_dict( |
+ params->properties.ToValue()); |
+ |
+ GetDelegate(browser_context())->CreateNetwork( |
+ params->shared, |
+ properties_dict.Pass(), |
+ base::Bind(&NetworkingPrivateCreateNetworkFunction::Success, this), |
+ base::Bind(&NetworkingPrivateCreateNetworkFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateCreateNetworkFunction::Success(const std::string& guid) { |
+ results_ = private_api::CreateNetwork::Results::Create(guid); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateCreateNetworkFunction::Failure(const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetNetworksFunction |
+ |
+NetworkingPrivateGetNetworksFunction::~NetworkingPrivateGetNetworksFunction() { |
+} |
+ |
+bool NetworkingPrivateGetNetworksFunction::RunAsync() { |
+ scoped_ptr<private_api::GetNetworks::Params> params = |
+ private_api::GetNetworks::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ std::string network_type = private_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; |
+ |
+ GetDelegate(browser_context())->GetNetworks( |
+ network_type, |
+ configured_only, |
+ visible_only, |
+ limit, |
+ base::Bind(&NetworkingPrivateGetNetworksFunction::Success, this), |
+ base::Bind(&NetworkingPrivateGetNetworksFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetNetworksFunction::Success( |
+ scoped_ptr<base::ListValue> network_list) { |
+ SetResult(network_list.release()); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetNetworksFunction::Failure(const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetVisibleNetworksFunction |
+ |
+NetworkingPrivateGetVisibleNetworksFunction:: |
+ ~NetworkingPrivateGetVisibleNetworksFunction() { |
+} |
+ |
+bool NetworkingPrivateGetVisibleNetworksFunction::RunAsync() { |
+ scoped_ptr<private_api::GetVisibleNetworks::Params> params = |
+ private_api::GetVisibleNetworks::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ std::string network_type = private_api::ToString(params->network_type); |
+ const bool configured_only = false; |
+ const bool visible_only = true; |
+ |
+ GetDelegate(browser_context())->GetNetworks( |
+ network_type, |
+ configured_only, |
+ visible_only, |
+ kDefaultNetworkListLimit, |
+ base::Bind(&NetworkingPrivateGetVisibleNetworksFunction::Success, this), |
+ base::Bind(&NetworkingPrivateGetVisibleNetworksFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetVisibleNetworksFunction::Success( |
+ scoped_ptr<base::ListValue> network_properties_list) { |
+ SetResult(network_properties_list.release()); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetVisibleNetworksFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetEnabledNetworkTypesFunction |
+ |
+NetworkingPrivateGetEnabledNetworkTypesFunction:: |
+ ~NetworkingPrivateGetEnabledNetworkTypesFunction() { |
+} |
+ |
+bool NetworkingPrivateGetEnabledNetworkTypesFunction::RunSync() { |
+ scoped_ptr<base::ListValue> enabled_networks_onc_types( |
+ GetDelegate(browser_context())->GetEnabledNetworkTypes()); |
+ if (!enabled_networks_onc_types) { |
+ error_ = networking_private::kErrorNotSupported; |
+ return false; |
+ } |
+ scoped_ptr<base::ListValue> enabled_networks_list; |
+ for (base::ListValue::iterator iter = enabled_networks_onc_types->begin(); |
+ iter != enabled_networks_onc_types->end(); ++iter) { |
+ std::string type; |
+ if (!(*iter)->GetAsString(&type)) |
+ NOTREACHED(); |
+ if (type == ::onc::network_type::kEthernet) { |
+ enabled_networks_list->AppendString(api::networking_private::ToString( |
+ api::networking_private::NETWORK_TYPE_ETHERNET)); |
+ } else if (type == ::onc::network_type::kWiFi) { |
+ enabled_networks_list->AppendString(api::networking_private::ToString( |
+ api::networking_private::NETWORK_TYPE_WIFI)); |
+ } else if (type == ::onc::network_type::kWimax) { |
+ enabled_networks_list->AppendString(api::networking_private::ToString( |
+ api::networking_private::NETWORK_TYPE_WIMAX)); |
+ } else if (type == ::onc::network_type::kCellular) { |
+ enabled_networks_list->AppendString(api::networking_private::ToString( |
+ api::networking_private::NETWORK_TYPE_CELLULAR)); |
+ } else { |
+ LOG(ERROR) << "networkingPrivate: Unexpected type: " << type; |
+ } |
+ } |
+ SetResult(enabled_networks_list.release()); |
+ return true; |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateEnableNetworkTypeFunction |
+ |
+NetworkingPrivateEnableNetworkTypeFunction:: |
+ ~NetworkingPrivateEnableNetworkTypeFunction() { |
+} |
+ |
+bool NetworkingPrivateEnableNetworkTypeFunction::RunSync() { |
+ scoped_ptr<private_api::EnableNetworkType::Params> params = |
+ private_api::EnableNetworkType::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ return GetDelegate(browser_context())->EnableNetworkType( |
+ private_api::ToString(params->network_type)); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateDisableNetworkTypeFunction |
+ |
+NetworkingPrivateDisableNetworkTypeFunction:: |
+ ~NetworkingPrivateDisableNetworkTypeFunction() { |
+} |
+ |
+bool NetworkingPrivateDisableNetworkTypeFunction::RunSync() { |
+ scoped_ptr<private_api::DisableNetworkType::Params> params = |
+ private_api::DisableNetworkType::Params::Create(*args_); |
+ |
+ return GetDelegate(browser_context())->DisableNetworkType( |
+ private_api::ToString(params->network_type)); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateRequestNetworkScanFunction |
+ |
+NetworkingPrivateRequestNetworkScanFunction:: |
+ ~NetworkingPrivateRequestNetworkScanFunction() { |
+} |
+ |
+bool NetworkingPrivateRequestNetworkScanFunction::RunSync() { |
+ return GetDelegate(browser_context())->RequestScan(); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateStartConnectFunction |
+ |
+NetworkingPrivateStartConnectFunction:: |
+ ~NetworkingPrivateStartConnectFunction() { |
+} |
+ |
+bool NetworkingPrivateStartConnectFunction::RunAsync() { |
+ scoped_ptr<private_api::StartConnect::Params> params = |
+ private_api::StartConnect::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->StartConnect( |
+ params->network_guid, |
+ base::Bind(&NetworkingPrivateStartConnectFunction::Success, this), |
+ base::Bind(&NetworkingPrivateStartConnectFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateStartConnectFunction::Success() { |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateStartConnectFunction::Failure(const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateStartDisconnectFunction |
+ |
+NetworkingPrivateStartDisconnectFunction:: |
+ ~NetworkingPrivateStartDisconnectFunction() { |
+} |
+ |
+bool NetworkingPrivateStartDisconnectFunction::RunAsync() { |
+ scoped_ptr<private_api::StartDisconnect::Params> params = |
+ private_api::StartDisconnect::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->StartDisconnect( |
+ params->network_guid, |
+ base::Bind(&NetworkingPrivateStartDisconnectFunction::Success, this), |
+ base::Bind(&NetworkingPrivateStartDisconnectFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateStartDisconnectFunction::Success() { |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateStartDisconnectFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateVerifyDestinationFunction |
+ |
+NetworkingPrivateVerifyDestinationFunction:: |
+ ~NetworkingPrivateVerifyDestinationFunction() { |
+} |
+ |
+bool NetworkingPrivateVerifyDestinationFunction::RunAsync() { |
+ scoped_ptr<private_api::VerifyDestination::Params> params = |
+ private_api::VerifyDestination::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->VerifyDestination( |
+ params->properties, |
+ base::Bind(&NetworkingPrivateVerifyDestinationFunction::Success, this), |
+ base::Bind(&NetworkingPrivateVerifyDestinationFunction::Failure, this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateVerifyDestinationFunction::Success(bool result) { |
+ results_ = private_api::VerifyDestination::Results::Create(result); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateVerifyDestinationFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateVerifyAndEncryptCredentialsFunction |
+ |
+NetworkingPrivateVerifyAndEncryptCredentialsFunction:: |
+ ~NetworkingPrivateVerifyAndEncryptCredentialsFunction() { |
+} |
+ |
+bool NetworkingPrivateVerifyAndEncryptCredentialsFunction::RunAsync() { |
+ scoped_ptr<private_api::VerifyAndEncryptCredentials::Params> params = |
+ private_api::VerifyAndEncryptCredentials::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->VerifyAndEncryptCredentials( |
+ params->network_guid, |
+ params->properties, |
+ base::Bind(&NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success, |
+ this), |
+ base::Bind(&NetworkingPrivateVerifyAndEncryptCredentialsFunction::Failure, |
+ this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success( |
+ const std::string& result) { |
+ results_ = private_api::VerifyAndEncryptCredentials::Results::Create(result); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateVerifyAndEncryptCredentialsFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateVerifyAndEncryptDataFunction |
+ |
+NetworkingPrivateVerifyAndEncryptDataFunction:: |
+ ~NetworkingPrivateVerifyAndEncryptDataFunction() { |
+} |
+ |
+bool NetworkingPrivateVerifyAndEncryptDataFunction::RunAsync() { |
+ scoped_ptr<private_api::VerifyAndEncryptData::Params> params = |
+ private_api::VerifyAndEncryptData::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->VerifyAndEncryptData( |
+ params->properties, |
+ params->data, |
+ base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Success, this), |
+ base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Failure, |
+ this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateVerifyAndEncryptDataFunction::Success( |
+ const std::string& result) { |
+ results_ = private_api::VerifyAndEncryptData::Results::Create(result); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateVerifyAndEncryptDataFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateSetWifiTDLSEnabledStateFunction |
+ |
+NetworkingPrivateSetWifiTDLSEnabledStateFunction:: |
+ ~NetworkingPrivateSetWifiTDLSEnabledStateFunction() { |
+} |
+ |
+bool NetworkingPrivateSetWifiTDLSEnabledStateFunction::RunAsync() { |
+ scoped_ptr<private_api::SetWifiTDLSEnabledState::Params> params = |
+ private_api::SetWifiTDLSEnabledState::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->SetWifiTDLSEnabledState( |
+ params->ip_or_mac_address, |
+ params->enabled, |
+ base::Bind(&NetworkingPrivateSetWifiTDLSEnabledStateFunction::Success, |
+ this), |
+ base::Bind(&NetworkingPrivateSetWifiTDLSEnabledStateFunction::Failure, |
+ this)); |
+ |
+ return true; |
+} |
+ |
+void NetworkingPrivateSetWifiTDLSEnabledStateFunction::Success( |
+ const std::string& result) { |
+ results_ = private_api::SetWifiTDLSEnabledState::Results::Create(result); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateSetWifiTDLSEnabledStateFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetWifiTDLSStatusFunction |
+ |
+NetworkingPrivateGetWifiTDLSStatusFunction:: |
+ ~NetworkingPrivateGetWifiTDLSStatusFunction() { |
+} |
+ |
+bool NetworkingPrivateGetWifiTDLSStatusFunction::RunAsync() { |
+ scoped_ptr<private_api::GetWifiTDLSStatus::Params> params = |
+ private_api::GetWifiTDLSStatus::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->GetWifiTDLSStatus( |
+ params->ip_or_mac_address, |
+ base::Bind(&NetworkingPrivateGetWifiTDLSStatusFunction::Success, this), |
+ base::Bind(&NetworkingPrivateGetWifiTDLSStatusFunction::Failure, this)); |
+ |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetWifiTDLSStatusFunction::Success( |
+ const std::string& result) { |
+ results_ = private_api::GetWifiTDLSStatus::Results::Create(result); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetWifiTDLSStatusFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetCaptivePortalStatusFunction |
+ |
+NetworkingPrivateGetCaptivePortalStatusFunction:: |
+ ~NetworkingPrivateGetCaptivePortalStatusFunction() { |
+} |
+ |
+bool NetworkingPrivateGetCaptivePortalStatusFunction::RunAsync() { |
+ scoped_ptr<private_api::GetCaptivePortalStatus::Params> params = |
+ private_api::GetCaptivePortalStatus::Params::Create(*args_); |
+ EXTENSION_FUNCTION_VALIDATE(params); |
+ |
+ GetDelegate(browser_context())->GetCaptivePortalStatus( |
+ params->network_guid, |
+ base::Bind(&NetworkingPrivateGetCaptivePortalStatusFunction::Success, |
+ this), |
+ base::Bind(&NetworkingPrivateGetCaptivePortalStatusFunction::Failure, |
+ this)); |
+ return true; |
+} |
+ |
+void NetworkingPrivateGetCaptivePortalStatusFunction::Success( |
+ const std::string& result) { |
+ results_ = private_api::GetCaptivePortalStatus::Results::Create( |
+ private_api::ParseCaptivePortalStatus(result)); |
+ SendResponse(true); |
+} |
+ |
+void NetworkingPrivateGetCaptivePortalStatusFunction::Failure( |
+ const std::string& error) { |
+ error_ = error; |
+ SendResponse(false); |
+} |
+ |
+} // namespace extensions |