As mentioned in https://github.com/WICG/webusb/issues/217 it would be safe and useful for methods accepting an BufferSource to instead accept an AllowSharedBufferSource.
The argument for safety is that because the ArrayBuffer is already not transferred it is possible for script to modify its contents before the data is sent to the device, allowing this modification to come from another thread is roughly a no-op. In the Chromium implementation in particular, the buffer contents is immediately copied into an IPC message anyways and so the window of opportunity for modification is quite short.
As mentioned in https://github.com/WICG/webusb/issues/217 it would be safe and useful for methods accepting an
BufferSource
to instead accept anAllowSharedBufferSource
.The argument for safety is that because the
ArrayBuffer
is already not transferred it is possible for script to modify its contents before the data is sent to the device, allowing this modification to come from another thread is roughly a no-op. In the Chromium implementation in particular, the buffer contents is immediately copied into an IPC message anyways and so the window of opportunity for modification is quite short.