| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <meta charset=utf-8> | |
| 5 <title>WebUSB IDL test</title> | |
| 6 <link rel="help" href="https://wicg.github.io/webusb/"> | |
| 7 <script src=/resources/testharness.js></script> | |
| 8 <script src=/resources/testharnessreport.js></script> | |
| 9 <script src=/resources/WebIDLParser.js></script> | |
| 10 <script src=/resources/idlharness.js></script> | |
| 11 </head> | |
| 12 <body> | |
| 13 <script type="text/plain" id="untested"> | |
| 14 interface Event {}; | |
| 15 dictionary EventInit {}; | |
| 16 interface EventHandler {}; | |
| 17 interface EventTarget {}; | |
| 18 interface Navigator {}; | |
| 19 </script> | |
| 20 <script type="text/plain" id="tested"> | |
| 21 // Copied from https://wicg.github.io/webusb/#idl-index minus the | |
| 22 // definitions related to Permissions API integration which is unstable. | |
| 23 | |
| 24 dictionary USBDeviceFilter { | |
| 25 unsigned short vendorId; | |
| 26 unsigned short productId; | |
| 27 octet classCode; | |
| 28 octet subclassCode; | |
| 29 octet protocolCode; | |
| 30 DOMString serialNumber; | |
| 31 }; | |
| 32 | |
| 33 dictionary USBDeviceRequestOptions { | |
| 34 required sequence<USBDeviceFilter> filters; | |
| 35 }; | |
| 36 | |
| 37 interface USB : EventTarget { | |
| 38 attribute EventHandler onconnect; | |
| 39 attribute EventHandler ondisconnect; | |
| 40 Promise<sequence<USBDevice>> getDevices(); | |
| 41 Promise<USBDevice> requestDevice(USBDeviceRequestOptions options); | |
| 42 }; | |
| 43 | |
| 44 [SecureContext] | |
| 45 partial interface Navigator { | |
| 46 [SameObject] readonly attribute USB usb; | |
| 47 }; | |
| 48 | |
| 49 dictionary USBConnectionEventInit : EventInit { | |
| 50 required USBDevice device; | |
| 51 }; | |
| 52 | |
| 53 [Constructor(DOMString type, USBConnectionEventInit eventInitDict)] | |
| 54 interface USBConnectionEvent : Event { | |
| 55 [SameObject] readonly attribute USBDevice device; | |
| 56 }; | |
| 57 | |
| 58 interface USBDevice { | |
| 59 readonly attribute octet usbVersionMajor; | |
| 60 readonly attribute octet usbVersionMinor; | |
| 61 readonly attribute octet usbVersionSubminor; | |
| 62 readonly attribute octet deviceClass; | |
| 63 readonly attribute octet deviceSubclass; | |
| 64 readonly attribute octet deviceProtocol; | |
| 65 readonly attribute unsigned short vendorId; | |
| 66 readonly attribute unsigned short productId; | |
| 67 readonly attribute octet deviceVersionMajor; | |
| 68 readonly attribute octet deviceVersionMinor; | |
| 69 readonly attribute octet deviceVersionSubminor; | |
| 70 readonly attribute DOMString? manufacturerName; | |
| 71 readonly attribute DOMString? productName; | |
| 72 readonly attribute DOMString? serialNumber; | |
| 73 readonly attribute USBConfiguration? configuration; | |
| 74 readonly attribute FrozenArray<USBConfiguration> configurations; | |
| 75 readonly attribute boolean opened; | |
| 76 Promise<void> open(); | |
| 77 Promise<void> close(); | |
| 78 Promise<void> selectConfiguration(octet configurationValue); | |
| 79 Promise<void> claimInterface(octet interfaceNumber); | |
| 80 Promise<void> releaseInterface(octet interfaceNumber); | |
| 81 Promise<void> selectAlternateInterface(octet interfaceNumber, octet alte
rnateSetting); | |
| 82 Promise<USBInTransferResult> controlTransferIn(USBControlTransferParamet
ers setup, unsigned short length); | |
| 83 Promise<USBOutTransferResult> controlTransferOut(USBControlTransferParam
eters setup, optional BufferSource data); | |
| 84 Promise<void> clearHalt(USBDirection direction, octet endpointNumber); | |
| 85 Promise<USBInTransferResult> transferIn(octet endpointNumber, unsigned l
ong length); | |
| 86 Promise<USBOutTransferResult> transferOut(octet endpointNumber, BufferSo
urce data); | |
| 87 Promise<USBIsochronousInTransferResult> isochronousTransferIn(octet endp
ointNumber, sequence<unsigned long> packetLengths); | |
| 88 Promise<USBIsochronousOutTransferResult> isochronousTransferOut(octet en
dpointNumber, BufferSource data, sequence<unsigned long> packetLengths); | |
| 89 Promise<void> reset(); | |
| 90 }; | |
| 91 | |
| 92 enum USBRequestType { | |
| 93 "standard", | |
| 94 "class", | |
| 95 "vendor" | |
| 96 }; | |
| 97 | |
| 98 enum USBRecipient { | |
| 99 "device", | |
| 100 "interface", | |
| 101 "endpoint", | |
| 102 "other" | |
| 103 }; | |
| 104 | |
| 105 enum USBTransferStatus { | |
| 106 "ok", | |
| 107 "stall", | |
| 108 "babble" | |
| 109 }; | |
| 110 | |
| 111 dictionary USBControlTransferParameters { | |
| 112 required USBRequestType requestType; | |
| 113 required USBRecipient recipient; | |
| 114 required octet request; | |
| 115 required unsigned short value; | |
| 116 required unsigned short index; | |
| 117 }; | |
| 118 | |
| 119 [Constructor(USBTransferStatus status, optional DataView? data)] | |
| 120 interface USBInTransferResult { | |
| 121 readonly attribute DataView? data; | |
| 122 readonly attribute USBTransferStatus status; | |
| 123 }; | |
| 124 | |
| 125 [Constructor(USBTransferStatus status, optional unsigned long bytesWritten
= 0)] | |
| 126 interface USBOutTransferResult { | |
| 127 readonly attribute unsigned long bytesWritten; | |
| 128 readonly attribute USBTransferStatus status; | |
| 129 }; | |
| 130 | |
| 131 [Constructor(USBTransferStatus status, optional DataView? data)] | |
| 132 interface USBIsochronousInTransferPacket { | |
| 133 readonly attribute DataView? data; | |
| 134 readonly attribute USBTransferStatus status; | |
| 135 }; | |
| 136 | |
| 137 [Constructor(sequence<USBIsochronousInTransferPacket> packets, optional Da
taView? data)] | |
| 138 interface USBIsochronousInTransferResult { | |
| 139 readonly attribute DataView? data; | |
| 140 readonly attribute FrozenArray<USBIsochronousInTransferPacket> packets; | |
| 141 }; | |
| 142 | |
| 143 [Constructor(USBTransferStatus status, optional unsigned long bytesWritten
= 0)] | |
| 144 interface USBIsochronousOutTransferPacket { | |
| 145 readonly attribute unsigned long bytesWritten; | |
| 146 readonly attribute USBTransferStatus status; | |
| 147 }; | |
| 148 | |
| 149 [Constructor(sequence<USBIsochronousOutTransferPacket> packets)] | |
| 150 interface USBIsochronousOutTransferResult { | |
| 151 readonly attribute FrozenArray<USBIsochronousOutTransferPacket> packets; | |
| 152 }; | |
| 153 | |
| 154 [Constructor(USBDevice device, octet configurationValue)] | |
| 155 interface USBConfiguration { | |
| 156 readonly attribute octet configurationValue; | |
| 157 readonly attribute DOMString? configurationName; | |
| 158 readonly attribute FrozenArray<USBInterface> interfaces; | |
| 159 }; | |
| 160 | |
| 161 [Constructor(USBConfiguration configuration, octet interfaceNumber)] | |
| 162 interface USBInterface { | |
| 163 readonly attribute octet interfaceNumber; | |
| 164 readonly attribute USBAlternateInterface alternate; | |
| 165 readonly attribute FrozenArray<USBAlternateInterface> alternates; | |
| 166 readonly attribute boolean claimed; | |
| 167 }; | |
| 168 | |
| 169 [Constructor(USBInterface deviceInterface, octet alternateSetting)] | |
| 170 interface USBAlternateInterface { | |
| 171 readonly attribute octet alternateSetting; | |
| 172 readonly attribute octet interfaceClass; | |
| 173 readonly attribute octet interfaceSubclass; | |
| 174 readonly attribute octet interfaceProtocol; | |
| 175 readonly attribute DOMString? interfaceName; | |
| 176 readonly attribute FrozenArray<USBEndpoint> endpoints; | |
| 177 }; | |
| 178 | |
| 179 enum USBDirection { | |
| 180 "in", | |
| 181 "out" | |
| 182 }; | |
| 183 | |
| 184 enum USBEndpointType { | |
| 185 "bulk", | |
| 186 "interrupt", | |
| 187 "isochronous" | |
| 188 }; | |
| 189 | |
| 190 [Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDir
ection direction)] | |
| 191 interface USBEndpoint { | |
| 192 readonly attribute octet endpointNumber; | |
| 193 readonly attribute USBDirection direction; | |
| 194 readonly attribute USBEndpointType type; | |
| 195 readonly attribute unsigned long packetSize; | |
| 196 }; | |
| 197 </script> | |
| 198 <script> | |
| 199 'use strict'; | |
| 200 | |
| 201 var idl_array = new IdlArray(); | |
| 202 idl_array.add_untested_idls(document.querySelector('#untested').textConten
t); | |
| 203 idl_array.add_idls(document.querySelector('#tested').textContent); | |
| 204 idl_array.add_objects({ | |
| 205 Navigator: ['navigator'], | |
| 206 USB: ['navigator.usb'], | |
| 207 USBInTransferResult: ['new USBInTransferResult("ok")'], | |
| 208 USBOutTransferResult: ['new USBOutTransferResult("ok")'], | |
| 209 USBIsochronousInTransferResult: ['new USBIsochronousInTransferResult([])
'], | |
| 210 USBIsochronousOutTransferResult: ['new USBIsochronousOutTransferResult([
])'], | |
| 211 USBIsochronousInTransferPacket: ['new USBIsochronousInTransferPacket("ok
")'], | |
| 212 USBIsochronousOutTransferPacket: ['new USBIsochronousOutTransferPacket("
ok")'] | |
| 213 }); | |
| 214 idl_array.test(); | |
| 215 </script> | |
| 216 </body> | |
| 217 </html> | |
| OLD | NEW |