Closed Bug 1903906 Opened 3 months ago Closed 3 months ago

[wpt-sync] Sync PR 46849 - usb: Reject transfer size more than 32MB on renderer

Categories

(Core :: DOM: Device Interfaces, task, P4)

task

Tracking

()

RESOLVED FIXED
129 Branch
Tracking Status
firefox129 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 46849 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/46849
Details from upstream follow.

Jack Hsieh <chengweih@chromium.org> wrote:

usb: Reject transfer size more than 32MB on renderer

Enforce a 32MB transfer size limit on WebUSB renderer side. This
enforcement is to avoid user allocating a big buffer (e.g. close to 4GB)
that might crash the browser in case no enough memory resources.

Bug: 338955051
Change-Id: Ieac572e1abf6e85199e34550bf8e6434cad57052
Reviewed-on: https://chromium-review.googlesource.com/5633505
WPT-Export-Revision: 4ee8552690aad438b0305a331a33a7a8d74c5e4b

Component: web-platform-tests → DOM: Device Interfaces
Product: Testing → Core

CI Results

Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 2 tests and 65 subtests

Status Summary

Firefox

OK : 2
FAIL: 130

Chrome

OK : 2
PASS: 120
FAIL: 10

Safari

OK : 2
FAIL: 130

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /webusb/usbDevice.https.any.html [wpt.fyi]
    • open rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • disconnection closes the device: FAIL (Chrome: PASS, Safari: FAIL)
    • a device can be opened and closed: FAIL (Chrome: PASS, Safari: FAIL)
    • open and close can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
    • open and close cannot be called again while open or close are in progress: FAIL (Chrome: PASS, Safari: FAIL)
    • device operations reject if an device state change is in progress: FAIL (Chrome: PASS, Safari: FAIL)
    • close rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • selectConfiguration rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • methods requiring it reject when the device is not open: FAIL (Chrome: PASS, Safari: FAIL)
    • device configuration can be set and queried: FAIL (Chrome: PASS, Safari: FAIL)
    • a device configuration value can be set again: FAIL (Chrome: PASS, Safari: FAIL)
    • selectConfiguration rejects on invalid configurations: FAIL (Chrome: PASS, Safari: FAIL)
    • methods requiring it reject when the device is unconfigured: FAIL (Chrome: PASS, Safari: FAIL)
    • interfaces can be claimed and released: FAIL (Chrome: PASS, Safari: FAIL)
    • interfaces can be claimed and released in parallel: FAIL (Chrome: PASS, Safari: FAIL)
    • an interface can be claimed multiple times: FAIL (Chrome: PASS, Safari: FAIL)
    • an interface can be released multiple times: FAIL (Chrome: PASS, Safari: FAIL)
    • device operations reject if an interface state change is in progress: FAIL (Chrome: PASS, Safari: FAIL)
    • interfaces are released on close: FAIL (Chrome: PASS, Safari: FAIL)
    • a non-existent interface cannot be claimed or released: FAIL (Chrome: PASS, Safari: FAIL)
    • claimInterface rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • releaseInterface rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can select an alternate interface: FAIL (Chrome: PASS, Safari: FAIL)
    • can select an alternate interface on a setting with non-sequential interface number: FAIL (Chrome: PASS, Safari: FAIL)
    • can select an alternate interface on a setting with non-sequential alternative setting value: FAIL (Chrome: PASS, Safari: FAIL)
    • cannot select a non-existent alternate interface: FAIL (Chrome: PASS, Safari: FAIL)
    • selectAlternateInterface rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue all types of IN control transfers: FAIL (Chrome: PASS, Safari: FAIL)
    • device-scope IN control transfers don't require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope IN control transfers require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope IN control transfers require claiming the interface: FAIL (Chrome: PASS, Safari: FAIL)
    • controlTransferIn rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue all types of OUT control transfers: FAIL (Chrome: PASS, Safari: FAIL)
    • device-scope OUT control transfers don't require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope OUT control transfers require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope OUT control transfers an interface claim: FAIL (Chrome: PASS, Safari: FAIL)
    • controlTransferOut rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • control transfers with a invalid request type reject: FAIL (Chrome: PASS, Safari: FAIL)
    • control transfers with a invalid recipient type reject: FAIL (Chrome: PASS, Safari: FAIL)
    • control transfers to a non-existant interface reject: FAIL (Chrome: PASS, Safari: FAIL)
    • requests to interfaces and endpoint require an interface claim: FAIL (Chrome: PASS, Safari: FAIL)
    • controlTransferOut rejects if called with a detached buffer: FAIL (Chrome: PASS, Safari: FAIL)
    • can clear a halt condition: FAIL (Chrome: PASS, Safari: FAIL)
    • clearHalt rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • transfers to unavailable endpoints are rejected: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue IN interrupt transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue IN bulk transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • transferIn rejects if called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue OUT bulk transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • transferOut rejects if called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • transferOut rejects if called with a detached buffer: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue IN isochronous transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferIn rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue OUT isochronous transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when called with a detached buffer: FAIL (Chrome: PASS, Safari: FAIL)
    • can reset the device: FAIL (Chrome: PASS, Safari: FAIL)
    • resetDevice rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when buffer size exceeds packet lengths: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when packet lengths exceed buffer size: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferIn rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • isochronousTransferOut rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • transferIn rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • transferOut rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • controlTransferOut rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
  • /webusb/usbDevice.https.any.worker.html [wpt.fyi]
    • open rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • disconnection closes the device: FAIL (Chrome: PASS, Safari: FAIL)
    • a device can be opened and closed: FAIL (Chrome: PASS, Safari: FAIL)
    • open and close can be called multiple times: FAIL (Chrome: PASS, Safari: FAIL)
    • open and close cannot be called again while open or close are in progress: FAIL (Chrome: PASS, Safari: FAIL)
    • device operations reject if an device state change is in progress: FAIL (Chrome: PASS, Safari: FAIL)
    • close rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • selectConfiguration rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • methods requiring it reject when the device is not open: FAIL (Chrome: PASS, Safari: FAIL)
    • device configuration can be set and queried: FAIL (Chrome: PASS, Safari: FAIL)
    • a device configuration value can be set again: FAIL (Chrome: PASS, Safari: FAIL)
    • selectConfiguration rejects on invalid configurations: FAIL (Chrome: PASS, Safari: FAIL)
    • methods requiring it reject when the device is unconfigured: FAIL (Chrome: PASS, Safari: FAIL)
    • interfaces can be claimed and released: FAIL (Chrome: PASS, Safari: FAIL)
    • interfaces can be claimed and released in parallel: FAIL (Chrome: PASS, Safari: FAIL)
    • an interface can be claimed multiple times: FAIL (Chrome: PASS, Safari: FAIL)
    • an interface can be released multiple times: FAIL (Chrome: PASS, Safari: FAIL)
    • device operations reject if an interface state change is in progress: FAIL (Chrome: PASS, Safari: FAIL)
    • interfaces are released on close: FAIL (Chrome: PASS, Safari: FAIL)
    • a non-existent interface cannot be claimed or released: FAIL (Chrome: PASS, Safari: FAIL)
    • claimInterface rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • releaseInterface rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can select an alternate interface: FAIL (Chrome: PASS, Safari: FAIL)
    • can select an alternate interface on a setting with non-sequential interface number: FAIL (Chrome: PASS, Safari: FAIL)
    • can select an alternate interface on a setting with non-sequential alternative setting value: FAIL (Chrome: PASS, Safari: FAIL)
    • cannot select a non-existent alternate interface: FAIL (Chrome: PASS, Safari: FAIL)
    • selectAlternateInterface rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue all types of IN control transfers: FAIL (Chrome: PASS, Safari: FAIL)
    • device-scope IN control transfers don't require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope IN control transfers require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope IN control transfers require claiming the interface: FAIL (Chrome: PASS, Safari: FAIL)
    • controlTransferIn rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue all types of OUT control transfers: FAIL (Chrome: PASS, Safari: FAIL)
    • device-scope OUT control transfers don't require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope OUT control transfers require configuration: FAIL (Chrome: PASS, Safari: FAIL)
    • interface-scope OUT control transfers an interface claim: FAIL (Chrome: PASS, Safari: FAIL)
    • controlTransferOut rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • control transfers with a invalid request type reject: FAIL (Chrome: PASS, Safari: FAIL)
    • control transfers with a invalid recipient type reject: FAIL (Chrome: PASS, Safari: FAIL)
    • control transfers to a non-existant interface reject: FAIL (Chrome: PASS, Safari: FAIL)
    • requests to interfaces and endpoint require an interface claim: FAIL (Chrome: PASS, Safari: FAIL)
    • controlTransferOut rejects if called with a detached buffer: FAIL (Chrome: PASS, Safari: FAIL)
    • can clear a halt condition: FAIL (Chrome: PASS, Safari: FAIL)
    • clearHalt rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • transfers to unavailable endpoints are rejected: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue IN interrupt transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue IN bulk transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • transferIn rejects if called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue OUT bulk transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • transferOut rejects if called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • transferOut rejects if called with a detached buffer: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue IN isochronous transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferIn rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • can issue OUT isochronous transfer: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when called with a detached buffer: FAIL (Chrome: PASS, Safari: FAIL)
    • can reset the device: FAIL (Chrome: PASS, Safari: FAIL)
    • resetDevice rejects when called on a disconnected device: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when buffer size exceeds packet lengths: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferOut rejects when packet lengths exceed buffer size: FAIL (Chrome: PASS, Safari: FAIL)
    • isochronousTransferIn rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • isochronousTransferOut rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • transferIn rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • transferOut rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
    • controlTransferOut rejects when packet lengths exceed maximum size: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d680407c3e9c [wpt PR 46849] - usb: Reject transfer size more than 32MB on renderer, a=testonly
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 129 Branch
You need to log in before you can comment on or make changes to this bug.