New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 25 users
Status: Fixed
Closed: Aug 2015
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature

Sign in to add a comment
Tracking New WebSocket implementation in Chromium net/
Project Member Reported by, Apr 5 2013 Back to list
Tracking bug for the new WebSocket implementation under net/.

Design doc (very old):
Blockedon: chromium:226933
 Issue 226933 :	Create a runtime switch for WebSocket implementation

Project Member Comment 2 by, Apr 5 2013
Labels: Cr-Blink
Project Member Comment 3 by, Apr 6 2013
Labels: -Cr-Content-WebSockets Cr-Blink-WebSockets
Comment 4 Deleted
Comment 5 by, Apr 12 2013
Rough task list. Issues will be created for individual tasks as they are started.

* Implement WebSocketChannel
* Implement plain unencrypted WebSocketStream implementation
* Add prototype protocol bootstrapping code to HTTPRequestFactoryImpl, etc. 
* Add flag to switch on the new implementation [ Issue 226933 ]
* Make sure the new implementation can be compiled out when net/ is used as a standalone library
* Create an implementation of WebSocket in Blink that uses the new IPCs
* Refactor the protocol bootstrapping
* Land the first implementation
* Implement SSL WebSocketStream
* Implement mux and mux/SSL WebSocketStream
* Implement SPDY2 and SPDY3 WebSocketStream
* Implement permessage-deflate compression extension
* Implement RFC6455-compliant throttling
* Make protocol logging, error reporting and metrics the same as existing implementation
* Make Chromium tests pass with the flag enabled
* Migrate other (non-renderer) internal users off the old implementation
* Remove the old implementation
Comment 6 by, Apr 12 2013
 Issue 230756 : Implement WebSocketChannel
Blockedon: chromium:237095
Blockedon: chromium:237444
Comment 9 by, May 2 2013
Blockedon: chromium:237496
Blockedon: chromium:239376
Blockedon: -chromium:239376 chromium:118268
Blockedon: chromium:239722
Comment 13 by, May 17 2013
Blockedon: chromium:241811
Comment 14 by, Jun 25 2013
Blockedon: chromium:253812
Blockedon: chromium:257680
Comment 16 by, Jul 23 2013
Blocking: chromium:123862
Comment 17 by, Jul 29 2013
Blockedon: chromium:265329
Comment 18 by, Aug 14 2013
Blocking: chromium:112089
Comment 19 by, Aug 14 2013
Blocking: chromium:180504
Comment 20 by, Aug 14 2013
Blocking: chromium:120553
Comment 21 by, Aug 14 2013
Blocking: chromium:129353
Comment 22 by, Aug 14 2013
Blocking: chromium:169448
Comment 23 by, Aug 26 2013
Blockedon: chromium:279103
Blockedon: chromium:280910
Comment 25 by, Sep 30 2013
Blockedon: chromium:301353
Blockedon: chromium:303568
Blockedon: chromium:310405
Project Member Comment 28 by, Oct 30 2013
r231707 | | 2013-10-30T01:37:22.253882Z

Changed paths:

Factor out Sec-WebSocket-Accept computing logic so that the new WebSocket handshake processor can reuse it.

BUG= 226931 

Review URL:
Blockedon: chromium:316525
Comment 30 by, Jan 23 2014
Blockedon: chromium:337134
Project Member Comment 31 by, Apr 8 2014
r262325 | | 2014-04-08T05:16:26.425368Z

Changed paths:

Delete "Experimental WebSocket" flag from chrome://flags.

It's now managed by RuntimeEnabledFeatures in Blink.

BUG= 226931 

Review URL:
Project Member Comment 32 by, Apr 9 2014
The following revision refers to this bug:

r171104 | | 2014-04-09T03:05:15.897971Z

Changed paths:

Enable ExperimentalWebSocket under "Experimental Web Platform Features".

Since most of layout tests pass, I would like to expose it for
experimental users.

BUG= 226931

Review URL:
Comment 33 by, May 26 2014
Blocking: chromium:174956
Blocking: chromium:381035
Labels: -Cr-Blink M-37
Labels: -M-37 M-38
Blink 175580 ("Turn on the new WebSocket implementation by default") is going to be released for M38 (reverted for M37. ).
It appears that M38 introduced a breaking change  -- I'm seeing binary web socket frames getting truncated to around 130,000 bytes.  My app, which worked prior to M38 sends a 145,708 byte binary frame and it arrives at the server side as a 130,880 byte frame.  This does not happen in Firefox or in M37.

Comment 38 by, Oct 10 2014
bryandonnovan, a WebSocket message is composed of one or more frames. See RFC 6455 section 5.4. The old WebSocket implementation always sent messages in a single frame. To improve scalability, the new implementation may split a message into multiple frames. Usually large messages will be split into 128KB frames.

Your server needs to reassemble fragmented messages.

Incidentally, we recommend that web developers test with the dev channel of Chrome to avoid any nasty surprises. It's available here:
Blockedon: chromium:423200
Blockedon: chromium:423201
Can we close this? Maybe we have some remaining tasks but maybe they don't need this home.
Okay with me.
Status: Fixed
Thanks again for bunch of work to get this done, guys.
Comment 44 by, Nov 27 2015
Labels: Cr-Blink-Network-WebSockets
Comment 45 by, Nov 27 2015
Labels: -Cr-Blink-WebSockets
Sign in to add a comment