1. 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
  2. 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
  3. 27 Sep, 2011 2 commits
  4. 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
  5. 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
  6. 14 Sep, 2011 1 commit
  7. 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
  8. 08 Sep, 2011 8 commits
  9. 05 Apr, 2011 1 commit
  10. 31 Jan, 2011 1 commit
  11. 10 Nov, 2010 1 commit
  12. 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
  13. 08 Sep, 2010 2 commits
  14. 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
  15. 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
  16. 16 Jul, 2010 1 commit
  17. 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
  18. 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
  19. 14 Jun, 2010 1 commit
  20. 02 Jun, 2010 1 commit
    • Joel Martin's avatar
      Direct example. Move all DOM code default_controls.js. · 91308399
      Joel Martin authored
      Move DOM manipulation into include/default_controls.js and update
      vnc.html to use it.
      
      Add an example vnc_auto.html which automatically connects using
      parameters from the query string and doesn't use default_controls.js.
      
      Reorder functions in vnc.js to put external interface functions at the
      top of the RFB namespace.
      91308399
  21. 17 May, 2010 1 commit
  22. 11 May, 2010 1 commit
    • Joel Martin's avatar
      Styling/integration refactoring. · ded9dfae
      Joel Martin authored
      - Instead of onload override, move to RFB.load function that takes
        a parameter for the target DOM ID. This allows the user to have
        their own onload function.
      
      - Add "VNC_" prefix to all element ID names. Only create DOM elements
        if they don't already exist on the page, otherwise use the existing
        elements.
      
      - Move all styling to separate stylesheet.
      
      - Use list model for control styling.
      ded9dfae
  23. 06 May, 2010 1 commit
  24. 30 Apr, 2010 1 commit
    • Joel Martin's avatar
      Support for SSL/TLS ('wss://') on both sides. · adfe6ac1
      Joel Martin authored
      On the client side, this adds the as3crypto library to web-socket-js
      so that the WebSocket 'wss://' scheme is supported which is WebSocket
      over SSL/TLS.
      
      Couple of downsides to the fall-back method:
      
          - This balloons the size of the web-socket-js object from about 12K to 172K.
      
          - Getting it working required disabling RFC2718 web proxy support
            in web-socket-js.
      
          - It makes the web-socket-js fallback even slower with the
            encryption overhead.
      
      The server side (wsproxy.py) uses python SSL support. The proxy
      automatically detects the type of incoming connection whether flash
      policy request, SSL/TLS handshake ('wss://') or plain socket
      ('ws://').
      
      Also added a check-box to the web page to enable/disabled 'wss://'
      encryption.
      adfe6ac1
  25. 19 Apr, 2010 2 commits
  26. 18 Apr, 2010 1 commit
    • Joel Martin's avatar
      Status/error refactor. Fix firefox bugs. · 8759ea6f
      Joel Martin authored
      - All state/status updates go through updateState routine which
        updates the status line also.
      
      - Old firefox (and opera) don't support canvas createImageData, so use
        getImageData as replacement.
      
      - Add console.warn and console.error stubs so that firefox without
        firebug doesn't crap out.
      
      - If no WebSockets then error if no flash or if URL is location (flash
        will refuse to load the object for security reasons).
      8759ea6f
  27. 17 Apr, 2010 1 commit
    • Joel Martin's avatar
      Add web-socket-js support with packet re-ordering. · 5d8e7ec0
      Joel Martin authored
      - web-socket-js is from http://github.com/gimite/web-socket-js. It is
        a flash object that emultates WebSockets.
      
      Unfortunately, events (or packets) from the web-socket-js object can
      get re-ordered so we need to know the packet order.
      
      - So wsproxy.py prepends the sequence number of the packet when
        sending.
      
      - If the client receives packets out of order it queues them up and
        scans the queue for the sequence number it's looking for until
        things are back on track. Gross, but hey: It works!
      
      - Also, add packet sequence checking to wstest.*
      5d8e7ec0
  28. 15 Apr, 2010 1 commit