blob: f5d71110e581b3e5ca243055b6d027a4514b1ae1 [file] [log] [blame]
// 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);
};