Commit Graph

182 Commits

Author SHA1 Message Date
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
Joel Martin
2152a88f5c Add summary timing info on disconnect.
Also, move Frame Buffer Update code out of normal_msg into separate
function.
2010-06-14 14:43:21 -05:00
Joel Martin
30e5396326 Less debug output. 2010-06-14 14:42:34 -05:00
Joel Martin
a4807656a2 Move cert gen to Usage section of README.md. 2010-06-14 14:34:05 -05:00
Joel Martin
6a52558dd8 Render PNG images in order. Update TODO. 2010-06-13 11:00:12 -05:00
Joel Martin
3954ae149a Fix mouse focus issues. 2010-06-13 10:57:23 -05:00
Joel Martin
888d5813ed Fix scrolled mouse position. 2010-06-10 16:05:15 -05:00
Joel Martin
4b4496ad67 DesktopResize and compression level pseudo-encodings.
- Implement resizing of desktop pseudo-encoding.

- Also send lowest (fastest) compression level pseudo-encoding.
  Ought be user tweakable.
2010-06-10 15:44:42 -05:00
Joel Martin
8a8370060e More dynamic encoding list handling. 2010-06-10 12:11:13 -05:00