chromium/third_party/blink/renderer/modules/webusb/usb.idl

// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://wicg.github.io/webusb/#usb

[
    Exposed(DedicatedWorker WebUSBOnDedicatedWorkers,
            ServiceWorker WebUSBOnServiceWorkers,
            Window WebUSB),
    SecureContext
] interface USB : EventTarget {
    attribute EventHandler onconnect;
    attribute EventHandler ondisconnect;
    [CallWith=ScriptState, RaisesException, MeasureAs=UsbGetDevices] Promise<sequence<USBDevice>> getDevices();
    [CallWith=ScriptState, RaisesException, Exposed=Window, MeasureAs=UsbRequestDevice] Promise<USBDevice> requestDevice(USBDeviceRequestOptions options);
};