| Index: chrome/browser/extensions/api/usb/usb_api.cc
|
| diff --git a/chrome/browser/extensions/api/usb/usb_api.cc b/chrome/browser/extensions/api/usb/usb_api.cc
|
| index fd6981296cd8c767d69108928528ad79c4331816..71e4c32dcce2725722f3febefdef1736e4dc1368 100644
|
| --- a/chrome/browser/extensions/api/usb/usb_api.cc
|
| +++ b/chrome/browser/extensions/api/usb/usb_api.cc
|
| @@ -25,6 +25,12 @@ namespace IsochronousTransfer =
|
| using extensions::api::experimental_usb::Device;
|
| using std::vector;
|
|
|
| +namespace {
|
| +
|
| +static UsbDevice* device_for_test_ = NULL;
|
| +
|
| +} // namespace
|
| +
|
| namespace extensions {
|
|
|
| UsbAsyncApiFunction::UsbAsyncApiFunction()
|
| @@ -43,6 +49,10 @@ UsbFindDeviceFunction::UsbFindDeviceFunction() : event_notifier_(NULL) {}
|
|
|
| UsbFindDeviceFunction::~UsbFindDeviceFunction() {}
|
|
|
| +void UsbFindDeviceFunction::SetDeviceForTest(UsbDevice* device) {
|
| + device_for_test_ = device;
|
| +}
|
| +
|
| bool UsbFindDeviceFunction::Prepare() {
|
| parameters_ = FindDevice::Params::Create(*args_);
|
| EXTENSION_FUNCTION_VALIDATE(parameters_.get());
|
| @@ -51,12 +61,16 @@ bool UsbFindDeviceFunction::Prepare() {
|
| }
|
|
|
| void UsbFindDeviceFunction::Work() {
|
| - UsbService* const service =
|
| - UsbServiceFactory::GetInstance()->GetForProfile(profile());
|
| - DCHECK(service) << "No UsbService associated with profile.";
|
| + UsbDevice* device = NULL;
|
| + if (device_for_test_) {
|
| + device = device_for_test_;
|
| + } else {
|
| + UsbService* const service = UsbServiceFactory::GetInstance()->GetForProfile(
|
| + profile());
|
| + device = service->FindDevice(parameters_->vendor_id,
|
| + parameters_->product_id);
|
| + }
|
|
|
| - UsbDevice* const device = service->FindDevice(parameters_->vendor_id,
|
| - parameters_->product_id);
|
| if (!device) {
|
| SetResult(base::Value::CreateNullValue());
|
| return;
|
| @@ -87,6 +101,10 @@ bool UsbCloseDeviceFunction::Prepare() {
|
| }
|
|
|
| void UsbCloseDeviceFunction::Work() {
|
| + UsbDeviceResource* const device = manager_->Get(parameters_->device.handle);
|
| + if (device)
|
| + device->Close();
|
| +
|
| manager_->Remove(parameters_->device.handle);
|
| }
|
|
|
|
|