| 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
|
|
|
|
|