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

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

Issue 1059033002: Implement networkingPrivate.getDeviceStates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 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_chromeos. 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 "chromeos/dbus/dbus_thread_manager.h" 10 #include "chromeos/dbus/dbus_thread_manager.h"
(...skipping 11 matching lines...) Expand all
22 #include "chromeos/network/onc/onc_translator.h" 22 #include "chromeos/network/onc/onc_translator.h"
23 #include "chromeos/network/onc/onc_utils.h" 23 #include "chromeos/network/onc/onc_utils.h"
24 #include "chromeos/network/portal_detector/network_portal_detector.h" 24 #include "chromeos/network/portal_detector/network_portal_detector.h"
25 #include "components/onc/onc_constants.h" 25 #include "components/onc/onc_constants.h"
26 #include "content/public/browser/browser_context.h" 26 #include "content/public/browser/browser_context.h"
27 #include "extensions/browser/api/networking_private/networking_private_api.h" 27 #include "extensions/browser/api/networking_private/networking_private_api.h"
28 #include "extensions/browser/extensions_browser_client.h" 28 #include "extensions/browser/extensions_browser_client.h"
29 #include "extensions/common/api/networking_private.h" 29 #include "extensions/common/api/networking_private.h"
30 30
31 using chromeos::NetworkHandler; 31 using chromeos::NetworkHandler;
32 using chromeos::NetworkStateHandler;
32 using chromeos::NetworkTypePattern; 33 using chromeos::NetworkTypePattern;
33 using chromeos::ShillManagerClient; 34 using chromeos::ShillManagerClient;
34 using extensions::NetworkingPrivateDelegate; 35 using extensions::NetworkingPrivateDelegate;
35 36
36 namespace { 37 namespace {
37 38
38 chromeos::NetworkStateHandler* GetStateHandler() { 39 chromeos::NetworkStateHandler* GetStateHandler() {
39 return NetworkHandler::Get()->network_state_handler(); 40 return NetworkHandler::Get()->network_state_handler();
40 } 41 }
41 42
(...skipping 28 matching lines...) Expand all
70 // to avoid complexities with the policy code. 71 // to avoid complexities with the policy code.
71 LOG(ERROR) << "networkingPrivate API call from non primary user: " 72 LOG(ERROR) << "networkingPrivate API call from non primary user: "
72 << context_user_hash; 73 << context_user_hash;
73 *error = "Error.NonPrimaryUser"; 74 *error = "Error.NonPrimaryUser";
74 return false; 75 return false;
75 } 76 }
76 *user_hash = context_user_hash; 77 *user_hash = context_user_hash;
77 return true; 78 return true;
78 } 79 }
79 80
81 void InsertDeviceState(
82 const char* type,
83 extensions::NetworkingPrivateDelegate::DeviceStateMap* devices) {
84 NetworkTypePattern pattern =
85 chromeos::onc::NetworkTypePatternFromOncType(type);
86 NetworkStateHandler::TechnologyState technology_state =
87 GetStateHandler()->GetTechnologyState(pattern);
88 switch (technology_state) {
89 case NetworkStateHandler::TECHNOLOGY_UNAVAILABLE:
90 // No entry for unavaliable network types.
pneubeck (no reviews) 2015/04/08 10:05:07 typo: unavaliable -> unavailable
stevenjb 2015/04/08 20:27:30 Done.
91 return;
92 case NetworkStateHandler::TECHNOLOGY_AVAILABLE:
93 (*devices)[type] = ::onc::device_state::kDisabled;
94 return;
95 case NetworkStateHandler::TECHNOLOGY_UNINITIALIZED:
96 (*devices)[type] = ::onc::device_state::kUninitialized;
97 return;
98 case NetworkStateHandler::TECHNOLOGY_ENABLING:
99 (*devices)[type] = ::onc::device_state::kEnabling;
100 return;
101 case NetworkStateHandler::TECHNOLOGY_ENABLED:
102 (*devices)[type] = ::onc::device_state::kEnabled;
103 return;
104 }
105 NOTREACHED();
106 }
107
80 void NetworkHandlerDictionaryCallback( 108 void NetworkHandlerDictionaryCallback(
81 const NetworkingPrivateDelegate::DictionaryCallback& callback, 109 const NetworkingPrivateDelegate::DictionaryCallback& callback,
82 const std::string& service_path, 110 const std::string& service_path,
83 const base::DictionaryValue& dictionary) { 111 const base::DictionaryValue& dictionary) {
84 scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy()); 112 scoped_ptr<base::DictionaryValue> dictionary_copy(dictionary.DeepCopy());
85 callback.Run(dictionary_copy.Pass()); 113 callback.Run(dictionary_copy.Pass());
86 } 114 }
87 115
88 void NetworkHandlerFailureCallback( 116 void NetworkHandlerFailureCallback(
89 const NetworkingPrivateDelegate::FailureCallback& callback, 117 const NetworkingPrivateDelegate::FailureCallback& callback,
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 if (state_handler->IsTechnologyEnabled(NetworkTypePattern::WiFi())) 354 if (state_handler->IsTechnologyEnabled(NetworkTypePattern::WiFi()))
327 network_list->AppendString(::onc::network_type::kWiFi); 355 network_list->AppendString(::onc::network_type::kWiFi);
328 if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Wimax())) 356 if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Wimax()))
329 network_list->AppendString(::onc::network_type::kWimax); 357 network_list->AppendString(::onc::network_type::kWimax);
330 if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Cellular())) 358 if (state_handler->IsTechnologyEnabled(NetworkTypePattern::Cellular()))
331 network_list->AppendString(::onc::network_type::kCellular); 359 network_list->AppendString(::onc::network_type::kCellular);
332 360
333 return network_list.Pass(); 361 return network_list.Pass();
334 } 362 }
335 363
364 scoped_ptr<NetworkingPrivateDelegate::DeviceStateMap>
365 NetworkingPrivateChromeOS::GetDeviceStates() {
366 scoped_ptr<DeviceStateMap> device_list(new DeviceStateMap);
367
368 InsertDeviceState(::onc::network_type::kEthernet, device_list.get());
pneubeck (no reviews) 2015/04/08 10:05:07 for consideration: would it make sense to expose
stevenjb 2015/04/08 20:27:30 See meta comment. I'm actually going to need to ch
369 InsertDeviceState(::onc::network_type::kWiFi, device_list.get());
370 InsertDeviceState(::onc::network_type::kWimax, device_list.get());
371 InsertDeviceState(::onc::network_type::kCellular, device_list.get());
372
373 return device_list.Pass();
374 }
375
336 bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) { 376 bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) {
337 NetworkTypePattern pattern = 377 NetworkTypePattern pattern =
338 chromeos::onc::NetworkTypePatternFromOncType(type); 378 chromeos::onc::NetworkTypePatternFromOncType(type);
339 379
340 GetStateHandler()->SetTechnologyEnabled( 380 GetStateHandler()->SetTechnologyEnabled(
341 pattern, true, chromeos::network_handler::ErrorCallback()); 381 pattern, true, chromeos::network_handler::ErrorCallback());
342 382
343 return true; 383 return true;
344 } 384 }
345 385
346 bool NetworkingPrivateChromeOS::DisableNetworkType(const std::string& type) { 386 bool NetworkingPrivateChromeOS::DisableNetworkType(const std::string& type) {
347 NetworkTypePattern pattern = 387 NetworkTypePattern pattern =
348 chromeos::onc::NetworkTypePatternFromOncType(type); 388 chromeos::onc::NetworkTypePatternFromOncType(type);
349 389
350 GetStateHandler()->SetTechnologyEnabled( 390 GetStateHandler()->SetTechnologyEnabled(
351 pattern, false, chromeos::network_handler::ErrorCallback()); 391 pattern, false, chromeos::network_handler::ErrorCallback());
352 392
353 return true; 393 return true;
354 } 394 }
355 395
356 bool NetworkingPrivateChromeOS::RequestScan() { 396 bool NetworkingPrivateChromeOS::RequestScan() {
357 GetStateHandler()->RequestScan(); 397 GetStateHandler()->RequestScan();
358 return true; 398 return true;
359 } 399 }
360 400
361 } // namespace extensions 401 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698