Commit 045a0ba for novnc.com

commit 045a0ba15893030fd5e96d9aefe810e14ba6dec7
Author: Alexander Zeijlon <aleze@cendio.se>
Date:   Mon Mar 10 11:51:49 2025 +0100

    Let browser handle parsing of URLs before relaying

    We don't want to assign a path directly to url.pathname that contains a
    search query, since this causes '?' at the beginning of the query to be
    URL-encoded to '%3F'. Instead use URL() to parse the path for us.

diff --git a/app/ui.js b/app/ui.js
index fd23c80..51e57bd 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -1058,7 +1058,12 @@ const UI = {
             if (port) {
                 url.port = port;
             }
-            url.pathname = '/' + path;
+
+            // "./" is needed to force URL() to interpret the path-variable as
+            // a path and not as an URL. This is relevant if for example path
+            // starts with more than one "/", in which case it would be
+            // interpreted as a host name instead.
+            url = new URL("./" + path, url);
         } else {
             // Current (May 2024) browsers support relative WebSocket
             // URLs natively, but we need to support older browsers for