Commit Graph

221 Commits

Author SHA1 Message Date
Samuel Mannehed daff988e17 Remove X-UA-Compatible meta tag
It's only required if we wanted support IE8, IE9 or older. We require at
least IE11 at the moment.
2019-03-14 14:13:27 +01:00
Samuel Mannehed 80c52ba7cb Add default language 2019-03-14 14:13:27 +01:00
Sebastian Safari 3e835a5d37 Add Windows Key Feature 2019-01-08 06:57:12 -08:00
Solly Ross 84586c0f17 Change copyright header (#1138)
* Change copyright header

This updates the copyright header to say "The noVNC Authors".  People
who previously had copyright listings are now under the AUTHORS file.
2018-10-09 12:15:35 +02:00
Alexander E. Patrakov 4c38179d15 Show dot when there is no visible cursor
Disabled by default.
2018-09-14 20:31:59 +05:00
Samuel Mannehed b3ac94a978 Remove firebug comments
Firebug is discontinued and it's features are included in browser
development tools now a days.
2018-08-08 14:05:06 +02:00
Samuel Mannehed eebef339be Detail path to icon Makefile 2018-08-08 14:04:45 +02:00
Pierre Ossman 42463da166 Temporarily disable SVG favicon
Firefox currently has a bug where it prefers the SVG icon over a
more exact size. This results in a poorly rendered, downscaled icon.
So disable the SVG icon until this has been fixed.

Firefox bug:

https://bugzilla.mozilla.org/show_bug.cgi?id=1419039
2018-01-25 15:19:12 +01:00
Pierre Ossman 9b84f51685 Move resize handling in to RFB object
Makes the API simpler and makes it easier for other frontends to
get this functionality.
2017-12-06 11:29:57 +01:00
Pierre Ossman 002907d2ce Remove "downscale only" mode
The normal scaling mode should be sufficient for most use cases, so
let's keep the interface simple.
2017-11-09 13:13:41 +01:00
Pierre Ossman 8d1f0a3de8 Remove local cursor setting
We have no reason to disable this except for touch devices, which
we can handle without having a setting for it.
2017-11-09 13:13:41 +01:00
Pierre Ossman cd523e8f28 Make power API generic
Decouple it from XVP and make it a generic API.
2017-11-09 12:47:21 +01:00
Pierre Ossman 458086177c Let RFB object make sure canvas can have focus
Let's set up things properly ourselves instead of forcing everyone
to create their canvas element just like we want it.
2017-10-18 17:01:34 +02:00
Pierre Ossman 4c11755ce7 Merge branch 'focus' of https://github.com/CendioOssman/noVNC 2017-10-18 15:12:46 +02:00
Pierre Ossman 3e093af55d Don't let the hidden input field be a tab stop
It's very confusing if you tab between elements and all of a sudden
something hidden gets focus.
2017-10-18 15:08:33 +02:00
Pierre Ossman 2afda54456 Only grab key events on canvas
Give the canvas proper focus handling. This avoids messy logic that
needs to disable and enable event handling when we want to interact
with other UI elements.

It also makes sure we can properly inhibit the browser from triggering
local actions on key presses.
2017-10-18 15:07:17 +02:00
Pierre Ossman bf82644461 Get proper same-origin behaviour when loading modules
The browsers currently do not default to same-origin behaviour for
modules, so we need to be explicit in order for necessary
credentials to be passed along. This seems to be changing though,
but we need to wait for the browsers to actually roll out more
lenient defaults:

https://github.com/whatwg/fetch/pull/585
2017-10-09 16:00:38 +02:00
Samuel Mannehed a49ade5fa0 Rename setting_clip to setting_view_clip
Clarifies the purpose of the setting in order to avoid mix ups with
clipboard related things.
2017-09-07 09:01:52 +02:00
Samuel Mannehed bbc1648c7a Add hint that the control bar can be moved
The control bar can be dragged to the other side, this isn't obvious
however. This adds a hint on the opposite side in the form of a subtle
glowing half-ellipse.
2017-05-29 15:57:13 +02:00
Pierre Ossman 26586b9ddf Remove colour map support
It was broken and unused. Remove it so we can simplify the code.
2017-05-04 15:13:33 +02:00
Pierre Ossman 36bdf13654 Only load ES6 module loader polyfill if needed
Safari now has native support for modules, so we need to make sure
we only load our polyfill when actually needed.
2017-04-28 14:44:00 +02:00
Pierre Ossman 13c558e3a0 Limit fallback error width to window width
Change the layout a bit to make sure the entire message can be read.
2017-03-27 16:29:38 +02:00
Solly Ross 152c399513 Vendor in an IE11 polyfill for Promises
This commit introduces a polyfill to add support for Promises in IE11.
This means IE11 can be tested without first running
`utils/as_require.js`.
2017-03-21 17:39:07 -04:00
Solly Ross adfc9d3f54 Move error handler into separate file
This commit moves the global error handler into a separate file,
so that it can catch module loading errors.

This also adds support for properly displaying error messages with
newlines in them (since the module loader may throw those)
2017-03-21 17:39:07 -04:00
Solly Ross c53af3f5f6 Move scripts in vnc.html head
This commit moves the vnc.html scripts into head.
2017-03-21 17:39:07 -04:00
Solly Ross 399fa2ee2d Optimize ES6 Module Loader Polyfill
This commit makes the ES6 module loader polyfill use Web Workers,
so that Babel doesn't block the browser from animating.  It also
uses localStorage to cache the compiled results, only recompiling
on source changes, so it makes loading faster while developing noVNC.

This includes a vendored copy of the ES6 module loader, modified as
described above.
2017-03-21 17:39:07 -04:00
Solly Ross e25f9c4010 Use transition animation while loading
This shows the transition animation while loading, so users can see
something is going on.
2017-03-21 17:39:07 -04:00
Solly Ross 4faaf43176 Use ES6 modules natively via Polyfill
This commit introduces the "Browser ES Module Loader" polyfill
to support developing with native ES6 modules, without any compilation
step (files are passed through Babel in the browser).  This should not
be used in production -- a pre-compiled version passed through babel
ahead of time (as produced by the `npm install` hook or
`utils/use_require.js`) should be used instead.
2017-03-01 11:21:34 -05:00
Samuel Mannehed 7a005a1b18 Merge branch 'disableLabels' of https://github.com/samhed/noVNC
Closes pull request #776
2017-02-24 15:13:09 +01:00
Pierre Ossman 6e8a8c8df1 Remove 512x512 icon
It is not a launcher icon, but rather used for display on Google
Play. As such it is not needed and removing it mitigates the issue
of some buggy browsers downloading each and every listed icon.
2017-02-23 16:29:16 +01:00
Samuel Mannehed 6c857dc50c Set input type number for port & reconnect_delay 2017-02-21 11:57:24 +01:00
Pierre Ossman 84b05d24b0 Allow submitting the password from the input field 2017-02-03 13:19:15 +01:00
Samuel Mannehed dceda58642 Save settings immediately
Retire the old settingsApply. This also allows UI logic to check the
state of things using the settings instead of having to look at the
values of HTML elements (we couldn't be sure if the changes were
applied yet or not).
2017-01-27 16:20:33 +01:00
Alexander Neumann 044d54ed62 Add reconnect option
Add an option to automatically reconnect after a delay when the
connection is closed.

Closes #746
2017-01-23 11:42:41 +01:00
Pierre Ossman cac935ffc2 Clean up z index ordering
We have enough layers now that we need to have some system for this.
E.g. make sure that dialogs during connect show up in front of the
blocking transition layer.
2017-01-04 15:05:59 +01:00
Pierre Ossman b3c932c386 Make connect button more prominent
It's generally the only thing the user needs to click on, so make
sure it clearly stands out.
2017-01-04 15:05:58 +01:00
Pierre Ossman 512d3605ad Remove connect dialog
It only contained a password field, which might not be needed, and
is handled by a separate dialog if it is.
2017-01-04 15:05:01 +01:00
Pierre Ossman 13304bacd0 Group rarely changed settings together 2017-01-04 15:05:01 +01:00
Pierre Ossman 575f69832d Group WebSocket settings together
It was easy to confuse them as being VNC settings, so keep them all
under one group.
2017-01-04 15:05:01 +01:00
Pierre Ossman 340d9d66cc Remove alternative style sheets
Anyone with basic knowledge of CSS will easily figure out how to
customise the appearance of the UI, so remove the burden of having
to maintain these extra style sheets.
2017-01-04 15:05:01 +01:00
Pierre Ossman 58fc267b2b Remove unused token setting 2017-01-04 15:05:01 +01:00
Samuel Mannehed d8ff7c9ed6 Further fixes for fallback error handler
Layout improvements as well as an check for ErrorEvent.error as it is
not standardized.
2016-11-28 12:33:42 +01:00
Pierre Ossman edffd9e2f8 Also translate HTML elements 2016-11-19 13:23:00 +01:00
Samuel Mannehed d24de750b1 Add fallback handling for uncought errors 2016-11-10 14:33:23 +01:00
Pierre Ossman 8d710e8b18 Blocking transition screen when connecting/disconnecting 2016-11-08 14:54:48 +01:00
Pierre Ossman 1351544e9f Remove iOS startup image
Apple seems to have removed this feature from iOS 9.
2016-10-14 15:46:08 +02:00
Pierre Ossman 2b4e6ed523 Clean up page icon ("favicon") handling
Makes sure we use standardised formats and references, and makes sure
we have all the sizes we might need.
2016-10-14 13:24:35 +02:00
Solly Ross ca99791caa Merge pull request #665 from CendioOssman/bell
Support RFB bell
2016-09-30 19:37:09 -04:00
Samuel Mannehed 667a83e65a Merge branch 'toolbar' of https://github.com/CendioOssman/noVNC 2016-09-30 21:36:00 +02:00
Samuel Mannehed 86c67404c9 Remove spaces from clipboard element 2016-09-27 16:06:16 +02:00
Pierre Ossman 5454c34511 Add headings to panels 2016-09-23 14:39:22 +02:00
Pierre Ossman 1fe9faee6c Clean up panel layouts
Make sure everything follows a consistent style and is properly
labeled.
2016-09-23 14:39:21 +02:00
Pierre Ossman ca25d2ae26 Move Ctrl+Alt+Del to extra keys menu
The extra keys menu is now present for all devices, so avoid clutter
by moving the Ctrl+Alt+Del button there as well.
2016-09-23 14:39:21 +02:00
Pierre Ossman cd5a035d90 Make sure all buttons have a tooltip 2016-09-23 14:39:21 +02:00
Pierre Ossman 65e3d7d6a6 Make control bar handle easier to hit on mobile 2016-09-23 14:39:21 +02:00
Pierre Ossman 38323d4d92 Add handle to open and close the control bar 2016-09-23 14:39:21 +02:00
Pierre Ossman 4d3aa0ef9d Add logo to control bar 2016-09-23 14:39:21 +02:00
Pierre Ossman fb7c3b3be2 Change control bar to a smaller left-side toolbar 2016-09-23 14:39:21 +02:00
Pierre Ossman 6244e383e4 Let CSS update UI for touch and connected state
Avoid a lot of JavaScript code that can easily be handed using
style sheets instead, specifically items that should only be shown
when on a touch device, or items that depend on the connected state.
2016-09-23 14:39:21 +02:00
Pierre Ossman 8434cc81b3 Make status dialog independent of control bar 2016-09-23 14:39:21 +02:00
Pierre Ossman ebbec43a6b Enable extra keys for all devices
Manual special keys can be useful on all devices, so stop restricting
it to just touch devices.
2016-09-23 14:39:21 +02:00
Pierre Ossman d616c9226c Merge control bar sections
There is no status information in the centre anymore, so merge
the left and right sections of the control bar.
2016-09-23 14:39:21 +02:00
Samuel Mannehed 8a7ec6ea19 Add a separate dialog for the password prompt
The user might be queried for the password during the connect stage
if no password was previously provided. Add a separate dialog for
this rather than abusing the connect dialog.
2016-09-23 14:39:21 +02:00
Pierre Ossman c8d4402f58 Move touch text input out of control bar
It has nothing to do with the control bar, so hide it somewhere
more sensible.
2016-09-23 14:39:21 +02:00
Pierre Ossman 79fd3b1fcf Apply CSS style to input elements
Different browsers have wildly different defaults for input elements.
Try to get a consistent interface by applying our own style.
2016-09-23 14:39:21 +02:00
Pierre Ossman 8bf688265d Replace icons with SVG versions
Resolution independent for high DPI devices, and easier to modify
if we want to change something.
2016-09-23 14:22:19 +02:00
samhed ca5c74ad5a Show all status messages in a popup top bar 2016-09-23 14:22:16 +02:00
Pierre Ossman 63bf2ba578 Support RFB bell
The protocol handling was already there. What was missing was
hooking it up to a sound file in the user interface.
2016-09-22 11:15:42 +02:00
samhed a49d929846 Harmonise CSS names
Follow the same naming convention for all CSS ids and classes.
2016-09-20 15:36:38 +02:00
Pierre Ossman e40978c7fc Let CSS control what it means to be hidden/closed
This avoids hard-coding layout information in the JavaScript code.
It also opens up possibilities for more control in the CSS, e.g. for
animation.
2016-09-20 14:32:57 +02:00
Pierre Ossman 6cba147d4e Simplify modifier button display 2016-09-19 16:27:55 +02:00
samhed eeb395dc91 Remove unnecessary span:s
They were probably also incorrect to have around block elements
anyway.
2016-09-19 16:24:39 +02:00
samhed 286947cbe2 Fix name for panel CSS class 2016-09-19 16:24:39 +02:00
samhed f9fff03719 Remove unused description 2016-09-19 16:24:39 +02:00
samhed 3911256cff Place related elements together
In order to clarify the HTML we group related panels together with
the corresponding buttons.
2016-09-19 15:27:21 +02:00
Solly Ross 72bdd06ea2 Clean up Util
This commit removes unused code from Util, and moves the script-loading
functionality to WebUtil.
2016-09-16 15:49:52 -04:00
Solly Ross ae510306b5 Enable noVNC to become Browserifiable
This commit restructures noVNC, splitting it into the core directory
and the app directory, with the former containing core noVNC parts,
and the latter containing parts specific to the application.
2016-09-16 15:49:51 -04:00
Samuel Mannehed a1dbbcc1a7 Consistent closing tags for void elements 2016-05-27 16:14:25 +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 cd611a5326 Renamed showExtraKeys to toggleExtraKeys 2016-05-12 16:56:50 +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
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
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
samhed 7d1dc09ad0 Fixes #498 - Add the ability to toggle fullscreen mode 2015-06-25 22:37:05 +02:00
samhed 74f2ac968d Renamed popupStatusPanel to popupStatus and removed the global variable
which kept track on if it was open or not (it automatically closes after
1.5 seconds anyway).
2015-06-25 17:04:55 +02:00
Fabian Zaremba 48d26b2d47 Move #keyboardinput declarations to base.css/ui.js 2015-05-04 12:11:30 +02:00
Solly Ross 58ded70d15 Create RFB object on connect
In e543525faa, 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
2015-03-26 17:09:05 -04:00
samhed fdedbafb1d * Don't check specific html elements from the display code (Fixes #446)
* Renamed and reworked fbuClip to clippingDisplay
* Added tests for clippingDisplay
* Use the a noVNC_container which covers the entire page to get the full size
  (Fixes #463)
* Added maxWidth and maxHeight to the canvas which can limit the viewport size
* Only show either the canvas or the logo, hide one when the other is shown
* Always center the canvas (previously it was only centered when not clipping)
* Removed iOS specific "position-fixed" fixes and start calling setBarPosition
  on every resize
* Removed the noVNC_screen_pad
2015-03-09 14:30:56 +01:00
Solly Ross 72747869a7 Support local scaling
This commit adds two new addition scaling options.  Both options do
local scaling.  The first "Local Scaling", does both upscaling and
downscaling.  The second option, "Local Downscaling", only downscales.

This is based on work by @mightypenguin (with an additional bug
reported by @glazik12).
2015-03-03 13:15:49 -05:00
Solly Ross 8b46c0deb0 Update UI to allow for different scaling modes
This commit updates the UI to allow for different
scaling modes.  The "resize" option was changed to
be a dropdown with the following options: "None" (nothing),
"Remote Resizing" (SetDesktopSize).
2015-02-27 17:13:51 -05:00
samhed f8b399d7df Support automatic resize [Part 3/4]: ui.js
* Added a resize request (setDesktopSize) triggered when connecting and by
  changes to the browser window's size.
* Hid the view-drag-hand when the display area is the same or smaller than the
  remote session size.
* Added a setting for the automatic resize feature.
* Updated vnc.html and vnc_auto.html to reflect the changes to the UI.
2015-02-10 17:05:58 +01:00
samhed 8f4a291b16 Updated the comment in vnc.html to reflect the changes made in last commit. 2014-04-07 16:58:59 +02:00
samhed eeda79d3c3 Changing the type of the keyboardinput element to textarea, fixes issue 356.
* The on-screen keyboard not closing when pressing Enter is more important than not having textsuggestions etc.
2014-04-07 16:41:25 +02:00
samhed de8edde4a0 Attempt to change the behavior of the enter/go-key on touch devices, we want it to be Enter.
* This code works in Firefox on Android and on Chrome and Safari on iOS.
* It does not work in Chrome on Android, the enter key is labled "Go" and closes the on screen keyboard when pressed.
2014-04-04 17:42:12 +02:00
samhed 74d3d75a4a Change type of keyboardinput to password to make sure that you can write parenthesis on iOS devices. 2014-04-04 17:36:17 +02:00
samhed b98fed2f69 Aim to disable text suggestions and the like 2014-04-04 17:28:44 +02:00
samhed df0ee70e36 Make sure that the default value of the hidden input field is a space. 2014-03-28 08:54:49 +01:00
samhed 23817e1516 Added alt-values to the control-bar buttons.
* On slow servers where the button-images can be slowly loaded it can be useful to see some relevant text instead of "Submit query" on every button.
2014-03-26 15:24:50 +01:00
samhed 2fa1c0988a Removed unused code. 2014-03-26 11:18:48 +01:00