| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| module device.usb; |
| |
| import "device.mojom"; |
| |
| interface PermissionProvider { |
| // Filters a set of |requested_devices| down to the set of |allowed_guids| |
| // that should be accessible to clients of the DeviceManager instance. |
| HasDevicePermission(array<DeviceInfo> requested_devices) |
| => (array<string> allowed_guids); |
| |
| // Returns whether or not the client has permission to access |
| // |requested_configuration| on |device|. |
| HasConfigurationPermission(uint8 requested_configuration, |
| DeviceInfo device) => (bool allowed); |
| |
| // Returns whether or not the client has permission to access |
| // |requested_interface| on |device| when it is in configuration |
| // |configuration_value|. |
| HasInterfacePermission(uint8 requested_interface, |
| uint8 configuration_value, |
| DeviceInfo device) => (bool allowed); |
| |
| // Requests a new binding to this service. |
| Bind(PermissionProvider& request); |
| }; |