Index: extensions/browser/api/networking_private/networking_private_api.cc |
diff --git a/extensions/browser/api/networking_private/networking_private_api.cc b/extensions/browser/api/networking_private/networking_private_api.cc |
index 92270e905f94cd65367e26bb4c6afa04c6f2a1e1..32de0e43efe2a5d88d79ac26c47c10eb7198cfc7 100644 |
--- a/extensions/browser/api/networking_private/networking_private_api.cc |
+++ b/extensions/browser/api/networking_private/networking_private_api.cc |
@@ -345,6 +345,31 @@ bool NetworkingPrivateGetEnabledNetworkTypesFunction::RunSync() { |
} |
//////////////////////////////////////////////////////////////////////////////// |
+// NetworkingPrivateGetDeviceStatesFunction |
+ |
+NetworkingPrivateGetDeviceStatesFunction:: |
+ ~NetworkingPrivateGetDeviceStatesFunction() { |
+} |
+ |
+bool NetworkingPrivateGetDeviceStatesFunction::RunSync() { |
+ scoped_ptr<NetworkingPrivateDelegate::DeviceStateMap> device_states( |
+ GetDelegate(browser_context())->GetDeviceStates()); |
+ if (!device_states) { |
+ error_ = networking_private::kErrorNotSupported; |
+ return false; |
+ } |
+ scoped_ptr<base::ListValue> device_state_list(new base::ListValue); |
+ for (const auto& entry : *device_states) { |
+ private_api::DeviceStateProperties properties; |
+ properties.type = private_api::ParseNetworkType(entry.first); |
+ properties.state = private_api::ParseDeviceStateType(entry.second); |
+ device_state_list->Append(properties.ToValue().release()); |
+ } |
+ SetResult(device_state_list.release()); |
+ return true; |
+} |
+ |
+//////////////////////////////////////////////////////////////////////////////// |
// NetworkingPrivateEnableNetworkTypeFunction |
NetworkingPrivateEnableNetworkTypeFunction:: |