1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/extensions/api/networking_private/networking_private_api.h"
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/bind.h"
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/bind_helpers.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/callback.h"
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/extensions/api/networking_private/networking_private_delegate.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/common/extensions/api/networking_private.h"
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/onc/onc_constants.h"
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "extensions/browser/extension_function_registry.h"
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst int kDefaultNetworkListLimit = 1000;
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdochextensions::NetworkingPrivateDelegate* GetDelegate(
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    content::BrowserContext* browser_context) {
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return extensions::NetworkingPrivateDelegate::GetForBrowserContext(
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      browser_context);
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace private_api = extensions::api::networking_private;
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace extensions {
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace networking_private {
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// static
34116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kErrorInvalidNetworkGuid[] = "Error.InvalidNetworkGuid";
35116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kErrorNetworkUnavailable[] = "Error.NetworkUnavailable";
36116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kErrorEncryptionError[] = "Error.EncryptionError";
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kErrorNotReady[] = "Error.NotReady";
38116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kErrorNotSupported[] = "Error.NotSupported";
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace networking_private
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetPropertiesFunction
44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
45116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetPropertiesFunction::
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateGetPropertiesFunction() {
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetPropertiesFunction::RunAsync() {
50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetProperties::Params> params =
51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetProperties::Params::Create(*args_);
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetProperties(
55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetPropertiesFunction::Success, this),
57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetPropertiesFunction::Failure, this));
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
59116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
61116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetPropertiesFunction::Success(
62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    scoped_ptr<base::DictionaryValue> result) {
63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SetResult(result.release());
64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
67116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetPropertiesFunction::Failure(const std::string& error) {
68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetManagedPropertiesFunction
74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
75116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetManagedPropertiesFunction::
76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateGetManagedPropertiesFunction() {
77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
79116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetManagedPropertiesFunction::RunAsync() {
80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetManagedProperties::Params> params =
81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetManagedProperties::Params::Create(*args_);
82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetManagedProperties(
85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Success, this),
87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetManagedPropertiesFunction::Failure,
88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this));
89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
92116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetManagedPropertiesFunction::Success(
93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    scoped_ptr<base::DictionaryValue> result) {
94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SetResult(result.release());
95116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
98116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetManagedPropertiesFunction::Failure(
99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetStateFunction
106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
107116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetStateFunction::~NetworkingPrivateGetStateFunction() {
108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
110116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetStateFunction::RunAsync() {
111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetState::Params> params =
112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetState::Params::Create(*args_);
113116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetState(
116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
117116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetStateFunction::Success, this),
118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetStateFunction::Failure, this));
119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
122116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetStateFunction::Success(
123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    scoped_ptr<base::DictionaryValue> result) {
124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SetResult(result.release());
125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
126116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
128116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetStateFunction::Failure(const std::string& error) {
129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
130116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
131116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
132116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
134116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateSetPropertiesFunction
135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
136116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateSetPropertiesFunction::
137116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateSetPropertiesFunction() {
138116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
140116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateSetPropertiesFunction::RunAsync() {
141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::SetProperties::Params> params =
142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::SetProperties::Params::Create(*args_);
143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<base::DictionaryValue> properties_dict(
146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->properties.ToValue());
147116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->SetProperties(
149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
150116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      properties_dict.Pass(),
151116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateSetPropertiesFunction::Success, this),
152116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateSetPropertiesFunction::Failure, this));
153116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
155116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
156116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateSetPropertiesFunction::Success() {
157116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
158116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
159116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
160116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateSetPropertiesFunction::Failure(const std::string& error) {
161116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
162116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
163116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
165116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateCreateNetworkFunction
167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
168116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateCreateNetworkFunction::
169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateCreateNetworkFunction() {
170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
172116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateCreateNetworkFunction::RunAsync() {
173116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::CreateNetwork::Params> params =
174116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::CreateNetwork::Params::Create(*args_);
175116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
176116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
177116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<base::DictionaryValue> properties_dict(
178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->properties.ToValue());
179116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
180116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->CreateNetwork(
181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->shared,
182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      properties_dict.Pass(),
183116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateCreateNetworkFunction::Success, this),
184116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateCreateNetworkFunction::Failure, this));
185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
187116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
188116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateCreateNetworkFunction::Success(const std::string& guid) {
189116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::CreateNetwork::Results::Create(guid);
190116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
191116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
193116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateCreateNetworkFunction::Failure(const std::string& error) {
194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
198116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
199116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetNetworksFunction
200116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
201116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetNetworksFunction::~NetworkingPrivateGetNetworksFunction() {
202116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
203116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
204116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetNetworksFunction::RunAsync() {
205116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetNetworks::Params> params =
206116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetNetworks::Params::Create(*args_);
207116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  std::string network_type = private_api::ToString(params->filter.network_type);
210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  const bool configured_only =
211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->filter.configured ? *params->filter.configured : false;
212116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  const bool visible_only =
213116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->filter.visible ? *params->filter.visible : false;
214116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  const int limit =
215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->filter.limit ? *params->filter.limit : kDefaultNetworkListLimit;
216116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
217116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetNetworks(
218116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      network_type,
219116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      configured_only,
220116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      visible_only,
221116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      limit,
222116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetNetworksFunction::Success, this),
223116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetNetworksFunction::Failure, this));
224116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
225116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
226116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
227116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetNetworksFunction::Success(
228116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    scoped_ptr<base::ListValue> network_list) {
229116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SetResult(network_list.release());
230116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
231116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
232116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
233116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetNetworksFunction::Failure(const std::string& error) {
234116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
235116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetVisibleNetworksFunction
240116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
241116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetVisibleNetworksFunction::
242116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateGetVisibleNetworksFunction() {
243116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
244116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
245116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetVisibleNetworksFunction::RunAsync() {
246116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetVisibleNetworks::Params> params =
247116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetVisibleNetworks::Params::Create(*args_);
248116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
249116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
250116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  std::string network_type = private_api::ToString(params->network_type);
251116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  const bool configured_only = false;
252116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  const bool visible_only = true;
253116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
254116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetNetworks(
255116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      network_type,
256116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      configured_only,
257116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      visible_only,
258116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      kDefaultNetworkListLimit,
259116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetVisibleNetworksFunction::Success, this),
260116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetVisibleNetworksFunction::Failure, this));
261116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
262116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
263116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
264116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetVisibleNetworksFunction::Success(
265116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    scoped_ptr<base::ListValue> network_properties_list) {
266116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SetResult(network_properties_list.release());
267116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
268116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
269116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
270116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetVisibleNetworksFunction::Failure(
271116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
272116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
273116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
274116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
276116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
277116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetEnabledNetworkTypesFunction
278116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
279116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetEnabledNetworkTypesFunction::
280116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateGetEnabledNetworkTypesFunction() {
281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
282116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
283116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetEnabledNetworkTypesFunction::RunSync() {
284116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<base::ListValue> enabled_networks_onc_types(
285116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      GetDelegate(browser_context())->GetEnabledNetworkTypes());
286116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  if (!enabled_networks_onc_types) {
287116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    error_ = networking_private::kErrorNotSupported;
288116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    return false;
289116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
2901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  scoped_ptr<base::ListValue> enabled_networks_list(new base::ListValue);
291116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  for (base::ListValue::iterator iter = enabled_networks_onc_types->begin();
292116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch       iter != enabled_networks_onc_types->end(); ++iter) {
293116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    std::string type;
294116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    if (!(*iter)->GetAsString(&type))
295116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      NOTREACHED();
296116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    if (type == ::onc::network_type::kEthernet) {
297116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      enabled_networks_list->AppendString(api::networking_private::ToString(
298116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          api::networking_private::NETWORK_TYPE_ETHERNET));
299116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    } else if (type == ::onc::network_type::kWiFi) {
300116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      enabled_networks_list->AppendString(api::networking_private::ToString(
301116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          api::networking_private::NETWORK_TYPE_WIFI));
302116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    } else if (type == ::onc::network_type::kWimax) {
303116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      enabled_networks_list->AppendString(api::networking_private::ToString(
304116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          api::networking_private::NETWORK_TYPE_WIMAX));
305116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    } else if (type == ::onc::network_type::kCellular) {
306116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      enabled_networks_list->AppendString(api::networking_private::ToString(
307116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          api::networking_private::NETWORK_TYPE_CELLULAR));
308116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    } else {
309116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      LOG(ERROR) << "networkingPrivate: Unexpected type: " << type;
310116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    }
311116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  }
312116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SetResult(enabled_networks_list.release());
313116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
314116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
315116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
316116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
317116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateEnableNetworkTypeFunction
318116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
319116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateEnableNetworkTypeFunction::
320116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateEnableNetworkTypeFunction() {
321116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
322116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
323116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateEnableNetworkTypeFunction::RunSync() {
324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::EnableNetworkType::Params> params =
325116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::EnableNetworkType::Params::Create(*args_);
326116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
327116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
328116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return GetDelegate(browser_context())->EnableNetworkType(
329116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::ToString(params->network_type));
330116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
331116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
332116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
333116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateDisableNetworkTypeFunction
334116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
335116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateDisableNetworkTypeFunction::
336116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateDisableNetworkTypeFunction() {
337116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
338116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
339116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateDisableNetworkTypeFunction::RunSync() {
340116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::DisableNetworkType::Params> params =
341116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::DisableNetworkType::Params::Create(*args_);
342116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
343116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return GetDelegate(browser_context())->DisableNetworkType(
344116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::ToString(params->network_type));
345116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
346116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
347116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
348116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateRequestNetworkScanFunction
349116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
350116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateRequestNetworkScanFunction::
351116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateRequestNetworkScanFunction() {
352116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
353116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
354116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateRequestNetworkScanFunction::RunSync() {
355116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return GetDelegate(browser_context())->RequestScan();
356116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
357116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
358116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
359116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateStartConnectFunction
360116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
361116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateStartConnectFunction::
362116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateStartConnectFunction() {
363116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
364116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
365116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateStartConnectFunction::RunAsync() {
366116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::StartConnect::Params> params =
367116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::StartConnect::Params::Create(*args_);
368116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
369116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
370116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->StartConnect(
371116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
372116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateStartConnectFunction::Success, this),
373116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateStartConnectFunction::Failure, this));
374116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
375116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
376116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
377116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateStartConnectFunction::Success() {
378116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
379116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
380116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
381116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateStartConnectFunction::Failure(const std::string& error) {
382116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
383116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
384116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
385116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
386116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
387116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateStartDisconnectFunction
388116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
389116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateStartDisconnectFunction::
390116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateStartDisconnectFunction() {
391116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
392116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
393116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateStartDisconnectFunction::RunAsync() {
394116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::StartDisconnect::Params> params =
395116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::StartDisconnect::Params::Create(*args_);
396116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
397116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
398116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->StartDisconnect(
399116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
400116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateStartDisconnectFunction::Success, this),
401116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateStartDisconnectFunction::Failure, this));
402116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
403116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
404116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
405116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateStartDisconnectFunction::Success() {
406116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
407116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
408116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
409116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateStartDisconnectFunction::Failure(
410116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
411116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
412116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
413116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
414116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
415116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
416116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateVerifyDestinationFunction
417116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
418116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateVerifyDestinationFunction::
419116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateVerifyDestinationFunction() {
420116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
421116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
422116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateVerifyDestinationFunction::RunAsync() {
423116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::VerifyDestination::Params> params =
424116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::VerifyDestination::Params::Create(*args_);
425116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
426116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
427116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->VerifyDestination(
428116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->properties,
429116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateVerifyDestinationFunction::Success, this),
430116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateVerifyDestinationFunction::Failure, this));
431116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
432116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
433116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
434116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateVerifyDestinationFunction::Success(bool result) {
435116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::VerifyDestination::Results::Create(result);
436116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
437116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
438116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
439116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateVerifyDestinationFunction::Failure(
440116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
441116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
442116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
443116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
444116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
445116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
446116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateVerifyAndEncryptCredentialsFunction
447116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
448116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateVerifyAndEncryptCredentialsFunction::
449116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateVerifyAndEncryptCredentialsFunction() {
450116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
451116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
452116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateVerifyAndEncryptCredentialsFunction::RunAsync() {
453116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::VerifyAndEncryptCredentials::Params> params =
454116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::VerifyAndEncryptCredentials::Params::Create(*args_);
455116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
456116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
457116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->VerifyAndEncryptCredentials(
458116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
459116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->properties,
460116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success,
461116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this),
462116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateVerifyAndEncryptCredentialsFunction::Failure,
463116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this));
464116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
465116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
466116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
467116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateVerifyAndEncryptCredentialsFunction::Success(
468116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& result) {
469116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::VerifyAndEncryptCredentials::Results::Create(result);
470116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
471116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
472116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
473116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateVerifyAndEncryptCredentialsFunction::Failure(
474116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
475116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
476116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
477116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
478116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
479116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
480116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateVerifyAndEncryptDataFunction
481116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
482116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateVerifyAndEncryptDataFunction::
483116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateVerifyAndEncryptDataFunction() {
484116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
485116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
486116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateVerifyAndEncryptDataFunction::RunAsync() {
487116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::VerifyAndEncryptData::Params> params =
488116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::VerifyAndEncryptData::Params::Create(*args_);
489116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
490116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
491116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->VerifyAndEncryptData(
492116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->properties,
493116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->data,
494116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Success, this),
495116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateVerifyAndEncryptDataFunction::Failure,
496116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this));
497116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
498116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
499116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
500116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateVerifyAndEncryptDataFunction::Success(
501116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& result) {
502116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::VerifyAndEncryptData::Results::Create(result);
503116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
504116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
505116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
506116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateVerifyAndEncryptDataFunction::Failure(
507116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
508116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
509116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
510116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
511116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
512116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
513116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateSetWifiTDLSEnabledStateFunction
514116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
515116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateSetWifiTDLSEnabledStateFunction::
516116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateSetWifiTDLSEnabledStateFunction() {
517116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
518116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
519116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateSetWifiTDLSEnabledStateFunction::RunAsync() {
520116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::SetWifiTDLSEnabledState::Params> params =
521116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::SetWifiTDLSEnabledState::Params::Create(*args_);
522116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
523116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
524116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->SetWifiTDLSEnabledState(
525116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->ip_or_mac_address,
526116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->enabled,
527116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateSetWifiTDLSEnabledStateFunction::Success,
528116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this),
529116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateSetWifiTDLSEnabledStateFunction::Failure,
530116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this));
531116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
532116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
533116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
534116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
535116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateSetWifiTDLSEnabledStateFunction::Success(
536116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& result) {
537116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::SetWifiTDLSEnabledState::Results::Create(result);
538116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
539116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
540116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
541116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateSetWifiTDLSEnabledStateFunction::Failure(
542116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
543116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
544116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
545116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
546116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
547116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
548116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetWifiTDLSStatusFunction
549116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
550116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetWifiTDLSStatusFunction::
551116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateGetWifiTDLSStatusFunction() {
552116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
553116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
554116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetWifiTDLSStatusFunction::RunAsync() {
555116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetWifiTDLSStatus::Params> params =
556116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetWifiTDLSStatus::Params::Create(*args_);
557116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
558116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
559116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetWifiTDLSStatus(
560116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->ip_or_mac_address,
561116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetWifiTDLSStatusFunction::Success, this),
562116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetWifiTDLSStatusFunction::Failure, this));
563116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
564116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
565116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
566116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
567116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetWifiTDLSStatusFunction::Success(
568116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& result) {
569116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::GetWifiTDLSStatus::Results::Create(result);
570116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
571116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
572116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
573116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetWifiTDLSStatusFunction::Failure(
574116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
575116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
576116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
577116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
578116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
579116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch////////////////////////////////////////////////////////////////////////////////
580116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// NetworkingPrivateGetCaptivePortalStatusFunction
581116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
582116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateGetCaptivePortalStatusFunction::
583116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    ~NetworkingPrivateGetCaptivePortalStatusFunction() {
584116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
585116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
586116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool NetworkingPrivateGetCaptivePortalStatusFunction::RunAsync() {
587116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  scoped_ptr<private_api::GetCaptivePortalStatus::Params> params =
588116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::GetCaptivePortalStatus::Params::Create(*args_);
589116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  EXTENSION_FUNCTION_VALIDATE(params);
590116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
591116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  GetDelegate(browser_context())->GetCaptivePortalStatus(
592116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      params->network_guid,
593116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetCaptivePortalStatusFunction::Success,
594116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this),
595116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      base::Bind(&NetworkingPrivateGetCaptivePortalStatusFunction::Failure,
596116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                 this));
597116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  return true;
598116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
599116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
600116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetCaptivePortalStatusFunction::Success(
601116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& result) {
602116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  results_ = private_api::GetCaptivePortalStatus::Results::Create(
603116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      private_api::ParseCaptivePortalStatus(result));
604116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(true);
605116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
606116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
607116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid NetworkingPrivateGetCaptivePortalStatusFunction::Failure(
608116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch    const std::string& error) {
609116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  error_ = error;
610116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  SendResponse(false);
611116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}
612116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
613116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace extensions
614