Skip to content

Conversation

@vishesh92
Copy link
Member

@vishesh92 vishesh92 commented Jul 2, 2025

Description

This PR upgrades noVNC from 1.4.0 to 1.6.0. Followed the same steps as in #7281. This should fix issues like #9940

noVNC release notes: https://github.com/novnc/noVNC/releases

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • build/CI
  • test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

How Has This Been Tested?

How did you try to break this feature and the system with this change?

@vishesh92
Copy link
Member Author

@blueorangutan package

@blueorangutan
Copy link

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@codecov
Copy link

codecov bot commented Jul 2, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 16.58%. Comparing base (6059724) to head (a4cbfde).
⚠️ Report is 155 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main   #11119      +/-   ##
============================================
- Coverage     16.58%   16.58%   -0.01%     
  Complexity    13991    13991              
============================================
  Files          5745     5745              
  Lines        510757   510757              
  Branches      62144    62144              
============================================
- Hits          84690    84689       -1     
- Misses       416598   416599       +1     
  Partials       9469     9469              
Flag Coverage Δ
uitests 3.91% <ø> (ø)
unittests 17.47% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 13981

@DaanHoogland
Copy link
Contributor

@blueorangutan ui

@blueorangutan
Copy link

@DaanHoogland a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@blueorangutan
Copy link

UI build: ✔️
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/11119 (QA-JID-657)

@DaanHoogland
Copy link
Contributor

@blueorangutan test keepEnv

@blueorangutan
Copy link

@DaanHoogland a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@vishesh92 vishesh92 marked this pull request as draft July 3, 2025 06:11
@blueorangutan
Copy link

[SF] Trillian test result (tid-13664)
Environment: kvm-ol8 (x2), Advanced Networking with Mgmt server ol8
Total time taken: 56520 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11119-t13664-kvm-ol8.zip
Smoke tests completed. 139 look OK, 2 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File
test_01_isolate_network_FW_PF_default_routes_egress_true Failure 114.80 test_routers_network_ops.py
test_01_vpc_site2site_vpn_multiple_options Failure 407.88 test_vpc_vpn.py

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Upgrades noVNC from version 1.4.0 to 1.6.0, replacing low-level send/receive calls with buffered queue methods and adding modern codec support, along with UI embedding improvements and dependency bumps.

  • Bumped noVNC version to 1.6.0 and added empty defaults.json/mandatory.json stubs
  • Replaced direct .send/.sendString calls with sQpush* and .flush() in Websock and RFB
  • Introduced Zlib and H264 decoding support, refactored UI initialization in vnc.html

Reviewed Changes

Copilot reviewed 73 out of 73 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
systemvm/agent/noVNC/package.json Bump version to 1.6.0, update devDependencies
systemvm/agent/noVNC/defaults.json Add empty defaults placeholder
systemvm/agent/noVNC/mandatory.json Add empty mandatory placeholder
systemvm/agent/noVNC/vnc_lite.html Minor text casing/style tweaks
systemvm/agent/noVNC/vnc.html Refactor UI startup to dynamic imports and fetch settings
systemvm/agent/noVNC/utils/convert.js Use destructured program import from commander
systemvm/agent/noVNC/core/websock.js Migrate to sQpush*/flush API for send queue buffering
systemvm/agent/noVNC/core/rfb.js Enhanced resize logic, new Zlib/H264 encodings, pointer events
systemvm/agent/noVNC/core/decoders/*.js Add ZlibDecoder and H264Decoder, update existing decoders
systemvm/agent/noVNC/core/util/*.js Standardize copyright casing, correct utility methods
systemvm/agent/noVNC/docs/novnc_proxy.1 Update --listen synopsis to support [HOST:]PORT syntax
Comments suppressed due to low confidence (2)

systemvm/agent/noVNC/core/decoders/h264.js:1

  • [nitpick] The new H264 decoder logic is substantial but lacks dedicated unit tests; consider adding tests to validate parsing, key-frame handling, and decoder configuration.
/*

systemvm/agent/noVNC/core/rfb.js:2560

  • [nitpick] replaceAll is not supported in some older browsers; consider using textData = textData.replace(/\r\n/g, "\n"); for wider compatibility.
                    textData = textData.replaceAll("\r\n", "\n");

@vishesh92
Copy link
Member Author

Changes doesn't seem to be working and require some investigation.

@rohityadavcloud rohityadavcloud added this to the 4.21.0 milestone Jul 14, 2025
@rohityadavcloud
Copy link
Member

@weizhouapache @nvazquez let's also review if this creates any regression for keystore/keyboard related changes we had done.

@vishesh92 vishesh92 force-pushed the upgrade-novnc-1-6-0 branch from 895a84a to a4cbfde Compare July 14, 2025 16:58
@vishesh92
Copy link
Member Author

@blueorangutan package

@apache apache deleted a comment from blueorangutan Jul 14, 2025
@apache apache deleted a comment from blueorangutan Jul 14, 2025
@blueorangutan
Copy link

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 14184

@blueorangutan
Copy link

@rohityadavcloud a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

@vishesh92 vishesh92 marked this pull request as ready for review July 15, 2025 06:02
@DaanHoogland
Copy link
Contributor

looks good, will do some extra testing

@rohityadavcloud
Copy link
Member

I've public rpm repo here for anyone wanting to try/test this https://build.yadav.cloud/cloudstack/pr/11119/el8/4.21/

@rohityadavcloud
Copy link
Member

Tested noVNC 1.6.0 by manually applying the file changes to a ACS 4.20.1 env CPVM and restarting cloud service.

Post this, the noVNC 1.6 based console appeared slightly faster: (with VNC/TLS disabled)

novnc-1.6-upgrade.mov

Also tested the same env with noVNC 1.6 based console & VNC/TLS enabled:

novnc-1.6-with-tls.mov

@DaanHoogland
Copy link
Contributor

DaanHoogland commented Jul 15, 2025

I think we should go ahead with this PR but,

  • in xen special keys get very confused if you break connection to the console and re-attach
  • in vmware special keys get broken if you break connection to the console and re-attach
  • in kvm I could switch between local keyboard and screen settings with no problem

If I don't touch i can reverse the shift-lock by closing the connection and creating a new one. The rest of the console will keep working but shiftlock will be reversed.

@blueorangutan
Copy link

[SF] Trillian test result (tid-13772)
Environment: kvm-ol8 (x2), Advanced Networking with Mgmt server ol8
Total time taken: 63124 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11119-t13772-kvm-ol8.zip
Smoke tests completed. 142 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File

Copy link
Contributor

@DaanHoogland DaanHoogland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clgtm

@DaanHoogland
Copy link
Contributor

@nvazquez @weizhouapache can you please review?

@vishesh92
Copy link
Member Author

@blueorangutan package

@blueorangutan
Copy link

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result [SF]: ✖️ el8 ✖️ el9 ✔️ debian ✖️ suse15. SL-JID 14420

@vishesh92
Copy link
Member Author

@blueorangutan package

@blueorangutan
Copy link

@vishesh92 a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan
Copy link

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ debian ✔️ suse15. SL-JID 14423

@borisstoyanov
Copy link
Contributor

@blueorangutan test

@blueorangutan
Copy link

@borisstoyanov a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests

Copy link
Contributor

@borisstoyanov borisstoyanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, manually checked it could not find any regressions

@DaanHoogland
Copy link
Contributor

@vishesh92 @borisstoyanov @sureshanaparti , I marked this waiting-for-smoketest-results but actually think it is not going to give us extra information about the changes here. merging.

@DaanHoogland DaanHoogland merged commit f2bda46 into apache:main Jul 29, 2025
25 of 26 checks passed
@DaanHoogland DaanHoogland deleted the upgrade-novnc-1-6-0 branch July 29, 2025 13:17
@github-project-automation github-project-automation bot moved this from In Progress to Done in Apache CloudStack 4.21.0 Jul 29, 2025
@blueorangutan
Copy link

[SF] Trillian test result (tid-13955)
Environment: kvm-ol8 (x2), Advanced Networking with Mgmt server ol8
Total time taken: 55206 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr11119-t13955-kvm-ol8.zip
Smoke tests completed. 145 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

No open projects
Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants