Chromium Code Reviews| 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); |