1. 06 Aug, 2015 1 commit
    • Solly Ross's avatar
      Use Typed Arrays for the Websock receive queue · 38781d93
      Solly Ross authored
      **This commit removes Base64 (and Flash) support**
      
      This commit converts websock.js to used Typed Arrays for the
      receive queue (and tweaks rfb.js to ensure that it continues
      to function, since only Firefox implements
      `%TypedArray%.prototype.slice`).  Base64 support was removed
      to simplify code paths, and pave the way for using Typed Arrays
      for the send queue as well.
      
      This provides two advantages: first, we allocate a buffer ahead
      of time, meaning the browser doesn't have to do any work dynamically
      increasing the receive queue size.  Secondly, we are now able to pass
      around Typed Array Views (e.g. `Uint8Array`), which are lightweight, and
      don't involve copying.
      
      The downside is that we initially allocate more memory -- we currently
      start out with 4 MiB, and then automatically double when it looks like
      the amount unused is getting to small.
      
      The commit also explicitly adds a check to the compacting logic that
      avoids calling the copy functions if `_rQlen === _rQi`.
      38781d93
  2. 12 Apr, 2013 1 commit