• 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
Name
Last commit
Last update
docs Loading commit data...
images Loading commit data...
include Loading commit data...
tests Loading commit data...
utils Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE.txt Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
karma.conf.js Loading commit data...
package.json Loading commit data...
vnc.html Loading commit data...
vnc_auto.html Loading commit data...