<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>98393</bug_id>
          
          <creation_ts>2012-10-04 03:01:17 -0700</creation_ts>
          <short_desc>[WebSocket] Update compression extension</short_desc>
          <delta_ts>2016-05-18 21:01:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>98475</dependson>
    
    <dependson>98840</dependson>
    
    <dependson>98872</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>wilander</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>734552</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-10-04 03:01:17 -0700</bug_when>
    <thetext>We implemented WebSocket compression extension based on http://tools.ietf.org/html/draft-ietf-hybi-websocket-perframe-compression-04. 
The hybi working group has been revising the draft specification. The current draft spec is http://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-01. There are some differences between our current implementation and the draft spec. Here is a summary:
- Compression now applies per-message. In the old spec, compression applies per-frame.
- &quot;method&quot; extension parameter is added. This parameter must be included in Sec-WebSocket-Extension header if a client(browser) want to use it. The parameter is used to determine compression algorithm.
- The current draft spec defines DEFLATE compression method. This is almost the same of what we implemented except for compression unit (per-message vs per-frame).

I&apos;d like to make the current implementation be up-to-date. I&apos;ll start implementation if there is no objection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734561</commentid>
    <comment_count>1</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2012-10-04 03:19:21 -0700</bug_when>
    <thetext>I&apos;m fine with the change for the following reasons.
- The perframe spec is abondoned and superseded with the permessage spec.
- Extension name will change, so servers accepting our current compression will
  naturally fall back to plain WebSocket. So the compatiblity impact of the
  migration will be minimum.
- Our current implementation is in an experimental state and has vendor-prefixed
  extension name. (I assume the new permessage implementation is going to have
  a vendor-prefix, too.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738402</commentid>
    <comment_count>2</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-10-09 18:22:25 -0700</bug_when>
    <thetext>I&apos;d like to take following approach to update compression extension.
(1) Update pywebsocket to the newest. (I&apos;m fixing some bugs in pywebsocket)
(2) Add an WebSocketExtensionProcessor which handles &quot;permessage-compress&quot; extension. The extension name will be vendor-prefixed like &quot;x-webkit-permessage-compress&quot;.
(3) Switch &quot;x-webkit-perframe-deflate&quot; to &quot;x-webkit-permessage-compress&quot; and remove/add/update tests and test expectations.
(4) Remove WebSocketDeflateFramer</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>