| 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 c2d6f5a963e3ac410b6890debe6bfa9a9feb84fc..cb5de19254338555872a9aff22b49b6c69c19f3d 100644
|
| --- a/chrome/browser/extensions/api/serial/serial_api.cc
|
| +++ b/chrome/browser/extensions/api/serial/serial_api.cc
|
| @@ -1,4 +1,4 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +// Copyright 2012 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -9,9 +9,9 @@
|
| #include "base/values.h"
|
| #include "chrome/browser/extensions/api/serial/serial_connection.h"
|
| #include "chrome/browser/extensions/api/serial/serial_event_dispatcher.h"
|
| -#include "chrome/browser/extensions/api/serial/serial_port_enumerator.h"
|
| #include "chrome/common/extensions/api/serial.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "device/serial/serial_device_enumerator.h"
|
| #include "extensions/browser/extension_system.h"
|
|
|
| using content::BrowserThread;
|
| @@ -84,18 +84,27 @@ bool SerialGetDevicesFunction::Prepare() {
|
| void SerialGetDevicesFunction::Work() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
|
|
| - std::vector<linked_ptr<serial::DeviceInfo> > devices;
|
| - SerialPortEnumerator::StringSet port_names =
|
| - SerialPortEnumerator::GenerateValidSerialPortNames();
|
| - for (SerialPortEnumerator::StringSet::const_iterator iter =
|
| - port_names.begin();
|
| - iter != port_names.end();
|
| + 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 = *iter;
|
| - devices.push_back(info);
|
| + 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(devices);
|
| +
|
| + results_ = serial::GetDevices::Results::Create(out_devices);
|
| }
|
|
|
| SerialConnectFunction::SerialConnectFunction() {}
|
|
|