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

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: Rebased. 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 <memory> 10 #include <memory>
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 [index](const UsbInterfaceDescriptor& this_iface) { 179 [index](const UsbInterfaceDescriptor& this_iface) {
180 return this_iface.interface_number == (index & 0xff); 180 return this_iface.interface_number == (index & 0xff);
181 }); 181 });
182 if (interface_it != config->interfaces.end()) 182 if (interface_it != config->interfaces.end())
183 interface = &*interface_it; 183 interface = &*interface_it;
184 } 184 }
185 if (interface == nullptr) 185 if (interface == nullptr)
186 return false; 186 return false;
187 187
188 return permission_provider_->HasFunctionPermission( 188 return permission_provider_->HasFunctionPermission(
189 interface->first_interface, config->configuration_value, *device_info_); 189 interface->first_interface, config->configuration_value, device_);
190 } else if (config) { 190 } else if (config) {
191 return permission_provider_->HasConfigurationPermission( 191 return permission_provider_->HasConfigurationPermission(
192 config->configuration_value, *device_info_); 192 config->configuration_value, device_);
193 } else { 193 } else {
194 // Client must already have device permission to have gotten this far. 194 // Client must already have device permission to have gotten this far.
195 return true; 195 return true;
196 } 196 }
197 } 197 }
198 198
199 void DeviceImpl::OnOpen(const OpenCallback& callback, 199 void DeviceImpl::OnOpen(const OpenCallback& callback,
200 scoped_refptr<UsbDeviceHandle> handle) { 200 scoped_refptr<UsbDeviceHandle> handle) {
201 device_handle_ = handle; 201 device_handle_ = handle;
202 if (device_handle_ && permission_provider_) 202 if (device_handle_ && permission_provider_)
(...skipping 21 matching lines...) Expand all
224 } 224 }
225 225
226 void DeviceImpl::SetConfiguration(uint8_t value, 226 void DeviceImpl::SetConfiguration(uint8_t value,
227 const SetConfigurationCallback& callback) { 227 const SetConfigurationCallback& callback) {
228 if (!device_handle_) { 228 if (!device_handle_) {
229 callback.Run(false); 229 callback.Run(false);
230 return; 230 return;
231 } 231 }
232 232
233 if (permission_provider_ && 233 if (permission_provider_ &&
234 permission_provider_->HasConfigurationPermission(value, *device_info_)) { 234 permission_provider_->HasConfigurationPermission(value, device_)) {
235 device_handle_->SetConfiguration(value, WrapMojoCallback(callback)); 235 device_handle_->SetConfiguration(value, WrapMojoCallback(callback));
236 } else { 236 } else {
237 callback.Run(false); 237 callback.Run(false);
238 } 238 }
239 } 239 }
240 240
241 void DeviceImpl::ClaimInterface(uint8_t interface_number, 241 void DeviceImpl::ClaimInterface(uint8_t interface_number,
242 const ClaimInterfaceCallback& callback) { 242 const ClaimInterfaceCallback& callback) {
243 if (!device_handle_) { 243 if (!device_handle_) {
244 callback.Run(false); 244 callback.Run(false);
(...skipping 12 matching lines...) Expand all
257 return interface.interface_number == interface_number; 257 return interface.interface_number == interface_number;
258 }); 258 });
259 if (interface_it == config->interfaces.end()) { 259 if (interface_it == config->interfaces.end()) {
260 callback.Run(false); 260 callback.Run(false);
261 return; 261 return;
262 } 262 }
263 263
264 if (permission_provider_ && 264 if (permission_provider_ &&
265 permission_provider_->HasFunctionPermission(interface_it->first_interface, 265 permission_provider_->HasFunctionPermission(interface_it->first_interface,
266 config->configuration_value, 266 config->configuration_value,
267 *device_info_)) { 267 device_)) {
268 device_handle_->ClaimInterface(interface_number, 268 device_handle_->ClaimInterface(interface_number,
269 WrapMojoCallback(callback)); 269 WrapMojoCallback(callback));
270 } else { 270 } else {
271 callback.Run(false); 271 callback.Run(false);
272 } 272 }
273 } 273 }
274 274
275 void DeviceImpl::ReleaseInterface(uint8_t interface_number, 275 void DeviceImpl::ReleaseInterface(uint8_t interface_number,
276 const ReleaseInterfaceCallback& callback) { 276 const ReleaseInterfaceCallback& callback) {
277 if (!device_handle_) { 277 if (!device_handle_) {
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 base::Bind(&OnIsochronousTransferOut, base::Passed(&callback_ptr))); 450 base::Bind(&OnIsochronousTransferOut, base::Passed(&callback_ptr)));
451 } 451 }
452 452
453 void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) { 453 void DeviceImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) {
454 DCHECK_EQ(device_, device); 454 DCHECK_EQ(device_, device);
455 delete this; 455 delete this;
456 } 456 }
457 457
458 } // namespace usb 458 } // namespace usb
459 } // namespace device 459 } // namespace device
OLDNEW
« no previous file with comments | « chrome/browser/usb/web_usb_permission_provider.cc ('k') | device/usb/mojo/device_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698