Contact emails
greengr...@google.com

Explainer
https://github.com/WICG/direct-sockets/blob/main/docs/explainer.md


Specification
https://wicg.github.io/direct-sockets


Summary

Allows Isolated Web Apps to establish direct transmission control protocol 
(TCP) and user datagram protocol (UDP) communications with network devices and 
systems as well as listen to and accept incoming connections.



Blink component
Blink>Network>Direct Sockets


Search tags
networking, TCP, UDP, sockets


TAG review
https://github.com/w3ctag/design-reviews/issues/548


TAG review status
Pending


Risks




Interoperability and Compatibility

Other browsers may choose to implement this API.


Gecko: Closed Without a Position 
(https://github.com/mozilla/standards-positions/issues/431)

WebKit: No signal

Web developers: Positive 
(https://discourse.wicg.io/t/filling-the-remaining-gap-between-websocket-webrtc-and-webtranspor/4366)
 Numerous potential use cases have been suggested.

Other signals:


Security

Various security risks and mitigations are noted in 
https://github.com/WICG/raw-sockets/blob/master/docs/explainer.md#security-considerations
 This is a powerful API. Users will have the opportunity to give Isolated Web 
Apps access to local hardware, and information systems behind organization 
firewalls. Mitigations are designed to ensure this cannot happen accidentally, 
and only through enterprise policies or the friction of installing a native app.



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?

N/A. Feature not compiled in Android.




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.



Is this feature fully tested by web-platform-tests?
Yes
These tests require a specific --isolated-context-origins flag to be tested in 
WPTs, so they're run as a part of a virtual suite and are not reflected on 
wpt.fyi.



Flag name on chrome://flags
#enable-direct-sockets-web-api


Finch feature name
DirectSockets


Requires code in //chrome?
False


Tracking bug
https://bugs.chromium.org/p/chromium/issues/detail?id=909927


Launch bug
https://launch.corp.google.com/launch/4339602


Measurement
We have the following histograms for tracking network failures upon creating 
sockets (prefixed with DirectSockets.*): - TCPNetworkFailures - 
UDPNetworkFailures - TCPServerNetworkFailures Separate programmatic counters 
for the .idl methods and attributes (via MeasureAs) are also included to track 
the stats for API usage.


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.


Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source 
repository and its open-source dependencies to function?
None


Sample links

https://github.com/GoogleChromeLabs/telnet-client


Estimated milestones


Shipping on desktop 130




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, 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/6398297361088512?gate=6732051726729216


This intent message was generated by Chrome Platform Status.

-- 
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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/000000000000c7b248061f910247%40google.com.

Reply via email to