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/hid/hid_api.h" | 5 #include "extensions/browser/api/hid/hid_api.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "device/hid/hid_connection.h" | 10 #include "device/hid/hid_connection.h" |
11 #include "device/hid/hid_device_info.h" | 11 #include "device/hid/hid_device_info.h" |
12 #include "device/hid/hid_service.h" | 12 #include "device/hid/hid_service.h" |
13 #include "extensions/browser/api/api_resource_manager.h" | 13 #include "extensions/browser/api/api_resource_manager.h" |
14 #include "extensions/browser/api/extensions_api_client.h" | |
15 #include "extensions/common/api/hid.h" | 14 #include "extensions/common/api/hid.h" |
16 #include "extensions/common/permissions/permissions_data.h" | 15 #include "extensions/common/permissions/permissions_data.h" |
17 #include "extensions/common/permissions/usb_device_permission.h" | 16 #include "extensions/common/permissions/usb_device_permission.h" |
18 #include "net/base/io_buffer.h" | 17 #include "net/base/io_buffer.h" |
19 | 18 |
20 namespace hid = extensions::core_api::hid; | 19 namespace hid = extensions::core_api::hid; |
21 | 20 |
22 using device::HidConnection; | 21 using device::HidConnection; |
23 using device::HidDeviceInfo; | 22 using device::HidDeviceInfo; |
24 using device::HidService; | 23 using device::HidService; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 device_info.vendor_id, | 119 device_info.vendor_id, |
121 device_info.product_id, | 120 device_info.product_id, |
122 UsbDevicePermissionData::UNSPECIFIED_INTERFACE); | 121 UsbDevicePermissionData::UNSPECIFIED_INTERFACE); |
123 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( | 122 if (!extension()->permissions_data()->CheckAPIPermissionWithParam( |
124 APIPermission::kUsbDevice, ¶m)) { | 123 APIPermission::kUsbDevice, ¶m)) { |
125 LOG(WARNING) << "Insufficient permissions to access device."; | 124 LOG(WARNING) << "Insufficient permissions to access device."; |
126 CompleteWithError(kErrorPermissionDenied); | 125 CompleteWithError(kErrorPermissionDenied); |
127 return; | 126 return; |
128 } | 127 } |
129 | 128 |
130 HidService* hid_service = ExtensionsAPIClient::Get()->GetHidService(); | 129 HidService* hid_service = HidService::GetInstance( |
| 130 content::BrowserThread::GetMessageLoopProxyForThread( |
| 131 content::BrowserThread::UI)); |
131 DCHECK(hid_service); | 132 DCHECK(hid_service); |
132 scoped_refptr<HidConnection> connection = | 133 scoped_refptr<HidConnection> connection = |
133 hid_service->Connect(device_info.device_id); | 134 hid_service->Connect(device_info.device_id); |
134 if (!connection) { | 135 if (!connection) { |
135 CompleteWithError(kErrorFailedToOpenDevice); | 136 CompleteWithError(kErrorFailedToOpenDevice); |
136 return; | 137 return; |
137 } | 138 } |
138 int connection_id = connection_manager_->Add( | 139 int connection_id = connection_manager_->Add( |
139 new HidConnectionResource(extension_->id(), connection)); | 140 new HidConnectionResource(extension_->id(), connection)); |
140 SetResult(PopulateHidConnection(connection_id, connection)); | 141 SetResult(PopulateHidConnection(connection_id, connection)); |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 | 316 |
316 void HidSendFeatureReportFunction::OnFinished(bool success, size_t bytes) { | 317 void HidSendFeatureReportFunction::OnFinished(bool success, size_t bytes) { |
317 if (!success) { | 318 if (!success) { |
318 CompleteWithError(kErrorTransfer); | 319 CompleteWithError(kErrorTransfer); |
319 return; | 320 return; |
320 } | 321 } |
321 AsyncWorkCompleted(); | 322 AsyncWorkCompleted(); |
322 } | 323 } |
323 | 324 |
324 } // namespace extensions | 325 } // namespace extensions |
OLD | NEW |