]> git.proxmox.com Git - mirror_novnc.git/log
mirror_novnc.git
13 years agorfb.js: wait for SecurityResult failure reason bytes.
Joel Martin [Thu, 23 Sep 2010 14:17:09 +0000 (09:17 -0500)]
rfb.js: wait for SecurityResult failure reason bytes.

Yet another weird VNC server behavior: sending a failure and length
before the reason message. To calculated the length, the reason string
is already available, why not just send everything as one packet. Oh
well.

13 years agoMisc cleanup: debug logging, record filename, etc.
Joel Martin [Thu, 23 Sep 2010 13:17:00 +0000 (08:17 -0500)]
Misc cleanup: debug logging, record filename, etc.

- include/canvas.js: When 'debug' logging, show browser detection
  values.
- test/canvas.html: Only restore the canvas to it's starting state if
  the logging level is not 'debug'.
- wsproxy.py: Append the session number to the record filename so that
  multiple sessions don't stomp on each other.

13 years agoutil.js: detect firefox 4.X correctly.
Joel Martin [Thu, 23 Sep 2010 13:08:08 +0000 (08:08 -0500)]
util.js: detect firefox 4.X correctly.

Update the browser detection code (from mootools) with a fix that
detects firefox 4.0 correctly.

13 years agologging: add Util.get_logging(), canvas clearing.
Joel Martin [Wed, 22 Sep 2010 22:11:57 +0000 (17:11 -0500)]
logging: add Util.get_logging(), canvas clearing.

Only clear canvas if log level is not debug instead of using
'#__debug__' in the URL.

13 years agoplayback.js: move to include/ for easier reference.
Joel Martin [Wed, 22 Sep 2010 21:55:06 +0000 (16:55 -0500)]
playback.js: move to include/ for easier reference.

Easier to reference from web site (gh-pages branch).

13 years agoNo local cursor by default due to issues #27, #29.
Joel Martin [Mon, 20 Sep 2010 21:15:40 +0000 (16:15 -0500)]
No local cursor by default due to issues #27, #29.

In Safari, local cursor rendering is corrupt. In firefox 3.6.10, local
cursor rendering causes a segfault. Probable that the .cur format is
not 100% compliant (even though it works in Chrome and firefox 3.5 and
firefox 4.0). So just disable it by default until I can figure out how
to address the problems.

13 years agoC proxy: Issue #14: wss:// from Safari
Joel Martin [Wed, 15 Sep 2010 23:21:42 +0000 (18:21 -0500)]
C proxy: Issue #14: wss:// from Safari

Addresses this issue:
http://github.com/kanaka/noVNC/issues#issue/14

This goes along with commit 7e63919e6 but for the C proxy.

13 years agoAPI change: add sendKey() to manually send key code.
Joel Martin [Wed, 15 Sep 2010 23:14:27 +0000 (18:14 -0500)]
API change: add sendKey() to manually send key code.

RFB.sendKey(code, down)

If down is not specified then both a down followed by an up code will
be sent.

13 years agoproxy: Issue #14: detect and allow wss:// from Safari.
Joel Martin [Wed, 15 Sep 2010 17:09:17 +0000 (12:09 -0500)]
proxy: Issue #14: detect and allow wss:// from Safari.

Addresses this issue:
http://github.com/kanaka/noVNC/issues#issue/14

Safari starts with '\x80' rather than '\x16' like Chrome and Firefox
and having PROTOCOL_TLSv1 doesn't work with Safari. But just removing
the ssl_version allows things to work with Safari wss:// connections.

Also, if the handshake (after SSL wrapping) is null then terminate the
connection. This probably means the certificate was refused by the
client. Unfortunately Safari (the version I have) doesn't cleanly
shutdown WebSockets connections until the page is reloaded (even if
the object is no longer referenced).

13 years agorfb.js: state refactor, add 'disconnect' state.
Joel Martin [Sat, 11 Sep 2010 20:31:50 +0000 (15:31 -0500)]
rfb.js: state refactor, add 'disconnect' state.

Add a new state 'disconnect' to reflect that we are not truly
'disconnected' until we get an onclose event. Add a disconnect timer
to match.

Handle disconnected cleanup better in updateState(). Anytime we enter
in a disconnect/disconnected state, make sure all running state is
cleaned up (WebSocket, timers, canvas).

13 years agoproxy: always multiprocess and add --verbose.
Joel Martin [Sat, 11 Sep 2010 20:10:54 +0000 (15:10 -0500)]
proxy: always multiprocess and add --verbose.

Always fork handlers processes. Instead printing traffic when
single-processing, print traffic if verbose flag given.

13 years agoweb-socket-js (issue #37): close() when connecting
Joel Martin [Sat, 11 Sep 2010 18:52:49 +0000 (13:52 -0500)]
web-socket-js (issue #37): close() when connecting

Filed this issue for this bug:
http://github.com/gimite/web-socket-js/issues/issue/37

Right now the close() call only calls __flash.close() if readyState is OPEN.
But it should really call close any time that readyState is not CLOSED or
CLOSING.

The case I ran into is when I want to do the following:
1. make a test connection
2. tell the server to setup for a connection
3. connect again

I call close on the test connection, but since it is ignored when CONNECTING,
it eventually times out with a error. But by that time I have already issued a
new connection, it causes the new connection to fail. close() should cancel
CONNECTING state too.

13 years agogimite/web-socket-js issue #35: async onclose.
Joel Martin [Sat, 11 Sep 2010 17:44:39 +0000 (12:44 -0500)]
gimite/web-socket-js issue #35: async onclose.

Filed this bug about this issue:
http://github.com/gimite/web-socket-js/issues#issue/35

To work around the flash "recursive call" problem, WebSocket.as has
the onclose event disabled in the close() call and the javascript half
of the close() call does the onclose() call instead. This is fine, but
it needs to be asynchronous to act more like what happens with
a normal WebSockets object. The current behavior is that the onclose()
method is called inline (synchronously) when the close() is called and
this inconsistency make state handling more difficult.

13 years agoproxy: do handshake in forked process too.
Joel Martin [Fri, 10 Sep 2010 19:31:34 +0000 (14:31 -0500)]
proxy: do handshake in forked process too.

13 years agowsproxy: multiprocess capable.
Joel Martin [Fri, 10 Sep 2010 18:05:48 +0000 (13:05 -0500)]
wsproxy: multiprocess capable.

Add -m, --multiprocess option which forks a handler for each
connection allowing multiple connections to the same target using the
same proxy instance.

Cleaned up the output of the handler process. Each process' output is
prefixed with an ordinal value.

Changed both the C and python versions of the proxy.

13 years agoRemove record option from C wsproxy.
Joel Martin [Fri, 10 Sep 2010 14:58:26 +0000 (09:58 -0500)]
Remove record option from C wsproxy.

I've decided that debug/develop/extra features will just be in the
python version of the proxy. The C version (and other versions) will
just have the core functionality (unless someone wants to support it).

13 years agoLicense header cleanup.
Joel Martin [Wed, 8 Sep 2010 20:06:34 +0000 (15:06 -0500)]
License header cleanup.

13 years agoweb-socket-js: 9e7663771 build and remove source.
Joel Martin [Wed, 8 Sep 2010 19:57:32 +0000 (14:57 -0500)]
web-socket-js: 9e7663771 build and remove source.

web-socket-js now has all the functionality and fixes needed for noVNC
so remove the include/as3crypto_patched directory and the
include/web-socket-js/flash-src directory (i.e. the sources for
web-socket-js). This cleans up almost 3K from the include/ directory.

Update to web-socket-js build based on upstream (gimite/web-socket-js)
9e766377188.

13 years agodefault_controls.js: Fix cursor setting init.
Joel Martin [Wed, 8 Sep 2010 18:46:41 +0000 (13:46 -0500)]
default_controls.js: Fix cursor setting init.

The rfb variable wasn't available at the point settingsDisabled() was
being called since it was called inline with RFB() initialization. To
solve this we pass the updateState rfb variable so that the canvas can
be queried for setting the cursor_uri value.

13 years agoTODO and .gitignore: updates.
Joel Martin [Wed, 8 Sep 2010 15:15:07 +0000 (10:15 -0500)]
TODO and .gitignore: updates.

13 years agoJSLint.
Joel Martin [Wed, 8 Sep 2010 15:11:11 +0000 (10:11 -0500)]
JSLint.

13 years agovnc_playback.html: print frame_idx on error.
Joel Martin [Tue, 7 Sep 2010 21:22:28 +0000 (16:22 -0500)]
vnc_playback.html: print frame_idx on error.

13 years agoEncrypt default to 'false' in vnc_auto.html also.
Joel Martin [Tue, 7 Sep 2010 14:57:37 +0000 (09:57 -0500)]
Encrypt default to 'false' in vnc_auto.html also.

13 years agoplayback.js: realtime playback and split out code.
Joel Martin [Wed, 1 Sep 2010 17:31:54 +0000 (12:31 -0500)]
playback.js: realtime playback and split out code.

Preparation for online demo.

Split general playback code into tests/playback.js.

Use timestamps from recording with proxy to playback in realtime.

13 years agoTODO: move long-term features to github issues.
Joel Martin [Wed, 1 Sep 2010 03:48:11 +0000 (22:48 -0500)]
TODO: move long-term features to github issues.

13 years agoIssue #15 - rfb.js: wait for security type list.
Joel Martin [Wed, 1 Sep 2010 03:22:22 +0000 (22:22 -0500)]
Issue #15 - rfb.js: wait for security type list.

Apparently the virtualbox VNC server send the size and then the
security type list in separate frames so we need to wait for the full
list.

13 years agocanvas.js: Fix ignore for scrolled window.
Joel Martin [Tue, 31 Aug 2010 18:36:14 +0000 (13:36 -0500)]
canvas.js: Fix ignore for scrolled window.

When the documement/window is scrolled, the onMouseDisable routine was
not properly calculating the position to test whether to ignore the
event or not.

13 years agoRename tightpng img queue variable to imgQ.
Joel Martin [Tue, 31 Aug 2010 17:08:47 +0000 (12:08 -0500)]
Rename tightpng img queue variable to imgQ.

13 years agoMore timing "history" purge.
Joel Martin [Mon, 30 Aug 2010 20:59:53 +0000 (15:59 -0500)]
More timing "history" purge.

13 years agorfb.js: JSLint'ing
Joel Martin [Mon, 30 Aug 2010 20:57:58 +0000 (15:57 -0500)]
rfb.js: JSLint'ing

Change RQ and SQ vars to rQ and sQ since caps at the start implies
a classable entity.

13 years agoMerge init() into the constructor.
Joel Martin [Mon, 30 Aug 2010 20:16:07 +0000 (15:16 -0500)]
Merge init() into the constructor.

This is logical now since the external update callback can be provided
when the object is created so we don't need a separate init function.

13 years agoRemove psuedo-UTF8 encoding.
Joel Martin [Fri, 27 Aug 2010 17:10:09 +0000 (12:10 -0500)]
Remove psuedo-UTF8 encoding.

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.

13 years agorfb.js: remove timing history.
Joel Martin [Fri, 27 Aug 2010 16:29:22 +0000 (11:29 -0500)]
rfb.js: remove timing history.

Turned out not to be useful (pretty much never looked at the info once
I added it). The playback test is much more useful for measuring
performance.

13 years agorfb.js/tight_png: fix indexed receive queue handling.
Joel Martin [Fri, 27 Aug 2010 16:21:30 +0000 (11:21 -0500)]
rfb.js/tight_png: fix indexed receive queue handling.

getCLength was not using the index (RQi) into the receive queue.

13 years agoTest both builtin and base64.js functions.
Joel Martin [Thu, 26 Aug 2010 16:34:44 +0000 (11:34 -0500)]
Test both builtin and base64.js functions.

13 years agoIndexed receive queue. Up to 2X speedup in Chrome.
Joel Martin [Thu, 26 Aug 2010 15:22:29 +0000 (10:22 -0500)]
Indexed receive queue. Up to 2X speedup in Chrome.

Generally, most servers send hextile updates as single updates
containing many rects. Some servers send hextile updates as many small
framebuffer updates with a few rects each (such as QEMU). This latter
cases revealed that shifting off the beginning of the receive queue
(which happens after each hextile FBU) performs poorly.

This change switches to using an indexed receive queue (instead of
actually shifting off the array). When the receive queue has grown to
a certain size, then it is compacted all at once.

The code is not as clean, but this change results in more than 2X
speedup under Chrome for the pessimal case and 10-20% in firefox.

13 years agoAdd Javascript variable container to record data.
Joel Martin [Thu, 12 Aug 2010 14:50:49 +0000 (09:50 -0500)]
Add Javascript variable container to record data.

- This allows the recorded data to be immediately usable by
  tests/vnc_playback.html

13 years agoTreat RFB 3.6 as 3.3.
Joel Martin [Wed, 11 Aug 2010 16:21:15 +0000 (11:21 -0500)]
Treat RFB 3.6 as 3.3.

Apparently there are versions of UltraVNC that report version 3.6.
This is not a legal version according to the spec, but we'll just
force version 3.3 if we receive it. Thanks to Larry Rowe for the info.

13 years agoScroll render test and perf speedup.
Joel Martin [Fri, 6 Aug 2010 20:53:13 +0000 (15:53 -0500)]
Scroll render test and perf speedup.

Turns out when Windows is running in QEMU and a window scroll happens,
there are lots of little hextile rects sent. This is slow in noVNC.

- Some recording/playback improvement.
- Add test harness to drive playback of recordings.
- By pulling off the rect header in one chunk we get a 3X speedup in
  Chrome and a 20% speedup in firefox (specifically for the scroll
  test).
- Also, get rid of some noise from creating timers for handle_message.
  Check to make sure there isn't already a pending timer first.

13 years ago* take care of kanaka's suggestions
primalmotion [Wed, 4 Aug 2010 20:20:53 +0000 (15:20 -0500)]
* take care of kanaka's suggestions
(cherry picked from commit 11f3271a52505dccbf38bea422e7c9a79dddd478)

Signed-off-by: Joel Martin <github@martintribe.org>
13 years ago* Adding a way to set the DOM document to use.
primalmotion [Wed, 4 Aug 2010 15:47:08 +0000 (17:47 +0200)]
* Adding a way to set the DOM document to use.
This is very usefull when you need to open a new window (with a new document) from javascript,
without having to reload the script.js.
(cherry picked from commit 8ded53c1de06d01e50d58543c19e73926f0fbbd4)

Signed-off-by: Joel Martin <github@martintribe.org>
13 years agoJSLint: use ===.
Joel Martin [Wed, 4 Aug 2010 20:14:40 +0000 (15:14 -0500)]
JSLint: use ===.

13 years agoRemove unused imports (sys, ssl) in wsproxy.py
Joel Martin [Wed, 4 Aug 2010 19:33:32 +0000 (14:33 -0500)]
Remove unused imports (sys, ssl) in wsproxy.py

13 years agoPython 2.4 compatible imports.
Joel Martin [Wed, 4 Aug 2010 19:32:10 +0000 (14:32 -0500)]
Python 2.4 compatible imports.

- Fallback to md5 module if hashlib not there.
- Import parse_qsl from cgi where it is in both 2.4 and 2.6

13 years agoFix #19: python2.4 support.
Joel Martin [Wed, 4 Aug 2010 19:18:55 +0000 (14:18 -0500)]
Fix #19: python2.4 support.

- Replace URL parsing using "".partition() with urlparse module.

13 years agoWebSockets orderly/clean close frame.
Joel Martin [Tue, 3 Aug 2010 18:21:00 +0000 (13:21 -0500)]
WebSockets orderly/clean close frame.

- When a packet with only '\xff\x00' is received, this means the
  client is doing an orderly shutdown. (WebSockets spec version 76)

13 years agoEncrypt default to off, TODO updates.
Joel Martin [Tue, 3 Aug 2010 18:20:44 +0000 (13:20 -0500)]
Encrypt default to off, TODO updates.

13 years agoNew API. Refactor Canvas and RFB objects.
Joel Martin [Mon, 2 Aug 2010 22:07:27 +0000 (17:07 -0500)]
New API. Refactor Canvas and RFB objects.

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.

13 years agoCatch exceptions in cursor detection.
Joel Martin [Mon, 2 Aug 2010 15:11:47 +0000 (10:11 -0500)]
Catch exceptions in cursor detection.

If cursor Data URI scheme detection threw an exception, it would cause
canvas initialization to fail. cursor detection exceptions should just
disable local cursor change support, not cause canvas init to fail.

13 years agoPreliminary scaling code (deactivated).
Joel Martin [Fri, 30 Jul 2010 14:53:33 +0000 (09:53 -0500)]
Preliminary scaling code (deactivated).

Uses the CSS "scale()" operation. The main problem is that the DOM
container is not rescaled, only the size of the displayed content
within it so there will need to be some sort of mechanism to handle
this better so other elements reflow to the new size. Or it might just
not work and be removed later. The zoom property seems to do the right
behavior, but it's not widely supported. Worth exploring though.

13 years agoGive other events chance to fire.
Joel Martin [Thu, 29 Jul 2010 15:47:32 +0000 (10:47 -0500)]
Give other events chance to fire.

After each complete framebufferUpdate, set a short timer to continue
processing the receive queue. This gives other events a chance to
fire. Especially important when noVNC is integrated into another
website.

13 years agoUpdate TODO.
Joel Martin [Thu, 29 Jul 2010 15:46:58 +0000 (10:46 -0500)]
Update TODO.

13 years agoREADME.md: fix command formatting.
Joel Martin [Mon, 26 Jul 2010 22:41:19 +0000 (17:41 -0500)]
README.md: fix command formatting.

13 years agoREADME.md: correction about VNC_uri_prefix.
Joel Martin [Fri, 23 Jul 2010 17:32:15 +0000 (12:32 -0500)]
README.md: correction about VNC_uri_prefix.

It points to the include sub-directory, not to the directory above.

13 years agoAdd twitter link to follow @noVNC for commits/news.
Joel Martin [Fri, 23 Jul 2010 17:30:31 +0000 (12:30 -0500)]
Add twitter link to follow @noVNC for commits/news.

13 years agoIssue #15: noVNC falls behind.
Joel Martin [Fri, 23 Jul 2010 16:46:41 +0000 (11:46 -0500)]
Issue #15: noVNC falls behind.

noVNC was never processing more than one framebufferUpdate message per
onmessage event. If noVNC receives an incomplete framebufferUpdate and
then receives the rest of the framebufferUpdate plus another complete
framebufferUpdate, then it will fall permanently behind.

If there is more to process after a completed framebufferUpdate, then
execute normal_msg again.

All the render routines must return false if there is not enough data
in the receive queue to process their current update, and true
otherwise.

13 years agoREADME.md: Add more bug/issue suggested info.
Joel Martin [Fri, 23 Jul 2010 14:25:16 +0000 (09:25 -0500)]
README.md: Add more bug/issue suggested info.

13 years agoTurn off firebug-lite in canvas test page.
Joel Martin [Thu, 22 Jul 2010 16:35:26 +0000 (11:35 -0500)]
Turn off firebug-lite in canvas test page.

13 years agoQuery string cleanup and move it to util.js
Joel Martin [Thu, 22 Jul 2010 16:33:21 +0000 (11:33 -0500)]
Query string cleanup and move it to util.js

13 years agoJSLint. RFB obj to rfb.js; vnc.js the 'loader'.
Joel Martin [Thu, 22 Jul 2010 15:54:47 +0000 (10:54 -0500)]
JSLint. RFB obj to rfb.js; vnc.js the 'loader'.

Move the whole RFB object to rfb.js. vnc.js is now just the loader
file. This allows an integrating project to easily replace vnc.js with
an alternate loader mechanism (or just do it directly in the html
file). Thanks for the idea primalmotion (http://github.com/primalmotion).

Also, JSLint the various files.

13 years agoFix logging init on first page load (not in cookie).
Joel Martin [Thu, 22 Jul 2010 15:46:50 +0000 (10:46 -0500)]
Fix logging init on first page load (not in cookie).

13 years agoFix error when cursor Data URI scheme not supported.
Joel Martin [Thu, 22 Jul 2010 15:26:50 +0000 (10:26 -0500)]
Fix error when cursor Data URI scheme not supported.

13 years agoAPI changes. Client cursor and settings menu.
Joel Martin [Thu, 22 Jul 2010 01:34:23 +0000 (20:34 -0500)]
API changes. Client cursor and settings menu.

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.

13 years agoFail if initial server connection fails.
Joel Martin [Tue, 20 Jul 2010 19:54:49 +0000 (14:54 -0500)]
Fail if initial server connection fails.

13 years agoAdd Cursor pseudo-encoding support (disabled for now).
Joel Martin [Tue, 20 Jul 2010 19:34:44 +0000 (14:34 -0500)]
Add Cursor pseudo-encoding support (disabled for now).

To change the appearance of the cursor, we use the CSS cursor style
and set the url to a data URI scheme. The image data sent via the
cursor pseudo-encoding has to be encoded to a CUR format file before
being used in the data URI.

During Canvas initialization we try and set a simple cursor to see if
the browser has support. Opera is missing support for data URI scheme
in cursor URLs.

Disabled for now until we have a better way of specifying settings
overall (too many settings for control bar now).

13 years agoFix listen_port check.
Joel Martin [Sat, 17 Jul 2010 17:13:54 +0000 (12:13 -0500)]
Fix listen_port check.

Interestingly, the bug depends on compiler behavior. If local
variables are automatically initialized to 0, then this always caused
the program to error out indicating a failure to parse the listen
port. Otherwise, the test was a no-op (except the rare case where the
memory happened to be zero anyways).

Thanks to Eugen Melnikoff for finding this.

13 years agoIssue #11: daemonize after opening listen port.
Joel Martin [Sat, 17 Jul 2010 17:05:58 +0000 (12:05 -0500)]
Issue #11: daemonize after opening listen port.

The listen port should be opened before daemonizing otherwise if
opening the port fails, the user will get no feedback. The only
complication was that the listen socket needs to not be closed as part
of daemonizing.

Thanks to http://github.com/rickr for finding it.

13 years agoTypos and formatting.
Joel Martin [Fri, 16 Jul 2010 01:22:55 +0000 (20:22 -0500)]
Typos and formatting.

13 years agoLaunch script and reworked usage in README.md.
Joel Martin [Fri, 16 Jul 2010 01:18:39 +0000 (20:18 -0500)]
Launch script and reworked usage in README.md.

13 years agoMake black.css an alternate stylesheet.
Joel Martin [Fri, 16 Jul 2010 00:58:33 +0000 (19:58 -0500)]
Make black.css an alternate stylesheet.

13 years agoState machine refactoring.
Joel Martin [Fri, 16 Jul 2010 00:38:25 +0000 (19:38 -0500)]
State machine refactoring.

Add new states 'loaded', 'connect' and 'fatal':
- Loaded state is first page state. Pass WebSockets mode message using
  this state.
- Connect indicates that the user has issued a "connect" but we
  haven't gotten an WebSockets onopen yet.
- Fatal is a condition that indicates inability to continue on: right
  now, lack of WebSockets/Flash or non-working canvas.

Move much of the actual state transition code into updateState.

Handle 'password' state better in default_controls.js; instead of
disconnecting, prompt for password to send.

Add comments to updateState indicating possible states.

13 years agoAdd info on firefox 3.0.17.
Joel Martin [Fri, 16 Jul 2010 00:22:07 +0000 (19:22 -0500)]
Add info on firefox 3.0.17.

13 years agoClean up top level: move license files to docs/
Joel Martin [Thu, 15 Jul 2010 23:45:32 +0000 (18:45 -0500)]
Clean up top level: move license files to docs/

13 years agoUTF-8: send 0 as 256 during encoding too.
Joel Martin [Wed, 14 Jul 2010 21:57:02 +0000 (16:57 -0500)]
UTF-8: send 0 as 256 during encoding too.

0 is valid UTF-8, but in order to avoid WebSockets framing, we
encode/decode it as 256.

Also, be tolerant of 0 length messages.

13 years agoAdd native base64 test (atob and btoa).
Joel Martin [Tue, 13 Jul 2010 22:53:01 +0000 (17:53 -0500)]
Add native base64 test (atob and btoa).

Interestingly it turns out that using the native base64 routines does
not improve performance. Likely because the actual time is in
marshalling/unmarshalling between strings and arrays (and associated
garbage collection overhead) which has to be done either way.

13 years agoTightPng fixups and thanks to Sentry Data Systems.
Joel Martin [Tue, 13 Jul 2010 22:51:26 +0000 (17:51 -0500)]
TightPng fixups and thanks to Sentry Data Systems.

- Change tightpng encoding number to -260 (aliguori provided it until
  an official number can be allocated).

13 years agoScreenshots section, link to more.
Joel Martin [Fri, 9 Jul 2010 16:41:36 +0000 (11:41 -0500)]
Screenshots section, link to more.

13 years agoREADME.md: caption formatting.
Joel Martin [Fri, 9 Jul 2010 15:52:42 +0000 (10:52 -0500)]
README.md: caption formatting.

13 years agoREADME.md: image caption and bigger dimensions.
Joel Martin [Fri, 9 Jul 2010 15:51:51 +0000 (10:51 -0500)]
README.md: image caption and bigger dimensions.

13 years agoAdd screenshots to README.md.
Joel Martin [Fri, 9 Jul 2010 15:50:33 +0000 (10:50 -0500)]
Add screenshots to README.md.

13 years agoMarkdown links in README.md.
Joel Martin [Wed, 7 Jul 2010 21:06:44 +0000 (16:06 -0500)]
Markdown links in README.md.

13 years agoLinks related to Tight PNG encoding work.
Joel Martin [Wed, 7 Jul 2010 17:41:19 +0000 (12:41 -0500)]
Links related to Tight PNG encoding work.

13 years agoRemoved missed mootools include in ws.html test.
Joel Martin [Wed, 7 Jul 2010 17:40:56 +0000 (12:40 -0500)]
Removed missed mootools include in ws.html test.

13 years agoAdd troubleshooting section.
Joel Martin [Tue, 6 Jul 2010 17:29:37 +0000 (12:29 -0500)]
Add troubleshooting section.

13 years agoRemove unneeded mootools and FABridge test.
Joel Martin [Tue, 6 Jul 2010 17:14:38 +0000 (12:14 -0500)]
Remove unneeded mootools and FABridge test.

mootools is no longer needed. The bug that the FABridge test was
testing has been resolved in web-socket-js so it's no longer needed.

13 years agoRefactor console logging code.
Joel Martin [Tue, 6 Jul 2010 16:56:13 +0000 (11:56 -0500)]
Refactor console logging code.

Util.Debug, Util.Info, Util.Warn, Util.Error routines instead of
direct calls to console.*. Add "logging=XXX" query variable that sets
the logging level (default is "warn").

Logging values:
    debug: code debug logging (many calls in performance path are also
           commented for performance reasons).
    info: informative messages including timing information.
    warn: significant events
    error: something has gone wrong

13 years agoInit updated web-socket-js correctly. TODO updates.
Joel Martin [Mon, 5 Jul 2010 20:54:15 +0000 (15:54 -0500)]
Init updated web-socket-js correctly. TODO updates.

13 years agoDisable excanvas experiment.
Joel Martin [Fri, 2 Jul 2010 19:25:12 +0000 (14:25 -0500)]
Disable excanvas experiment.

Also, move bugs from TODO to github issues.

13 years agoA little more cleanup of browser table.
Joel Martin [Fri, 2 Jul 2010 17:50:34 +0000 (12:50 -0500)]
A little more cleanup of browser table.

13 years agoMore browser table cleanup.
Joel Martin [Fri, 2 Jul 2010 17:40:29 +0000 (12:40 -0500)]
More browser table cleanup.

13 years agoRemove unsupported table colors. Cleanup table.
Joel Martin [Fri, 2 Jul 2010 17:34:37 +0000 (12:34 -0500)]
Remove unsupported table colors. Cleanup table.

13 years agoREADME.md: try browser tests in table.
Joel Martin [Fri, 2 Jul 2010 17:25:13 +0000 (12:25 -0500)]
README.md: try browser tests in table.

13 years agoTest table in markdown.
Joel Martin [Fri, 2 Jul 2010 17:12:30 +0000 (12:12 -0500)]
Test table in markdown.

13 years agoREADME/TODO: Windows browser testing results.
Joel Martin [Fri, 2 Jul 2010 17:02:57 +0000 (12:02 -0500)]
README/TODO: Windows browser testing results.

13 years agoRebuild web-socket-js swf with gimite updates.
Joel Martin [Fri, 2 Jul 2010 15:50:52 +0000 (10:50 -0500)]
Rebuild web-socket-js swf with gimite updates.

Bug fixes, restore RFC2817 proxy for non wss://, and handle new closing
handshake from WebSockets 76.

13 years agoAdd global variable option for swf location.
Joel Martin [Fri, 2 Jul 2010 14:54:55 +0000 (09:54 -0500)]
Add global variable option for swf location.

The problem is, you can't set WebSocket.__swfLocation before you load
web_socket.js (because it creates the WebSocket global), but you also
can't reliably set WebSocket.__swfLocation after because if you are
doing dynamic script file includes then the onload (i.e.
WebSocket.__initialize) may fire before you have a chance to set
Websocket.__swfLocation.

13 years agoImport/merge gimite/web-socket-js up to da7caff96496c7d7bfb3.
Joel Martin [Fri, 2 Jul 2010 14:52:59 +0000 (09:52 -0500)]
Import/merge gimite/web-socket-js up to da7caff96496c7d7bfb3.

Bug fixes, restore RFC2817 proxy for non wss://, and handle new
closing handshake from WebSockets 76.

13 years agoClarify browser results in README.md
Joel Martin [Thu, 1 Jul 2010 17:18:18 +0000 (12:18 -0500)]
Clarify browser results in README.md

13 years agoRemove sequence code in client and proxies.
Joel Martin [Thu, 1 Jul 2010 17:13:17 +0000 (12:13 -0500)]
Remove sequence code in client and proxies.

13 years agoUpdate web-socket-js binary build and README.md
Joel Martin [Thu, 1 Jul 2010 17:04:26 +0000 (12:04 -0500)]
Update web-socket-js binary build and README.md

Brings it up to date with the most recent web-socket-js event handling
fixes.