| Index: chrome/browser/extensions/api/serial/serial_api.cc
|
| diff --git a/chrome/browser/extensions/api/serial/serial_api.cc b/chrome/browser/extensions/api/serial/serial_api.cc
|
| index 827ce2b1eefd0817422e1acdc22793605c637ec3..eae97c1ae9ce636bc8f6f58810e2cce6163eecad 100644
|
| --- a/chrome/browser/extensions/api/serial/serial_api.cc
|
| +++ b/chrome/browser/extensions/api/serial/serial_api.cc
|
| @@ -85,27 +85,11 @@ bool SerialGetDevicesFunction::Prepare() {
|
| void SerialGetDevicesFunction::Work() {
|
| DCHECK_CURRENTLY_ON(BrowserThread::FILE);
|
|
|
| - device::SerialDeviceInfoList devices;
|
| scoped_ptr<device::SerialDeviceEnumerator> enumerator =
|
| device::SerialDeviceEnumerator::Create();
|
| - enumerator->GetDevices(&devices);
|
| -
|
| - std::vector<linked_ptr<serial::DeviceInfo> > out_devices;
|
| - for (device::SerialDeviceInfoList::const_iterator iter = devices.begin();
|
| - iter != devices.end();
|
| - ++iter) {
|
| - linked_ptr<device::SerialDeviceInfo> device = *iter;
|
| - linked_ptr<serial::DeviceInfo> info(new serial::DeviceInfo);
|
| - info->path = device->path;
|
| - if (device->vendor_id)
|
| - info->vendor_id.reset(new int(static_cast<int>(*device->vendor_id)));
|
| - if (device->product_id)
|
| - info->product_id.reset(new int(static_cast<int>(*device->product_id)));
|
| - info->display_name.reset(device->display_name.release());
|
| - out_devices.push_back(info);
|
| - }
|
| -
|
| - results_ = serial::GetDevices::Results::Create(out_devices);
|
| + mojo::Array<device::SerialDeviceInfoPtr> devices = enumerator->GetDevices();
|
| + results_ = serial::GetDevices::Results::Create(
|
| + devices.To<std::vector<linked_ptr<serial::DeviceInfo> > >());
|
| }
|
|
|
| SerialConnectFunction::SerialConnectFunction() {}
|
| @@ -425,3 +409,24 @@ void SerialSetControlSignalsFunction::Work() {
|
| } // namespace api
|
|
|
| } // namespace extensions
|
| +
|
| +namespace mojo {
|
| +
|
| +// static
|
| +linked_ptr<extensions::api::serial::DeviceInfo>
|
| +TypeConverter<device::SerialDeviceInfoPtr,
|
| + linked_ptr<extensions::api::serial::DeviceInfo> >::
|
| + ConvertTo(const device::SerialDeviceInfoPtr& device) {
|
| + linked_ptr<extensions::api::serial::DeviceInfo> info(
|
| + new extensions::api::serial::DeviceInfo);
|
| + info->path = device->path;
|
| + if (device->has_vendor_id)
|
| + info->vendor_id.reset(new int(static_cast<int>(device->vendor_id)));
|
| + if (device->has_product_id)
|
| + info->product_id.reset(new int(static_cast<int>(device->product_id)));
|
| + if (device->display_name)
|
| + info->display_name.reset(new std::string(device->display_name));
|
| + return info;
|
| +}
|
| +
|
| +} // namespace mojo
|
|
|