Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[grid] Grid UI could not open session live view #15132

Open
wants to merge 3 commits into
base: trunk
Choose a base branch
from
Open

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Jan 22, 2025

User description

Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

Fixes #15131

Due to update [email protected] in the commit 334cfaa. The issue is confirmed as screenshot below

image

Refer to a suggestion https://stackoverflow.com/questions/78125541/how-to-integrate-novnc-in-angular-16-how-to-launch-novnc-terminal-from-angular

With the fix, we can see it works as screenshot below

image

Motivation and Context

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

Bug fix


Description

  • Fixed an issue preventing session live view in Grid UI.

  • Updated RFB initialization to use RFB.default.

  • Added event listener for disconnect in LiveView component.


Changes walkthrough 📝

Relevant files
Bug fix
LiveView.tsx
Fix and enhance `RFB` initialization in `LiveView`             

javascript/grid-ui/src/components/LiveView/LiveView.tsx

  • Updated RFB initialization to use RFB.default.
  • Added disconnect event listener to handle disconnection.
  • Ensured proper setup of RFB instance with updated event handling.
  • +2/-1     

    Need help?
  • Type /help how to ... in the comments thread for any question about Qodo Merge usage.
  • Check out the documentation for more information.
  • Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Event Cleanup

    The disconnect event listener is added but there's no cleanup of event listeners when the component unmounts, which could lead to memory leaks

    const newRfb = new RFB.default(canvas, props.url, {})
    newRfb.scaleViewport = props.scaleViewport
    newRfb.background = 'rgb(247,248,248)'
    newRfb.addEventListener('credentialsrequired', handleCredentials)
    newRfb.addEventListener('securityfailure', securityFailed)
    newRfb.addEventListener('connect', connectedToServer)
    newRfb.addEventListener('disconnect', disconnect)
    setRfb(newRfb)

    Copy link
    Contributor

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    General
    Prevent memory leaks from listeners

    Clean up event listeners when component unmounts or when RFB instance changes to
    prevent memory leaks.

    javascript/grid-ui/src/components/LiveView/LiveView.tsx [66-69]

    -newRfb.addEventListener('credentialsrequired', handleCredentials)
    -newRfb.addEventListener('securityfailure', securityFailed)
    -newRfb.addEventListener('connect', connectedToServer)
    -newRfb.addEventListener('disconnect', disconnect)
    +const setupEventListeners = (rfb) => {
    +  rfb.addEventListener('credentialsrequired', handleCredentials)
    +  rfb.addEventListener('securityfailure', securityFailed)
    +  rfb.addEventListener('connect', connectedToServer)
    +  rfb.addEventListener('disconnect', disconnect)
    +  return () => {
    +    rfb.removeEventListener('credentialsrequired', handleCredentials)
    +    rfb.removeEventListener('securityfailure', securityFailed)
    +    rfb.removeEventListener('connect', connectedToServer)
    +    rfb.removeEventListener('disconnect', disconnect)
    +  }
    +}
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: Properly cleaning up event listeners is crucial to prevent memory leaks in React components. The suggestion provides a clean pattern for both setting up and tearing down listeners systematically.

    8
    Possible issue
    Add error handling for initialization

    Add error handling for RFB initialization to gracefully handle cases where the
    connection fails to establish.

    javascript/grid-ui/src/components/LiveView/LiveView.tsx [63]

    -const newRfb = new RFB.default(canvas, props.url, {})
    +try {
    +  const newRfb = new RFB.default(canvas, props.url, {})
    +} catch (error) {
    +  console.error('Failed to initialize RFB connection:', error);
    +  disconnect();
    +  return;
    +}
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: Adding try-catch error handling for RFB initialization is important for robustness, as connection failures could occur and should be handled gracefully to prevent application crashes.

    7

    @VietND96 VietND96 requested a review from diemol January 22, 2025 17:40
    Copy link
    Contributor

    qodo-merge-pro bot commented Jan 22, 2025

    CI Feedback 🧐

    (Feedback updated until commit 02f1f4a)

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Ruby / Local Tests (firefox, macos) / Local Tests (firefox, macos)

    Failed stage: Run Bazel [❌]

    Failed test name: Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount

    Failure summary:

    The action failed in the action_builder-firefox test suite with 1 failure and 4 pending tests.
    Specifically:

  • The test Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount failed because the
    footer element was not in viewport after scrolling (expected true but got false)
  • Several other scroll-related tests were marked as pending due to known Firefox issues with
    MoveTargetOutOfBoundsError

  • Relevant error logs:
    1:  ##[group]Operating System
    2:  macOS
    ...
    
    580:  �[32mAnalyzing:�[0m 30 targets (310 packages loaded, 10529 targets configured)
    581:  �[32mAnalyzing:�[0m 30 targets (310 packages loaded, 10529 targets configured)
    582:  �[32mAnalyzing:�[0m 30 targets (310 packages loaded, 10529 targets configured)
    583:  �[32mAnalyzing:�[0m 30 targets (310 packages loaded, 10529 targets configured)
    584:  �[32mAnalyzing:�[0m 30 targets (310 packages loaded, 10529 targets configured)
    585:  �[32mAnalyzing:�[0m 30 targets (310 packages loaded, 10529 targets configured)
    586:  �[32mAnalyzing:�[0m 30 targets (333 packages loaded, 11059 targets configured)
    587:  �[32mAnalyzing:�[0m 30 targets (355 packages loaded, 11768 targets configured)
    588:  �[32m[6 / 20]�[0m Creating source manifest for //rb/spec/integration/selenium/webdriver:error-firefox; 0s local
    ...
    
    720:  �[32m[1,298 / 1,321]�[0m 1 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/firefox:driver-firefox; 55s ... (3 actions, 1 running)
    721:  �[32m[1,298 / 1,321]�[0m 1 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:element-firefox; 36s local, disk-cache ... (3 actions, 2 running)
    722:  �[32m[1,299 / 1,321]�[0m 2 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-firefox; 36s ... (3 actions, 1 running)
    723:  �[32m[1,299 / 1,321]�[0m 2 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:timeout-firefox; 48s ... (3 actions, 1 running)
    724:  �[32m[1,299 / 1,321]�[0m 2 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/firefox:driver-firefox; 35s local, disk-cache ... (3 actions, 2 running)
    725:  �[32m[1,300 / 1,321]�[0m 3 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:select-firefox; 36s ... (3 actions, 1 running)
    726:  �[32m[1,300 / 1,321]�[0m 3 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:select-firefox; 48s ... (3 actions, 1 running)
    727:  �[32m[1,300 / 1,321]�[0m 3 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-firefox; 16s local, disk-cache ... (3 actions, 2 running)
    728:  �[32m[1,301 / 1,321]�[0m 4 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-firefox; 17s ... (3 actions, 1 running)
    729:  �[32m[1,301 / 1,321]�[0m 4 / 30 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-firefox; 28s ... (3 actions, 1 running)
    ...
    
    774:  �[32m[1,316 / 1,321]�[0m 19 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 115s local, disk-cache ... (3 actions, 2 running)
    775:  �[32m[1,316 / 1,321]�[0m 19 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 152s local, disk-cache ... (3 actions running)
    776:  �[32m[1,317 / 1,321]�[0m 20 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 154s local, disk-cache ... (3 actions, 2 running)
    777:  �[32m[1,317 / 1,321]�[0m 20 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 159s local, disk-cache ... (3 actions, 2 running)
    778:  �[32m[1,318 / 1,321]�[0m 21 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 160s local, disk-cache ... (3 actions, 1 running)
    779:  �[32m[1,318 / 1,321]�[0m 21 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 171s local, disk-cache ... (3 actions, 1 running)
    780:  �[32m[1,318 / 1,321]�[0m 21 / 30 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:action_builder-firefox; 199s local, disk-cache ... (3 actions, 2 running)
    781:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver:action_builder-firefox (see /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test.log)
    782:  �[31m�[1mFAILED: �[0m//rb/spec/integration/selenium/webdriver:action_builder-firefox (Summary)
    ...
    
    821:  moves one element to another
    822:  #drag_and_drop_by
    823:  moves one element a provided distance
    824:  #move_to_location
    825:  moves pointer to specified coordinates
    826:  pen stylus
    827:  sets pointer event properties (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};)
    828:  #scroll_to
    829:  scrolls to element (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    830:  #scroll_by
    831:  scrolls by given amount (FAILED - 1)
    832:  #scroll_from
    833:  scrolls from element by given amount (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    834:  scrolls from element by given amount with offset (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    835:  raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport
    836:  scrolls by given amount with offset
    837:  raises MoveTargetOutOfBoundsError when origin offset is out of viewport
    838:  Pending: (Failures listed here are expected and do not affect your suite's status)
    839:  1) Selenium::WebDriver::ActionBuilder pen stylus sets pointer event properties
    840:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};
    841:  Failure/Error: actions.perform
    842:  Selenium::WebDriver::Error::UnknownError:
    843:  Error: Unimplemented pointerMove for pointerType pen
    844:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    845:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    850:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    851:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    852:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    853:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    854:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    855:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:280:in `block (3 levels) in <module:WebDriver>'
    856:  # ------------------
    857:  # --- Caused by: ---
    858:  # Selenium::WebDriver::Error::WebDriverError:
    859:  #   pointerMove@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2393:11
    860:  performPointerMoveStep@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1628:31
    861:  dispatch/<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1595:20
    862:  moveOverTime/transitions<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2320:9
    863:  2) Selenium::WebDriver::ActionBuilder#scroll_to scrolls to element
    864:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};
    865:  Failure/Error: driver.action.scroll_to(iframe).perform
    866:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    867:  Move target (410, 2898) is out of bounds of viewport dimensions (1280, 788)
    868:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    869:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    874:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    875:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    876:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    877:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    878:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    879:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:313:in `block (3 levels) in <module:WebDriver>'
    880:  # ------------------
    881:  # --- Caused by: ---
    882:  # Selenium::WebDriver::Error::WebDriverError:
    883:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    884:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    885:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    886:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    887:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    888:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    889:  3) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount
    890:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
    891:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
    892:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    893:  Move target (410, 2898) is out of bounds of viewport dimensions (1280, 788)
    894:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    895:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    900:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    901:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    902:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    903:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    904:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    905:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:339:in `block (3 levels) in <module:WebDriver>'
    906:  # ------------------
    907:  # --- Caused by: ---
    908:  # Selenium::WebDriver::Error::WebDriverError:
    909:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    910:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    911:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    912:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    913:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    914:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    915:  4) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount with offset
    916:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
    917:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
    918:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    919:  Move target (632, 2952) is out of bounds of viewport dimensions (1280, 788)
    920:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    921:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    926:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    927:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    928:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    929:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    930:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    931:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:353:in `block (3 levels) in <module:WebDriver>'
    932:  # ------------------
    933:  # --- Caused by: ---
    934:  # Selenium::WebDriver::Error::WebDriverError:
    935:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    936:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    937:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    938:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    939:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    940:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    941:  Failures:
    942:  1) Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
    943:  Failure/Error: expect(in_viewport?(footer)).to be true
    944:  expected true
    945:  got false
    946:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:328:in `block (3 levels) in <module:WebDriver>'
    947:  Finished in 38.38 seconds (files took 0.1714 seconds to load)
    948:  27 examples, 1 failure, 4 pending
    949:  Failed examples:
    ...
    
    986:  moves one element to another
    987:  #drag_and_drop_by
    988:  moves one element a provided distance
    989:  #move_to_location
    990:  moves pointer to specified coordinates
    991:  pen stylus
    992:  sets pointer event properties (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};)
    993:  #scroll_to
    994:  scrolls to element (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    995:  #scroll_by
    996:  scrolls by given amount (FAILED - 1)
    997:  #scroll_from
    998:  scrolls from element by given amount (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    999:  scrolls from element by given amount with offset (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    1000:  raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport
    1001:  scrolls by given amount with offset
    1002:  raises MoveTargetOutOfBoundsError when origin offset is out of viewport
    1003:  Pending: (Failures listed here are expected and do not affect your suite's status)
    1004:  1) Selenium::WebDriver::ActionBuilder pen stylus sets pointer event properties
    1005:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};
    1006:  Failure/Error: actions.perform
    1007:  Selenium::WebDriver::Error::UnknownError:
    1008:  Error: Unimplemented pointerMove for pointerType pen
    1009:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1010:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1015:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1016:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1017:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1018:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1019:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1020:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:280:in `block (3 levels) in <module:WebDriver>'
    1021:  # ------------------
    1022:  # --- Caused by: ---
    1023:  # Selenium::WebDriver::Error::WebDriverError:
    1024:  #   pointerMove@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2393:11
    1025:  performPointerMoveStep@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1628:31
    1026:  dispatch/<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1595:20
    1027:  moveOverTime/transitions<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2320:9
    1028:  2) Selenium::WebDriver::ActionBuilder#scroll_to scrolls to element
    1029:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};
    1030:  Failure/Error: driver.action.scroll_to(iframe).perform
    1031:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    1032:  Move target (410, 2898) is out of bounds of viewport dimensions (1280, 788)
    1033:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1034:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1039:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1040:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1041:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1042:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1043:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1044:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:313:in `block (3 levels) in <module:WebDriver>'
    1045:  # ------------------
    1046:  # --- Caused by: ---
    1047:  # Selenium::WebDriver::Error::WebDriverError:
    1048:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    1049:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    1050:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    1051:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    1052:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    1053:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    1054:  3) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount
    1055:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
    1056:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
    1057:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    1058:  Move target (410, 2898) is out of bounds of viewport dimensions (1280, 788)
    1059:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1060:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1065:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1066:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1067:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1068:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1069:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1070:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:339:in `block (3 levels) in <module:WebDriver>'
    1071:  # ------------------
    1072:  # --- Caused by: ---
    1073:  # Selenium::WebDriver::Error::WebDriverError:
    1074:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    1075:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    1076:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    1077:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    1078:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    1079:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    1080:  4) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount with offset
    1081:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
    1082:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
    1083:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    1084:  Move target (632, 2952) is out of bounds of viewport dimensions (1280, 788)
    1085:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1086:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1091:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1092:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1093:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1094:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1095:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1096:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:353:in `block (3 levels) in <module:WebDriver>'
    1097:  # ------------------
    1098:  # --- Caused by: ---
    1099:  # Selenium::WebDriver::Error::WebDriverError:
    1100:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    1101:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    1102:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    1103:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    1104:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    1105:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    1106:  Failures:
    1107:  1) Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
    1108:  Failure/Error: expect(in_viewport?(footer)).to be true
    1109:  expected true
    1110:  got false
    1111:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:328:in `block (3 levels) in <module:WebDriver>'
    1112:  Finished in 44.42 seconds (files took 0.16264 seconds to load)
    1113:  27 examples, 1 failure, 4 pending
    1114:  Failed examples:
    ...
    
    1151:  moves one element to another
    1152:  #drag_and_drop_by
    1153:  moves one element a provided distance
    1154:  #move_to_location
    1155:  moves pointer to specified coordinates
    1156:  pen stylus
    1157:  sets pointer event properties (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};)
    1158:  #scroll_to
    1159:  scrolls to element (PENDING: Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    1160:  #scroll_by
    1161:  scrolls by given amount (FAILED - 1)
    1162:  #scroll_from
    1163:  scrolls from element by given amount (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    1164:  scrolls from element by given amount with offset (PENDING: Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};)
    1165:  raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport
    1166:  scrolls by given amount with offset
    1167:  raises MoveTargetOutOfBoundsError when origin offset is out of viewport
    1168:  Pending: (Failures listed here are expected and do not affect your suite's status)
    1169:  1) Selenium::WebDriver::ActionBuilder pen stylus sets pointer event properties
    1170:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"Unknown pointerType"};
    1171:  Failure/Error: actions.perform
    1172:  Selenium::WebDriver::Error::UnknownError:
    1173:  Error: Unimplemented pointerMove for pointerType pen
    1174:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1175:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1180:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1181:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1182:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1183:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1184:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1185:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:280:in `block (3 levels) in <module:WebDriver>'
    1186:  # ------------------
    1187:  # --- Caused by: ---
    1188:  # Selenium::WebDriver::Error::WebDriverError:
    1189:  #   pointerMove@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2393:11
    1190:  performPointerMoveStep@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1628:31
    1191:  dispatch/<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1595:20
    1192:  moveOverTime/transitions<@chrome://remote/content/shared/webdriver/Actions.sys.mjs:2320:9
    1193:  2) Selenium::WebDriver::ActionBuilder#scroll_to scrolls to element
    1194:  # Test guarded; Guarded by {:browser=>:firefox, :reason=>"incorrect MoveTargetOutOfBoundsError"};
    1195:  Failure/Error: driver.action.scroll_to(iframe).perform
    1196:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    1197:  Move target (410, 2898) is out of bounds of viewport dimensions (1280, 788)
    1198:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1199:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1204:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1205:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1206:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1207:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1208:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1209:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:313:in `block (3 levels) in <module:WebDriver>'
    1210:  # ------------------
    1211:  # --- Caused by: ---
    1212:  # Selenium::WebDriver::Error::WebDriverError:
    1213:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    1214:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    1215:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    1216:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    1217:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    1218:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    1219:  3) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount
    1220:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
    1221:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
    1222:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    1223:  Move target (410, 2898) is out of bounds of viewport dimensions (1280, 788)
    1224:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1225:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1230:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1231:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1232:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1233:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1234:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1235:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:339:in `block (3 levels) in <module:WebDriver>'
    1236:  # ------------------
    1237:  # --- Caused by: ---
    1238:  # Selenium::WebDriver::Error::WebDriverError:
    1239:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    1240:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    1241:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    1242:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    1243:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    1244:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    1245:  4) Selenium::WebDriver::ActionBuilder#scroll_from scrolls from element by given amount with offset
    1246:  # Test guarded; Guarded by {:browser=>[:firefox, :safari], :reason=>"incorrect MoveTargetOutOfBoundsError"};
    1247:  Failure/Error: driver.action.scroll_from(scroll_origin, 0, 200).perform
    1248:  Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
    1249:  Move target (632, 2952) is out of bounds of viewport dimensions (1280, 788)
    1250:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
    1251:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
    ...
    
    1256:  # ./rb/lib/selenium/webdriver/remote/http/default.rb:103:in `request'
    1257:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:68:in `call'
    1258:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
    1259:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:413:in `send_actions'
    1260:  # ./rb/lib/selenium/webdriver/common/action_builder.rb:198:in `perform'
    1261:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:353:in `block (3 levels) in <module:WebDriver>'
    1262:  # ------------------
    1263:  # --- Caused by: ---
    1264:  # Selenium::WebDriver::Error::WebDriverError:
    1265:  #   RemoteError@chrome://remote/content/shared/RemoteError.sys.mjs:8:8
    1266:  WebDriverError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:193:5
    1267:  MoveTargetOutOfBoundsError@chrome://remote/content/shared/webdriver/Errors.sys.mjs:479:5
    1268:  assertTargetInViewPort@chrome://remote/content/shared/webdriver/Actions.sys.mjs:3097:11
    1269:  #assertInViewPortFromContent@chrome://remote/content/marionette/actors/MarionetteCommandsChild.sys.mjs:90:17
    1270:  dispatch@chrome://remote/content/shared/webdriver/Actions.sys.mjs:1824:11
    1271:  Failures:
    1272:  1) Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
    1273:  Failure/Error: expect(in_viewport?(footer)).to be true
    1274:  expected true
    1275:  got false
    1276:  # ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:328:in `block (3 levels) in <module:WebDriver>'
    1277:  Finished in 39.42 seconds (files took 0.16537 seconds to load)
    1278:  27 examples, 1 failure, 4 pending
    1279:  Failed examples:
    1280:  rspec ./rb/spec/integration/selenium/webdriver/action_builder_spec.rb:320 # Selenium::WebDriver::ActionBuilder#scroll_by scrolls by given amount
    1281:  ================================================================================
    1282:  �[32m[1,319 / 1,321]�[0m 22 / 30 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:zipper-firefox; 41s ... (2 actions, 1 running)
    1283:  �[32m[1,319 / 1,321]�[0m 22 / 30 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:zipper-firefox; 52s ... (2 actions, 1 running)
    1284:  �[32m[1,319 / 1,321]�[0m 22 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:manager-firefox; 18s local, disk-cache ... (2 actions running)
    1285:  �[32m[1,320 / 1,321]�[0m 23 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:zipper-firefox; 1s local, disk-cache
    1286:  �[32m[1,320 / 1,321]�[0m 23 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:zipper-firefox; 5s local, disk-cache
    1287:  �[32m[1,321 / 1,322]�[0m 24 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:network-firefox; 1s local, disk-cache
    1288:  �[32m[1,321 / 1,322]�[0m 24 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:network-firefox; 5s local, disk-cache
    1289:  �[32m[1,322 / 1,323]�[0m 25 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:bidi-firefox; 0s local, disk-cache
    1290:  �[32m[1,322 / 1,323]�[0m 25 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:bidi-firefox; 5s local, disk-cache
    1291:  �[32m[1,323 / 1,324]�[0m 26 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-firefox; 1s local, disk-cache
    1292:  �[32m[1,323 / 1,324]�[0m 26 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-firefox; 5s local, disk-cache
    1293:  �[32m[1,324 / 1,325]�[0m 27 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 1s local, disk-cache
    1294:  �[32m[1,324 / 1,325]�[0m 27 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-firefox; 291s local, disk-cache
    1295:  �[32m[1,325 / 1,326]�[0m 28 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-firefox; 1s local, disk-cache
    1296:  �[32m[1,325 / 1,326]�[0m 28 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-firefox; 5s local, disk-cache
    1297:  �[32m[1,326 / 1,327]�[0m 29 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:script-firefox; 0s local, disk-cache
    1298:  �[32m[1,326 / 1,327]�[0m 29 / 30 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:script-firefox; 7s local, disk-cache
    1299:  �[32mINFO: �[0mFound 30 test targets...
    1300:  �[32mINFO: �[0mElapsed time: 951.966s, Critical Path: 325.33s
    1301:  �[32mINFO: �[0m1327 processes: 569 disk cache hit, 681 internal, 13 darwin-sandbox, 64 local.
    1302:  �[32mINFO: �[0mBuild completed, 1 test FAILED, 1327 total actions
    1303:  //rb/spec/integration/selenium/webdriver:bidi-firefox                    �[0m�[32mPASSED�[0m in 5.4s
    1304:  //rb/spec/integration/selenium/webdriver:devtools-firefox                �[0m�[32mPASSED�[0m in 291.2s
    1305:  //rb/spec/integration/selenium/webdriver:driver-firefox                  �[0m�[32mPASSED�[0m in 39.2s
    1306:  //rb/spec/integration/selenium/webdriver:element-firefox                 �[0m�[32mPASSED�[0m in 36.1s
    1307:  //rb/spec/integration/selenium/webdriver:error-firefox                   �[0m�[32mPASSED�[0m in 12.8s
    ...
    
    1324:  //rb/spec/integration/selenium/webdriver/bidi:log_inspector-firefox      �[0m�[32mPASSED�[0m in 5.4s
    1325:  //rb/spec/integration/selenium/webdriver/bidi:network-firefox            �[0m�[32mPASSED�[0m in 5.6s
    1326:  //rb/spec/integration/selenium/webdriver/bidi:script-firefox             �[0m�[32mPASSED�[0m in 7.7s
    1327:  //rb/spec/integration/selenium/webdriver/firefox:driver-firefox          �[0m�[32mPASSED�[0m in 35.8s
    1328:  //rb/spec/integration/selenium/webdriver/firefox:profile-firefox         �[0m�[32mPASSED�[0m in 24.2s
    1329:  //rb/spec/integration/selenium/webdriver/firefox:service-firefox         �[0m�[32mPASSED�[0m in 11.0s
    1330:  //rb/spec/integration/selenium/webdriver/remote:driver-firefox           �[0m�[32mPASSED�[0m in 5.4s
    1331:  //rb/spec/integration/selenium/webdriver/remote:element-firefox          �[0m�[32mPASSED�[0m in 16.7s
    1332:  //rb/spec/integration/selenium/webdriver:action_builder-firefox          �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 45.1s
    1333:  Stats over 3 runs: max = 45.1s, min = 39.1s, avg = 41.5s, dev = 2.6s
    1334:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test.log
    1335:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_1.log
    1336:  /Users/runner/.bazel/execroot/_main/bazel-out/darwin_arm64-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/action_builder-firefox/test_attempts/attempt_2.log
    1337:  Executed 30 out of 30 tests: 29 tests pass and �[0m�[31m�[1m1 fails locally�[0m.
    1338:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
    1339:  �[0m
    1340:  ##[error]Process completed with exit code 3.
    

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

    Successfully merging this pull request may close these issues.

    [🐛 Bug]: 4.28 does not start noVNC sessions correctly
    1 participant