fix: webRequest should be able to modify CORS headers (#21099)
* fix: always use extraHeaders mode * fix: clear pending callbacks * fix: do not use "extraHeaders" for net module * test: webRequest should be able to modify CROS headers * chore: CROS => CORS Co-Authored-By: Milan Burda <milan.burda@gmail.com> * chore: CROS => CORS Co-Authored-By: Milan Burda <milan.burda@gmail.com>
This commit is contained in:
parent
af1e8a347e
commit
b02a20e4dc
5 changed files with 51 additions and 6 deletions
|
@ -20,6 +20,9 @@ describe('webRequest module', () => {
|
|||
if (req.headers.accept === '*/*;test/header') {
|
||||
content += 'header/received'
|
||||
}
|
||||
if (req.headers.origin === 'http://new-origin') {
|
||||
content += 'new/origin'
|
||||
}
|
||||
res.end(content)
|
||||
}
|
||||
})
|
||||
|
@ -145,6 +148,16 @@ describe('webRequest module', () => {
|
|||
expect(data).to.equal('/header/received')
|
||||
})
|
||||
|
||||
it('can change CORS headers', async () => {
|
||||
ses.webRequest.onBeforeSendHeaders((details, callback) => {
|
||||
const requestHeaders = details.requestHeaders
|
||||
requestHeaders.Origin = 'http://new-origin'
|
||||
callback({ requestHeaders: requestHeaders })
|
||||
})
|
||||
const { data } = await ajax(defaultURL)
|
||||
expect(data).to.equal('/new/origin')
|
||||
})
|
||||
|
||||
it('resets the whole headers', async () => {
|
||||
const requestHeaders = {
|
||||
Test: 'header'
|
||||
|
@ -199,6 +212,16 @@ describe('webRequest module', () => {
|
|||
expect(headers).to.match(/^custom: Changed$/m)
|
||||
})
|
||||
|
||||
it('can change CORS headers', async () => {
|
||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||
const responseHeaders = details.responseHeaders!
|
||||
responseHeaders['access-control-allow-origin'] = ['http://new-origin'] as any
|
||||
callback({ responseHeaders: responseHeaders })
|
||||
})
|
||||
const { headers } = await ajax(defaultURL)
|
||||
expect(headers).to.match(/^access-control-allow-origin: http:\/\/new-origin$/m)
|
||||
})
|
||||
|
||||
it('does not change header by default', async () => {
|
||||
ses.webRequest.onHeadersReceived((details, callback) => {
|
||||
callback({})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue