Bug 8484 - We're out of sync with upstream noVNC
Summary: We're out of sync with upstream noVNC
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Web Access (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.19.0
Assignee: Tobias
URL:
Keywords: prosaic, tobfa_tester
Depends on:
Blocks: 8493 8494 8495
  Show dependency treegraph
 
Reported: 2025-01-07 11:35 CET by Samuel Mannehed
Modified: 2025-01-29 16:23 CET (History)
4 users (show)

See Also:
Acceptance Criteria:
MUST: * noVNC should be updated to the latest version. SHOULD: * Severe bugs found should be patched and sent upstream. * New functionality should be integrated into Web Access where applicable & appropriate


Attachments

Description Samuel Mannehed cendio 2025-01-07 11:35:09 CET
Our last vendor drop was 2021-11-17, so a lot has happened since the. We should sync up.
Comment 1 Samuel Mannehed cendio 2025-01-07 16:30:58 CET
I've looked through the release notes, and pull requests of noVNC (1.3.0, 1.4.0 and 1.5.0) until master as of 2025-01-07, and the main items that are relevant for us are:

1. Added basic support for keeping lock keys in sync with the server
   - https://github.com/novnc/noVNC/pull/1795
   - bug 7259
   - needs testing (and perhaps documentation)
2. Resizes of the viewport are handled in a more modern way. This allows our
   library to not only react to browser window changes, but to size changes of
   the screen element as well.
   - https://github.com/novnc/noVNC/pull/1365
   - https://github.com/novnc/noVNC/pull/1617
   - https://github.com/novnc/noVNC/issues/1903
   - https://github.com/novnc/noVNC/pull/1735
   - needs testing
3. Keyboard bug fixes
   - https://github.com/novnc/noVNC/pull/1881
   - https://github.com/novnc/noVNC/pull/1698
   - test & submit new bugs in our bugzilla
4. Clipboard fix
   - https://github.com/novnc/noVNC/pull/1845
   - test & submit new bug in our bugzilla
5. Don't crash if we can't use localStorage
   - https://github.com/novnc/noVNC/pull/1710
   - bug 8014
   - needs testing
6. Refactoring & code cleanups
   - https://github.com/novnc/noVNC/pull/1428
   - https://github.com/novnc/noVNC/pull/1677
   - https://github.com/novnc/noVNC/pull/1739
   - https://github.com/novnc/noVNC/pull/1782
   - needs testing

Aside from the above, things could have been committed without a mentioned in release notes or as part of a pull request. We need to look through the full list of commits since the last vendordrop. The main goal is to look for things that are fixed as part of the new vendordrop so that we can mention them in ThinLinc's release notes.
Comment 2 Samuel Mannehed cendio 2025-01-07 16:36:47 CET
When updating TigerVNC (bug 8485), we will get support for back/forward mouse buttons in the VNC server.

Thus, before doing a vendordrop of noVNC, we want to make sure the upstream code is prepared for this feature. In practice, this means the two following pull requests needs to be completed and merged:

https://github.com/novnc/noVNC/pull/1919
https://github.com/novnc/noVNC/pull/1921
Comment 3 Samuel Mannehed cendio 2025-01-07 16:44:32 CET
(In reply to Samuel Mannehed from comment #1)
> 2. Resizes of the viewport are handled in a more modern way. This allows our
>    library to not only react to browser window changes, but to size changes
> of
>    the screen element as well.
>    - https://github.com/novnc/noVNC/pull/1365
>    - https://github.com/novnc/noVNC/pull/1617
>    - https://github.com/novnc/noVNC/issues/1903
>    - https://github.com/novnc/noVNC/pull/1735
>    - needs testing

Bug 7992 looks to be fixed as a result of https://github.com/novnc/noVNC/pull/1735.
Comment 4 Frida Flodin cendio 2025-01-15 10:48:21 CET
Looked through all commits on master since the last vendor drop (2021-11-17) and sorted out all commits not connected to an issue. Then I removed all commits that were only tests, styling and translations. I also removed all commits that we already have in ThinLinc. For the remaining, I tried to determine if the change was substantial enough that it should be mentioned in the release notes.

I could not find any commit from this list that wasn't minor fixes nor relevant to ThinLinc. Some testing is still needed, and this should probably be done by creating a big diff and finding relevant areas to test.
Comment 6 Samuel Mannehed cendio 2025-01-17 10:17:33 CET
With build 3885, Web Access appears to be loading indefinitely after logging in. The issue seems to be that the new noVNC/core/crypto stuff isn't properly installed:

> GET https://myserver:300/core/crypto/crypto.js net::ERR_ABORTED 404 (Not Found)
Comment 9 Samuel Mannehed cendio 2025-01-20 09:28:04 CET
There doesn't seem to be any obvious conflicts between the new base.css from noVNC and our new input.css. One of the most sensitive areas is the toolbar button activation states, since ThinLinc's input.css uses different metaphors for these states. I checked that the toolbar buttons still react correctly to the following states, and all combinations of the following:

 * mouse hover
 * click
 * being selected
 * keyboard focus
Comment 10 Adam Halim cendio 2025-01-21 16:32:21 CET
High-level testing has been performed on all browsers and platforms. General testing has been kept simple: creating a new session, reconnecting, clicking/keyboard testing, session resizing, disconnecting etc. 

Platforms tested:
* Windows, Linux, macOS, iOS, Android
* Firefox, Edge, Chrome, Safari

More specific testing has been done on the following bugs:
Bug 7992
Bug 8014
Bug 7259
Bug 8054
Bug 8465
Bug 8466
Bug 7459
Bug 7993
Bug 8496

To summarize, things work as expected, and we couldn't find any major issues on any of the platforms.
Comment 11 Adam Halim cendio 2025-01-21 16:35:10 CET
In addition to testing the listed bugs, we have also looked at the code changes done between our previous noVNC version and the current one.

We could not find any specific areas to test more thoroughly.

One thing we still have not decided is what to do with the two new configuration files:
  * mandatory.json
  * defaults.json

Our options are to:
  1. Ship these files, and fill mandatory.json with the required configuration 
     needed to work with web access.
  2. Don't ship these files & patch in our custom settings.
Comment 14 Adam Halim cendio 2025-01-22 14:36:55 CET
> MUST:
>   * noVNC should be updated to the latest 
>     version.
Indeed, as of writing, we are fully up-to-date with upstream noVNC.
> SHOULD:
>   * Severe bugs found should be patched and 
>     sent upstream.
We have not found any severe bugs.
>   * New functionality should be integrated
>     into Web Access where applicable & 
>     appropriate
Looking at what's new in noVNC since our last vendor drop, the two new features are added support for better caps/numlock sync, as well as support for back/forward mouse buttons. Out of these, support for back/forward cannot work until we upgrade TigerVNC as well.
Comment 16 Tobias cendio 2025-01-29 16:20:11 CET
Tested this bug using server build #3892 on Fedora 41 and the webaccess client using the following system and browser combinations
    • Fedora 41
        ◦ Firefox 134
        ◦ Chrome 132
    • Win 11
        ◦ Firefox 133
        ◦ Chrome 132
        ◦ Edge 132
    • macOS (M1) 15.2
        ◦ Firefox 134
        ◦ Chrome 132
        ◦ Edge 132
        ◦ Safari 18.2
    • iOS 18.3
        ◦ Firefox 134
        ◦ Chrome 132
        ◦ Safari 18.3
    • Android 13 (5.1)
        ◦ Firefox 135
        ◦ Chrome 132
        ◦ Edge 132

Performed cursory testing in various areas of webaccess with the aim of broadly covering subjects mentioned in comment #1 and comment comment #10, including but not exclusively the following
    • Session creation/reconnection/termination
    • Clipboard
    • Mouse and keyboard
    • Capslock and numlock
    • Mouse panning
    • Disabling local storage

Could not find any unexpected or unintended behavior that hasn’t already been mentioned in bugs related to this vendordrop:
bug 7259
bug 7459
bug 7992
bug 7993
bug 8014
bug 8054
bug 8465
bug 8466
bug 8493
bug 8494
bug 8495
bug 8496
bug 8498

Moreover, had a look at the ThinLinc-specific modifications to vanilla noVNC for the previous vendordrop and correspondingly for this vendordrop. Focus was in particular on previous backports and what has been included upstream in contemporary versions: everything appears to be in order.
Comment 17 Tobias cendio 2025-01-29 16:21:39 CET
Acceptance criteria:
> MUST:
> * noVNC should be updated to the latest 
>   version.
✅ Check.
> SHOULD:
> * Severe bugs found should be patched and 
>   sent upstream.
✅ No severe bugs found.
> * New functionality should be integrated
>   into Web Access where applicable & 
>   appropriate
✅ New functionality has been implemented to the extent that our current version of TigerVNC supports, as pointed out in comment #14.
Comment 18 Tobias cendio 2025-01-29 16:23:48 CET
In summary, noVNC has been updated to the latest version and is working in conjunction with ThinLinc as intended, with acceptance criteria fulfilled.

Closing.

Note You need to log in before you can comment on or make changes to this bug.