[webkit-dev] Adding WebSocket per-flame DEFLATE extension

Kenichi Ishibashi bashi at chromium.org
Wed Feb 1 01:46:14 PST 2012


Hello WebKitten,

I want to let you know that we are planning to add WebSocket per-flame
deflate extension in WebKit.

Spec draft:
http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate-04

The "deflate-frame" extension enables WebSocket per-flame data compression
and contributes to reduce the amount of data transmission through
WebSocket. Adding this extension doesn't impose any changes on
public-facing APIs.

The bug entry that tracks of this is at:
https://bugs.webkit.org/show_bug.cgi?id=77522

Comments and suggestions are welcome.

----

The following are the details of this proposal.

We basically will do followings:
(1) Add WebSocketExtensions class to handle WebSocket extensions
(2) Add extension header parser/writer to WebSocketChannel class
(3) Implement Deflater/Inflater class using zlib

It looks like WebCore already depends on zlib
(platform/graphics/WOFFFileFormat.cpp) so I think using zlib in WebCore is
reasonable. However, I'm not sure whether all port can use zlib. I'll add
USE_ZLIB compile flag as appropriate.

Compatibility:
Basically there is no compatibility problem for users because we can detect
servers which don't understand the extension by seeing
"Sec-WebSocket-Extensions" field of the response header and can fall-back
uncompressed frame transmission.

However, server compatibility might occur because the semantics of the
extension may change during the process of standardization (Fortunately,
there are less controversial subjects in the draft so I think the draft
unlikely to change its semantics). It may be better to consider using a
prefixed extension name like "x-webkit-deflate-frame".

Testing:
An interface will be added to enable/disable the extension to
window.Internals. The testing server already supports the extension.

Regards,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20120201/f564503f/attachment.html>


More information about the webkit-dev mailing list