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

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

Issue 1902873002: Convert //extensions/browser/api from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 "extensions/browser/api/networking_private/networking_private_linux.h" 5 #include "extensions/browser/api/networking_private/networking_private_linux.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 72
73 // Simplified helper to parse the SSID from the GUID. 73 // Simplified helper to parse the SSID from the GUID.
74 bool GuidToSsid(const std::string& guid, std::string* ssid) { 74 bool GuidToSsid(const std::string& guid, std::string* ssid) {
75 std::string unused_1; 75 std::string unused_1;
76 std::string unused_2; 76 std::string unused_2;
77 return ParseNetworkGuid(guid, &unused_1, &unused_2, ssid); 77 return ParseNetworkGuid(guid, &unused_1, &unused_2, ssid);
78 } 78 }
79 79
80 // Iterates over the map cloning the contained networks to a 80 // Iterates over the map cloning the contained networks to a
81 // list then returns the list. 81 // list then returns the list.
82 scoped_ptr<base::ListValue> CopyNetworkMapToList( 82 std::unique_ptr<base::ListValue> CopyNetworkMapToList(
83 const NetworkingPrivateLinux::NetworkMap& network_map) { 83 const NetworkingPrivateLinux::NetworkMap& network_map) {
84 scoped_ptr<base::ListValue> network_list(new base::ListValue); 84 std::unique_ptr<base::ListValue> network_list(new base::ListValue);
85 85
86 for (const auto& network : network_map) { 86 for (const auto& network : network_map) {
87 network_list->Append(network.second->DeepCopy()); 87 network_list->Append(network.second->DeepCopy());
88 } 88 }
89 89
90 return network_list; 90 return network_list;
91 } 91 }
92 92
93 // Constructs a network guid from its constituent parts. 93 // Constructs a network guid from its constituent parts.
94 std::string ConstructNetworkGuid(const dbus::ObjectPath& device_path, 94 std::string ConstructNetworkGuid(const dbus::ObjectPath& device_path,
95 const dbus::ObjectPath& access_point_path, 95 const dbus::ObjectPath& access_point_path,
96 const std::string& ssid) { 96 const std::string& ssid) {
97 return device_path.value() + "|" + access_point_path.value() + "|" + ssid; 97 return device_path.value() + "|" + access_point_path.value() + "|" + ssid;
98 } 98 }
99 99
100 // Logs that the method is not implemented and reports |kErrorNotSupported| 100 // Logs that the method is not implemented and reports |kErrorNotSupported|
101 // to the failure callback. 101 // to the failure callback.
102 void ReportNotSupported( 102 void ReportNotSupported(
103 const std::string& method_name, 103 const std::string& method_name,
104 const NetworkingPrivateDelegate::FailureCallback& failure_callback) { 104 const NetworkingPrivateDelegate::FailureCallback& failure_callback) {
105 LOG(WARNING) << method_name << " is not supported"; 105 LOG(WARNING) << method_name << " is not supported";
106 failure_callback.Run(extensions::networking_private::kErrorNotSupported); 106 failure_callback.Run(extensions::networking_private::kErrorNotSupported);
107 } 107 }
108 108
109 // Fires the appropriate callback when the network connect operation succeeds 109 // Fires the appropriate callback when the network connect operation succeeds
110 // or fails. 110 // or fails.
111 void OnNetworkConnectOperationCompleted( 111 void OnNetworkConnectOperationCompleted(
112 scoped_ptr<std::string> error, 112 std::unique_ptr<std::string> error,
113 const NetworkingPrivateDelegate::VoidCallback& success_callback, 113 const NetworkingPrivateDelegate::VoidCallback& success_callback,
114 const NetworkingPrivateDelegate::FailureCallback& failure_callback) { 114 const NetworkingPrivateDelegate::FailureCallback& failure_callback) {
115 if (!error->empty()) { 115 if (!error->empty()) {
116 failure_callback.Run(*error); 116 failure_callback.Run(*error);
117 return; 117 return;
118 } 118 }
119 success_callback.Run(); 119 success_callback.Run();
120 } 120 }
121 121
122 // Fires the appropriate callback when the network properties are returned 122 // Fires the appropriate callback when the network properties are returned
123 // from the |dbus_thread_|. 123 // from the |dbus_thread_|.
124 void GetCachedNetworkPropertiesCallback( 124 void GetCachedNetworkPropertiesCallback(
125 scoped_ptr<std::string> error, 125 std::unique_ptr<std::string> error,
126 scoped_ptr<base::DictionaryValue> properties, 126 std::unique_ptr<base::DictionaryValue> properties,
127 const NetworkingPrivateDelegate::DictionaryCallback& success_callback, 127 const NetworkingPrivateDelegate::DictionaryCallback& success_callback,
128 const NetworkingPrivateDelegate::FailureCallback& failure_callback) { 128 const NetworkingPrivateDelegate::FailureCallback& failure_callback) {
129 if (!error->empty()) { 129 if (!error->empty()) {
130 failure_callback.Run(*error); 130 failure_callback.Run(*error);
131 return; 131 return;
132 } 132 }
133 success_callback.Run(std::move(properties)); 133 success_callback.Run(std::move(properties));
134 } 134 }
135 135
136 } // namespace 136 } // namespace
137 137
138 NetworkingPrivateLinux::NetworkingPrivateLinux( 138 NetworkingPrivateLinux::NetworkingPrivateLinux(
139 content::BrowserContext* browser_context, 139 content::BrowserContext* browser_context,
140 scoped_ptr<VerifyDelegate> verify_delegate) 140 std::unique_ptr<VerifyDelegate> verify_delegate)
141 : NetworkingPrivateDelegate(std::move(verify_delegate)), 141 : NetworkingPrivateDelegate(std::move(verify_delegate)),
142 browser_context_(browser_context), 142 browser_context_(browser_context),
143 dbus_thread_("Networking Private DBus"), 143 dbus_thread_("Networking Private DBus"),
144 network_manager_proxy_(NULL) { 144 network_manager_proxy_(NULL) {
145 base::Thread::Options thread_options(base::MessageLoop::Type::TYPE_IO, 0); 145 base::Thread::Options thread_options(base::MessageLoop::Type::TYPE_IO, 0);
146 146
147 dbus_thread_.StartWithOptions(thread_options); 147 dbus_thread_.StartWithOptions(thread_options);
148 dbus_thread_.task_runner()->PostTask( 148 dbus_thread_.task_runner()->PostTask(
149 FROM_HERE, 149 FROM_HERE,
150 base::Bind(&NetworkingPrivateLinux::Initialize, base::Unretained(this))); 150 base::Bind(&NetworkingPrivateLinux::Initialize, base::Unretained(this)));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 ReportNotSupported("GetManagedProperties", failure_callback); 204 ReportNotSupported("GetManagedProperties", failure_callback);
205 } 205 }
206 206
207 void NetworkingPrivateLinux::GetState( 207 void NetworkingPrivateLinux::GetState(
208 const std::string& guid, 208 const std::string& guid,
209 const DictionaryCallback& success_callback, 209 const DictionaryCallback& success_callback,
210 const FailureCallback& failure_callback) { 210 const FailureCallback& failure_callback) {
211 if (!CheckNetworkManagerSupported(failure_callback)) 211 if (!CheckNetworkManagerSupported(failure_callback))
212 return; 212 return;
213 213
214 scoped_ptr<std::string> error(new std::string); 214 std::unique_ptr<std::string> error(new std::string);
215 scoped_ptr<base::DictionaryValue> network_properties( 215 std::unique_ptr<base::DictionaryValue> network_properties(
216 new base::DictionaryValue); 216 new base::DictionaryValue);
217 217
218 // Runs GetCachedNetworkProperties on |dbus_thread|. 218 // Runs GetCachedNetworkProperties on |dbus_thread|.
219 dbus_thread_.task_runner()->PostTaskAndReply( 219 dbus_thread_.task_runner()->PostTaskAndReply(
220 FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetCachedNetworkProperties, 220 FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetCachedNetworkProperties,
221 base::Unretained(this), guid, 221 base::Unretained(this), guid,
222 base::Unretained(network_properties.get()), 222 base::Unretained(network_properties.get()),
223 base::Unretained(error.get())), 223 base::Unretained(error.get())),
224 base::Bind(&GetCachedNetworkPropertiesCallback, base::Passed(&error), 224 base::Bind(&GetCachedNetworkPropertiesCallback, base::Passed(&error),
225 base::Passed(&network_properties), success_callback, 225 base::Passed(&network_properties), success_callback,
(...skipping 13 matching lines...) Expand all
239 } 239 }
240 240
241 NetworkMap::const_iterator network_iter = 241 NetworkMap::const_iterator network_iter =
242 network_map_->find(base::UTF8ToUTF16(ssid)); 242 network_map_->find(base::UTF8ToUTF16(ssid));
243 if (network_iter == network_map_->end()) { 243 if (network_iter == network_map_->end()) {
244 *error = "Unknown network GUID"; 244 *error = "Unknown network GUID";
245 return; 245 return;
246 } 246 }
247 247
248 // Make a copy of the properties out of the cached map. 248 // Make a copy of the properties out of the cached map.
249 scoped_ptr<base::DictionaryValue> temp_properties( 249 std::unique_ptr<base::DictionaryValue> temp_properties(
250 network_iter->second->DeepCopy()); 250 network_iter->second->DeepCopy());
251 251
252 // Swap the new copy into the dictionary that is shared with the reply. 252 // Swap the new copy into the dictionary that is shared with the reply.
253 properties->Swap(temp_properties.get()); 253 properties->Swap(temp_properties.get());
254 } 254 }
255 255
256 void NetworkingPrivateLinux::SetProperties( 256 void NetworkingPrivateLinux::SetProperties(
257 const std::string& guid, 257 const std::string& guid,
258 scoped_ptr<base::DictionaryValue> properties, 258 std::unique_ptr<base::DictionaryValue> properties,
259 const VoidCallback& success_callback, 259 const VoidCallback& success_callback,
260 const FailureCallback& failure_callback) { 260 const FailureCallback& failure_callback) {
261 ReportNotSupported("SetProperties", failure_callback); 261 ReportNotSupported("SetProperties", failure_callback);
262 } 262 }
263 263
264 void NetworkingPrivateLinux::CreateNetwork( 264 void NetworkingPrivateLinux::CreateNetwork(
265 bool shared, 265 bool shared,
266 scoped_ptr<base::DictionaryValue> properties, 266 std::unique_ptr<base::DictionaryValue> properties,
267 const StringCallback& success_callback, 267 const StringCallback& success_callback,
268 const FailureCallback& failure_callback) { 268 const FailureCallback& failure_callback) {
269 ReportNotSupported("CreateNetwork", failure_callback); 269 ReportNotSupported("CreateNetwork", failure_callback);
270 } 270 }
271 271
272 void NetworkingPrivateLinux::ForgetNetwork( 272 void NetworkingPrivateLinux::ForgetNetwork(
273 const std::string& guid, 273 const std::string& guid,
274 const VoidCallback& success_callback, 274 const VoidCallback& success_callback,
275 const FailureCallback& failure_callback) { 275 const FailureCallback& failure_callback) {
276 // TODO(zentaro): Implement for Linux. 276 // TODO(zentaro): Implement for Linux.
277 ReportNotSupported("ForgetNetwork", failure_callback); 277 ReportNotSupported("ForgetNetwork", failure_callback);
278 } 278 }
279 279
280 void NetworkingPrivateLinux::GetNetworks( 280 void NetworkingPrivateLinux::GetNetworks(
281 const std::string& network_type, 281 const std::string& network_type,
282 bool configured_only, 282 bool configured_only,
283 bool visible_only, 283 bool visible_only,
284 int limit, 284 int limit,
285 const NetworkListCallback& success_callback, 285 const NetworkListCallback& success_callback,
286 const FailureCallback& failure_callback) { 286 const FailureCallback& failure_callback) {
287 if (!CheckNetworkManagerSupported(failure_callback)) { 287 if (!CheckNetworkManagerSupported(failure_callback)) {
288 return; 288 return;
289 } 289 }
290 290
291 scoped_ptr<NetworkMap> network_map(new NetworkMap); 291 std::unique_ptr<NetworkMap> network_map(new NetworkMap);
292 292
293 if (!(network_type == ::onc::network_type::kWiFi || 293 if (!(network_type == ::onc::network_type::kWiFi ||
294 network_type == ::onc::network_type::kWireless || 294 network_type == ::onc::network_type::kWireless ||
295 network_type == ::onc::network_type::kAllTypes)) { 295 network_type == ::onc::network_type::kAllTypes)) {
296 // Only enumerating WiFi networks is supported on linux. 296 // Only enumerating WiFi networks is supported on linux.
297 ReportNotSupported("GetNetworks with network_type=" + network_type, 297 ReportNotSupported("GetNetworks with network_type=" + network_type,
298 failure_callback); 298 failure_callback);
299 return; 299 return;
300 } 300 }
301 301
302 // Runs GetAllWiFiAccessPoints on the dbus_thread and returns the 302 // Runs GetAllWiFiAccessPoints on the dbus_thread and returns the
303 // results back to OnAccessPointsFound where the callback is fired. 303 // results back to OnAccessPointsFound where the callback is fired.
304 dbus_thread_.task_runner()->PostTaskAndReply( 304 dbus_thread_.task_runner()->PostTaskAndReply(
305 FROM_HERE, 305 FROM_HERE,
306 base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints, 306 base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints,
307 base::Unretained(this), configured_only, visible_only, limit, 307 base::Unretained(this), configured_only, visible_only, limit,
308 base::Unretained(network_map.get())), 308 base::Unretained(network_map.get())),
309 base::Bind(&NetworkingPrivateLinux::OnAccessPointsFound, 309 base::Bind(&NetworkingPrivateLinux::OnAccessPointsFound,
310 base::Unretained(this), base::Passed(&network_map), 310 base::Unretained(this), base::Passed(&network_map),
311 success_callback, failure_callback)); 311 success_callback, failure_callback));
312 } 312 }
313 313
314 bool NetworkingPrivateLinux::GetNetworksForScanRequest() { 314 bool NetworkingPrivateLinux::GetNetworksForScanRequest() {
315 if (!network_manager_proxy_) { 315 if (!network_manager_proxy_) {
316 return false; 316 return false;
317 } 317 }
318 318
319 scoped_ptr<NetworkMap> network_map(new NetworkMap); 319 std::unique_ptr<NetworkMap> network_map(new NetworkMap);
320 320
321 // Runs GetAllWiFiAccessPoints on the dbus_thread and returns the 321 // Runs GetAllWiFiAccessPoints on the dbus_thread and returns the
322 // results back to SendNetworkListChangedEvent to fire the event. No 322 // results back to SendNetworkListChangedEvent to fire the event. No
323 // callbacks are used in this case. 323 // callbacks are used in this case.
324 dbus_thread_.task_runner()->PostTaskAndReply( 324 dbus_thread_.task_runner()->PostTaskAndReply(
325 FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints, 325 FROM_HERE, base::Bind(&NetworkingPrivateLinux::GetAllWiFiAccessPoints,
326 base::Unretained(this), false /* configured_only */, 326 base::Unretained(this), false /* configured_only */,
327 false /* visible_only */, 0 /* limit */, 327 false /* visible_only */, 0 /* limit */,
328 base::Unretained(network_map.get())), 328 base::Unretained(network_map.get())),
329 base::Bind(&NetworkingPrivateLinux::OnAccessPointsFoundViaScan, 329 base::Bind(&NetworkingPrivateLinux::OnAccessPointsFoundViaScan,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 // Close all the arrays and dicts. 395 // Close all the arrays and dicts.
396 wifi_dict_writer.CloseContainer(&variant_writer); 396 wifi_dict_writer.CloseContainer(&variant_writer);
397 wifi_array.CloseContainer(&wifi_dict_writer); 397 wifi_array.CloseContainer(&wifi_dict_writer);
398 dict_writer.CloseContainer(&wifi_array); 398 dict_writer.CloseContainer(&wifi_array);
399 array_writer.CloseContainer(&dict_writer); 399 array_writer.CloseContainer(&dict_writer);
400 builder.CloseContainer(&array_writer); 400 builder.CloseContainer(&array_writer);
401 401
402 builder.AppendObjectPath(device_path); 402 builder.AppendObjectPath(device_path);
403 builder.AppendObjectPath(access_point_path); 403 builder.AppendObjectPath(access_point_path);
404 404
405 scoped_ptr<dbus::Response> response( 405 std::unique_ptr<dbus::Response> response(
406 network_manager_proxy_->CallMethodAndBlock( 406 network_manager_proxy_->CallMethodAndBlock(
407 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 407 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
408 if (!response) { 408 if (!response) {
409 LOG(ERROR) << "Failed to add a new connection"; 409 LOG(ERROR) << "Failed to add a new connection";
410 *error = "Failed to connect."; 410 *error = "Failed to connect.";
411 411
412 // Set the connection state to NotConnected in the map. 412 // Set the connection state to NotConnected in the map.
413 SetConnectionStateAndPostEvent(guid, ssid, 413 SetConnectionStateAndPostEvent(guid, ssid,
414 ::onc::connection_state::kNotConnected); 414 ::onc::connection_state::kNotConnected);
415 return; 415 return;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 std::string access_point_path_str; 454 std::string access_point_path_str;
455 std::string ssid; 455 std::string ssid;
456 DVLOG(1) << "Disconnecting from network GUID " << guid; 456 DVLOG(1) << "Disconnecting from network GUID " << guid;
457 457
458 if (!ParseNetworkGuid(guid, &device_path_str, &access_point_path_str, 458 if (!ParseNetworkGuid(guid, &device_path_str, &access_point_path_str,
459 &ssid)) { 459 &ssid)) {
460 *error = "Invalid Network GUID format"; 460 *error = "Invalid Network GUID format";
461 return; 461 return;
462 } 462 }
463 463
464 scoped_ptr<NetworkMap> network_map(new NetworkMap); 464 std::unique_ptr<NetworkMap> network_map(new NetworkMap);
465 GetAllWiFiAccessPoints(false /* configured_only */, false /* visible_only */, 465 GetAllWiFiAccessPoints(false /* configured_only */, false /* visible_only */,
466 0 /* limit */, network_map.get()); 466 0 /* limit */, network_map.get());
467 467
468 NetworkMap::const_iterator network_iter = 468 NetworkMap::const_iterator network_iter =
469 network_map->find(base::UTF8ToUTF16(ssid)); 469 network_map->find(base::UTF8ToUTF16(ssid));
470 if (network_iter == network_map->end()) { 470 if (network_iter == network_map->end()) {
471 // This network doesn't exist so there's nothing to do. 471 // This network doesn't exist so there's nothing to do.
472 return; 472 return;
473 } 473 }
474 474
475 std::string connection_state; 475 std::string connection_state;
476 network_iter->second->GetString(kAccessPointInfoConnectionState, 476 network_iter->second->GetString(kAccessPointInfoConnectionState,
477 &connection_state); 477 &connection_state);
478 if (connection_state == ::onc::connection_state::kNotConnected) { 478 if (connection_state == ::onc::connection_state::kNotConnected) {
479 // Already disconnected so nothing to do. 479 // Already disconnected so nothing to do.
480 return; 480 return;
481 } 481 }
482 482
483 // It's not disconnected so disconnect it. 483 // It's not disconnected so disconnect it.
484 dbus::ObjectProxy* device_proxy = 484 dbus::ObjectProxy* device_proxy =
485 dbus_->GetObjectProxy(networking_private::kNetworkManagerNamespace, 485 dbus_->GetObjectProxy(networking_private::kNetworkManagerNamespace,
486 dbus::ObjectPath(device_path_str)); 486 dbus::ObjectPath(device_path_str));
487 dbus::MethodCall method_call( 487 dbus::MethodCall method_call(
488 networking_private::kNetworkManagerDeviceNamespace, 488 networking_private::kNetworkManagerDeviceNamespace,
489 networking_private::kNetworkManagerDisconnectMethod); 489 networking_private::kNetworkManagerDisconnectMethod);
490 scoped_ptr<dbus::Response> response(device_proxy->CallMethodAndBlock( 490 std::unique_ptr<dbus::Response> response(device_proxy->CallMethodAndBlock(
491 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 491 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
492 492
493 if (!response) { 493 if (!response) {
494 LOG(WARNING) << "Failed to disconnect network on device " 494 LOG(WARNING) << "Failed to disconnect network on device "
495 << device_path_str; 495 << device_path_str;
496 *error = "Failed to disconnect network"; 496 *error = "Failed to disconnect network";
497 } 497 }
498 } 498 }
499 499
500 void NetworkingPrivateLinux::StartConnect( 500 void NetworkingPrivateLinux::StartConnect(
501 const std::string& guid, 501 const std::string& guid,
502 const VoidCallback& success_callback, 502 const VoidCallback& success_callback,
503 const FailureCallback& failure_callback) { 503 const FailureCallback& failure_callback) {
504 if (!CheckNetworkManagerSupported(failure_callback)) 504 if (!CheckNetworkManagerSupported(failure_callback))
505 return; 505 return;
506 506
507 scoped_ptr<std::string> error(new std::string); 507 std::unique_ptr<std::string> error(new std::string);
508 508
509 // Runs ConnectToNetwork on |dbus_thread|. 509 // Runs ConnectToNetwork on |dbus_thread|.
510 dbus_thread_.task_runner()->PostTaskAndReply( 510 dbus_thread_.task_runner()->PostTaskAndReply(
511 FROM_HERE, 511 FROM_HERE,
512 base::Bind(&NetworkingPrivateLinux::ConnectToNetwork, 512 base::Bind(&NetworkingPrivateLinux::ConnectToNetwork,
513 base::Unretained(this), guid, base::Unretained(error.get())), 513 base::Unretained(this), guid, base::Unretained(error.get())),
514 base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error), 514 base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error),
515 success_callback, failure_callback)); 515 success_callback, failure_callback));
516 } 516 }
517 517
518 void NetworkingPrivateLinux::StartDisconnect( 518 void NetworkingPrivateLinux::StartDisconnect(
519 const std::string& guid, 519 const std::string& guid,
520 const VoidCallback& success_callback, 520 const VoidCallback& success_callback,
521 const FailureCallback& failure_callback) { 521 const FailureCallback& failure_callback) {
522 if (!CheckNetworkManagerSupported(failure_callback)) 522 if (!CheckNetworkManagerSupported(failure_callback))
523 return; 523 return;
524 524
525 scoped_ptr<std::string> error(new std::string); 525 std::unique_ptr<std::string> error(new std::string);
526 526
527 // Runs DisconnectFromNetwork on |dbus_thread|. 527 // Runs DisconnectFromNetwork on |dbus_thread|.
528 dbus_thread_.task_runner()->PostTaskAndReply( 528 dbus_thread_.task_runner()->PostTaskAndReply(
529 FROM_HERE, 529 FROM_HERE,
530 base::Bind(&NetworkingPrivateLinux::DisconnectFromNetwork, 530 base::Bind(&NetworkingPrivateLinux::DisconnectFromNetwork,
531 base::Unretained(this), guid, base::Unretained(error.get())), 531 base::Unretained(this), guid, base::Unretained(error.get())),
532 base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error), 532 base::Bind(&OnNetworkConnectOperationCompleted, base::Passed(&error),
533 success_callback, failure_callback)); 533 success_callback, failure_callback));
534 } 534 }
535 535
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 void NetworkingPrivateLinux::SetCellularSimState( 567 void NetworkingPrivateLinux::SetCellularSimState(
568 const std::string& guid, 568 const std::string& guid,
569 bool require_pin, 569 bool require_pin,
570 const std::string& current_pin, 570 const std::string& current_pin,
571 const std::string& new_pin, 571 const std::string& new_pin,
572 const VoidCallback& success_callback, 572 const VoidCallback& success_callback,
573 const FailureCallback& failure_callback) { 573 const FailureCallback& failure_callback) {
574 ReportNotSupported("SetCellularSimState", failure_callback); 574 ReportNotSupported("SetCellularSimState", failure_callback);
575 } 575 }
576 576
577 scoped_ptr<base::ListValue> NetworkingPrivateLinux::GetEnabledNetworkTypes() { 577 std::unique_ptr<base::ListValue>
578 scoped_ptr<base::ListValue> network_list(new base::ListValue); 578 NetworkingPrivateLinux::GetEnabledNetworkTypes() {
579 std::unique_ptr<base::ListValue> network_list(new base::ListValue);
579 network_list->AppendString(::onc::network_type::kWiFi); 580 network_list->AppendString(::onc::network_type::kWiFi);
580 return network_list; 581 return network_list;
581 } 582 }
582 583
583 scoped_ptr<NetworkingPrivateDelegate::DeviceStateList> 584 std::unique_ptr<NetworkingPrivateDelegate::DeviceStateList>
584 NetworkingPrivateLinux::GetDeviceStateList() { 585 NetworkingPrivateLinux::GetDeviceStateList() {
585 scoped_ptr<DeviceStateList> device_state_list(new DeviceStateList); 586 std::unique_ptr<DeviceStateList> device_state_list(new DeviceStateList);
586 scoped_ptr<api::networking_private::DeviceStateProperties> properties( 587 std::unique_ptr<api::networking_private::DeviceStateProperties> properties(
587 new api::networking_private::DeviceStateProperties); 588 new api::networking_private::DeviceStateProperties);
588 properties->type = api::networking_private::NETWORK_TYPE_WIFI; 589 properties->type = api::networking_private::NETWORK_TYPE_WIFI;
589 properties->state = api::networking_private::DEVICE_STATE_TYPE_ENABLED; 590 properties->state = api::networking_private::DEVICE_STATE_TYPE_ENABLED;
590 device_state_list->push_back(std::move(properties)); 591 device_state_list->push_back(std::move(properties));
591 return device_state_list; 592 return device_state_list;
592 } 593 }
593 594
594 bool NetworkingPrivateLinux::EnableNetworkType(const std::string& type) { 595 bool NetworkingPrivateLinux::EnableNetworkType(const std::string& type) {
595 return false; 596 return false;
596 } 597 }
(...skipping 10 matching lines...) Expand all
607 NetworkingPrivateDelegateObserver* observer) { 608 NetworkingPrivateDelegateObserver* observer) {
608 network_events_observers_.AddObserver(observer); 609 network_events_observers_.AddObserver(observer);
609 } 610 }
610 611
611 void NetworkingPrivateLinux::RemoveObserver( 612 void NetworkingPrivateLinux::RemoveObserver(
612 NetworkingPrivateDelegateObserver* observer) { 613 NetworkingPrivateDelegateObserver* observer) {
613 network_events_observers_.RemoveObserver(observer); 614 network_events_observers_.RemoveObserver(observer);
614 } 615 }
615 616
616 void NetworkingPrivateLinux::OnAccessPointsFound( 617 void NetworkingPrivateLinux::OnAccessPointsFound(
617 scoped_ptr<NetworkMap> network_map, 618 std::unique_ptr<NetworkMap> network_map,
618 const NetworkListCallback& success_callback, 619 const NetworkListCallback& success_callback,
619 const FailureCallback& failure_callback) { 620 const FailureCallback& failure_callback) {
620 scoped_ptr<base::ListValue> network_list = CopyNetworkMapToList(*network_map); 621 std::unique_ptr<base::ListValue> network_list =
622 CopyNetworkMapToList(*network_map);
621 // Give ownership to the member variable. 623 // Give ownership to the member variable.
622 network_map_.swap(network_map); 624 network_map_.swap(network_map);
623 SendNetworkListChangedEvent(*network_list); 625 SendNetworkListChangedEvent(*network_list);
624 success_callback.Run(std::move(network_list)); 626 success_callback.Run(std::move(network_list));
625 } 627 }
626 628
627 void NetworkingPrivateLinux::OnAccessPointsFoundViaScan( 629 void NetworkingPrivateLinux::OnAccessPointsFoundViaScan(
628 scoped_ptr<NetworkMap> network_map) { 630 std::unique_ptr<NetworkMap> network_map) {
629 scoped_ptr<base::ListValue> network_list = CopyNetworkMapToList(*network_map); 631 std::unique_ptr<base::ListValue> network_list =
632 CopyNetworkMapToList(*network_map);
630 // Give ownership to the member variable. 633 // Give ownership to the member variable.
631 network_map_.swap(network_map); 634 network_map_.swap(network_map);
632 SendNetworkListChangedEvent(*network_list); 635 SendNetworkListChangedEvent(*network_list);
633 } 636 }
634 637
635 void NetworkingPrivateLinux::SendNetworkListChangedEvent( 638 void NetworkingPrivateLinux::SendNetworkListChangedEvent(
636 const base::ListValue& network_list) { 639 const base::ListValue& network_list) {
637 GuidList guidsForEventCallback; 640 GuidList guidsForEventCallback;
638 641
639 for (const auto& network : network_list) { 642 for (const auto& network : network_list) {
640 std::string guid; 643 std::string guid;
641 base::DictionaryValue* dict; 644 base::DictionaryValue* dict;
642 if (network->GetAsDictionary(&dict)) { 645 if (network->GetAsDictionary(&dict)) {
643 if (dict->GetString(kAccessPointInfoGuid, &guid)) { 646 if (dict->GetString(kAccessPointInfoGuid, &guid)) {
644 guidsForEventCallback.push_back(guid); 647 guidsForEventCallback.push_back(guid);
645 } 648 }
646 } 649 }
647 } 650 }
648 651
649 OnNetworkListChangedEventOnUIThread(guidsForEventCallback); 652 OnNetworkListChangedEventOnUIThread(guidsForEventCallback);
650 } 653 }
651 654
652 bool NetworkingPrivateLinux::GetNetworkDevices( 655 bool NetworkingPrivateLinux::GetNetworkDevices(
653 std::vector<dbus::ObjectPath>* device_paths) { 656 std::vector<dbus::ObjectPath>* device_paths) {
654 AssertOnDBusThread(); 657 AssertOnDBusThread();
655 dbus::MethodCall method_call( 658 dbus::MethodCall method_call(
656 networking_private::kNetworkManagerNamespace, 659 networking_private::kNetworkManagerNamespace,
657 networking_private::kNetworkManagerGetDevicesMethod); 660 networking_private::kNetworkManagerGetDevicesMethod);
658 661
659 scoped_ptr<dbus::Response> device_response( 662 std::unique_ptr<dbus::Response> device_response(
660 network_manager_proxy_->CallMethodAndBlock( 663 network_manager_proxy_->CallMethodAndBlock(
661 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 664 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
662 665
663 if (!device_response) { 666 if (!device_response) {
664 return false; 667 return false;
665 } 668 }
666 669
667 dbus::MessageReader reader(device_response.get()); 670 dbus::MessageReader reader(device_response.get());
668 if (!reader.PopArrayOfObjectPaths(device_paths)) { 671 if (!reader.PopArrayOfObjectPaths(device_paths)) {
669 LOG(WARNING) << "Unexpected response: " << device_response->ToString(); 672 LOG(WARNING) << "Unexpected response: " << device_response->ToString();
670 return false; 673 return false;
671 } 674 }
672 675
673 return true; 676 return true;
674 } 677 }
675 678
676 NetworkingPrivateLinux::DeviceType NetworkingPrivateLinux::GetDeviceType( 679 NetworkingPrivateLinux::DeviceType NetworkingPrivateLinux::GetDeviceType(
677 const dbus::ObjectPath& device_path) { 680 const dbus::ObjectPath& device_path) {
678 AssertOnDBusThread(); 681 AssertOnDBusThread();
679 dbus::ObjectProxy* device_proxy = dbus_->GetObjectProxy( 682 dbus::ObjectProxy* device_proxy = dbus_->GetObjectProxy(
680 networking_private::kNetworkManagerNamespace, device_path); 683 networking_private::kNetworkManagerNamespace, device_path);
681 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES, 684 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES,
682 networking_private::kNetworkManagerGetMethod); 685 networking_private::kNetworkManagerGetMethod);
683 dbus::MessageWriter builder(&method_call); 686 dbus::MessageWriter builder(&method_call);
684 builder.AppendString(networking_private::kNetworkManagerDeviceNamespace); 687 builder.AppendString(networking_private::kNetworkManagerDeviceNamespace);
685 builder.AppendString(networking_private::kNetworkManagerDeviceType); 688 builder.AppendString(networking_private::kNetworkManagerDeviceType);
686 689
687 scoped_ptr<dbus::Response> response(device_proxy->CallMethodAndBlock( 690 std::unique_ptr<dbus::Response> response(device_proxy->CallMethodAndBlock(
688 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 691 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
689 692
690 if (!response) { 693 if (!response) {
691 LOG(ERROR) << "Failed to get the device type for device " 694 LOG(ERROR) << "Failed to get the device type for device "
692 << device_path.value(); 695 << device_path.value();
693 return NetworkingPrivateLinux::NM_DEVICE_TYPE_UNKNOWN; 696 return NetworkingPrivateLinux::NM_DEVICE_TYPE_UNKNOWN;
694 } 697 }
695 698
696 dbus::MessageReader reader(response.get()); 699 dbus::MessageReader reader(response.get());
697 uint32_t device_type = 0; 700 uint32_t device_type = 0;
(...skipping 28 matching lines...) Expand all
726 729
727 // Found a wlan adapter 730 // Found a wlan adapter
728 if (!AddAccessPointsFromDevice(device_path, network_map)) { 731 if (!AddAccessPointsFromDevice(device_path, network_map)) {
729 // Ignore devices we can't enumerate. 732 // Ignore devices we can't enumerate.
730 LOG(WARNING) << "Failed to add access points from device " 733 LOG(WARNING) << "Failed to add access points from device "
731 << device_path.value(); 734 << device_path.value();
732 } 735 }
733 } 736 }
734 } 737 }
735 738
736 scoped_ptr<dbus::Response> NetworkingPrivateLinux::GetAccessPointProperty( 739 std::unique_ptr<dbus::Response> NetworkingPrivateLinux::GetAccessPointProperty(
737 dbus::ObjectProxy* access_point_proxy, 740 dbus::ObjectProxy* access_point_proxy,
738 const std::string& property_name) { 741 const std::string& property_name) {
739 AssertOnDBusThread(); 742 AssertOnDBusThread();
740 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES, 743 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES,
741 networking_private::kNetworkManagerGetMethod); 744 networking_private::kNetworkManagerGetMethod);
742 dbus::MessageWriter builder(&method_call); 745 dbus::MessageWriter builder(&method_call);
743 builder.AppendString(networking_private::kNetworkManagerAccessPointNamespace); 746 builder.AppendString(networking_private::kNetworkManagerAccessPointNamespace);
744 builder.AppendString(property_name); 747 builder.AppendString(property_name);
745 scoped_ptr<dbus::Response> response = access_point_proxy->CallMethodAndBlock( 748 std::unique_ptr<dbus::Response> response =
746 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT); 749 access_point_proxy->CallMethodAndBlock(
750 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT);
747 if (!response) { 751 if (!response) {
748 LOG(ERROR) << "Failed to get property for " << property_name; 752 LOG(ERROR) << "Failed to get property for " << property_name;
749 } 753 }
750 return response; 754 return response;
751 } 755 }
752 756
753 bool NetworkingPrivateLinux::GetAccessPointInfo( 757 bool NetworkingPrivateLinux::GetAccessPointInfo(
754 const dbus::ObjectPath& access_point_path, 758 const dbus::ObjectPath& access_point_path,
755 const scoped_ptr<base::DictionaryValue>& access_point_info) { 759 const std::unique_ptr<base::DictionaryValue>& access_point_info) {
756 AssertOnDBusThread(); 760 AssertOnDBusThread();
757 dbus::ObjectProxy* access_point_proxy = dbus_->GetObjectProxy( 761 dbus::ObjectProxy* access_point_proxy = dbus_->GetObjectProxy(
758 networking_private::kNetworkManagerNamespace, access_point_path); 762 networking_private::kNetworkManagerNamespace, access_point_path);
759 763
760 // Read the SSID. The GUID is derived from the Ssid. 764 // Read the SSID. The GUID is derived from the Ssid.
761 { 765 {
762 scoped_ptr<dbus::Response> response(GetAccessPointProperty( 766 std::unique_ptr<dbus::Response> response(GetAccessPointProperty(
763 access_point_proxy, networking_private::kNetworkManagerSsidProperty)); 767 access_point_proxy, networking_private::kNetworkManagerSsidProperty));
764 768
765 if (!response) { 769 if (!response) {
766 return false; 770 return false;
767 } 771 }
768 772
769 // The response should contain a variant that contains an array of bytes. 773 // The response should contain a variant that contains an array of bytes.
770 dbus::MessageReader reader(response.get()); 774 dbus::MessageReader reader(response.get());
771 dbus::MessageReader variant_reader(response.get()); 775 dbus::MessageReader variant_reader(response.get());
772 if (!reader.PopVariant(&variant_reader)) { 776 if (!reader.PopVariant(&variant_reader)) {
(...skipping 11 matching lines...) Expand all
784 } 788 }
785 789
786 std::string ssidUTF8(ssid_bytes, ssid_bytes + ssid_length); 790 std::string ssidUTF8(ssid_bytes, ssid_bytes + ssid_length);
787 base::string16 ssid = base::UTF8ToUTF16(ssidUTF8); 791 base::string16 ssid = base::UTF8ToUTF16(ssidUTF8);
788 792
789 access_point_info->SetString(kAccessPointInfoName, ssid); 793 access_point_info->SetString(kAccessPointInfoName, ssid);
790 } 794 }
791 795
792 // Read signal strength. 796 // Read signal strength.
793 { 797 {
794 scoped_ptr<dbus::Response> response(GetAccessPointProperty( 798 std::unique_ptr<dbus::Response> response(GetAccessPointProperty(
795 access_point_proxy, 799 access_point_proxy,
796 networking_private::kNetworkManagerStrengthProperty)); 800 networking_private::kNetworkManagerStrengthProperty));
797 if (!response) { 801 if (!response) {
798 return false; 802 return false;
799 } 803 }
800 804
801 dbus::MessageReader reader(response.get()); 805 dbus::MessageReader reader(response.get());
802 uint8_t strength = 0; 806 uint8_t strength = 0;
803 if (!reader.PopVariantOfByte(&strength)) { 807 if (!reader.PopVariantOfByte(&strength)) {
804 LOG(ERROR) << "Unexpected response for " << access_point_path.value() 808 LOG(ERROR) << "Unexpected response for " << access_point_path.value()
805 << ": " << response->ToString(); 809 << ": " << response->ToString();
806 return false; 810 return false;
807 } 811 }
808 812
809 access_point_info->SetInteger(kAccessPointInfoWifiSignalStrengthDotted, 813 access_point_info->SetInteger(kAccessPointInfoWifiSignalStrengthDotted,
810 strength); 814 strength);
811 } 815 }
812 816
813 // Read the security type. This is from the WpaFlags and RsnFlags property 817 // Read the security type. This is from the WpaFlags and RsnFlags property
814 // which are of the same type and can be OR'd together to find all supported 818 // which are of the same type and can be OR'd together to find all supported
815 // security modes. 819 // security modes.
816 820
817 uint32_t wpa_security_flags = 0; 821 uint32_t wpa_security_flags = 0;
818 { 822 {
819 scoped_ptr<dbus::Response> response(GetAccessPointProperty( 823 std::unique_ptr<dbus::Response> response(GetAccessPointProperty(
820 access_point_proxy, 824 access_point_proxy,
821 networking_private::kNetworkManagerWpaFlagsProperty)); 825 networking_private::kNetworkManagerWpaFlagsProperty));
822 if (!response) { 826 if (!response) {
823 return false; 827 return false;
824 } 828 }
825 829
826 dbus::MessageReader reader(response.get()); 830 dbus::MessageReader reader(response.get());
827 831
828 if (!reader.PopVariantOfUint32(&wpa_security_flags)) { 832 if (!reader.PopVariantOfUint32(&wpa_security_flags)) {
829 LOG(ERROR) << "Unexpected response for " << access_point_path.value() 833 LOG(ERROR) << "Unexpected response for " << access_point_path.value()
830 << ": " << response->ToString(); 834 << ": " << response->ToString();
831 return false; 835 return false;
832 } 836 }
833 } 837 }
834 838
835 uint32_t rsn_security_flags = 0; 839 uint32_t rsn_security_flags = 0;
836 { 840 {
837 scoped_ptr<dbus::Response> response(GetAccessPointProperty( 841 std::unique_ptr<dbus::Response> response(GetAccessPointProperty(
838 access_point_proxy, 842 access_point_proxy,
839 networking_private::kNetworkManagerRsnFlagsProperty)); 843 networking_private::kNetworkManagerRsnFlagsProperty));
840 if (!response) { 844 if (!response) {
841 return false; 845 return false;
842 } 846 }
843 847
844 dbus::MessageReader reader(response.get()); 848 dbus::MessageReader reader(response.get());
845 849
846 if (!reader.PopVariantOfUint32(&rsn_security_flags)) { 850 if (!reader.PopVariantOfUint32(&rsn_security_flags)) {
847 LOG(ERROR) << "Unexpected response for " << access_point_path.value() 851 LOG(ERROR) << "Unexpected response for " << access_point_path.value()
(...skipping 17 matching lines...) Expand all
865 dbus::ObjectPath connected_access_point; 869 dbus::ObjectPath connected_access_point;
866 if (!GetConnectedAccessPoint(device_path, &connected_access_point)) { 870 if (!GetConnectedAccessPoint(device_path, &connected_access_point)) {
867 return false; 871 return false;
868 } 872 }
869 873
870 dbus::ObjectProxy* device_proxy = dbus_->GetObjectProxy( 874 dbus::ObjectProxy* device_proxy = dbus_->GetObjectProxy(
871 networking_private::kNetworkManagerNamespace, device_path); 875 networking_private::kNetworkManagerNamespace, device_path);
872 dbus::MethodCall method_call( 876 dbus::MethodCall method_call(
873 networking_private::kNetworkManagerWirelessDeviceNamespace, 877 networking_private::kNetworkManagerWirelessDeviceNamespace,
874 networking_private::kNetworkManagerGetAccessPointsMethod); 878 networking_private::kNetworkManagerGetAccessPointsMethod);
875 scoped_ptr<dbus::Response> response(device_proxy->CallMethodAndBlock( 879 std::unique_ptr<dbus::Response> response(device_proxy->CallMethodAndBlock(
876 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 880 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
877 881
878 if (!response) { 882 if (!response) {
879 LOG(WARNING) << "Failed to get access points data for " 883 LOG(WARNING) << "Failed to get access points data for "
880 << device_path.value(); 884 << device_path.value();
881 return false; 885 return false;
882 } 886 }
883 887
884 dbus::MessageReader reader(response.get()); 888 dbus::MessageReader reader(response.get());
885 std::vector<dbus::ObjectPath> access_point_paths; 889 std::vector<dbus::ObjectPath> access_point_paths;
886 if (!reader.PopArrayOfObjectPaths(&access_point_paths)) { 890 if (!reader.PopArrayOfObjectPaths(&access_point_paths)) {
887 LOG(ERROR) << "Unexpected response for " << device_path.value() << ": " 891 LOG(ERROR) << "Unexpected response for " << device_path.value() << ": "
888 << response->ToString(); 892 << response->ToString();
889 return false; 893 return false;
890 } 894 }
891 895
892 for (const auto& access_point_path : access_point_paths) { 896 for (const auto& access_point_path : access_point_paths) {
893 scoped_ptr<base::DictionaryValue> access_point(new base::DictionaryValue); 897 std::unique_ptr<base::DictionaryValue> access_point(
898 new base::DictionaryValue);
894 899
895 if (GetAccessPointInfo(access_point_path, access_point)) { 900 if (GetAccessPointInfo(access_point_path, access_point)) {
896 std::string connection_state = 901 std::string connection_state =
897 (access_point_path == connected_access_point) 902 (access_point_path == connected_access_point)
898 ? ::onc::connection_state::kConnected 903 ? ::onc::connection_state::kConnected
899 : ::onc::connection_state::kNotConnected; 904 : ::onc::connection_state::kNotConnected;
900 905
901 access_point->SetString(kAccessPointInfoConnectionState, 906 access_point->SetString(kAccessPointInfoConnectionState,
902 connection_state); 907 connection_state);
903 std::string ssid; 908 std::string ssid;
904 access_point->GetString(kAccessPointInfoName, &ssid); 909 access_point->GetString(kAccessPointInfoName, &ssid);
905 910
906 std::string network_guid = 911 std::string network_guid =
907 ConstructNetworkGuid(device_path, access_point_path, ssid); 912 ConstructNetworkGuid(device_path, access_point_path, ssid);
908 913
909 // Adds the network to the map. Since each SSID can actually have multiple 914 // Adds the network to the map. Since each SSID can actually have multiple
910 // access point paths, this consolidates them. If it is already 915 // access point paths, this consolidates them. If it is already
911 // in the map it updates the signal strength and GUID paths if this 916 // in the map it updates the signal strength and GUID paths if this
912 // network is stronger or the one that is connected. 917 // network is stronger or the one that is connected.
913 AddOrUpdateAccessPoint(network_map, network_guid, access_point); 918 AddOrUpdateAccessPoint(network_map, network_guid, access_point);
914 } 919 }
915 } 920 }
916 921
917 return true; 922 return true;
918 } 923 }
919 924
920 void NetworkingPrivateLinux::AddOrUpdateAccessPoint( 925 void NetworkingPrivateLinux::AddOrUpdateAccessPoint(
921 NetworkMap* network_map, 926 NetworkMap* network_map,
922 const std::string& network_guid, 927 const std::string& network_guid,
923 scoped_ptr<base::DictionaryValue>& access_point) { 928 std::unique_ptr<base::DictionaryValue>& access_point) {
924 base::string16 ssid; 929 base::string16 ssid;
925 std::string connection_state; 930 std::string connection_state;
926 int signal_strength; 931 int signal_strength;
927 932
928 access_point->GetString(kAccessPointInfoConnectionState, &connection_state); 933 access_point->GetString(kAccessPointInfoConnectionState, &connection_state);
929 access_point->GetInteger(kAccessPointInfoWifiSignalStrengthDotted, 934 access_point->GetInteger(kAccessPointInfoWifiSignalStrengthDotted,
930 &signal_strength); 935 &signal_strength);
931 access_point->GetString(kAccessPointInfoName, &ssid); 936 access_point->GetString(kAccessPointInfoName, &ssid);
932 access_point->SetString(kAccessPointInfoGuid, network_guid); 937 access_point->SetString(kAccessPointInfoGuid, network_guid);
933 938
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 bool NetworkingPrivateLinux::GetConnectedAccessPoint( 990 bool NetworkingPrivateLinux::GetConnectedAccessPoint(
986 dbus::ObjectPath device_path, 991 dbus::ObjectPath device_path,
987 dbus::ObjectPath* access_point_path) { 992 dbus::ObjectPath* access_point_path) {
988 AssertOnDBusThread(); 993 AssertOnDBusThread();
989 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES, 994 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES,
990 networking_private::kNetworkManagerGetMethod); 995 networking_private::kNetworkManagerGetMethod);
991 dbus::MessageWriter builder(&method_call); 996 dbus::MessageWriter builder(&method_call);
992 builder.AppendString(networking_private::kNetworkManagerNamespace); 997 builder.AppendString(networking_private::kNetworkManagerNamespace);
993 builder.AppendString(networking_private::kNetworkManagerActiveConnections); 998 builder.AppendString(networking_private::kNetworkManagerActiveConnections);
994 999
995 scoped_ptr<dbus::Response> response( 1000 std::unique_ptr<dbus::Response> response(
996 network_manager_proxy_->CallMethodAndBlock( 1001 network_manager_proxy_->CallMethodAndBlock(
997 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 1002 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
998 1003
999 if (!response) { 1004 if (!response) {
1000 LOG(WARNING) << "Failed to get a list of active connections"; 1005 LOG(WARNING) << "Failed to get a list of active connections";
1001 return false; 1006 return false;
1002 } 1007 }
1003 1008
1004 dbus::MessageReader reader(response.get()); 1009 dbus::MessageReader reader(response.get());
1005 dbus::MessageReader variant_reader(response.get()); 1010 dbus::MessageReader variant_reader(response.get());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 return false; 1048 return false;
1044 } 1049 }
1045 1050
1046 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES, 1051 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES,
1047 networking_private::kNetworkManagerGetMethod); 1052 networking_private::kNetworkManagerGetMethod);
1048 dbus::MessageWriter builder(&method_call); 1053 dbus::MessageWriter builder(&method_call);
1049 builder.AppendString( 1054 builder.AppendString(
1050 networking_private::kNetworkManagerActiveConnectionNamespace); 1055 networking_private::kNetworkManagerActiveConnectionNamespace);
1051 builder.AppendString("Devices"); 1056 builder.AppendString("Devices");
1052 1057
1053 scoped_ptr<dbus::Response> response(connection_proxy->CallMethodAndBlock( 1058 std::unique_ptr<dbus::Response> response(connection_proxy->CallMethodAndBlock(
1054 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 1059 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
1055 1060
1056 if (!response) { 1061 if (!response) {
1057 LOG(ERROR) << "Failed to get devices"; 1062 LOG(ERROR) << "Failed to get devices";
1058 return false; 1063 return false;
1059 } 1064 }
1060 1065
1061 dbus::MessageReader reader(response.get()); 1066 dbus::MessageReader reader(response.get());
1062 dbus::MessageReader variant_reader(response.get()); 1067 dbus::MessageReader variant_reader(response.get());
1063 if (!reader.PopVariant(&variant_reader)) { 1068 if (!reader.PopVariant(&variant_reader)) {
(...skipping 27 matching lines...) Expand all
1091 return false; 1096 return false;
1092 } 1097 }
1093 1098
1094 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES, 1099 dbus::MethodCall method_call(DBUS_INTERFACE_PROPERTIES,
1095 networking_private::kNetworkManagerGetMethod); 1100 networking_private::kNetworkManagerGetMethod);
1096 dbus::MessageWriter builder(&method_call); 1101 dbus::MessageWriter builder(&method_call);
1097 builder.AppendString( 1102 builder.AppendString(
1098 networking_private::kNetworkManagerActiveConnectionNamespace); 1103 networking_private::kNetworkManagerActiveConnectionNamespace);
1099 builder.AppendString(networking_private::kNetworkManagerSpecificObject); 1104 builder.AppendString(networking_private::kNetworkManagerSpecificObject);
1100 1105
1101 scoped_ptr<dbus::Response> response(connection_proxy->CallMethodAndBlock( 1106 std::unique_ptr<dbus::Response> response(connection_proxy->CallMethodAndBlock(
1102 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); 1107 &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT));
1103 1108
1104 if (!response) { 1109 if (!response) {
1105 LOG(WARNING) << "Failed to get access point from active connection"; 1110 LOG(WARNING) << "Failed to get access point from active connection";
1106 return false; 1111 return false;
1107 } 1112 }
1108 1113
1109 dbus::MessageReader reader(response.get()); 1114 dbus::MessageReader reader(response.get());
1110 dbus::MessageReader variant_reader(response.get()); 1115 dbus::MessageReader variant_reader(response.get());
1111 if (!reader.PopVariant(&variant_reader)) { 1116 if (!reader.PopVariant(&variant_reader)) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 ::onc::connection_state::kNotConnected); 1157 ::onc::connection_state::kNotConnected);
1153 } 1158 }
1154 } 1159 }
1155 } 1160 }
1156 } 1161 }
1157 1162
1158 // Set the status. 1163 // Set the status.
1159 network_iter->second->SetString(kAccessPointInfoConnectionState, 1164 network_iter->second->SetString(kAccessPointInfoConnectionState,
1160 connection_state); 1165 connection_state);
1161 1166
1162 scoped_ptr<GuidList> changed_networks(new GuidList()); 1167 std::unique_ptr<GuidList> changed_networks(new GuidList());
1163 changed_networks->push_back(guid); 1168 changed_networks->push_back(guid);
1164 1169
1165 // Only add a second network if it exists and it is not the same as the 1170 // Only add a second network if it exists and it is not the same as the
1166 // network already being added to the list. 1171 // network already being added to the list.
1167 if (!connected_network_guid.empty() && connected_network_guid != guid) { 1172 if (!connected_network_guid.empty() && connected_network_guid != guid) {
1168 changed_networks->push_back(connected_network_guid); 1173 changed_networks->push_back(connected_network_guid);
1169 } 1174 }
1170 1175
1171 PostOnNetworksChangedToUIThread(std::move(changed_networks)); 1176 PostOnNetworksChangedToUIThread(std::move(changed_networks));
1172 return true; 1177 return true;
1173 } 1178 }
1174 1179
1175 void NetworkingPrivateLinux::OnNetworksChangedEventOnUIThread( 1180 void NetworkingPrivateLinux::OnNetworksChangedEventOnUIThread(
1176 const GuidList& network_guids) { 1181 const GuidList& network_guids) {
1177 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 1182 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
1178 FOR_EACH_OBSERVER(NetworkingPrivateDelegateObserver, 1183 FOR_EACH_OBSERVER(NetworkingPrivateDelegateObserver,
1179 network_events_observers_, 1184 network_events_observers_,
1180 OnNetworksChangedEvent(network_guids)); 1185 OnNetworksChangedEvent(network_guids));
1181 } 1186 }
1182 1187
1183 void NetworkingPrivateLinux::OnNetworkListChangedEventOnUIThread( 1188 void NetworkingPrivateLinux::OnNetworkListChangedEventOnUIThread(
1184 const GuidList& network_guids) { 1189 const GuidList& network_guids) {
1185 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 1190 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
1186 FOR_EACH_OBSERVER(NetworkingPrivateDelegateObserver, 1191 FOR_EACH_OBSERVER(NetworkingPrivateDelegateObserver,
1187 network_events_observers_, 1192 network_events_observers_,
1188 OnNetworkListChangedEvent(network_guids)); 1193 OnNetworkListChangedEvent(network_guids));
1189 } 1194 }
1190 1195
1191 void NetworkingPrivateLinux::PostOnNetworksChangedToUIThread( 1196 void NetworkingPrivateLinux::PostOnNetworksChangedToUIThread(
1192 scoped_ptr<GuidList> guid_list) { 1197 std::unique_ptr<GuidList> guid_list) {
1193 AssertOnDBusThread(); 1198 AssertOnDBusThread();
1194 1199
1195 content::BrowserThread::PostTask( 1200 content::BrowserThread::PostTask(
1196 content::BrowserThread::UI, FROM_HERE, 1201 content::BrowserThread::UI, FROM_HERE,
1197 base::Bind(&NetworkingPrivateLinux::OnNetworksChangedEventTask, 1202 base::Bind(&NetworkingPrivateLinux::OnNetworksChangedEventTask,
1198 base::Unretained(this), base::Passed(&guid_list))); 1203 base::Unretained(this), base::Passed(&guid_list)));
1199 } 1204 }
1200 1205
1201 void NetworkingPrivateLinux::OnNetworksChangedEventTask( 1206 void NetworkingPrivateLinux::OnNetworksChangedEventTask(
1202 scoped_ptr<GuidList> guid_list) { 1207 std::unique_ptr<GuidList> guid_list) {
1203 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 1208 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
1204 OnNetworksChangedEventOnUIThread(*guid_list); 1209 OnNetworksChangedEventOnUIThread(*guid_list);
1205 } 1210 }
1206 1211
1207 } // namespace extensions 1212 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698