Skip to content

Commit 38e2f4c

Browse files
authored
fix(desktop-electron): add CORS headers to main window webRequest (#23633)
1 parent bd54b68 commit 38e2f4c

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

packages/desktop-electron/src/main/windows.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,19 @@ export function createMainWindow() {
100100
},
101101
})
102102

103+
win.webContents.session.webRequest.onBeforeSendHeaders((details, callback) => {
104+
const { requestHeaders } = details
105+
upsertKeyValue(requestHeaders, "Access-Control-Allow-Origin", ["*"])
106+
callback({ requestHeaders })
107+
})
108+
109+
win.webContents.session.webRequest.onHeadersReceived((details, callback) => {
110+
const { responseHeaders = {} } = details
111+
upsertKeyValue(responseHeaders, "Access-Control-Allow-Origin", ["*"])
112+
upsertKeyValue(responseHeaders, "Access-Control-Allow-Headers", ["*"])
113+
callback({ responseHeaders })
114+
})
115+
103116
state.manage(win)
104117
loadWindow(win, "index.html")
105118
wireZoom(win)
@@ -177,3 +190,17 @@ function wireZoom(win: BrowserWindow) {
177190
win.webContents.setZoomFactor(1)
178191
})
179192
}
193+
194+
function upsertKeyValue(obj: Record<string, any>, keyToChange: string, value: any) {
195+
const keyToChangeLower = keyToChange.toLowerCase()
196+
for (const key of Object.keys(obj)) {
197+
if (key.toLowerCase() === keyToChangeLower) {
198+
// Reassign old key
199+
obj[key] = value
200+
// Done
201+
return
202+
}
203+
}
204+
// Insert at end instead
205+
obj[keyToChange] = value
206+
}

0 commit comments

Comments
 (0)