summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* On-Demand Dynamic Receive Queue Resizingbug/dynamic-rq-resizeSolly Ross2015-12-222-17/+57
| | | | | | | This commit causes the receive queue to dynamically resize to fit incoming messages. Fixes #557
* Disable copyWithin Use in Websock.jsSolly Ross2015-12-221-2/+6
| | | | | | the `copyWithin` function of typed arrays has performance issues in some versions of Chromium, and doesn't doesn't have enough of a performance impact to justify leaving it enabled.
* Merge pull request #532 from kanaka/bug/pako-issueSolly2015-09-234-21/+39
|\ | | | | Make sure Pako always has enough room
| * Make sure Pako always has enough roombug/pako-issueSolly Ross2015-09-234-21/+39
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Moved resizeTimout to the UI object, no reason to have it outside anymore..samhed2015-09-221-7/+6
|/
* Merge pull request #524 from kanaka/bug/tight-buffer-overreadSolly2015-08-272-1/+5
|\ | | | | Fix buffer over-reads in handle_tight
| * Fix buffer over-reads in handle_tightbug/tight-buffer-overreadSolly Ross2015-08-262-1/+5
|/ | | | | | | | | | | | | | | For performance reasons, the `handle_tight` function skips the use of the receive queue API and uses the raw receive queue directly. Because of the way that typed array receive queue gets reused, this introduced the potential for buffer over-reads. To address this, a new function, `rQwhole`, was introduced. `rQwhole` simply returns a new view into the receive queue that starts at 0 and ends at the current recorded end of the queue. `handle_tight` now makes use of this function. Fixes #522
* Fix bug in non-true-color codeSolly Ross2015-08-242-4/+4
| | | | | | | | There was a bug caused by 38781d931ec18304f51ed3469faff8387e3cbc55 which prevented color map look-ups sent by rfb.js from working properly, since display.js expected a single-item array, and rfb.js sent just them item value itself (a number) instead. This fixes that, and tweaks the corresponding test to match that behavior.
* Tests: Fixed bug in displayed assertionSolly Ross2015-08-241-4/+9
| | | | | | This `displayed` assertion had a bug that was causing it to not actually check anything (it was using obj.length instead of data_cl.length). This fixes that.
* UI: Fix typo preventing reconnect after passwordSolly Ross2015-08-241-1/+1
| | | | | There was a typo in ui.js preventing the use of the connect button after a password was entered.
* Merge pull request #488 from kanaka/feature/more-perf-improvementsSolly2015-08-1426-1060/+3321
|\ | | | | Performance Improvements
| * Skip unnecessary render queue object creationfeature/more-perf-improvementsSolly Ross2015-08-062-74/+93
| | | | | | | | | | | | | | | | | | This commit skips object creation for the render queue when not needed. Instead of pushing an object onto the queue, and then immediately running the result, you call the function directly. Then, if the render queue is not empty, an object is created and pushed onto the queue. Otherwise, the functionality is just run directly.
| * Fix multi-line assertion messages in test runnerSolly Ross2015-08-061-1/+19
| | | | | | | | | | This commit prevents multi-line error messages from being truncated in the local test runner ('tests/run_from_console.js').
| * Allow the use of the PhantomJS remote debuggerSolly Ross2015-08-062-2/+15
| | | | | | | | | | | | | | This commit adds the '--debugger <port>' option, which triggers the PhantomJS remote debugger. The initial output of the terminal when running the debugger gives more information on how to use it.
| * Use Typed Arrays for the send queueSolly Ross2015-08-066-219/+280
| | | | | | | | | | | | | | This commit converts the send queue to use typed arrays, and converts message creation functions in 'rfb.js' to create messages directly into the socket's send queue. This commit also removes the separate mouse array, which is no longer needed.
| * Avoid Creating Small Objects FrequentlySolly Ross2015-08-063-57/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Creating lots of small objects frequently can drastically decrease performance. This commit introduces three fixes which avoid this: - Use a preallocated palette and indexed-to-rgb destination Typed Array (the destination typed array is currently allocated at `4 * width * height`). - Inline `getTightCLength`, which returned a two-item array. - Pass RGBX data directly in a Typed Array to the Display, which avoids an extra loop, and only creates a new Typed Array View, instead of a whole new ArrayBuffer.
| * Use Typed Arrays for the Websock receive queueSolly Ross2015-08-0615-712/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **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`.
| * Remove unecessarily nested loopSolly Ross2015-08-061-9/+10
| | | | | | | | | | This commit removes a nested loop in indexedToRGB, converting it into a plain loop without multiplication.
| * WIP: Switch to Pako for zlibSolly Ross2015-08-0612-14/+2495
| | | | | | | | | | This commit introduces an alternate implementation of the zlib decompressor based on Pako (https://github.com/nodeca/pako).
| * Fix RFB.js JSHint ErrorsSolly Ross2015-08-061-3/+3
| | | | | | | | | | This fixes a couple of JSHint errors in RFB.js caused by using `==` instead of `===`.
| * Fix up vnc_playback.html and playback.jsSolly Ross2015-08-062-10/+26
| | | | | | | | | | This commit fixes vnc_playback.html and playback.js so that they work with the current version of noVNC.
* | Only work with integers when panning to avoid getting a blurry image.samhed2015-08-141-3/+23
|/ | | | | Also disable image-smoothing to avoid bugs seen on Android which were also causing a blurry image while panning.
* CI: Switch to Container-Based TravisSolly Ross2015-08-061-0/+4
| | | | | | This commit switches the Travis tests over to Travis's new container-based infrastructure. It also tells Travis to cache the node_modules directory for faster setup.
* Merge pull request #499 from samhed/fullscreenSamuel2015-07-015-13/+93
|\ | | | | Add option to toggle fullscreen mode
| * * Hide the fullscreen toggle button on Safari since alphanumericalsamhed2015-06-252-16/+38
| | | | | | | | | | | | keyboard input doesn't work in fullscreen. * Force clipping mode in Internet Explorer while in fullscreen since scrollbars doesn't work in fullscreen.
| * Adapt display to be able to handle a changing clipping-setting while connectedsamhed2015-06-251-5/+6
| |
| * Fixes #498 - Add the ability to toggle fullscreen modesamhed2015-06-253-0/+57
|/
* Fix error from a previous commit, there is no data type called 'text'..samhed2015-06-251-1/+1
|
* Renamed popupStatusPanel to popupStatus and removed the global variablesamhed2015-06-253-37/+16
| | | | | which kept track on if it was open or not (it automatically closes after 1.5 seconds anyway).
* Clarified enableDisableClip (now called enableDisableViewClip) andsamhed2015-06-251-16/+17
| | | | moved it to where the other clipping functions are.
* Allow the popupStatusPanel to show any text but close it on a 1.5 second timer.samhed2015-06-251-3/+17
|
* Clarify code with regards to the viewport drag functionalitysamhed2015-06-241-31/+52
| | | | * Fixes #502 so that the viewport drag functionality can't get stuck
* Always show the viewport drag button on touch devices to keep the GUI fromsamhed2015-06-162-2/+15
| | | | | "jumping around". Enable/disable the button instead of show/hide on these devices.
* Merge pull request #497 from MOZGIII/MOZGIII-patch-vnc-auto-fixSolly2015-06-121-3/+2
|\ | | | | Fixed incorrect UI usage and minor updateState params errors in vnc_auto.html
| * Fixed incorrect UI usage and minor updateState params errors in vnc_auto.htmlMOZGIII2015-06-121-3/+2
|/
* Reverting most of commit cb3e4de. The issue was not related to using ↵samhed2015-05-191-0/+4
| | | | keyboardinputReset.. the issue was infact a typo which was introduced in 3b8ec46. I must be too tired..
* Stop using keyboardinputReset at the start of keyInputsamhed2015-05-191-5/+1
| | | | * This fixes backspace when using the on-screen keyboard on Android
* Update LICENSE.txtSamuel2015-05-051-1/+1
| | | Removed old no longer existing vnc.js and added playback.js
* Merge pull request #483 from fabian-z/masterSamuel2015-05-043-2/+3
|\ | | | | Make noVNC compatible with Content Security Policies
| * Move #keyboardinput declarations to base.css/ui.jsFabian Zaremba2015-05-043-2/+3
|/
* Re-fixes #428 which was broken by commit 58ded70samhed2015-04-292-1/+2
| | | | * Disable local cursor when the browser doesn't support data uri
* Merge pull request #415 from jimdigriz/fixesSolly2015-04-071-1/+1
|\ | | | | slip in PATH for 'npm test' as not everyone has karma
| * slip in PATH for 'npm test' as not everyone has karmaAlexander Clouter2014-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So people can follow the 'unit tests' instructions, we need to make sure PATH includes the karma bin directory otherwise we see the following: ---- aclouter@stevemcqueen:/usr/src/aten-ikvm/noVNC$ npm test > noVNC@0.5.0 test /usr/src/aten-ikvm/noVNC > karma start karma.conf.js sh: 1: karma: not found npm ERR! Test failed. See above for more details. npm ERR! not ok code 0 ----
* | Merge pull request #474 from kanaka/bug/throw-error-from-constructorSolly2015-03-277-102/+115
|\ \ | | | | | | Throw exceptions from RFB constructor
| * | Throw exceptions from RFB constructorbug/throw-error-from-constructorSolly Ross2015-03-263-48/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if an error was thrown from the Display constructor in the RFB constructor, we would attempt to use `RFB#updateState` to handle this. However, `RFB#updateState` attempts to close the WebSocket connection, which doesn't exist at this point. In the constructor, it's probably just better to raise an exception instead (making sure to clean up anything relevant). Fixes #460
| * | Create RFB object on connectbug/auth-errors-not-displayedSolly Ross2015-03-265-55/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In e543525faa9cf0d683f41e183e89cd909f3dd229, we switched to creating a new RFB object on disconnect. This caused issues, however, since any errors were only displayed briefly before the new "loaded" text was displayed instead. Now, we create the RFB object on connect. This essentially removes the usefulness of the "loaded" state, but prevents the aforementioned problem. To facilitate this, the code which does detection of cursor URI support was moved from this Display constructor (which now calls the new function) into its own function, `Util.browserSupportsCursorURIs()`. Fixes #467
* | | Merge pull request #475 from kanaka/bug/follow-symlinks-for-hereSolly2015-03-271-1/+2
|\ \ \ | |/ / |/| | Follow symbolic links in launch.sh
| * | Follow symbolic links in launch.shbug/follow-symlinks-for-hereSolly Ross2015-03-261-1/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | Previously, in launch.sh, `$HERE` was the directory of `$0`. However, if `$0` was actually a symlink, `$HERE` would be wherever the symlink was, which could cause issues (for example, the script wouldn't be able to local `$WEB` or `$WEBSOCKIFY` properly). Now, `$HERE` looks at whatever `$0` points at instead. Closes #447.
* | Make getCanvasLimit more efficient by only calling getPosition once.samhed2015-03-111-2/+3
| |
* | Merge pull request #464 from kanaka/bug/firefoxresizeSolly2015-03-107-150/+256
|\ \ | | | | | | Fix resize in Firefox on Android