Commit Graph

510 Commits

Author SHA1 Message Date
Solly Ross 67685d0700 Fix missing mistyped setTimeout handler in UI
This commit fixes a mistyped setTimeout handler that would result
in the desired function not getting called (due to a missing set
of parentheses).  It also removes some uncessary anonymous functions,
and just passes the function objects directly to setTimeout.
2016-07-01 15:42:14 -04:00
samhed b2cdd55859 Proper error handling for tight filters
Don't throw an exception when we encounter an unsupported tight
subencoding.
2016-06-10 17:15:42 +02:00
samhed 5fd3f88e50 Merge branch 'ui-cleanup' of https://github.com/kanaka/noVNC 2016-06-03 10:46:05 +02:00
Samuel ae11605141 Split the setDesktopSize function (#618)
In order to follow the surrounding coding-standards, the
setDesktopSize client message is split from the public function which
now is called requestDesktopSize().
2016-06-02 22:37:52 +02:00
Samuel Mannehed 3f2c25a60f Use a consistent naming convention for elements
* Element names we use "_" as word-delimiter, not "-"
* Element names use less camel-case
* Element names end with the type
* Element names always start with noVNC_
2016-05-27 16:14:25 +02:00
Samuel Mannehed 682fd02be6 Change the names of settings-elements
This change was made in order to make it easier to distinguish
settings-elements from other elements. One example of the problem
that was solved is the two elements "noVNC_clip" and
"noVNC_clipboard" where the first is the setting for clipping mode.
That element was now renamed to "noVNC_setting_clip".
2016-05-27 16:12:32 +02:00
samhed a20a898765 Timeouts should always use anonymous functions
While you CAN pass functions in strings, it is not the correct way
of doing it. The browsers are just being nice.
2016-05-27 16:12:31 +02:00
samhed 4d26f58e0d Change name of clipboard functions
There were a high risk of confusion between clipboard functions and
clipping functions.
2016-05-27 16:11:47 +02:00
samhed 95dd60011c Group together related functions and add dividers
Dividers between the different parts of the UI has been added in
order to easier get an overview.
2016-05-12 16:56:50 +02:00
samhed afcf031a68 Send the xvp keys from anonymous functions 2016-05-12 16:56:50 +02:00
samhed fdf21468d3 Renamed and moved keyboard and mouse functions 2016-05-12 16:56:50 +02:00
samhed 9e45354efc Renamed and moved updateXvpButton 2016-05-12 16:56:50 +02:00
samhed ab81ddf5d4 Move the connect and disconnect functions 2016-05-12 16:56:50 +02:00
samhed e00698fef8 Clarify comments and variable names for viewDrag 2016-05-12 16:56:50 +02:00
samhed cd611a5326 Renamed showExtraKeys to toggleExtraKeys 2016-05-12 16:56:50 +02:00
samhed 4e471b5b55 Moved and split the popupStatus function
Now if popupStatus is called twice it will refresh the duration of
the popup. If you want to wait 1.5 seconds and close the popup you
can click the popup itself.
2016-05-12 16:56:50 +02:00
samhed 45c70c9e23 Moved and changed order of the setting-functions 2016-05-12 16:56:50 +02:00
samhed 0bd2cbacaa Remove whitespace from function definitions 2016-05-12 16:56:50 +02:00
samhed 29475d7728 Moved UpdateState and UpdateVisualState 2016-05-12 16:56:49 +02:00
samhed 777cb7a0c5 Cleanup for the resize related functions
Renamed functions, added clarifying comments and moved the resize
related functions closer to the other viewport functions.
2016-05-12 16:56:49 +02:00
samhed 553864e858 Switch names between the container and the screen
The noVNC_container now contains the logo and the screen. While the
noVNC_screen in turn contains the canvas.
2016-05-12 16:56:49 +02:00
samhed f52105bc88 Add fallback value for devicePixelRatio
In IE 10 for example, devicePixelRatio doesn't exist which caused the
code to fail by setting the thresholds to zero.
2016-05-12 16:43:19 +02:00
Drew DeVault f6a29ddeeb Fix occasional error with sending while readyState !== 1
Under certain conditions, noVNC would attempt to flush the web socket
while it was disconnected, before the disconnected state was picked up.
This casues noVNC to crash ungracefully and the parent window is not
notified - leading to no chance at recovery without a page refresh.
2016-04-30 02:26:17 +02:00
samhed 32df3fdbe1 Add a threshold for viewport dragging (#600) 2016-04-28 17:41:48 +02:00
Jonathan Bennett 27e77d468f Adds tap-to-click in viewport drag mode (#600) 2016-04-28 13:46:40 +02:00
samhed f620259bc5 Force clipping mode in Safari on all platforms 2016-04-25 16:38:23 +02:00
samhed 529c64e103 Re-arrange global UI variables 2016-04-25 16:35:49 +02:00
Jonathan Bennett 3c9558444c Adds missed line from PR 597 2016-04-13 12:53:37 -05:00
Jonathan Bennett c8294760b1 Handle missing leading slash in elem.pathname
IE11 with compat mode turned off has been observed displaying this behavior.  This commit checks for and corrects this broken behavior.

Fixes #591
2016-04-12 11:00:28 -05:00
Solly Ross 7bc383e8b6 Make sure to copy arrays when using render queue
This commit ensures that input arrays are copied to new storage when
they are pushed onto the render queue.  This ensures that they are
not overwritten before they are eventually used.

Fixes #571
2016-02-24 16:29:34 -05:00
Solly Ross 670dbddb54 Merge pull request #568 from kanaka/refactor/remove-refs-to-jsunzip
Cleanup/fixup unused code

Remove jsunzip, remove unused vars, fix vnc_perf.html
2016-01-06 16:01:50 -05:00
Miguel Xavier Penha Neto c55f05f619 Pass token into the path variable
If a token is already present in the path, the new variable
is ignored.  In order to properly manipulate the path,
a new method, `WebUtil.injectParamIfMissing` was introduced.

Fixes #536

[@directxman12: fix up path manipulation logic]
2016-01-06 15:56:28 -05:00
Solly Ross 28646d978f Merge pull request #547 from pigshell/hashargs
Add hash fragment as an optional method to supply config variables.

Closes #544
2016-01-06 14:22:24 -05:00
Solly Ross 464944844f Remove unused variables in the TIGHT server init
This commit removes some unused variables in the TIGHT server init
section of the server init handler, replacing them with documenting
comments and calls to rQskipBytes.

Fixes #440.
2016-01-06 11:18:47 -05:00
Solly Ross 0252c7f766 Remove remaining references to jsunzip.js
This commit removes remaining references to jsunzip.js,
which is no longer actually used in noVNC.

Closes #436.
2016-01-06 11:10:26 -05:00
Solly Ross 7e4475fa92 Merge pull request #565 from kanaka/bug/dynamic-rq-resize
Resize Receive Queue to Fit Incoming Messages
2016-01-05 14:28:01 -05:00
Solly Ross 40037b6a29 On-Demand Dynamic Receive Queue Resizing
This commit causes the receive queue to dynamically
resize to fit incoming messages.

Fixes #557
2015-12-22 16:05:33 -05:00
Solly Ross c8f14d175b Disable copyWithin Use in Websock.js
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.
2015-12-22 13:51:30 -05:00
Ganesh Varadarajan 494b407a0a Add hash fragment as an optional method to supply config variables.
Any config variable like host, port, password, token may be
specified either in the query string (like now), or in the URL hash
fragment. In case a given variable is present in both, the value in the
fragment takes precedence. Supplying variables in the fragment avoids
leaking them to the web server hosting the noVNC viewer HTML.
2015-10-23 18:54:08 +05:30
Daniël van de Giessen 3e3df4dbb1 Added return to correctly wait for password input before proceeding. Fixes #542 2015-10-16 16:46:10 +02:00
Solly a0e7ab43dc Merge pull request #532 from kanaka/bug/pako-issue
Make sure Pako always has enough room
2015-09-23 11:29:43 -04:00
Solly Ross c802d93189 Make sure Pako always has enough room
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
2015-09-23 09:53:00 -04:00
samhed 045d922406 Moved resizeTimout to the UI object, no reason to have it outside anymore.. 2015-09-22 14:59:44 +02:00
Solly Ross 89bdc8ce48 Fix buffer over-reads in handle_tight
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
2015-08-26 14:31:23 -04:00
Solly Ross a369a80c24 Fix bug in non-true-color code
There was a bug caused by 38781d931e
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.
2015-08-24 19:34:30 -04:00
Solly Ross 340290fa1d UI: Fix typo preventing reconnect after password
There was a typo in ui.js preventing the use of the connect button
after a password was entered.
2015-08-24 16:41:00 -04:00
Solly abf2b09ea7 Merge pull request #488 from kanaka/feature/more-perf-improvements
Performance Improvements
2015-08-14 11:56:57 -04:00
samhed a825582196 Only work with integers when panning to avoid getting a blurry image.
Also disable image-smoothing to avoid bugs seen on Android which were
also causing a blurry image while panning.
2015-08-14 17:02:00 +02:00
Solly Ross f00193e08f Skip unnecessary render queue object creation
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.
2015-08-06 14:47:03 -04:00
Solly Ross 9ff86fb718 Use Typed Arrays for the send queue
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.
2015-08-06 14:47:03 -04:00