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

Unified 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, 9 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 side-by-side diff with in-line comments
Download patch
Index: extensions/browser/api/networking_private/networking_private_chromeos.cc
diff --git a/extensions/browser/api/networking_private/networking_private_chromeos.cc b/extensions/browser/api/networking_private/networking_private_chromeos.cc
index 1179f4cfa056ca170b690bb30f48ee4f762cd2d3..d1cdf44520286bbba77a8f54958617ff25ee55cd 100644
--- a/extensions/browser/api/networking_private/networking_private_chromeos.cc
+++ b/extensions/browser/api/networking_private/networking_private_chromeos.cc
@@ -29,6 +29,7 @@
#include "extensions/common/api/networking_private.h"
using chromeos::NetworkHandler;
+using chromeos::NetworkStateHandler;
using chromeos::NetworkTypePattern;
using chromeos::ShillManagerClient;
using extensions::NetworkingPrivateDelegate;
@@ -77,6 +78,33 @@ bool GetUserIdHash(content::BrowserContext* browser_context,
return true;
}
+void InsertDeviceState(
+ const char* type,
+ extensions::NetworkingPrivateDelegate::DeviceStateMap* devices) {
+ NetworkTypePattern pattern =
+ chromeos::onc::NetworkTypePatternFromOncType(type);
+ NetworkStateHandler::TechnologyState technology_state =
+ GetStateHandler()->GetTechnologyState(pattern);
+ switch (technology_state) {
+ case NetworkStateHandler::TECHNOLOGY_UNAVAILABLE:
+ // 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.
+ return;
+ case NetworkStateHandler::TECHNOLOGY_AVAILABLE:
+ (*devices)[type] = ::onc::device_state::kDisabled;
+ return;
+ case NetworkStateHandler::TECHNOLOGY_UNINITIALIZED:
+ (*devices)[type] = ::onc::device_state::kUninitialized;
+ return;
+ case NetworkStateHandler::TECHNOLOGY_ENABLING:
+ (*devices)[type] = ::onc::device_state::kEnabling;
+ return;
+ case NetworkStateHandler::TECHNOLOGY_ENABLED:
+ (*devices)[type] = ::onc::device_state::kEnabled;
+ return;
+ }
+ NOTREACHED();
+}
+
void NetworkHandlerDictionaryCallback(
const NetworkingPrivateDelegate::DictionaryCallback& callback,
const std::string& service_path,
@@ -333,6 +361,18 @@ NetworkingPrivateChromeOS::GetEnabledNetworkTypes() {
return network_list.Pass();
}
+scoped_ptr<NetworkingPrivateDelegate::DeviceStateMap>
+NetworkingPrivateChromeOS::GetDeviceStates() {
+ scoped_ptr<DeviceStateMap> device_list(new DeviceStateMap);
+
+ 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
+ InsertDeviceState(::onc::network_type::kWiFi, device_list.get());
+ InsertDeviceState(::onc::network_type::kWimax, device_list.get());
+ InsertDeviceState(::onc::network_type::kCellular, device_list.get());
+
+ return device_list.Pass();
+}
+
bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) {
NetworkTypePattern pattern =
chromeos::onc::NetworkTypePatternFromOncType(type);

Powered by Google App Engine
This is Rietveld 408576698