1. 17 Sep, 2012 9 commits
    • Joel Martin's avatar
      tcp-client.js: after read, try read again. · 5f03c3d0
      Joel Martin authored
      After a read completes it's possible more data is pending so issue an
      immediate read again to pick this up quickly.
      5f03c3d0
    • Joel Martin's avatar
      include/vnc.js: dynamic load without document.write. · 2cde6e43
      Joel Martin authored
      Instead of using document.write to load scripts, use createElement to
      create and append script tags. document.write is problematic in a lot
      of situation and in particular is not allowed in a Chrome
      extension/packaged app.
      
      Also, in webutil.js, instead of calling init_logging during parsing of
      include/webutil.js, rely on the caller to do this. The problem is that
      calling init_logging on parse tries to call Util logging functions and
      the new model of dynamic load may not having Util loaded by the time
      webutil is parsed.
      2cde6e43
    • Joel Martin's avatar
      vnc.html, ui.js: move all Javascript to ui.js. · 26945049
      Joel Martin authored
      Move all the inline Javascript event handlers from vnc.html to
      include/ui.js except the load handler which is moved to
      include/start.js). This is on the path towards a Chrome
      extension/packaged app since inline Javascript is prohibited in that
      situation.
      26945049
    • Joel Martin's avatar
      ui.js: use localStorage/chrome.storage for settings. · ee1af441
      Joel Martin authored
      Switch from using cookies to store setting to using localStorage (or
      chrome.storage.sync if available in extension/app mode) for the
      settings. Also refactor to make the initializing of the setting and
      and loading of the UI to be more asynchronous.
      ee1af441
    • Joel Martin's avatar
      webutil.js: add localStorage/chrome.storage settings. · 3af1c275
      Joel Martin authored
      Add routines to store/read settings in either localStorage or in
      chrome.storage.sync (which is synchronized between browsers for
      extensions/apps).
      
      Before using chrome.storage.sync the initSettings routine must to
      called setup the intermediate cache which speeds up access and allows
      multiple setting changes to be coallesced to avoid hitting storage
      change frequency limits/quotas.
      3af1c275
    • Joel Martin's avatar
      rfb.js: add onFBResize event callback. · 51fc3b5f
      Joel Martin authored
      51fc3b5f
    • Joel Martin's avatar
      tcp-client.js: read/write arraybuffer. Read/disconnect handling. · 8ec3cfaa
      Joel Martin authored
      - enable sending and receiving of raw array buffers in addition to
        strings.
      
      - add a read poll interval and set it to 15ms by default to detect
        and handle quickly when a message is pending.
      
      - also, detect a disconnected state and add call registration for
        disconnect events.
      8ec3cfaa
    • Joel Martin's avatar
    • Joel Martin's avatar
      Update websockify/websock.js. · 204675c8
      Joel Martin authored
      This change pulls websockify 6d9deda9c5.
      
      Most note worthy changes:
      - Pulls in web-socket-js 7677e7a954 which updates to IETF 6455 (from
        Hixie)
      - Binary support detection and use in include/websock.js
      - Add ssl and unix target support
      - Add multiple target support via config file/dir.
      - Idle timeout exit
      204675c8
  2. 21 Aug, 2012 1 commit
  3. 16 Aug, 2012 1 commit
    • Joel Martin's avatar
      websock.js: simpler binary support, protocols param. · fcff386b
      Joel Martin authored
      Use a simpler method of enabling binary transfer over WebSockets. This
      still presents the user of websock.js with a plain javascript array
      for the receive queue data. However, if binary support is supported
      and requested then the transfer will be raw frames instead of base64
      encoded.
      
      Lots of room for optimization here but for now correct is better than
      fast.
      
      Pull from websockify 17175afd7311c55abd8d
      fcff386b
  4. 15 Aug, 2012 3 commits
  5. 14 Aug, 2012 1 commit
    • Joel Martin's avatar
      Pull in latest websockify. · 4dd1bb1e
      Joel Martin authored
      Pull in version 376872d99.
      
      Several changes including:
      - binary/typed array support in websock.js
      - unix socket support
      - multiple target support via config file(s)
      - prefer IPv6 option
      4dd1bb1e
  6. 28 Jun, 2012 1 commit
  7. 26 Jun, 2012 1 commit
  8. 24 Jun, 2012 1 commit
    • Joel Martin's avatar
      License clarification: HTML,CSS,images,fonts under permissive licenses. · d58f8b51
      Joel Martin authored
      Clarify in LICENSE.txt that the noVNC core library is the part that is
      LGPLv3 licensed. The HTML, CSS, images and fonts are separate from the
      core library and can be modified and distributed with the noVNC core
      but under their own license conditions.
      
      HTML and CSS: 2-Clause BSD
      Fonts: SIL OFL 1.1
      Images: CC BY SA 3.0
      
      In other words, you can modify the layout and appearance of of noVNC
      to integrate with an existing or new web site or application without
      having to publish the source for those modifications under the LGPLv3.
      However, use of and modification of the noVNC core library (i.e. the
      core Javascript that makes up noVNC) must still be according to the
      LGPLv3.
      
      Chris Gordon was the other contributor to the HTML, CSS, and images
      included with noVNC and gave permission for this license clarification
      on June 23, 2012.
      d58f8b51
  9. 23 Jun, 2012 3 commits
  10. 08 Jun, 2012 1 commit
  11. 07 Jun, 2012 1 commit
  12. 17 May, 2012 3 commits
    • Joel Martin's avatar
      rfb: Use the render queue for copyrect. · 72a5596e
      Joel Martin authored
      This will keep copyrect rendering actions in order with tight and tightPNG
      rendering actions (otherwise you can get visual image corruption when
      they are mixed together).
      
      Warning:
      
      RAW, RRE and HEXTILE still use immediate render commands so there is
      still the risk of out-of-order rendering if RAW, RRE, and HEXTILE are
      mixed with tight and tightPNG. Copyrect will work with either because
      the renderQ_push function will render copyrects immediately if they
      are the only thing being pushed on the queue.
      72a5596e
    • Joel Martin's avatar
      Move render queue processing to Display and use requestAnimationFrame · 34d8b844
      Joel Martin authored
      The imgQ code in RFB should be a generic rendering queue system in
      Display.
      
      The reason for the render queue in the first place is that images
      loaded from raw data URI strings aren't immediately ready to display
      so we have to wait for them to complete 'loading'. However, when data
      URI images are mixed with other types of rendering actions then things
      can get out of order. This is the reason for the rendering queue.
      
      Currently this only keeps display actions for tight and tightPNG
      related actions in order (because they use a mix of fills, raw pixel
      data and data URI images).
      34d8b844
    • Joel Martin's avatar
      rfb: debug output cleanup. · a0726a4b
      Joel Martin authored
      a0726a4b
  13. 16 May, 2012 1 commit
  14. 10 May, 2012 2 commits
  15. 26 Apr, 2012 2 commits
    • Joel Martin's avatar
      Comment out duplicates in unicodeTable. · 483157f8
      Joel Martin authored
      Unfortunately the values for those duplicate keys are not the same and
      I'm not sure which ones are more correct. However, for now, I've
      commented out the second occurrence.
      
      This data is generated from /usr/include/X11/keysymdef.h using the
      utils/u2x11 script.
      483157f8
    • Joel Martin's avatar
      Don't treat onerror as a close. · dcf1994d
      Joel Martin authored
      The close event will also fire so trying to fail the connection twice
      is unhelpful and hiding status information.
      dcf1994d
  16. 13 Apr, 2012 1 commit
  17. 03 Apr, 2012 1 commit
  18. 23 Mar, 2012 1 commit
  19. 14 Mar, 2012 2 commits
    • Joel Martin's avatar
      Release down/pressed keys when window loses focus. · 6671c762
      Joel Martin authored
      May window managers have a keyboard shortcut that switch away from the
      current desktop (e.g. desktop switcher). Unfortunately, when this
      happens, the meta/control keys that are used with the shortcut will
      send a down event to the browser, but the up event will never be sent
      because the browser no longer has focus at the point when the up event
      happens. This can cause weird stuck key issues for VNC clients (not
      just noVNC). To get around this, we try and detect when the browser
      loses focus and release any keys that are on the keyDownList.
      
      As an aside, if you run into this situation (in noVNC or another VNC
      client), you can unstick the state by pressing and releasing the Ctrl,
      Shift, Alt, etc.
      
      Addresses: https://github.com/kanaka/noVNC/pull/135
      6671c762
    • Joel Martin's avatar
      Squelch noisy debug logs. · ce86f5c9
      Joel Martin authored
      ce86f5c9
  20. 12 Mar, 2012 1 commit
    • Joel Martin's avatar
      Merge tight/tightPNG routine. · c0c20581
      Joel Martin authored
      Mostly duplicate code so merge it and wrap with closures that pass in
      the isTightPNG parameter.
      
      Still detect and error if copy/filter when tightPNG.
      c0c20581
  21. 11 Mar, 2012 3 commits