[webkit-dev] Implementing new WebSocket protocol
Yuta Kitamura
yutak at chromium.org
Tue Jun 14 07:55:53 PDT 2011
Hello,
I would like to propose to start implementing the new WebSocket protocol
which is discussed in IETF HyBi working group.
Protocol draft:
http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-09
JavaScript API draft: http://dev.w3.org/html5/websockets/
The new protocol is *incompatible* with the old one we are currently
supporting. New additions include:
- Binary frame support (Blob / ArrayBuffer)
- Frame content masking (to solve security concern raised for the old
draft)
- Protocol extensions (such as frame compression)
Because of the incompatibility, existing services using WebSockets are going
to break. However, I think this is a necessary cost we have to pay
eventually, because:
- Other browsers are going to support the new protocol. (Firefox Aurora
already includes support for the new protocol.)
- The earlier we switch the protocols, the smaller shock there will be.
Safari and Chrome are the only browsers that support WebSocket (the old
protocol) by default.
- There is a security concern raised for the protocol we are currently
supporting.
* How to proceed
My original plan was to implement the new protocol directly (i.e. replacing
the old implementation in-place). However Alexey (ap) objected to dropping
support for the old protocol immediately.
So, I'm currently planning to add a runtime flag to switch the WebSocket
protocols used by a WebCore's WebSocket implementation. Other possibilities
are to add a compile-time flag or to use (subversion's) branch, which are
discussed at:
https://bugs.webkit.org/show_bug.cgi?id=60348
The discussion in this bug has been stalled for a while, but I really would
like to move forward. Comments and suggestions are greatly appreciated.
Regards,
Yuta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20110614/f9d02996/attachment.html>
More information about the webkit-dev
mailing list