Skip to content

Commit 96c84b8

Browse files
committed
fix: relative urls not opening corectly
1 parent 52bc58d commit 96c84b8

3 files changed

Lines changed: 19 additions & 4 deletions

File tree

src-electron/config-prod.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"stage": "production",
44
"productName": "Phoenix Code",
55
"phoenixLoadURL": "phtauri://localhost/",
6+
"trustedElectronDomains": ["phtauri://localhost/", "https://phcode.dev/"],
67
"gaMetricsURL": "https://phcode.dev/desktop-metrics.html"
78
}

src-electron/main-window-ipc.js

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,25 @@ function registerWindowIpcHandlers() {
9393
const prefix = isExtension ? PHOENIX_EXTENSION_WINDOW_PREFIX : PHOENIX_WINDOW_PREFIX;
9494
const label = getNextLabel(prefix);
9595

96+
// Resolve relative URLs based on the sender's current URL
97+
let resolvedUrl = url;
98+
if (!url.startsWith('http://') && !url.startsWith('https://') && !url.startsWith('file://')) {
99+
const senderUrl = event.sender.getURL();
100+
if (senderUrl) {
101+
resolvedUrl = new URL(url, senderUrl).href;
102+
}
103+
}
104+
105+
console.log(`Creating window ${label} with URL ${resolvedUrl}, isTrustedOrigin=${isTrustedOrigin(resolvedUrl)}`);
106+
96107
const webPreferences = {
97108
contextIsolation: true,
98109
nodeIntegration: false,
99110
sandbox: true
100111
};
101112

102-
// Only inject preload for Phoenix windows with trusted URLs, not extensions
103-
if (!isExtension && isTrustedOrigin(url)) {
113+
// Only inject preload for Phoenix windows with trusted URLs
114+
if (isTrustedOrigin(resolvedUrl)) {
104115
webPreferences.preload = path.join(__dirname, 'preload.js');
105116
}
106117

@@ -133,13 +144,16 @@ function registerWindowIpcHandlers() {
133144
webPreferences
134145
});
135146

147+
// uncomment line below if you want to open dev tools at app start
148+
// win.webContents.openDevTools();
149+
136150
// Track window state for Phoenix windows (not extensions)
137151
if (!isExtension) {
138152
trackWindowState(win);
139153
}
140154

141155
registerWindow(win, label);
142-
await win.loadURL(url);
156+
await win.loadURL(resolvedUrl);
143157

144158
return label;
145159
});

src-electron/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ async function createMetricsWindow() {
7878
});
7979
metricsWindow.loadURL(gaMetricsURL);
8080
// uncomment line below if you want to open dev tools at app start
81-
metricsWindow.webContents.openDevTools();
81+
// metricsWindow.webContents.openDevTools();
8282
}
8383

8484
async function createWindow() {

0 commit comments

Comments
 (0)