Intent to Ship: Web Serial: connected attribute and RFCOMM connection events

497 views
Skip to first unread message

Ajay Rahatekar

unread,
Aug 23, 2024, 1:05:35 PMAug 23
to blink-dev, Matt Reynolds

Contact emails

mattre...@google.com


Explainer

https://github.com/WICG/serial/blob/main/EXPLAINER_BLUETOOTH.md


Specification

https://wicg.github.io/serial/#serialport-interface


Summary

This feature adds a boolean SerialPort.connected attribute. The attribute is true if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the system. For wireless serial ports, a port is logically connected if the device hosting the port has any open connections to the host.


Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected.


This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port.



Blink component

Blink>Serial


Search tags

serial, rfcomm, bluetooth, connect


TAG review

No TAG review is planned for this minor API change. Bluetooth RFCOMM support was previously reviewed: https://github.com/w3ctag/design-reviews/issues/854


TAG review status

Not applicable


Risks



Interoperability and Compatibility

Web Serial has not yet been adopted by other browser engines which increases interoperability risk.



Gecko: Neutral (https://mozilla.github.io/standards-positions/#webserial) Deferring to the Web Serial (Add-On Gated) position. Mozilla has not commented on this specific feature.


WebKit: Negative (https://webkit.org/tracking-prevention) Apple is opposed to Web Serial API, we assume they also oppose any extensions to the API.


Web developers: Positive This feature was requested by an internal partner.


Other signals:


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

Web Serial API is not implemented for Android WebView.



Debuggability

None



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?

No

Web Serial is not implemented on Android.



Is this feature fully tested by web-platform-tests?

No


Flag name on chrome://flags

None


Finch feature name

SerialPortConnected


Requires code in //chrome?

False


Tracking bug

https://crbug.com/1488031


Launch bug

https://launch.corp.google.com/4297948


Estimated milestones

Shipping on desktop

129



Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

None


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5118102654418944?gate=5185243630010368


Links to previous Intent discussions

Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHB%2BDAiJmnJTvQdiMezidfK4vu7r6_nLxyYfjg1n%2B8%2BAcEEyZQ%40mail.gmail.com



This intent message was generated by Chrome Platform Status.


Alex Russell

unread,
Aug 28, 2024, 12:02:31 PMAug 28
to blink-dev, ajayra...@google.com, mattre...@google.com
Please send this as an FYI to the TAG.

LGTM1

Ajay Rahatekar

unread,
Aug 28, 2024, 12:34:39 PMAug 28
to blink-dev, sligh...@chromium.org, Ajay Rahatekar, mattre...@google.com
Ty, Will do.

Vladimir Levin

unread,
Aug 28, 2024, 2:22:52 PMAug 28
to Ajay Rahatekar, blink-dev, sligh...@chromium.org
On Wed, Aug 28, 2024 at 12:34 PM 'Ajay Rahatekar' via blink-dev <blin...@chromium.org> wrote:
Ty, Will do.

On Wednesday, August 28, 2024 at 9:02:31 AM UTC-7 sligh...@chromium.org wrote:
Please send this as an FYI to the TAG.

LGTM1

On Friday, August 23, 2024 at 10:05:35 AM UTC-7 ajayra...@google.com wrote:

Contact emails

mattre...@google.com


Explainer

https://github.com/WICG/serial/blob/main/EXPLAINER_BLUETOOTH.md


Specification

https://wicg.github.io/serial/#serialport-interface


Summary

This feature adds a boolean SerialPort.connected attribute. The attribute is true if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the system. For wireless serial ports, a port is logically connected if the device hosting the port has any open connections to the host.


Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected.


This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port.


It sounds like for a wireless port logically connected means that there is an active connection present. Does that mean that checking `connected` is insufficient for the purposes of figuring out if one can establish a connection? IOW, if connected is false, it could just mean there are no open connections but one can be made. Am I misunderstanding this?

Thanks,
Vlad
 
--
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 blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f77c1aa7-1eea-416f-9b5e-74c271bc1bbdn%40chromium.org.

Reilly Grant

unread,
Aug 28, 2024, 2:38:10 PMAug 28
to Vladimir Levin, Ajay Rahatekar, blink-dev, sligh...@chromium.org
On Wed, Aug 28, 2024 at 11:22 AM Vladimir Levin <vmp...@chromium.org> wrote:

On Wed, Aug 28, 2024 at 12:34 PM 'Ajay Rahatekar' via blink-dev <blin...@chromium.org> wrote:
Ty, Will do.

On Wednesday, August 28, 2024 at 9:02:31 AM UTC-7 sligh...@chromium.org wrote:
Please send this as an FYI to the TAG.

LGTM1

On Friday, August 23, 2024 at 10:05:35 AM UTC-7 ajayra...@google.com wrote:

Contact emails

mattre...@google.com


Explainer

https://github.com/WICG/serial/blob/main/EXPLAINER_BLUETOOTH.md


Specification

https://wicg.github.io/serial/#serialport-interface


Summary

This feature adds a boolean SerialPort.connected attribute. The attribute is true if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the system. For wireless serial ports, a port is logically connected if the device hosting the port has any open connections to the host.


Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected.


This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port.


It sounds like for a wireless port logically connected means that there is an active connection present. Does that mean that checking `connected` is insufficient for the purposes of figuring out if one can establish a connection? IOW, if connected is false, it could just mean there are no open connections but one can be made. Am I misunderstanding this?

Correct. The connected attribute tells the site what the system knows about the state of the device, but if the system doesn't know, something has to actually try to connect to find out if the device is there. 
 

Vladimir Levin

unread,
Aug 28, 2024, 4:11:24 PMAug 28
to Reilly Grant, Ajay Rahatekar, blink-dev, sligh...@chromium.org
On Wed, Aug 28, 2024 at 2:38 PM Reilly Grant <rei...@chromium.org> wrote:
On Wed, Aug 28, 2024 at 11:22 AM Vladimir Levin <vmp...@chromium.org> wrote:

On Wed, Aug 28, 2024 at 12:34 PM 'Ajay Rahatekar' via blink-dev <blin...@chromium.org> wrote:
Ty, Will do.

On Wednesday, August 28, 2024 at 9:02:31 AM UTC-7 sligh...@chromium.org wrote:
Please send this as an FYI to the TAG.

LGTM1

On Friday, August 23, 2024 at 10:05:35 AM UTC-7 ajayra...@google.com wrote:

Contact emails

mattre...@google.com


Explainer

https://github.com/WICG/serial/blob/main/EXPLAINER_BLUETOOTH.md


Specification

https://wicg.github.io/serial/#serialport-interface


Summary

This feature adds a boolean SerialPort.connected attribute. The attribute is true if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the system. For wireless serial ports, a port is logically connected if the device hosting the port has any open connections to the host.


Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected.


This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port.


It sounds like for a wireless port logically connected means that there is an active connection present. Does that mean that checking `connected` is insufficient for the purposes of figuring out if one can establish a connection? IOW, if connected is false, it could just mean there are no open connections but one can be made. Am I misunderstanding this?

Correct. The connected attribute tells the site what the system knows about the state of the device, but if the system doesn't know, something has to actually try to connect to find out if the device is there. 

Is it possible to add a small example to an explainer how this is meant to be used (or common usage that motivates this attribute)? 

Jack Hsieh

unread,
Aug 29, 2024, 7:05:13 PMAug 29
to blink-dev, vmp...@chromium.org, Ajay Rahatekar, blink-dev, sligh...@chromium.org, rei...@chromium.org
Sure, we just added an example of how this `SerialPort.connected` attribute can be used in the explainer.

Vladimir Levin

unread,
Sep 4, 2024, 4:18:18 PMSep 4
to Jack Hsieh, blink-dev, Ajay Rahatekar, sligh...@chromium.org, rei...@chromium.org

Chris Harrelson

unread,
Sep 4, 2024, 4:36:03 PMSep 4
to Vladimir Levin, Jack Hsieh, blink-dev, Ajay Rahatekar, sligh...@chromium.org, rei...@chromium.org
Reply all
Reply to author
Forward
0 new messages