1. 06 Aug, 2015 8 commits
    • Solly Ross's avatar
      Skip unnecessary render queue object creation · f00193e0
      Solly Ross authored
      This commit skips object creation for the render queue when not
      needed.  Instead of pushing an object onto the queue, and then
      immediately running the result, you call the function directly.
      Then, if the render queue is not empty, an object is created and
      pushed onto the queue.  Otherwise, the functionality is just run
      directly.
      f00193e0
    • Solly Ross's avatar
      Use Typed Arrays for the send queue · 9ff86fb7
      Solly Ross authored
      This commit converts the send queue to use typed arrays, and converts
      message creation functions in 'rfb.js' to create messages directly into
      the socket's send queue.  This commit also removes the separate mouse array,
      which is no longer needed.
      9ff86fb7
    • Solly Ross's avatar
      Avoid Creating Small Objects Frequently · d1800d09
      Solly Ross authored
      Creating lots of small objects frequently can drastically decrease
      performance.  This commit introduces three fixes which avoid this:
      
      - Use a preallocated palette and indexed-to-rgb destination Typed Array
        (the destination typed array is currently allocated at `4 * width *
        height`).
      
      - Inline `getTightCLength`, which returned a two-item array.
      
      - Pass RGBX data directly in a Typed Array to the Display, which
        avoids an extra loop, and only creates a new Typed Array View,
        instead of a whole new ArrayBuffer.
      d1800d09
    • 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
    • Solly Ross's avatar
      Remove unecessarily nested loop · 6c883653
      Solly Ross authored
      This commit removes a nested loop in indexedToRGB, converting it into a
      plain loop without multiplication.
      6c883653
    • Solly Ross's avatar
      WIP: Switch to Pako for zlib · 6940936f
      Solly Ross authored
      This commit introduces an alternate implementation of the zlib
      decompressor based on Pako (https://github.com/nodeca/pako).
      6940936f
    • Solly Ross's avatar
      Fix RFB.js JSHint Errors · 0442e153
      Solly Ross authored
      This fixes a couple of JSHint errors in RFB.js caused
      by using `==` instead of `===`.
      0442e153
    • Solly Ross's avatar
      Fix up vnc_playback.html and playback.js · efed2eea
      Solly Ross authored
      This commit fixes vnc_playback.html and playback.js
      so that they work with the current version of noVNC.
      efed2eea
  2. 25 Jun, 2015 7 commits
  3. 24 Jun, 2015 1 commit
  4. 16 Jun, 2015 1 commit
  5. 19 May, 2015 2 commits
  6. 04 May, 2015 1 commit
  7. 29 Apr, 2015 1 commit
  8. 26 Mar, 2015 2 commits
    • Solly Ross's avatar
      Throw exceptions from RFB constructor · d9fc1c7b
      Solly Ross authored
      Previously, if an error was thrown from the Display constructor
      in the RFB constructor, we would attempt to use `RFB#updateState`
      to handle this.  However, `RFB#updateState` attempts to close
      the WebSocket connection, which doesn't exist at this point.
      
      In the constructor, it's probably just better to raise an exception
      instead (making sure to clean up anything relevant).
      
      Fixes #460
      d9fc1c7b
    • Solly Ross's avatar
      Create RFB object on connect · 58ded70d
      Solly Ross authored
      In e543525f, we switched to creating
      a new RFB object on disconnect.  This caused issues, however, since
      any errors were only displayed briefly before the new "loaded" text
      was displayed instead.
      
      Now, we create the RFB object on connect.  This essentially removes
      the usefulness of the "loaded" state, but prevents the aforementioned
      problem.
      
      To facilitate this, the code which does detection of cursor URI support
      was moved from this Display constructor (which now calls the new
      function) into its own function, `Util.browserSupportsCursorURIs()`.
      
      Fixes #467
      58ded70d
  9. 11 Mar, 2015 1 commit
  10. 09 Mar, 2015 1 commit
    • samhed's avatar
      * Don't check specific html elements from the display code (Fixes #446) · fdedbafb
      samhed authored
      * Renamed and reworked fbuClip to clippingDisplay
      * Added tests for clippingDisplay
      * Use the a noVNC_container which covers the entire page to get the full size
        (Fixes #463)
      * Added maxWidth and maxHeight to the canvas which can limit the viewport size
      * Only show either the canvas or the logo, hide one when the other is shown
      * Always center the canvas (previously it was only centered when not clipping)
      * Removed iOS specific "position-fixed" fixes and start calling setBarPosition
        on every resize
      * Removed the noVNC_screen_pad
      fdedbafb
  11. 05 Mar, 2015 2 commits
  12. 03 Mar, 2015 1 commit
    • Solly Ross's avatar
      Support local scaling · 72747869
      Solly Ross authored
      This commit adds two new addition scaling options.  Both options do
      local scaling.  The first "Local Scaling", does both upscaling and
      downscaling.  The second option, "Local Downscaling", only downscales.
      
      This is based on work by @mightypenguin (with an additional bug
      reported by @glazik12).
      72747869
  13. 27 Feb, 2015 2 commits
  14. 25 Feb, 2015 1 commit
    • Solly Ross's avatar
      Fix disconnect/reconnect issues · e543525f
      Solly Ross authored
      Commit 155d78b3 prevented reconnections
      from working properly.  This fixes that by creating a new RFB object
      after disconnecting or failing.
      
      Furthermore, this ensures that a new connection cannot be opened util
      we've actually disconnected (either by timer or by receiving a `close`
      event).
      
      Closes #452
      e543525f
  15. 10 Feb, 2015 1 commit
    • samhed's avatar
      Support automatic resize [Part 3/4]: ui.js · f8b399d7
      samhed authored
      * Added a resize request (setDesktopSize) triggered when connecting and by
        changes to the browser window's size.
      * Hid the view-drag-hand when the display area is the same or smaller than the
        remote session size.
      * Added a setting for the automatic resize feature.
      * Updated vnc.html and vnc_auto.html to reflect the changes to the UI.
      f8b399d7
  16. 06 Feb, 2015 3 commits
  17. 03 Feb, 2015 1 commit
  18. 26 Jan, 2015 1 commit
  19. 15 Jan, 2015 1 commit
  20. 08 Jan, 2015 1 commit
  21. 26 Nov, 2014 1 commit