Commit Graph

89 Commits

Author SHA1 Message Date
Pierre Ossman 30691b668e Remove onFBU* callbacks
They are internal mechanisms that callers should be isolated from.
2017-11-09 12:52:03 +01:00
Pierre Ossman 832be2625b Add resize as a capability
Makes the API more transparent than piggybacking on completion
of the first framebuffer update.
2017-11-09 12:51:15 +01:00
Pierre Ossman cd523e8f28 Make power API generic
Decouple it from XVP and make it a generic API.
2017-11-09 12:47:21 +01:00
Pierre Ossman 430f00d6fe Allow other credentials than just password
Makes the XVP authentication mechanism more general.
2017-11-09 12:45:05 +01:00
Pierre Ossman f976b5500e Hide mouse object from RFB callers 2017-10-27 13:58:12 +02:00
Pierre Ossman b9854a5ca5 Hide display object from RFB callers 2017-10-27 13:58:11 +02:00
Pierre Ossman 6929a0a183 Split out internal API
We only commit to maintaining the API of the RFB object, not the
other modules.
2017-10-27 13:58:11 +02:00
Pierre Ossman 2292cfa6ff Remove 'focusContainer' attribute from API documentation
It was removed from the code in the previous merge.
2017-10-18 15:51:43 +02:00
Pierre Ossman 94bf610cee Remove 'focused' attributes from API documentation
They were removed from the code in the previous merge.
2017-10-18 15:13:19 +02:00
Samuel Mannehed 3c5dd884d2 Update API since sendKey() has a new parameter
Commit 94f5cf05f3 added a new parameter to
the public function in the RFB object.
2017-10-12 15:26:21 +02:00
Samuel Mannehed 2f77baabd4 Mouse and Keyboard are seperate files now 2017-10-12 15:17:54 +02:00
Samuel Mannehed ced77799b2 Update link to Websock API page 2017-10-12 15:04:59 +02:00
Samuel Mannehed 90ab0d38e5 Add note clarifying the disconnected state
Makes it clear that the RFB module can not transition away from the
disconnected state.
2017-10-12 15:01:38 +02:00
Samuel Mannehed f5d40c6a4b Use markdown-style tables instead of <table>
Much easier to read in plaintext
2017-10-12 15:00:55 +02:00
Samuel Mannehed df4653826d Remove trailing whitespace 2017-10-12 14:59:49 +02:00
Samuel Mannehed 2b12429e06 Use underscores for bold text intead of asterixes
Makes an asterix-list easier to read in plaintext
2017-10-12 14:58:35 +02:00
Samuel Mannehed f8d08e7b35 Add numbering for each header in the API doc 2017-10-12 14:57:11 +02:00
Samuel Mannehed 5ce9155098 Move API documentation from wiki to the repo
Since the API is tied to the source code it makes more sence to have it
in the repository where it can more easily be tied to different versions
of the software.
2017-10-12 14:48:38 +02:00
Solly Ross 458d4e6724 [release] v1.0.0-testing.2
v1.0.0-testing.2 is the "make sure all of our autopublishing works
properly" release.  Assuming everything goes well, it should shortly be
followed by v1.0.0 proper.
2017-10-04 15:36:06 -04:00
Solly Ross ae510306b5 Enable noVNC to become Browserifiable
This commit restructures noVNC, splitting it into the core directory
and the app directory, with the former containing core noVNC parts,
and the latter containing parts specific to the application.
2016-09-16 15:49:51 -04:00
Solly Ross da82b3426c Release 0.6.1
Fixes version number mismatch (also adds more detailed instructions
for releasing).

Fixes #628
2016-07-04 15:29:00 -04:00
Solly Ross 5230ab6764 Release 0.6.0
This bumps the release version to 0.6.0
2016-07-01 15:42:14 -04:00
Solly Ross c802d93189 Make sure Pako always has enough room
Previously, we used a fixed chunkSize of 100KiB for Pako's output
buffer.  Using a hardcoded size caused issues, since Pako would assume
we wanted to use multiple chunks, and we didn't deal with this.  Now,
`Inflator#inflate()` takes a new `expected` argument, which indicates
the expected output size.  If this is bigger than the current chunkSize,
Inflator allocates a new output buffer that's big enough to hold the
output.

Fixes #531
2015-09-23 09:53:00 -04:00
Solly Ross 38781d931e Use Typed Arrays for the Websock receive queue
**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`.
2015-08-06 14:47:03 -04:00
Solly Ross 6940936ffc WIP: Switch to Pako for zlib
This commit introduces an alternate implementation of the zlib
decompressor based on Pako (https://github.com/nodeca/pako).
2015-08-06 14:47:03 -04:00
Solly Ross 2ec29db752 Remove 'debian' directory
This commit removes the old debian packaging information, which is
out of date.  People who wish to create Debain packages for noVNC
are better off using the package information from the actual Debian
or Ubuntu packages.

Closes #453
2015-02-20 17:34:59 -05:00
Joel Martin 7c1cd93744 Remove references to wsproxy.
Also, update nova-novncproxy to import websockify instead of wsproxy.
2013-04-15 12:22:34 -05:00
jalf 301fc915a6 Converted to unix line endings 2013-01-31 11:24:04 +01:00
Joel Martin dbec398406 Note that tcp-stream.js is Apache 2.0 LICENSE.
Also, include Apache-2.0 license text.
2012-09-17 17:15:48 -05:00
Joel Martin 39188f4ea8 doc/release.txt: fix small error in process.
Push master and version tag separately.
2012-09-14 17:07:13 -05:00
Joel Martin ceec05260e noVNC version 0.4 2012-09-14 17:00:56 -05:00
Joel Martin d58f8b5144 License clarification: HTML,CSS,images,fonts under permissive licenses.
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.
2012-06-24 16:29:44 -05:00
Joel Martin 9450f132c6 remove docs/TODO: see issues marked as "feature".
https://github.com/kanaka/noVNC/issues?labels=feature
2012-06-23 14:15:41 -05:00
Joel Martin e472e6ce3a docs/release.txt: --all and --tags are incompatible 2012-05-11 14:48:34 -05:00
Joel Martin 17bb6ca38e docs/release.txt: correct tag instructions 2012-05-11 14:45:53 -05:00
Joel Martin df4fa13b89 noVNC version 0.3
- Also add docs/release.txt instruction file.
2012-05-11 14:42:05 -05:00
Joel Martin 23ff806774 Version 0.1
noVNC version 0.1
2012-02-20 12:29:56 -06:00
Joel Martin 1709ee3ab7 LICENSE.txt, docs/TODO: bring up to date.
- Add Orbitron info to LICENSE.txt

- Update TODO.
2011-09-28 11:39:36 -05:00
Joel Martin 479bfa9964 Add local copy of Orbitron font.
Instead of using Google Font API, use local copy of Orbitron for speed
and also in case Internet connection is flaky or unavailable.

More info about Orbitron font here:
http://www.google.com/webfonts/specimen/Orbitron

Orbitron font is:
Copyright (c) 2009, Matt McInerney <matt@pixelspread.com>

Licensed under SIL Open Font License 1.1
see docs/LICENSE.OFL-1.1 or http://scripts.sil.org/OFL
2011-09-27 16:53:09 -05:00
Joel Martin c0c143a153 Version 0.1, debian packaging, license text.
noVNC version 0.1

Add debian packaging directory loosely based on
http://trac.zentyal.org/browser/trunk/extra/novnc/debian

Show web root directory on startup (pulled from websockify f1c8223).

Lintian fixups:
    - Some license text clarifications.
    - remove executable permission on utils/launch.sh and
      include/web-socket-js/web_socket.js
    - Add executable permission to utils/launch.sh
2011-07-14 15:57:01 -05:00
Joel Martin 9b8f457b6b Add OpenNode to README. Update TODOs. 2011-02-05 13:03:12 -06:00
Joel Martin 159ad55d03 Add logo, favicon.
Thanks to Michael Sersen for creating images/Logo.svg.

- Add images directory with original SVG logo, favicon, and some
  derivative PNGs of the logo for different purpose.

- Note that license on images/* is CC BY-SA.

- Add utils/img2js.py to take an image and generate a base64 encoded
  data URI string.

- Add base64 encoded data URI screen logo to display in canvas when
  disconnected.
2011-02-03 11:04:32 -06:00
Joel Martin 0981845ec4 IE9 fixes. Works but slow. API change.
API change: changed include path variable from VNC_uri_prefix to
URI_INCLUDE since websock.js uses the variable and websock.js is no
longer just for noVNC (i.e. websockify is really the canonical
location for websock.js).

Changes to get web-socket-js to work. Right now it's a hack to get
around: https://github.com/gimite/web-socket-js/issues#issue/41. The
hack is to disable caching of the flash objects by appending
"?" + Math.random() to the end of the flash object path (but only when
using IE).
2011-01-30 22:58:22 -06:00
Joel Martin 9a23006e7a include/canvas.js: fix changeCursor data format.
Issues #27 (safari cursor rendering messed up) and #29 (firefox 3.6.10
segault).

Finally found some better reference on the icon/cursor format which is
added to the docs/links file.

It seems like I was missing the XOR section. So setting the cursor
would cause corruptin in Safari rendering or the segfault for firefox.
2011-01-18 23:22:25 -06:00
Joel Martin 0a9f04241e Move browsers.md to Wiki.
It is now here: https://github.com/kanaka/noVNC/wiki/Browser-support
2011-01-18 11:58:24 -06:00
Joel Martin 30b0c00875 Misc docs/{TODO,links} updates. 2011-01-16 19:27:32 -06:00
Joel Martin f2538f337d wsproxy, wstelnet: wrap command, WS telnet client.
wswrapper:

    Getting the wswrapper.c LD_PRELOAD model working has turned out to
    involve too many dark corners of the glibc/POSIX file descriptor
    space. I realized that 95% of what I want can be accomplished by
    adding a "wrap command" mode to wsproxy.

    The code is still there for now, but consider it experimental at
    best. Minor fix to dup2 and add dup and dup3 logging.

wsproxy Wrap Command:

    In wsproxy wrap command mode, a command line is specified instead
    of a target address and port. wsproxy then uses a much simpler
    LD_PRELOAD library, rebind.so, to move intercept any bind() system
    calls made by the program. If the bind() call is for the wsproxy
    listen port number then the real bind() system call is issued for
    an alternate (free high) port on loopback/localhost.  wsproxy then
    forwards from the listen address/port to the moved port.

    The --wrap-mode argument takes three options that determine the
    behavior of wsproxy when the wrapped command returns an exit code
    (exit or daemonizing): ignore, exit, respawn.

    For example, this runs vncserver on turns port 5901 into
    a WebSockets port (rebind.so must be built first):

        ./utils/wsproxy.py --wrap-mode=ignore 5901 -- vncserver :1

    The vncserver command backgrounds itself so the wrap mode is set
    to "ignore" so that wsproxy keeps running even after it receives
    an exit code from vncserver.

wstelnet:

    To demonstrate the wrap command mode, I added WebSockets telnet
    client.

    For example, this runs telnetd (krb5-telnetd) on turns port 2023
    into a WebSockets port (using "respawn" mode since telnetd exits
    after each connection closes):

        sudo ./utils/wsproxy.py --wrap-mode=respawn 2023 -- telnetd -debug 2023

    Then the utils/wstelnet.html page can be used to connect to the
    telnetd server on port 2023. The telnet client includes VT100.js
    (from http://code.google.com/p/sshconsole) which handles the
    terminal emulation and rendering.

rebind:

    The rebind LD_PRELOAD library is used by wsproxy in wrap command
    mode to intercept bind() system calls and move the port to
    a different port on loopback/localhost. The rebind.so library can
    be built by running make in the utils directory.

    The rebind library can be used separately from wsproxy by setting
    the REBIND_OLD_PORT and REBIND_NEW_PORT environment variables
    prior to executing a command. For example:

        export export REBIND_PORT_OLD="23"
        export export REBIND_PORT_NEW="65023"
        LD_PRELOAD=./rebind.so telnetd -debug 23

    Alternately, the rebind script does the same thing:

        rebind 23 65023 telnetd -debug 23

Other changes/notes:

- wsproxy no longer daemonizes by default. Remove -f/--foreground
  option and add -D/--deamon option.

- When wsproxy is used to wrap a command in "respawn" mode, the
  command will not be respawn more often than 3 times within 10
  seconds.

- Move getKeysym routine out of Canvas object so that it can be called
  directly.
2011-01-12 13:15:11 -06:00
Joel Martin 02a7dd2c29 Merge branch 'master' of git@github.com:kanaka/noVNC 2011-01-06 17:33:22 -07:00
Joel Martin 58da507bb8 README: add companies/projects using noVNC. 2011-01-04 12:19:54 -06:00
Joel Martin 2574936f60 utils/README.md, docs/TODO, docs/notes: updates.
Add wswrapper info to utils/README.md and docs/TODO. Remove innacurate
info from docs/notes.
2010-12-30 11:00:50 -07:00