(this is part of the Blink launch process).
Contact emails
Spec
Design doc
Summary
Implement support for secure WebSockets over an already established HTTP/2 connection.
Motivation
A large proportion of web servers support HTTP/2. Currently if a WebSocket is requested to such a server, a new HTTP/1.1 connection must be established even if there is an active HTTP/2 connection, because WebSocket handshake is only supported over HTTP/1.1. However, if both the server and the client support WebSockets over HTTP/2, and the connection is already open, and the server has advertised support as described in the specification, and the request is for a secure WebSocket, then the client can open a new stream on the existing HTTP/2 connection, thereby saving the roundtrip times associated with the TCP and TLS handshake.
Interoperability and Compatibility Risk
A Firefox network stack engineer is driving the specification singlehandedly, which is a strong indicator to their commitment to implement this feature. Last November, the IETF httpbis working group chair has deemed community interest strong enough for adoption of the draft.
The feature requires explicit advertisement of support from the server, therefore the interoperability risk with servers and reverse proxies is low. The feature is tied to HTTP/2 which is only supported over TLS in Chromium, therefore the interoperability risk with proxies is low.
Activation
This feature will be used with compatible servers without the need for activation from web developers, as long as the WebSocket request is secure (wss scheme as opposed to ws).
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes. This feature will be implemented in the Chromium network stack, therefore it will be supported on all platform where such network stack is used and enable_websockets build flag is true.
Link to entry on the feature dashboard
I do not believe that this feature merits outreach to developers.
Requesting approval to ship?
No.