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

Side by Side Diff: extensions/browser/api/networking_private/networking_private_chromeos.cc

Issue 870163002: Move networking_private to src/extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix GN 2 Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/networking_private/networking_private_ch romeos.h" 5 #include "extensions/browser/api/networking_private/networking_private_chromeos. h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "chrome/browser/chromeos/profiles/profile_helper.h"
11 #include "chrome/browser/extensions/api/networking_private/networking_private_ap i.h"
12 #include "chrome/common/extensions/api/networking_private.h"
13 #include "chromeos/dbus/dbus_thread_manager.h" 10 #include "chromeos/dbus/dbus_thread_manager.h"
14 #include "chromeos/dbus/shill_manager_client.h" 11 #include "chromeos/dbus/shill_manager_client.h"
15 #include "chromeos/login/login_state.h" 12 #include "chromeos/login/login_state.h"
16 #include "chromeos/network/managed_network_configuration_handler.h" 13 #include "chromeos/network/managed_network_configuration_handler.h"
17 #include "chromeos/network/network_connection_handler.h" 14 #include "chromeos/network/network_connection_handler.h"
18 #include "chromeos/network/network_device_handler.h" 15 #include "chromeos/network/network_device_handler.h"
19 #include "chromeos/network/network_event_log.h" 16 #include "chromeos/network/network_event_log.h"
20 #include "chromeos/network/network_state.h" 17 #include "chromeos/network/network_state.h"
21 #include "chromeos/network/network_state_handler.h" 18 #include "chromeos/network/network_state_handler.h"
22 #include "chromeos/network/network_util.h" 19 #include "chromeos/network/network_util.h"
23 #include "chromeos/network/onc/onc_signature.h" 20 #include "chromeos/network/onc/onc_signature.h"
24 #include "chromeos/network/onc/onc_translator.h" 21 #include "chromeos/network/onc/onc_translator.h"
25 #include "chromeos/network/onc/onc_utils.h" 22 #include "chromeos/network/onc/onc_utils.h"
26 #include "chromeos/network/portal_detector/network_portal_detector.h" 23 #include "chromeos/network/portal_detector/network_portal_detector.h"
27 #include "components/onc/onc_constants.h" 24 #include "components/onc/onc_constants.h"
28 #include "content/public/browser/browser_context.h" 25 #include "content/public/browser/browser_context.h"
26 #include "extensions/browser/api/networking_private/networking_private_api.h"
27 #include "extensions/browser/extensions_browser_client.h"
28 #include "extensions/common/api/networking_private.h"
29 29
30 using chromeos::NetworkHandler; 30 using chromeos::NetworkHandler;
31 using chromeos::NetworkTypePattern; 31 using chromeos::NetworkTypePattern;
32 using chromeos::ShillManagerClient; 32 using chromeos::ShillManagerClient;
33 using extensions::NetworkingPrivateDelegate; 33 using extensions::NetworkingPrivateDelegate;
34 34
35 namespace { 35 namespace {
36 36
37 chromeos::NetworkStateHandler* GetStateHandler() { 37 chromeos::NetworkStateHandler* GetStateHandler() {
38 return NetworkHandler::Get()->network_state_handler(); 38 return NetworkHandler::Get()->network_state_handler();
(...skipping 12 matching lines...) Expand all
51 *error = extensions::networking_private::kErrorInvalidNetworkGuid; 51 *error = extensions::networking_private::kErrorInvalidNetworkGuid;
52 return false; 52 return false;
53 } 53 }
54 *service_path = network->path(); 54 *service_path = network->path();
55 return true; 55 return true;
56 } 56 }
57 57
58 bool GetUserIdHash(content::BrowserContext* browser_context, 58 bool GetUserIdHash(content::BrowserContext* browser_context,
59 std::string* user_hash, 59 std::string* user_hash,
60 std::string* error) { 60 std::string* error) {
61 std::string profile_user_hash = 61 std::string context_user_hash =
62 chromeos::ProfileHelper::GetUserIdHashFromProfile( 62 extensions::ExtensionsBrowserClient::Get()->GetUserIdHashFromContext(
63 static_cast<Profile*>(browser_context)); 63 browser_context);
64 64
65 // Currently Chrome OS only configures networks for the primary user. 65 // Currently Chrome OS only configures networks for the primary user.
66 // Configuration attempts from other browser contexts should fail. 66 // Configuration attempts from other browser contexts should fail.
67 // TODO(stevenjb): use an ExtensionsBrowserClient method to access 67 if (context_user_hash != chromeos::LoginState::Get()->primary_user_hash()) {
68 // ProfileHelper when moving this to src/extensions.
69 if (profile_user_hash != chromeos::LoginState::Get()->primary_user_hash()) {
70 // Disallow class requiring a user id hash from a non-primary user context 68 // Disallow class requiring a user id hash from a non-primary user context
71 // to avoid complexities with the policy code. 69 // to avoid complexities with the policy code.
72 LOG(ERROR) << "networkingPrivate API call from non primary user: " 70 LOG(ERROR) << "networkingPrivate API call from non primary user: "
73 << profile_user_hash; 71 << context_user_hash;
74 *error = "Error.NonPrimaryUser"; 72 *error = "Error.NonPrimaryUser";
75 return false; 73 return false;
76 } 74 }
77 *user_hash = profile_user_hash; 75 *user_hash = context_user_hash;
78 return true; 76 return true;
79 } 77 }
80 78
81 void NetworkHandlerDictionaryCallback( 79 void NetworkHandlerDictionaryCallback(
82 const NetworkingPrivateDelegate::DictionaryCallback& callback, 80 const NetworkingPrivateDelegate::DictionaryCallback& callback,
83 const std::string& service_path, 81 const std::string& service_path,
84 const base::DictionaryValue& dictionary) { 82 const base::DictionaryValue& dictionary) {
85 scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy()); 83 scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy());
86 callback.Run(dictionary_copy.Pass()); 84 callback.Run(dictionary_copy.Pass());
87 } 85 }
(...skipping 11 matching lines...) Expand all
99 97
100 namespace extensions { 98 namespace extensions {
101 99
102 NetworkingPrivateChromeOS::NetworkingPrivateChromeOS( 100 NetworkingPrivateChromeOS::NetworkingPrivateChromeOS(
103 content::BrowserContext* browser_context, 101 content::BrowserContext* browser_context,
104 scoped_ptr<VerifyDelegate> verify_delegate) 102 scoped_ptr<VerifyDelegate> verify_delegate)
105 : NetworkingPrivateDelegate(verify_delegate.Pass()), 103 : NetworkingPrivateDelegate(verify_delegate.Pass()),
106 browser_context_(browser_context) { 104 browser_context_(browser_context) {
107 } 105 }
108 106
109 NetworkingPrivateChromeOS::~NetworkingPrivateChromeOS() {} 107 NetworkingPrivateChromeOS::~NetworkingPrivateChromeOS() {
108 }
110 109
111 void NetworkingPrivateChromeOS::GetProperties( 110 void NetworkingPrivateChromeOS::GetProperties(
112 const std::string& guid, 111 const std::string& guid,
113 const DictionaryCallback& success_callback, 112 const DictionaryCallback& success_callback,
114 const FailureCallback& failure_callback) { 113 const FailureCallback& failure_callback) {
115 std::string service_path, error; 114 std::string service_path, error;
116 if (!GetServicePathFromGuid(guid, &service_path, &error)) { 115 if (!GetServicePathFromGuid(guid, &service_path, &error)) {
117 failure_callback.Run(error); 116 failure_callback.Run(error);
118 return; 117 return;
119 } 118 }
(...skipping 14 matching lines...) Expand all
134 return; 133 return;
135 } 134 }
136 135
137 std::string user_id_hash; 136 std::string user_id_hash;
138 if (!GetUserIdHash(browser_context_, &user_id_hash, &error)) { 137 if (!GetUserIdHash(browser_context_, &user_id_hash, &error)) {
139 failure_callback.Run(error); 138 failure_callback.Run(error);
140 return; 139 return;
141 } 140 }
142 141
143 GetManagedConfigurationHandler()->GetManagedProperties( 142 GetManagedConfigurationHandler()->GetManagedProperties(
144 user_id_hash, 143 user_id_hash, service_path,
145 service_path,
146 base::Bind(&NetworkHandlerDictionaryCallback, success_callback), 144 base::Bind(&NetworkHandlerDictionaryCallback, success_callback),
147 base::Bind(&NetworkHandlerFailureCallback, failure_callback)); 145 base::Bind(&NetworkHandlerFailureCallback, failure_callback));
148 } 146 }
149 147
150 void NetworkingPrivateChromeOS::GetState( 148 void NetworkingPrivateChromeOS::GetState(
151 const std::string& guid, 149 const std::string& guid,
152 const DictionaryCallback& success_callback, 150 const DictionaryCallback& success_callback,
153 const FailureCallback& failure_callback) { 151 const FailureCallback& failure_callback) {
154 std::string service_path, error; 152 std::string service_path, error;
155 if (!GetServicePathFromGuid(guid, &service_path, &error)) { 153 if (!GetServicePathFromGuid(guid, &service_path, &error)) {
(...skipping 20 matching lines...) Expand all
176 scoped_ptr<base::DictionaryValue> properties, 174 scoped_ptr<base::DictionaryValue> properties,
177 const VoidCallback& success_callback, 175 const VoidCallback& success_callback,
178 const FailureCallback& failure_callback) { 176 const FailureCallback& failure_callback) {
179 std::string service_path, error; 177 std::string service_path, error;
180 if (!GetServicePathFromGuid(guid, &service_path, &error)) { 178 if (!GetServicePathFromGuid(guid, &service_path, &error)) {
181 failure_callback.Run(error); 179 failure_callback.Run(error);
182 return; 180 return;
183 } 181 }
184 182
185 GetManagedConfigurationHandler()->SetProperties( 183 GetManagedConfigurationHandler()->SetProperties(
186 service_path, 184 service_path, *properties, success_callback,
187 *properties,
188 success_callback,
189 base::Bind(&NetworkHandlerFailureCallback, failure_callback)); 185 base::Bind(&NetworkHandlerFailureCallback, failure_callback));
190 } 186 }
191 187
192 void NetworkingPrivateChromeOS::CreateNetwork( 188 void NetworkingPrivateChromeOS::CreateNetwork(
193 bool shared, 189 bool shared,
194 scoped_ptr<base::DictionaryValue> properties, 190 scoped_ptr<base::DictionaryValue> properties,
195 const StringCallback& success_callback, 191 const StringCallback& success_callback,
196 const FailureCallback& failure_callback) { 192 const FailureCallback& failure_callback) {
197 std::string user_id_hash, error; 193 std::string user_id_hash, error;
198 // Do not allow configuring a non-shared network from a non-primary user. 194 // Do not allow configuring a non-shared network from a non-primary user.
199 if (!shared && !GetUserIdHash(browser_context_, &user_id_hash, &error)) { 195 if (!shared && !GetUserIdHash(browser_context_, &user_id_hash, &error)) {
200 failure_callback.Run(error); 196 failure_callback.Run(error);
201 return; 197 return;
202 } 198 }
203 199
204 GetManagedConfigurationHandler()->CreateConfiguration( 200 GetManagedConfigurationHandler()->CreateConfiguration(
205 user_id_hash, 201 user_id_hash, *properties, success_callback,
206 *properties,
207 success_callback,
208 base::Bind(&NetworkHandlerFailureCallback, failure_callback)); 202 base::Bind(&NetworkHandlerFailureCallback, failure_callback));
209 } 203 }
210 204
211 void NetworkingPrivateChromeOS::GetNetworks( 205 void NetworkingPrivateChromeOS::GetNetworks(
212 const std::string& network_type, 206 const std::string& network_type,
213 bool configured_only, 207 bool configured_only,
214 bool visible_only, 208 bool visible_only,
215 int limit, 209 int limit,
216 const NetworkListCallback& success_callback, 210 const NetworkListCallback& success_callback,
217 const FailureCallback& failure_callback) { 211 const FailureCallback& failure_callback) {
(...skipping 10 matching lines...) Expand all
228 const VoidCallback& success_callback, 222 const VoidCallback& success_callback,
229 const FailureCallback& failure_callback) { 223 const FailureCallback& failure_callback) {
230 std::string service_path, error; 224 std::string service_path, error;
231 if (!GetServicePathFromGuid(guid, &service_path, &error)) { 225 if (!GetServicePathFromGuid(guid, &service_path, &error)) {
232 failure_callback.Run(error); 226 failure_callback.Run(error);
233 return; 227 return;
234 } 228 }
235 229
236 const bool check_error_state = false; 230 const bool check_error_state = false;
237 NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork( 231 NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
238 service_path, 232 service_path, success_callback,
239 success_callback,
240 base::Bind(&NetworkHandlerFailureCallback, failure_callback), 233 base::Bind(&NetworkHandlerFailureCallback, failure_callback),
241 check_error_state); 234 check_error_state);
242 } 235 }
243 236
244 void NetworkingPrivateChromeOS::StartDisconnect( 237 void NetworkingPrivateChromeOS::StartDisconnect(
245 const std::string& guid, 238 const std::string& guid,
246 const VoidCallback& success_callback, 239 const VoidCallback& success_callback,
247 const FailureCallback& failure_callback) { 240 const FailureCallback& failure_callback) {
248 std::string service_path, error; 241 std::string service_path, error;
249 if (!GetServicePathFromGuid(guid, &service_path, &error)) { 242 if (!GetServicePathFromGuid(guid, &service_path, &error)) {
250 failure_callback.Run(error); 243 failure_callback.Run(error);
251 return; 244 return;
252 } 245 }
253 246
254 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork( 247 NetworkHandler::Get()->network_connection_handler()->DisconnectNetwork(
255 service_path, 248 service_path, success_callback,
256 success_callback,
257 base::Bind(&NetworkHandlerFailureCallback, failure_callback)); 249 base::Bind(&NetworkHandlerFailureCallback, failure_callback));
258 } 250 }
259 251
260 void NetworkingPrivateChromeOS::SetWifiTDLSEnabledState( 252 void NetworkingPrivateChromeOS::SetWifiTDLSEnabledState(
261 const std::string& ip_or_mac_address, 253 const std::string& ip_or_mac_address,
262 bool enabled, 254 bool enabled,
263 const StringCallback& success_callback, 255 const StringCallback& success_callback,
264 const FailureCallback& failure_callback) { 256 const FailureCallback& failure_callback) {
265 NetworkHandler::Get()->network_device_handler()->SetWifiTDLSEnabled( 257 NetworkHandler::Get()->network_device_handler()->SetWifiTDLSEnabled(
266 ip_or_mac_address, 258 ip_or_mac_address, enabled, success_callback,
267 enabled,
268 success_callback,
269 base::Bind(&NetworkHandlerFailureCallback, failure_callback)); 259 base::Bind(&NetworkHandlerFailureCallback, failure_callback));
270 } 260 }
271 261
272 void NetworkingPrivateChromeOS::GetWifiTDLSStatus( 262 void NetworkingPrivateChromeOS::GetWifiTDLSStatus(
273 const std::string& ip_or_mac_address, 263 const std::string& ip_or_mac_address,
274 const StringCallback& success_callback, 264 const StringCallback& success_callback,
275 const FailureCallback& failure_callback) { 265 const FailureCallback& failure_callback) {
276 NetworkHandler::Get()->network_device_handler()->GetWifiTDLSStatus( 266 NetworkHandler::Get()->network_device_handler()->GetWifiTDLSStatus(
277 ip_or_mac_address, 267 ip_or_mac_address, success_callback,
278 success_callback,
279 base::Bind(&NetworkHandlerFailureCallback, failure_callback)); 268 base::Bind(&NetworkHandlerFailureCallback, failure_callback));
280 } 269 }
281 270
282 void NetworkingPrivateChromeOS::GetCaptivePortalStatus( 271 void NetworkingPrivateChromeOS::GetCaptivePortalStatus(
283 const std::string& guid, 272 const std::string& guid,
284 const StringCallback& success_callback, 273 const StringCallback& success_callback,
285 const FailureCallback& failure_callback) { 274 const FailureCallback& failure_callback) {
286 if (!chromeos::NetworkPortalDetector::IsInitialized()) { 275 if (!chromeos::NetworkPortalDetector::IsInitialized()) {
287 failure_callback.Run(networking_private::kErrorNotReady); 276 failure_callback.Run(networking_private::kErrorNotReady);
288 return; 277 return;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 320
332 return true; 321 return true;
333 } 322 }
334 323
335 bool NetworkingPrivateChromeOS::RequestScan() { 324 bool NetworkingPrivateChromeOS::RequestScan() {
336 GetStateHandler()->RequestScan(); 325 GetStateHandler()->RequestScan();
337 return true; 326 return true;
338 } 327 }
339 328
340 } // namespace extensions 329 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698