Compare commits

...

1 Commits

Author SHA1 Message Date
Luke Parker 37f67daf83 fix(desktop): ignore packaged renderer override 2026-08-13 17:02:47 +00:00
3 changed files with 24 additions and 4 deletions
@@ -0,0 +1,16 @@
import { describe, expect, test } from "bun:test"
import { resolveRendererDevUrl } from "./renderer-url"
describe("renderer development URL", () => {
test("allows a valid URL in development", () => {
expect(resolveRendererDevUrl(false, "http://localhost:5173")?.origin).toBe("http://localhost:5173")
})
test("ignores the override in packaged applications", () => {
expect(resolveRendererDevUrl(true, "https://example.com")).toBeUndefined()
})
test("ignores invalid URLs", () => {
expect(resolveRendererDevUrl(false, "not a url")).toBeUndefined()
})
})
@@ -0,0 +1,4 @@
export function resolveRendererDevUrl(packaged: boolean, value?: string) {
if (packaged || !value || !URL.canParse(value)) return undefined
return new URL(value)
}
+4 -4
View File
@@ -15,6 +15,7 @@ import { createUnresponsiveSampler } from "./unresponsive"
import { nativeT } from "./native-translations"
import { createWindowRegistry } from "./window-registry"
import { safeWindowURL } from "./window-state"
import { resolveRendererDevUrl } from "./renderer-url"
import { resolveExternalURL, resolveLocalFilePath } from "./external-url"
const root = dirname(fileURLToPath(import.meta.url))
@@ -332,7 +333,7 @@ export function registerRendererProtocol() {
}
function loadWindow(win: BrowserWindow, html: string) {
const devUrl = process.env.ELECTRON_RENDERER_URL
const devUrl = resolveRendererDevUrl(app.isPackaged, process.env.ELECTRON_RENDERER_URL)
if (devUrl) {
const url = new URL(html, devUrl)
void win.loadURL(url.toString())
@@ -510,9 +511,8 @@ function isRendererUrl(value?: string, html = false) {
const url = new URL(value)
if (html && !url.pathname.endsWith(".html")) return false
if (url.protocol === `${rendererProtocol}:` && url.host === rendererHost) return true
const devUrl = process.env.ELECTRON_RENDERER_URL
if (!devUrl || !URL.canParse(devUrl)) return false
return url.origin === new URL(devUrl).origin
const devUrl = resolveRendererDevUrl(app.isPackaged, process.env.ELECTRON_RENDERER_URL)
return devUrl ? url.origin === devUrl.origin : false
}
function wireZoom(win: BrowserWindow) {