From f4b603056c9f7f6ac25a34459f9545996d4279a1 Mon Sep 17 00:00:00 2001 From: Kevin Brogan Date: Sat, 7 May 2022 13:36:29 -0700 Subject: [PATCH] Change " location.* " references to use " new URL(document.baseURI).* " instead. document.baseURI is still valid inside of a srcdoc iframe where as location is set to 'about:srcdoc' which is not useful. --- snowpack/assets/hmr-client.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/snowpack/assets/hmr-client.js b/snowpack/assets/hmr-client.js index d15e547edd..bc907b40a3 100644 --- a/snowpack/assets/hmr-client.js +++ b/snowpack/assets/hmr-client.js @@ -50,9 +50,9 @@ let socketURL = isWindowDefined && window.HMR_WEBSOCKET_URL; if (!socketURL) { const socketHost = isWindowDefined && window.HMR_WEBSOCKET_PORT && window.HMR_WEBSOCKET_PORT !== 80 - ? `${location.hostname}:${window.HMR_WEBSOCKET_PORT}` - : location.host; - socketURL = (location.protocol === 'http:' ? 'ws://' : 'wss://') + socketHost + '/'; + ? `${new URL(document.baseURI).hostname}:${window.HMR_WEBSOCKET_PORT}` + : new URL(document.baseURI).host; + socketURL = (new URL(document.baseURI).protocol === 'http:' ? 'ws://' : 'wss://') + socketHost + '/'; } const socket = new WebSocket(socketURL, 'esm-hmr'); @@ -105,7 +105,7 @@ class HotModuleState { } else if (ext !== 'js') { dep += '.proxy.js'; } - return new URL(dep, `${window.location.origin}${this.id}`).pathname; + return new URL(dep, `${new URL(document.baseURI).origin}${this.id}`).pathname; }); this.acceptCallbacks.push({ deps,