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