summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBrendan Allan <[email protected]>2026-04-21 13:32:31 +0800
committerGitHub <[email protected]>2026-04-21 13:32:31 +0800
commit38e2f4cddafcbc4e3ac5f8ebdcdab9d1f468737b (patch)
tree1cba7a035bb519400056aed31f1082f04ed6df9e
parentbd54b68c123e1b1ceef22ee6196f879f2a5b9fbc (diff)
downloadopencode-38e2f4cddafcbc4e3ac5f8ebdcdab9d1f468737b.tar.gz
opencode-38e2f4cddafcbc4e3ac5f8ebdcdab9d1f468737b.zip
fix(desktop-electron): add CORS headers to main window webRequest (#23633)
-rw-r--r--packages/desktop-electron/src/main/windows.ts27
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/desktop-electron/src/main/windows.ts b/packages/desktop-electron/src/main/windows.ts
index df55e8da2..337e1ca0b 100644
--- a/packages/desktop-electron/src/main/windows.ts
+++ b/packages/desktop-electron/src/main/windows.ts
@@ -100,6 +100,19 @@ export function createMainWindow() {
},
})
+ win.webContents.session.webRequest.onBeforeSendHeaders((details, callback) => {
+ const { requestHeaders } = details
+ upsertKeyValue(requestHeaders, "Access-Control-Allow-Origin", ["*"])
+ callback({ requestHeaders })
+ })
+
+ win.webContents.session.webRequest.onHeadersReceived((details, callback) => {
+ const { responseHeaders = {} } = details
+ upsertKeyValue(responseHeaders, "Access-Control-Allow-Origin", ["*"])
+ upsertKeyValue(responseHeaders, "Access-Control-Allow-Headers", ["*"])
+ callback({ responseHeaders })
+ })
+
state.manage(win)
loadWindow(win, "index.html")
wireZoom(win)
@@ -177,3 +190,17 @@ function wireZoom(win: BrowserWindow) {
win.webContents.setZoomFactor(1)
})
}
+
+function upsertKeyValue(obj: Record<string, any>, keyToChange: string, value: any) {
+ const keyToChangeLower = keyToChange.toLowerCase()
+ for (const key of Object.keys(obj)) {
+ if (key.toLowerCase() === keyToChangeLower) {
+ // Reassign old key
+ obj[key] = value
+ // Done
+ return
+ }
+ }
+ // Insert at end instead
+ obj[keyToChange] = value
+}