| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "extensions/browser/api/usb/usb_api.h" | 5 #include "extensions/browser/api/usb/usb_api.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "base/message_loop/message_loop_proxy.h" | 11 #include "base/message_loop/message_loop_proxy.h" |
| 12 #include "components/usb_service/usb_device_handle.h" | 12 #include "components/usb_service/usb_device_handle.h" |
| 13 #include "components/usb_service/usb_service.h" | 13 #include "components/usb_service/usb_service.h" |
| 14 #include "device/common/device_client.h" |
| 14 #include "extensions/browser/api/usb/usb_device_resource.h" | 15 #include "extensions/browser/api/usb/usb_device_resource.h" |
| 15 #include "extensions/browser/extension_system.h" | 16 #include "extensions/browser/extension_system.h" |
| 16 #include "extensions/common/api/usb.h" | 17 #include "extensions/common/api/usb.h" |
| 17 #include "extensions/common/permissions/permissions_data.h" | 18 #include "extensions/common/permissions/permissions_data.h" |
| 18 #include "extensions/common/permissions/usb_device_permission.h" | 19 #include "extensions/common/permissions/usb_device_permission.h" |
| 19 | 20 |
| 20 namespace usb = extensions::core_api::usb; | 21 namespace usb = extensions::core_api::usb; |
| 21 namespace BulkTransfer = usb::BulkTransfer; | 22 namespace BulkTransfer = usb::BulkTransfer; |
| 22 namespace ClaimInterface = usb::ClaimInterface; | 23 namespace ClaimInterface = usb::ClaimInterface; |
| 23 namespace CloseDevice = usb::CloseDevice; | 24 namespace CloseDevice = usb::CloseDevice; |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 const uint16_t product_id = input_device.product_id; | 423 const uint16_t product_id = input_device.product_id; |
| 423 UsbDevicePermission::CheckParam param( | 424 UsbDevicePermission::CheckParam param( |
| 424 vendor_id, product_id, UsbDevicePermissionData::UNSPECIFIED_INTERFACE); | 425 vendor_id, product_id, UsbDevicePermissionData::UNSPECIFIED_INTERFACE); |
| 425 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( | 426 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( |
| 426 APIPermission::kUsbDevice, ¶m)) { | 427 APIPermission::kUsbDevice, ¶m)) { |
| 427 LOG(WARNING) << "Insufficient permissions to access device."; | 428 LOG(WARNING) << "Insufficient permissions to access device."; |
| 428 CompleteWithError(kErrorPermissionDenied); | 429 CompleteWithError(kErrorPermissionDenied); |
| 429 return NULL; | 430 return NULL; |
| 430 } | 431 } |
| 431 | 432 |
| 432 UsbService* service = UsbService::GetInstance(); | 433 UsbService* service = device::DeviceClient::Get()->GetUsbService(); |
| 433 if (!service) { | 434 if (!service) { |
| 434 CompleteWithError(kErrorInitService); | 435 CompleteWithError(kErrorInitService); |
| 435 return NULL; | 436 return NULL; |
| 436 } | 437 } |
| 437 scoped_refptr<UsbDevice> device; | 438 scoped_refptr<UsbDevice> device; |
| 438 | 439 |
| 439 device = service->GetDeviceById(input_device.device); | 440 device = service->GetDeviceById(input_device.device); |
| 440 | 441 |
| 441 if (!device.get()) { | 442 if (!device.get()) { |
| 442 CompleteWithError(kErrorNoDevice); | 443 CompleteWithError(kErrorNoDevice); |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 ? *parameters_->options.interface_id.get() | 554 ? *parameters_->options.interface_id.get() |
| 554 : UsbDevicePermissionData::ANY_INTERFACE; | 555 : UsbDevicePermissionData::ANY_INTERFACE; |
| 555 UsbDevicePermission::CheckParam param(vendor_id, product_id, interface_id); | 556 UsbDevicePermission::CheckParam param(vendor_id, product_id, interface_id); |
| 556 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( | 557 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( |
| 557 APIPermission::kUsbDevice, ¶m)) { | 558 APIPermission::kUsbDevice, ¶m)) { |
| 558 LOG(WARNING) << "Insufficient permissions to access device."; | 559 LOG(WARNING) << "Insufficient permissions to access device."; |
| 559 CompleteWithError(kErrorPermissionDenied); | 560 CompleteWithError(kErrorPermissionDenied); |
| 560 return; | 561 return; |
| 561 } | 562 } |
| 562 | 563 |
| 563 UsbService* service = UsbService::GetInstance(); | 564 UsbService* service = device::DeviceClient::Get()->GetUsbService(); |
| 564 if (!service) { | 565 if (!service) { |
| 565 CompleteWithError(kErrorInitService); | 566 CompleteWithError(kErrorInitService); |
| 566 return; | 567 return; |
| 567 } | 568 } |
| 568 | 569 |
| 569 ScopedDeviceVector devices(new DeviceVector()); | 570 ScopedDeviceVector devices(new DeviceVector()); |
| 570 service->GetDevices(devices.get()); | 571 service->GetDevices(devices.get()); |
| 571 | 572 |
| 572 for (DeviceVector::iterator it = devices->begin(); it != devices->end();) { | 573 for (DeviceVector::iterator it = devices->begin(); it != devices->end();) { |
| 573 if ((*it)->vendor_id() != vendor_id || (*it)->product_id() != product_id) { | 574 if ((*it)->vendor_id() != vendor_id || (*it)->product_id() != product_id) { |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 629 const uint16_t product_id = parameters_->options.product_id; | 630 const uint16_t product_id = parameters_->options.product_id; |
| 630 UsbDevicePermission::CheckParam param( | 631 UsbDevicePermission::CheckParam param( |
| 631 vendor_id, product_id, UsbDevicePermissionData::UNSPECIFIED_INTERFACE); | 632 vendor_id, product_id, UsbDevicePermissionData::UNSPECIFIED_INTERFACE); |
| 632 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( | 633 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( |
| 633 APIPermission::kUsbDevice, ¶m)) { | 634 APIPermission::kUsbDevice, ¶m)) { |
| 634 LOG(WARNING) << "Insufficient permissions to access device."; | 635 LOG(WARNING) << "Insufficient permissions to access device."; |
| 635 CompleteWithError(kErrorPermissionDenied); | 636 CompleteWithError(kErrorPermissionDenied); |
| 636 return; | 637 return; |
| 637 } | 638 } |
| 638 | 639 |
| 639 UsbService* service = UsbService::GetInstance(); | 640 UsbService* service = device::DeviceClient::Get()->GetUsbService(); |
| 640 if (!service) { | 641 if (!service) { |
| 641 CompleteWithError(kErrorInitService); | 642 CompleteWithError(kErrorInitService); |
| 642 return; | 643 return; |
| 643 } | 644 } |
| 644 | 645 |
| 645 DeviceVector devices; | 646 DeviceVector devices; |
| 646 service->GetDevices(&devices); | 647 service->GetDevices(&devices); |
| 647 | 648 |
| 648 for (DeviceVector::iterator it = devices.begin(); it != devices.end();) { | 649 for (DeviceVector::iterator it = devices.begin(); it != devices.end();) { |
| 649 if ((*it)->vendor_id() != vendor_id || (*it)->product_id() != product_id) { | 650 if ((*it)->vendor_id() != vendor_id || (*it)->product_id() != product_id) { |
| (...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1199 SetResult(new base::FundamentalValue(false)); | 1200 SetResult(new base::FundamentalValue(false)); |
| 1200 CompleteWithError(kErrorResetDevice); | 1201 CompleteWithError(kErrorResetDevice); |
| 1201 return; | 1202 return; |
| 1202 } | 1203 } |
| 1203 | 1204 |
| 1204 SetResult(new base::FundamentalValue(true)); | 1205 SetResult(new base::FundamentalValue(true)); |
| 1205 AsyncWorkCompleted(); | 1206 AsyncWorkCompleted(); |
| 1206 } | 1207 } |
| 1207 | 1208 |
| 1208 } // namespace extensions | 1209 } // namespace extensions |
| OLD | NEW |