Commit Graph

890 Commits

Author SHA1 Message Date
Joel Martin 5ba1dd78ba README/TODO: Windows browser testing results. 2010-07-02 12:02:57 -05:00
Joel Martin 2ca053affc Rebuild web-socket-js swf with gimite updates.
Bug fixes, restore RFC2817 proxy for non wss://, and handle new closing
handshake from WebSockets 76.
2010-07-02 10:50:52 -05:00
Joel Martin 1144eaa37a 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.
2010-07-02 09:54:55 -05:00
Joel Martin b9633f8bfd 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.
2010-07-02 09:52:59 -05:00
Joel Martin e091b47a9f Clarify browser results in README.md 2010-07-01 12:18:18 -05:00
Joel Martin a94699265e Remove sequence code in client and proxies. 2010-07-01 12:13:17 -05:00
Joel Martin 2b71a4db58 Update web-socket-js binary build and README.md
Brings it up to date with the most recent web-socket-js event handling
fixes.
2010-07-01 12:04:26 -05:00
Joel Martin bc8e3d4db7 Opera fixes and big Opera performance boost.
Add message/state pollling in web-socket-js. Since Opera tends to drop
message events, we can dramatically increase performance by polling
every now for message event data.

Also, add more direct calls to update readyState so that it's not
missed when Opera drops events.
2010-07-01 11:54:44 -05:00
Joel Martin 4a96178307 Better web-socket-js dataQueue reset.
At connect and close time instead of initialization time.
2010-07-01 10:35:03 -05:00
Joel Martin 9479c72083 web-socket-js event fixes.
When using web-socket-js, the onopen event may happen inline so the
caller may not have time to set onopen before the event fires. In this
case set a short timeout and try again. In particular this affects
Opera most of the time.

Also, to get around Opera event droppings, always read the readyState
directly instead of relying on the local readyState variable to be
correct (which it isn't if stateChange event were dropped).
2010-07-01 10:32:14 -05:00
Joel Martin 6713418413 Always prefer JS ops if we have imageData.
All browsers with Canvas imageData are faster with JS ops instead of
canvas ops. This gives significant performance improvement in Opera.
Except for missing web-socet-js message notifications, Opera 10.60 is
now faster than firefox 3.5.
2010-07-01 10:30:07 -05:00
Joel Martin a93c955538 Opera works! Fix message event drops/reorders.
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.
2010-07-01 09:53:38 -05:00
Joel Martin 1eba7b4279 Update C proxy to WS protocol version 76.
Pull in LGPL md5.c and md5.h files (written by Ulrich Drepper).

Now both python and C version of the proxy support both protocol 75
and protocol 76 (hybi 00).

Reorganize websocket.py slightly to match websocket.c.
2010-06-30 20:39:41 -05:00
Joel Martin 5235b29ddf Significant firefox perf improvement. Update TODOs.
Interesting. Enough has changed in the Canvas tile operations, that
Canvas.prefer_js=true is better for firefox/gecko too. Approximately
2X improvement in firefox for large hextile renders.
2010-06-29 14:36:18 -05:00
Joel Martin dfa8db8f38 Fix issue #7: security scheme list parsing.
Also, lower connect timeout to 2 seconds.
2010-06-26 17:41:39 -05:00
Joel Martin c3785ae12b Remove proxy handshake debug. 2010-06-24 18:45:30 -05:00
Joel Martin ad8734937e Add WebSockets spec links. 2010-06-24 18:42:45 -05:00
Joel Martin 9e2f775d42 Add missing full GPL-3 text. 2010-06-24 18:04:40 -05:00
Joel Martin 48eed1ac05 Refactor canvas imageData test slightly. 2010-06-24 17:09:54 -05:00
Joel Martin 486cd527f2 Support WebSockets 76 (hixie-76, hybi-00).
Looks like disabling web-socket-js debug messages by default that we
get a minor speedup.

Python proxy should support both 75 and 76 (00) modes. Also, update ws
test to more reliably hit the WebSockets ordering/drop issue.
2010-06-24 17:04:57 -05:00
Joel Martin 7dfa20b8fd Remove invalid pos check from web-socket-js. 2010-06-24 17:01:58 -05:00
Joel Martin 094b489b76 Missed change web-socket-js to dd80a1807758abfab4a0fde840f94c5d649e4a24. 2010-06-24 17:00:41 -05:00
Joel Martin 2ddd6214a5 Add web-socket-js debug flag and default to off. 2010-06-24 16:59:53 -05:00
Joel Martin 76053e2bae Squelch MD5.as build warnings. 2010-06-24 16:58:24 -05:00
Joel Martin 0e9b61d209 TODO: Test IE 9 preview 3. 2010-06-24 12:55:26 -05:00
Joel Martin 35f5b11ce5 Update gimite/web-socket-js to dd80a1807758abfab4a0fde840f94c5d649e4a24 2010-06-24 12:42:34 -05:00
Joel Martin 48ffd4bcc7 TODO: already got Arora 0.5 working. 2010-06-24 11:19:19 -05:00
Joel Martin 5d41cbb278 TODO (WebSockets version 76) and Opera/Arora. 2010-06-24 11:12:49 -05:00
Joel Martin 7325b930f2 Add proxy functionality description. 2010-06-24 10:50:36 -05:00
Joel Martin d93d3e09ab Various cross-browser fixes.
Now working under Arora 0.5.

But not Konqueror 4.2.2 (WebSockets never connects).

IE support with excanvas still pending.
2010-06-23 16:08:36 -05:00
Joel Martin 11bb7a4ae4 Fix browser detection code in IE. 2010-06-21 16:30:32 -05:00
Joel Martin 3915e5365e Update README.md with browser support. 2010-06-21 13:20:57 -05:00
Joel Martin 3b7575b219 Better support console debug under Opera (DragonFly). 2010-06-20 15:10:34 -05:00
Joel Martin 2a4e7d8a93 Timeout connection. 2010-06-18 15:18:41 -05:00
Joel Martin 146071161f Update usage and README.md. 2010-06-17 17:50:15 -05:00
Joel Martin 5c34ce4beb More arg processing fixes. 2010-06-17 17:24:54 -05:00
Joel Martin ee26cbf24d Argument processing fixes. Misc proxy fixes. 2010-06-17 17:05:33 -05:00
Joel Martin 6ee61a4cf6 Add daemonization support to wsproxy.*.
Refactor how settings are passed around.
2010-06-17 16:06:18 -05:00
Joel Martin b2fd1bc374 Update TODO. 2010-06-17 09:31:13 -05:00
Joel Martin 459b2578b2 Force SSL option to proxies. Use getopt_long. 2010-06-16 13:58:00 -05:00
Joel Martin 8ef9ae8c96 Update TODO. 2010-06-16 13:57:10 -05:00
Joel Martin b0696c4473 Better C proxy host resolution.
Use getaddrinfo instead of gethostbyname.
2010-06-16 13:11:07 -05:00
Joel Martin f2898eabd3 Add listen address to proxy (C and python).
This allows forwarding from an external port to the same port on
localhost (loopback). I.e.

./utils/wsproxy `hostname -f`:5901 localhost:5901
2010-06-16 12:37:03 -05:00
Joel Martin f755ca9631 Remove debug sendCtrlC function. 2010-06-16 09:48:49 -05:00
Joel Martin 160fabf65c Disabled ctrlAltDel button when N/A. 2010-06-15 17:56:38 -05:00
Joel Martin 63708ff5a8 Add CtrlAltDel send button to status bar.
Some default_controls.js jslinting.

Needs to be some modularity between controls you probably always want
(like sending CtrlAltDel) and how the interface is presented and
controlled.
2010-06-15 17:47:01 -05:00
Joel Martin 15046f0042 No mootools dep outside of default_controls.js.
Some basic functions from mootools implemented in util.js.

Also, some more DOM separation. Move clipboard focus logic into
default_controls and canvas and out of vnc.js.

JSLint cleanup.
2010-06-15 15:21:41 -05:00
Joel Martin 61dd52c983 Add mouse position routines to util.js.
On path towards removing dependency on mootools in non-UI code.
2010-06-15 11:10:18 -05:00
Joel Martin e2e7c22494 Move DOM event handling from vnc.js to canvas.js. 2010-06-15 09:36:23 -05:00
Joel Martin 96a6eaadbc Move vnc.js into include directory.
Also, allow 'include/' to be overridden in VNC_uri_prefix.
2010-06-14 14:56:19 -05:00