Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: device/usb/mojo/device_impl.cc

Issue 1854483002: Remove WebUSB descriptor data from device.mojom. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use_interface_associations
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "device/usb/mojo/device_impl.h" 5 #include "device/usb/mojo/device_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <numeric> 10 #include <numeric>
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 [index](const UsbInterfaceDescriptor& interface) { 174 [index](const UsbInterfaceDescriptor& interface) {
175 return interface.interface_number == (index & 0xff); 175 return interface.interface_number == (index & 0xff);
176 }); 176 });
177 if (interface_it != config->interfaces.end()) 177 if (interface_it != config->interfaces.end())
178 interface = &*interface_it; 178 interface = &*interface_it;
179 } 179 }
180 if (interface == nullptr) 180 if (interface == nullptr)
181 return false; 181 return false;
182 182
183 return permission_provider_->HasFunctionPermission( 183 return permission_provider_->HasFunctionPermission(
184 interface->first_interface, config->configuration_value, *device_info_); 184 interface->first_interface, config->configuration_value, device_);
185 } else if (config) { 185 } else if (config) {
186 return permission_provider_->HasConfigurationPermission( 186 return permission_provider_->HasConfigurationPermission(
187 config->configuration_value, *device_info_); 187 config->configuration_value, device_);
188 } else { 188 } else {
189 // Client must already have device permission to have gotten this far. 189 // Client must already have device permission to have gotten this far.
190 return true; 190 return true;
191 } 191 }
192 } 192 }
193 193
194 void DeviceImpl::OnOpen(const OpenCallback& callback, 194 void DeviceImpl::OnOpen(const OpenCallback& callback,
195 scoped_refptr<UsbDeviceHandle> handle) { 195 scoped_refptr<UsbDeviceHandle> handle) {
196 device_handle_ = handle; 196 device_handle_ = handle;
197 callback.Run(handle ? OpenDeviceError::OK : OpenDeviceError::ACCESS_DENIED); 197 callback.Run(handle ? OpenDeviceError::OK : OpenDeviceError::ACCESS_DENIED);
(...skipping 19 matching lines...) Expand all
217 } 217 }
218 218
219 void DeviceImpl::SetConfiguration(uint8_t value, 219 void DeviceImpl::SetConfiguration(uint8_t value,
220 const SetConfigurationCallback& callback) { 220 const SetConfigurationCallback& callback) {
221 if (!device_handle_) { 221 if (!device_handle_) {
222 callback.Run(false); 222 callback.Run(false);
223 return; 223 return;
224 } 224 }
225 225
226 if (permission_provider_ && 226 if (permission_provider_ &&
227 permission_provider_->HasConfigurationPermission(value, *device_info_)) { 227 permission_provider_->HasConfigurationPermission(value, device_)) {
228 device_handle_->SetConfiguration(value, WrapMojoCallback(callback)); 228 device_handle_->SetConfiguration(value, WrapMojoCallback(callback));
229 } else { 229 } else {
230 callback.Run(false); 230 callback.Run(false);
231 } 231 }
232 } 232 }
233 233
234 void DeviceImpl::ClaimInterface(uint8_t interface_number, 234 void DeviceImpl::ClaimInterface(uint8_t interface_number,
235 const ClaimInterfaceCallback& callback) { 235 const ClaimInterfaceCallback& callback) {
236 if (!device_handle_) { 236 if (!device_handle_) {
237 callback.Run(false); 237 callback.Run(false);
(...skipping 12 matching lines...) Expand all
250 return interface.interface_number == interface_number; 250 return interface.interface_number == interface_number;
251 }); 251 });
252 if (interface_it == config->interfaces.end()) { 252 if (interface_it == config->interfaces.end()) {
253 callback.Run(false); 253 callback.Run(false);
254 return; 254 return;
255 } 255 }
256 256
257 if (permission_provider_ && 257 if (permission_provider_ &&
258 permission_provider_->HasFunctionPermission(interface_it->first_interface, 258 permission_provider_->HasFunctionPermission(interface_it->first_interface,
259 config->configuration_value, 259 config->configuration_value,
260 *device_info_)) { 260 device_)) {
261 device_handle_->ClaimInterface(interface_number, 261 device_handle_->ClaimInterface(interface_number,
262 WrapMojoCallback(callback)); 262 WrapMojoCallback(callback));
263 } else { 263 } else {
264 callback.Run(false); 264 callback.Run(false);
265 } 265 }
266 } 266 }
267 267
268 void DeviceImpl::ReleaseInterface(uint8_t interface_number, 268 void DeviceImpl::ReleaseInterface(uint8_t interface_number,
269 const ReleaseInterfaceCallback& callback) { 269 const ReleaseInterfaceCallback& callback) {
270 if (!device_handle_) { 270 if (!device_handle_) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 base::Bind(&OnIsochronousTransferOut, base::Passed(&callback_ptr))); 442 base::Bind(&OnIsochronousTransferOut, base::Passed(&callback_ptr)));
443 } 443 }
444 444
445 void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) { 445 void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) {
446 DCHECK_EQ(device_, device); 446 DCHECK_EQ(device_, device);
447 delete this; 447 delete this;
448 } 448 }
449 449
450 } // namespace usb 450 } // namespace usb
451 } // namespace device 451 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698