Contact emails
vk...@google.com
Explainer
https://github.com/explainers-by-googlers/Multicast-in-Direct-Sockets
Specification
https://github.com/WICG/direct-sockets/pull/79
Design docs
https://github.com/WICG/direct-sockets/blob/main/docs/multicast-explainer.mdhttps://docs.google.com/document/d/1Wna0lkTrhYoTxOO1GjOrut2nWHO19HEyo9YCk39tXqY/edit?usp=sharing
Summary
Allows Isolated Web Apps to subscribe to multicast groups and receive UDP packets from there, and to specify additional parameters when sending UDP packets to multicasts addresses.
Blink component
Blink>Network->Direct Sockets
Web Feature ID
Missing feature
Motivation
1. Synchronous video stream from one device to the whole network of devices. For example, imagine in a shopping mall there would be multiple displays which show videos simultaneously on all devices.
2. Device discovery on a local network. mDNS protocol uses multicast sockets under the hood. In short, when a device joins a network, it sends a message: “Hello, I am headphones-10, my ip is ‘20.20.20.14’ . Who else is here?”, other devices reply and in such a manner all devices can know about each other without a central server.
Initial public proposal
https://github.com/WICG/proposals/issues/228
TAG review
Tag does not review Isolated Web Apps.
It was stated publicly here
https://github.com/w3ctag/design-reviews/issues/842#issuecomment-2917031448
TAG review status
Not applicable
Risks
Interoperability and Compatibility
Other browsers may choose to implement this API.
Gecko: No signal
WebKit: No signal
Web developers: No signals
Other signals:
Security
Security and privacy considerations are explained
https://github.com/WICG/direct-sockets/blob/main/docs/multicast-explainer.md
Security considerations
This API gives the opportunity to flood the network with packets.
By only providing this API to Isolated Web Apps the user agent can be more confident that the application has not been compromised. This allows users and system administrators to confidently grant this capability to trusted applications.
Additionally, routers have control, whether they send multicast packets or drop them. In many setups dropping multicast packets is the default setting.
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?
No information provided
Debuggability
The code using this API can be debugged using the standard tools.
Integrating the API with the DevTools Networking tab to enable easier introspection of the state of these connections as well as the data transferred could be a beneficial future improvement.
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No
This feature is implemented on desktop platforms, although it will only be available to the end users on platforms that support Isolated Web Apps, which is currently only ChromeOS.
Android is excluded for historical reasons, although there are no apparent interoperability blockers here.
No
Cannot be tested in WPT, the issue
https://github.com/web-platform-tests/wpt/issues/55304
DevTrial instructions
https://github.com/WICG/direct-sockets/blob/main/docs/multicast-how-to.md
Flag name on about://flags
MulticastInDirectSockets
Finch feature name
MulticastInDirectSockets
Rollout plan
Will ship enabled for all users
Requires code in //chrome?
False
Measurement
Separate programmatic counters for the .idl methods and attributes (via MeasureAs) are included to track the stats for API usage:
MulticastControllerJoinGroupFunction
MulticastControllerLeaveGroupFunction
MulticastControllerJoinedGroupsAttribute
Availability expectation
Feature is available only in Isolated Web Apps on desktop platforms.
https://chromestatus.com/feature/5146307550248960
Adoption expectation
Expected to be used initially by a small number of developers inside Isolated Web Apps.
Adoption plan
Working directly with developers that are planning to rely on the API.
Estimated milestones
Shipping on desktop | 144 |
DevTrial on desktop | 142 |
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/5073740211814400?gate=5084202819256320
Links to previous Intent discussions
Intent to Prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/68aeedee.050a0220.27f047.019b.GAE%40google.com