1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// A logical device enumerated by the HID service. Note that a physical device
// may be represented by more than one logical device when enumerated through
// HID.
// https://wicg.github.io/webhid/index.html#device-usage
[
ActiveScriptWrappable,
Exposed(ServiceWorker WebHIDOnServiceWorkers,
DedicatedWorker WebHID,
Window WebHID),
SecureContext
] interface HIDDevice : EventTarget {
attribute EventHandler oninputreport;
// True if the device is ready to send or receive reports.
readonly attribute boolean opened;
// The 16-bit vendor and product IDs reported by the device.
readonly attribute unsigned short vendorId;
readonly attribute unsigned short productId;
// The device name, as reported by the device and shown in the chooser.
readonly attribute DOMString productName;
// An array of the top-level collections within the HID report descriptor,
// in the order they were encountered within the descriptor. The collections
// describe the reports supported by the device.
readonly attribute FrozenArray<HIDCollectionInfo> collections;
// Open a connection to the device. The promise is resolved once the device
// is ready to send or receive reports.
[
CallWith=ScriptState,
RaisesException,
MeasureAs=HidDeviceOpen
] Promise<undefined> open();
// Close the connection to the device. The promise is resolved once the
// device is closed.
[CallWith=ScriptState, MeasureAs=HidDeviceClose] Promise<undefined> close();
// Revoke permission to the device. The promise is resolved once the
// device is forgotten.
[CallWith=ScriptState, RaisesException] Promise<undefined> forget();
// Send an output report to the device. Set |reportId| to the first byte of
// the report and |data| to the remaining bytes. Set |reportId| to zero if
// the device does not use report IDs. The promise is resolved once the
// report has been sent.
[
CallWith=ScriptState,
MeasureAs=HidDeviceSendReport
] Promise<undefined> sendReport(
[EnforceRange] octet reportId, [PassAsSpan] BufferSource data);
// Send a feature report to the device. Set |reportId| to the first byte of
// the report and |data| to the remaining bytes. Set |reportId| to zero if
// the device does not use report IDs. The promise is resolved once the
// report has been sent.
[
CallWith=ScriptState,
MeasureAs=HidDeviceSendFeatureReport
] Promise<undefined> sendFeatureReport(
[EnforceRange] octet reportId, [PassAsSpan] BufferSource data);
// Request a feature report from the device. Set |reportId| to the ID of the
// feature report to request, or zero if the device does not use report IDs.
// Resolves the promise with a DataView containing the contents of the
// feature report.
[
CallWith=ScriptState,
MeasureAs=HidDeviceReceiveFeatureReport
] Promise<DataView> receiveFeatureReport(
[EnforceRange] octet reportId);
};
|