Contact emails

[email protected]

Specification

https://wicg.github.io/serial/#writable-attribute

https://github.com/WICG/serial/pull/160

Summary

This integration prevents a situation in which aborting a SerialPort's
WritableStream can be blocked waiting for a partially-written chunk of data
to be written to the port. If the port is waiting for the peer device to
provide a flow control signal it could be blocked indefinitely. The intent
of aborting a WritableStream is to immediately stop trying to write data to
the underlying sink. The introduction of an AbortSignal to the controller
was done to fix bugs like this.

Blink component

Blink>Serial
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ESerial>

TAG review

The Web Serial API and WritableStream controller AbortSignal have both been
reviewed by the TAG.

TAG review status

Not applicable

Risks
Interoperability and Compatibility

This integration introduces a minor change to the behavior of a
SerialPort's WritableStream because it means that it no longer waits for
the current write() operation to complete. However, since the intention of
abort() is to discard queued writes and the exact timing for when the
current write() operation completes depends on how quickly data is being
transmitted by the port, the current behavior is more appropriately
classified as a bug than a feature. It would be very hard for developers to
rely on the previous buggy behavior, and so we believe the compat risk to
be minimal.

Gecko: No signal

Firefox is opposed to the Web Serial API in general.

WebKit: No signal

Safari is opposed to the Web Serial API in general.

Web developers: No signals

I don't believe any developers have noticed this particular quirk. I
noticed because I was debugging a test of the abort() behavior that passed
even though there was a write() pending and without this integration it
shouldn't have. Fixing the bug in the test exposed the need for this
integration.

Other signals:

Debuggability

SerialPort and WritableStream are JavaScript APIs which can be debugged
using DevTools.

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
?

Yes

Flag name

None

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1295963

Estimated milestones

M-100

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/4778232531386368

This intent message was generated by Chrome Platform Status
<https://chromestatus.com/>.
Reilly Grant | Software Engineer | [email protected] | Google Chrome
<https://www.google.com/chrome>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEmk%3DMYv0pu_WEXE6EAoZvVkh7W-ck_Gu5Qf52eFUuiwYhcW4A%40mail.gmail.com.

Reply via email to