1. 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
  2. 28 Nov, 2014 1 commit
  3. 17 Sep, 2014 1 commit
  4. 17 Feb, 2014 1 commit
  5. 05 Dec, 2013 1 commit
  6. 21 Sep, 2013 2 commits
  7. 17 Jul, 2013 2 commits
    • samhed's avatar
      0019d3b0
    • samhed's avatar
      * On low resolution devices the status text is now justified to the left · 35b29c98
      samhed authored
        button group instead of centered.
      * On low resolution devices the padding towards the edges of the screen of
        the left and right button groups are now removed.
      * Since the status_bar was merged into the control-bar the actual status_bar
        element became redundant and was therefor removed.
      * Improved the style of the control-bar when there is an error or a warning.
      * Implemented a fix so that vnc_auto.html works as intended with the improved
        screen real estate patch.
      35b29c98
  8. 13 Apr, 2013 1 commit
    • Will Rouesnel's avatar
      Detect port properly in vnc_auto.html when used on port 80 or 443. · e83b9e03
      Will Rouesnel authored
      Browsers (such as Chrome) don't report port numbers in window.location.port when
      used on standard ports such as 80 and 443. This causes vnc_auto.html to not
      automatically find the port as it should.
      
      This simple change checks if window.location.port is blank, and sets port as
      appropriate from the name of the protocol in use.
      e83b9e03
  9. 05 Apr, 2013 1 commit
  10. 03 Apr, 2013 1 commit
  11. 17 Oct, 2012 1 commit
    • Joel Martin's avatar
      Refactor dynamic script loading. Add util.js:load_scripts() · 6f4b1e40
      Joel Martin authored
      Related to issue/pulls:
      https://github.com/kanaka/noVNC/issues/194
      https://github.com/kanaka/noVNC/pull/201
      https://github.com/kanaka/noVNC/pull/202
      
      In IE9, the window.onload event can fire before dynamically loaded
      scripts have finished loading. This can result in either WebSocket (in
      the case of vnc_auto.html) or RFB (in the case of vnc.html) not being
      defined at the point when window.onload is called.
      
      - Move the load_scripts routine from vnc.js to util.js (so that
        websockify can use it too). Also, refactor to work when load_scripts
        is called by a script that itself uses load_scripts. When the whole
        chain of dynamically loaded scripts is finished then call
        window.onscriptsload. Use this mechanism in all the places that
        depend on dynamic loading of scripts: vnc.html, vnc_auto.html,
        websock.js, tests/vnc_playback.html, and tests/vnc_perf.html.
      
      - Use the new window.onscriptsload handler instead of window.onload.
      
      - Remove include/start.js and do the script loading and startup event
        handling in include/ui.js instead.
      6f4b1e40
  12. 15 Oct, 2012 1 commit
    • Joel Martin's avatar
      Change noVNC license to from LGPLv3 to MPL 2.0 · 1d728ace
      Joel Martin authored
      The MPL 2.0 license is a "file-level" copyleft license vs the
      "project-level" nature of the L/GPL. The intention of noVNC has
      always been that it should be easy to incorporate into existing
      projects and sites whether free/open or proprietary/commercial. The MPL
      2.0 is designed for this sort of combination project but still
      requires that any distributed modifications to noVNC source files must
      also be published under the same license.
      
      In addition, the MPL 2.0 allows the code to be used in L/GPL projects
      (the secondary license clause). This means that any projects that are
      already incorporating noVNC should not be impacted by this change and
      in fact it should clarify the licensing situation (the exact
      application of the L/GPL to web applications and interpreted code is
      somewhat ambiguous).
      
      The HTML, CSS, image and font files continue to be under more
      permissive licenses (see LICENSE.txt). The included websockify python
      code remains under a LGPLv3 license although the include/websock.js
      file from the websockify component is now under MPL 2.0 as well.
      
      Permission was received from other noVNC authors to make this change to their
      code license on the following dates:
      
          - Chris Gordon (UI): Jun 24, 2012
          - Antoine Mercadal (DOM,*util.js): Oct 10, 2012
          - William Lightning (UltraVNC repeater): Oct 10, 2012
          - Mike Tinglof (tight encoding): Oct 15, 2012
      1d728ace
  13. 17 Sep, 2012 1 commit
    • 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
  14. 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
  15. 23 Jun, 2012 2 commits
  16. 07 Jun, 2012 1 commit
  17. 03 Apr, 2012 3 commits
  18. 02 Feb, 2012 1 commit
    • Joel Martin's avatar
      Make WebSocket encrypt setting default to page protocol. · 1af3e54b
      Joel Martin authored
      I.e. if the page is https:// then the WebSocket encrypt setting will
      default to wss:// (TLS encryption).
      
      Note that since noVNC settings are saved in cookies, this will only
      affect first load. If you have already loaded the page, then the
      encrypt setting will be whatever you last set it to.
      1af3e54b
  19. 27 Jan, 2012 1 commit
    • Joel Martin's avatar
      Default path 'websockify' for Clojure Websockify. · 523cc4d6
      Joel Martin authored
      The Jetty WebSocket server code used by the Clojure version of
      websockify doesn't support WebSocket and Web at the same path so pass
      in a default value for the path so that we can support the Clojure
      version websockify.
      523cc4d6
  20. 01 Dec, 2011 1 commit
    • Joel Martin's avatar
      Add View Only mode setting. · 06a9ef0c
      Joel Martin authored
      Resolve issue: https://github.com/kanaka/noVNC/pull/101
      
      Based on proposal from @mightpenguin:
      Matthew Balman <emperor@mightypenguin.org>
      
      If view_only option is set then do not send mouse and keyboard events.
      This is not a secure/enforced way to make a client view only. To
      enforce view only at the server, most VNC servers support setting
      a view only password.
      06a9ef0c
  21. 27 Sep, 2011 1 commit
  22. 08 Sep, 2011 1 commit
  23. 26 Jun, 2011 1 commit
  24. 11 May, 2011 1 commit
    • Joel Martin's avatar
      API changes/cleanup. · d890e864
      Joel Martin authored
      API changes:
          - include/canvas.js renamed to include/display.js
          - Display.rescale() method removed from API. Use Display.set_scale() instead.
          - Make logo configuration attribute of Display and display it when
            clear() is called if it is set.
      
      API deprecations:
          - use RFB onUpdateState instead of updateState.
          - use RFB onClipboard instead of clipboardReceive.
      
      See https://github.com/kanaka/noVNC/wiki/ModuleAPI for detailed noVNC
      modules and API description.
      
      Expand and normalize the event/callback interfaces. Standize on
      "onEventName" form for callbacks.
      
          Callback Renames:
              - RFB updateState -> onUpdateState
              - RFB clipboardReceive -> onClipboard
              - Keyboard keyPress -> onKeyPress
              - Mouse mouseButton -> onMouseButton
              - Mouse mouseMove -> onMouseMove
      
          Callback Additions:
              - RFB onPasswordRequired
              - RFB onBell
              - RFB onFBUReceive
              - RFB onFBUComplete
      
      Other:
      - Add array type support to Util.conf_default()
      - Removed a bunch of routines from the Display API that were just used
        internally and not actually by noVNC: flush, setFillColor,
        imageDataGet, imageDataCreate, rgbxImageData, rgbxImageFill,
        cmapImageData, cmapImageFill.
      - More keyboard/mouse logging when debug turned on.
      - Some JSLinting
      d890e864
  25. 05 Apr, 2011 1 commit
  26. 31 Jan, 2011 1 commit
  27. 10 Dec, 2010 1 commit
    • Joel Martin's avatar
      Make compatible with jQuery. Slight API change. · e4671910
      Joel Martin authored
      Rename the $() selector to $D() so that it doesn't collide with
      the jQuery name.
      
      The API change is that the 'target' option for Canvas and RFB objects
      must now be a DOM Canvas element. A string is no longer accepted
      because this requires that a DOM lookup is done and the Canvas and RFB
      should have no UI code in them. Modularity.
      e4671910
  28. 09 Nov, 2010 1 commit
    • Joel Martin's avatar
      Add Chrome Frame support. Close requests in web.py. · e66f3f89
      Joel Martin authored
      - Add meta tag to vnc.html and vnc_auto.html so that if Chrome Frame
        is installed, it is used.
      
      - Add detection to default_controls.js that shows a message with
        a Chrome Frame install link if the user is using a version of IE
        without Canvas support.
      
      - Fix web.py so that requests have their connection closed after they
        are completed.  This has been a bug for a while but it prevents
        Chrome Frame from working because Chrome Frame doesn't activate
        until the initial request connection closes.
      e66f3f89
  29. 24 Oct, 2010 1 commit
  30. 29 Sep, 2010 1 commit
    • Antoine Mercadal's avatar
      Split util into two file: · 8d5d2c82
      Antoine Mercadal authored
       - util.js that contains essential functions
       - webutils.js that contains the GUI utility function.js
      
      this helps to include noVNC in other project, especially Cappuccino Application
      i
      8d5d2c82
  31. 08 Sep, 2010 2 commits
  32. 07 Sep, 2010 1 commit
  33. 27 Aug, 2010 1 commit
    • Joel Martin's avatar
      Remove psuedo-UTF8 encoding. · 55dee432
      Joel Martin authored
      It's less efficient on average that base64 (150% vs 133%). It's
      non-standard (0 shifted to 256 before encoding). And I rarely use it.
      55dee432
  34. 02 Aug, 2010 1 commit
    • Joel Martin's avatar
      New API. Refactor Canvas and RFB objects. · 8db09746
      Joel Martin authored
      New API:
      
      To use the RFB object, you now must instantiate it (this allows more
      than one instance of it on the same page).
      
          rfb = new RFB(settings);
      
      The 'settings' variable is a namespace that contains initial default
      settings. These can also be set and read using 'rfb.set_FOO()' and
      'rfb.get_FOO()' where FOO is the setting name. The current settings
      are (and defaults) are:
          - target: the DOM Canvas element to use ('VNC_canvas').
          - encrypt: whether to encrypt the connection (false)
          - true_color: true_color or palette (true)
          - b64encode: base64 encode the WebSockets data (true)
          - local_cursor: use local cursor rendering (true if supported)
          - connectTimeout: milliseconds to wait for connect (2000)
          - updateState: callback when RFB state changes (none)
          - clipboardReceive: callback when clipboard data received (none)
      
      The parameters to the updateState callback have also changed. The
      function spec is now updateState(rfb, state, oldstate, msg):
          - rfb: the RFB object that this state change is for.
          - state: the new state
          - oldstate: the previous state
          - msg: a message associate with the state (not always set).
      
      The clipboardReceive spec is clipboardReceive(rfb, text):
          - rfb: the RFB object that this text is from.
          - text: the clipboard text received.
      
      Changes:
      
      - The RFB and Canvas namespaces are now more proper objects. Private
        implementation is no longer exposed and the public API has been made
        explicit. Also, instantiation allows more than one VNC connection
        on the same page (to complete this, DefaultControls will also need
        this same refactoring).
      
      - Added 'none' logging level.
      
      - Removed automatic stylesheet selection workaround in util.js and
        move it to defaultcontrols so that it doesn't interfere with
        intergration.
      
      - Also, some major JSLinting.
      
      - Fix input, canvas, and cursor tests to work with new model.
      8db09746