Index: chrome/browser/extensions/api/signedin_devices/signedin_devices_api.cc |
diff --git a/chrome/browser/extensions/api/signedin_devices/signedin_devices_api.cc b/chrome/browser/extensions/api/signedin_devices/signedin_devices_api.cc |
index 47a132b87126f615d2428d66e3b525766df06d7b..ad61fdf774f43a1000450637e8723e0615e35d40 100644 |
--- a/chrome/browser/extensions/api/signedin_devices/signedin_devices_api.cc |
+++ b/chrome/browser/extensions/api/signedin_devices/signedin_devices_api.cc |
@@ -13,6 +13,7 @@ |
#include "chrome/browser/sync/glue/device_info.h" |
#include "chrome/browser/sync/profile_sync_service.h" |
#include "chrome/browser/sync/profile_sync_service_factory.h" |
+#include "chrome/common/extensions/api/signedin_devices.h" |
using base::DictionaryValue; |
using browser_sync::DeviceInfo; |
@@ -85,5 +86,34 @@ ScopedVector<DeviceInfo> GetAllSignedInDevices( |
extension_prefs); |
} |
+bool SignedinDevicesGetFunction::RunImpl() { |
+ scoped_ptr<api::signedin_devices::Get::Params> params( |
+ api::signedin_devices::Get::Params::Create(*args_)); |
+ EXTENSION_FUNCTION_VALIDATE(params.get()); |
+ |
+ bool is_local = params->is_local.get() ? *params->is_local : false; |
+ |
+ if (is_local) { |
+ // TODO(lipalani): Set the device info for local device. |
+ base::ListValue* result = new base::ListValue(); |
+ SetResult(result); |
+ return true; |
+ } |
+ |
+ ScopedVector<DeviceInfo> devices = GetAllSignedInDevices(extension_id(), |
+ profile()); |
+ |
+ scoped_ptr<base::ListValue> result(new base::ListValue()); |
+ |
+ for (ScopedVector<DeviceInfo>::const_iterator it = devices.begin(); |
+ it != devices.end(); |
+ ++it) { |
+ result->Append((*it)->ToValue()); |
+ } |
+ |
+ SetResult(result.release()); |
+ return true; |
+} |
+ |
} // namespace extensions |