1. 28 Jun, 2013 1 commit
  2. 05 Apr, 2013 2 commits
  3. 19 Oct, 2012 1 commit
    • Joel Martin's avatar
      vnc.html: use standard HTML5 doctype. · 5514d299
      Joel Martin authored
      The mobile doctype doesn't not seem to make any difference on iOS so
      I'm dropping it and just going with the standard HTML5 version since
      the wapforum mobile version may cause issues with IE 10.
      5514d299
  4. 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
  5. 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
  6. 17 Sep, 2012 1 commit
    • 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
  7. 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
  8. 23 Jun, 2012 1 commit
  9. 15 Feb, 2012 1 commit
  10. 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
  11. 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
  12. 29 Sep, 2011 2 commits
    • Joel Martin's avatar
      Formatting. Image renames/cleanup. · 5299db1a
      Joel Martin authored
      - Remove the images using the old font.
      
      - Simplify the naming of the new control bar icon images.
      
      - Change keyboard input type to 'email'. 'url' type doesn't have
        a space bar.
      
      - Some clarifications to main LICENSE.txt file.
      5299db1a
    • Chris Gordon's avatar
      Mobile icons. · 938daad1
      Chris Gordon authored
      - CSS highlighting of buttons when selected.
      - Keyboard button tweaked to allow show/hide toggle of keyboard.
      Signed-off-by: 's avatarChris Gordon <snorkeyg@gmail.com>
      938daad1
  13. 27 Sep, 2011 2 commits
  14. 23 Sep, 2011 2 commits
    • Joel Martin's avatar
      Fixing iOS clipping, keyboard issues. · a7db5059
      Joel Martin authored
      - Make sure that on iOS the clipping setting is always forced to be
        enabled.
      - Hide the showKeyboard button unless connected.
      - Use the URL text entry method and disable autocorrect and
        autocapitalize in the show keyboard input box.
      a7db5059
    • Joel Martin's avatar
      Only show move/drag button when clipping. Cleanup. · c506a481
      Joel Martin authored
      Cleanup:
      
      - remove unused changeViewportMeta function from include/ui.js
      - remove some debug output and debug CSS.
      - rename panel toggle functions and put them in same location in the
        code.
      - refactor some code from updateState to updateVisualState routine
        (renamed from updateSettingsState).
      c506a481
  15. 22 Sep, 2011 1 commit
    • Joel Martin's avatar
      Viewport clip/drag for mobile/touchscreen devices. · a5df24b4
      Joel Martin authored
      API changes (forward compatible):
      
      - Display: add 'viewport' conf option to turn on and off viewport
        mode.
      - RFB: add 'viewportDrag' option to enable/disable viewport dragging
        mode.
      
      Other:
      
      - Add clip mode setting to default UI. For touch devices, clipping is
        forced on.
      - Use CSS media queries to adjust visual elements based on screen
        size. Especially disconnected logo size/position and button text size.
      - Catch page unload while connected and give a confirm dialog.
      - Change mouse button selector to a single button that changes between
        ' ', 'L', 'M', 'R' when clicked (empty means mouse is just being
        moved and doesn't send clicks).
      - include/ui.js:setViewClip() routine sets the clipping of the
        viewport to the current size of the viewport area (if clipping is
        enabled).
      - include/ui.js:setViewDrag() toggles/enables/disables viewport
        dragging mode.
      - Add several images for the UI and for Apple devices:
          - images/clipboard.png: clipboard menu icon
          - images/connect.png: connect menu icon
          - images/disconnect.png: disconnect button icon
          - images/keyboard.png: show keyboard button
          - images/move.png: viewport drag/move toggle button
          - images/settings.png: settings menu icon
          - images/screen_320x460.png: iOS app/desktop link start image
          - images/screen_57x57.png: iOS app icon
          - images/screen_700x700.png: full size noVNC image
      a5df24b4
  16. 14 Sep, 2011 1 commit
  17. 13 Sep, 2011 1 commit
    • Joel Martin's avatar
      Fix window/document sizing in firefox. · b70ce077
      Joel Martin authored
      Another firefox issue is that height: 100% is calculated as 100% of
      the containing element even when the containing element is the window.
      This means that the size of any sibling element shifts the window size
      down by that much and causes the vertical scroll bars to appear. This
      doesn't happen in Chrome.
      
      - So instead, put a pad element inside the noVNC_screen element that
        is the size of the control bar. This is hidden by the control bar,
        however, it causes things to be sized correctly.
      
      - Also, rename noVNC_defaultScreen to noVNC_logo.
      
      - Clean some style specification out of the HTML.
      b70ce077
  18. 08 Sep, 2011 8 commits
  19. 05 Apr, 2011 1 commit
  20. 31 Jan, 2011 1 commit
  21. 10 Nov, 2010 1 commit
  22. 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
  23. 08 Sep, 2010 2 commits
  24. 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
  25. 22 Jul, 2010 1 commit
    • Joel Martin's avatar
      API changes. Client cursor and settings menu. · da6dd893
      Joel Martin authored
      The following API changes may affect integrators:
      
          - Settings have been moved out of the RFB.connect() call. Each
            setting now has it's own setter function: setEncrypt, setBase64,
            setTrueColor, setCursor.
      
          - Encrypt and cursor settings now default to on.
      
          - CSS changes:
              - VNC_status_bar for input buttons switched to a element class.
      
              - VNC_buttons split into VNC_buttons_right and
                VNC_buttons_left
      
              - New id styles for VNC_settings_menu and VNC_setting
      
      Note: the encrypt, true_color and cursor, logging setting can all be
        set on load using query string variables (in addition to host, port
        and password).
      
      Client cursor (cursor pseudo-encoding) support has been polished and
      activated.
      
      The RFB settings are now presented as radio button list items in
      a drop-down "Settings" menu when using the default controls.
      
      Also, in the settings menu is the ability to select between alternate
      style-sheets.
      
      Cookie and stylesheet selection support added to util.js.
      da6dd893
  26. 16 Jul, 2010 1 commit
  27. 01 Jul, 2010 1 commit
    • Joel Martin's avatar
      Opera works! Fix message event drops/reorders. · a93c9555
      Joel Martin authored
      Instead of relying on FABridge AS -> JS event delivery, we just use
      the events to notify JS of pending data. The message handler then
      calls the AS readSocketData routine which sends back an array of
      the pending WebSocket frames.
      
      There is still a minor bug somewhere that happens after the first
      connect where the web-socket-js throws an "INVALID_STATE_ERR: Web
      Socket connection has not been established". But, Opera is now usable
      and we should be able to drop the packet sequence numbering and
      re-ordering code.
      
      Another minor issue to better support Opera is to move JS script
      includes to the <head> of the page instead of after the body.
      a93c9555
  28. 23 Jun, 2010 1 commit
    • Joel Martin's avatar
      Various cross-browser fixes. · d93d3e09
      Joel Martin authored
      Now working under Arora 0.5.
      
      But not Konqueror 4.2.2 (WebSockets never connects).
      
      IE support with excanvas still pending.
      d93d3e09