- 23 Sep, 2010 1 commit
-
-
Joel Martin authored
- 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.
-
- 08 Sep, 2010 1 commit
-
-
Joel Martin authored
-
- 31 Aug, 2010 1 commit
-
-
Joel Martin authored
When the documement/window is scrolled, the onMouseDisable routine was not properly calculating the position to test whether to ignore the event or not.
-
- 26 Aug, 2010 1 commit
-
-
Joel Martin authored
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.
-
- 04 Aug, 2010 2 commits
-
-
primalmotion authored
(cherry picked from commit 11f3271a52505dccbf38bea422e7c9a79dddd478) Signed-off-by:
Joel Martin <github@martintribe.org>
-
primalmotion authored
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>
-
- 02 Aug, 2010 2 commits
-
-
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.
-
Joel Martin authored
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.
-
- 30 Jul, 2010 1 commit
-
-
Joel Martin authored
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.
-
- 22 Jul, 2010 2 commits
-
-
Joel Martin authored
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.
-
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.
-
- 20 Jul, 2010 1 commit
-
-
Joel Martin authored
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).
-
- 06 Jul, 2010 1 commit
-
-
Joel Martin authored
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
-
- 02 Jul, 2010 1 commit
-
-
Joel Martin authored
Also, move bugs from TODO to github issues.
-
- 01 Jul, 2010 1 commit
-
-
Joel Martin authored
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.
-
- 29 Jun, 2010 1 commit
-
-
Joel Martin authored
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.
-
- 24 Jun, 2010 1 commit
-
-
Joel Martin authored
-
- 23 Jun, 2010 1 commit
-
-
Joel Martin authored
Now working under Arora 0.5. But not Konqueror 4.2.2 (WebSockets never connects). IE support with excanvas still pending.
-
- 15 Jun, 2010 3 commits
-
-
Joel Martin authored
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.
-
Joel Martin authored
On path towards removing dependency on mootools in non-UI code.
-
Joel Martin authored
-
- 14 Jun, 2010 1 commit
-
-
Joel Martin authored
-
- 10 Jun, 2010 2 commits
-
-
Joel Martin authored
-
Joel Martin authored
- Implement resizing of desktop pseudo-encoding. - Also send lowest (fastest) compression level pseudo-encoding. Ought be user tweakable.
-
- 03 Jun, 2010 1 commit
-
-
Joel Martin authored
From kevinychan/vnc-html5 ebfffdc36.
-
- 01 Jun, 2010 1 commit
-
-
Joel Martin authored
In colourMap mode there are 256 colours in a colour palette sent from the server via the SetColourMapEntries message. This reduces the bandwidth by about 1/4. However, appearance can be somewhat less than ideal (pinks instead of gray, etc). It also increases client side rendering performance especially on firefox. Rendering a full 800x600 update takes about 950ms in firefox on my system compared to about 1400ms. Round-trip time for a full frame buffer update is even better on firefox (due to performance of the flash WebSocket emulator). Reduced from about 1800ms to 1100ms on firefox (for 800x600 full update).
-
- 26 May, 2010 1 commit
-
-
Joel Martin authored
The purpose of the code is to be incorporated into other web projects (whether those are free or not). AGPL prevents combination with other HTML and javascript that is under a weaker (or proprietary) license. Better would be a lesser AGPL, but there is not GNU standard for that. So LGPL-3 meets most of my requirements. If somebody modifies the actual client code and conveys it, then they must release the changes under LGPL-3 also. Add some implementation notes in docs/notes.
-
- 25 May, 2010 1 commit
-
-
Joel Martin authored
-
- 20 May, 2010 1 commit
-
-
Joel Martin authored
-
- 17 May, 2010 1 commit
-
-
Joel Martin authored
- By dereferencing the 'data' field of the imageData object before the loop, the hextile performance on Chrome is down to 140ms or so for a full 800x600 update. Still have to fall back to Canvas operations for firefox. - Fix RQ empty after reorder bug.
-
- 15 May, 2010 4 commits
-
-
Joel Martin authored
-
Joel Martin authored
-
Joel Martin authored
Fixes: - Make sure that failed state messages stay around until next connect. - Get status message font colors working. - Clear RQ_reorder list on re-connect.
-
Joel Martin authored
- For webkit engines, do array manipulation for each tile subrectangle and only use the array for putImageData after rendering is finished. In Chrome 5.0.375.29 beta, the time to render a full 800x600 hextile image dropped from 500ms to 250ms or so. Firefox 3.5.3 rendering of a full 800x600 hextile image is about 2300ms.
-
- 18 Apr, 2010 2 commits
-
-
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).
-
Joel Martin authored
-
- 15 Apr, 2010 1 commit
-
-
Joel Martin authored
-
- 14 Apr, 2010 3 commits
-
-
Joel Martin authored
- Mouse movements are accumulated and sent about 5 times a second. - Normal polling happens at about 1.5 seconds intervals. This commit represents a very functional VNC client under Google Chrome. Remaining work: - Cut and paste support. - Framing bugs when using RRE encoding. - Better status and error feedback. - Get working in firefox using flash web-socket-js: http://github.com/gimite/web-socket-js - Version without mootools (but test cross-browser).
-
Joel Martin authored
- Also, try making set fillStyle called less often.
-
Joel Martin authored
-