Skip to content

Commit

Permalink
fix: session referer rewritten in iframe tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
naggingant committed Nov 10, 2022
1 parent ee44f29 commit a39c8c3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/proxy/index.ts
Expand Up @@ -211,7 +211,7 @@ export default class Proxy extends Router {
const windowId = refererDest && refererDest.windowId || void 0;

if (session) {
session.options.referer = referer || session.options.referer;
if (!isIframe) session.options.referer = referer || session.options.referer;

res.setHeader(BUILTIN_HEADERS.contentType, 'application/x-javascript');
addPreventCachingHeaders(res);
Expand Down
27 changes: 27 additions & 0 deletions test/server/proxy/regression-test.js
Expand Up @@ -1591,6 +1591,33 @@ describe('Regression', () => {
});
});

it('Should not alter referer after the iframe task (GH-7376)', async () => {
session.getPayloadScript = async () => 'PayloadScript';
session.getIframePayloadScript = async () => 'IframePayloadScript';

const expectedReferer = getProxyUrl('http://example.com/');

await request({
headers: {
referer: proxy.openSession('http://example.com', session),
},
url: 'http://localhost:1836/task.js',
resolveWithFullResponse: true,
});

expect(session.options.referer).eql(expectedReferer);

await request({
headers: {
referer: proxy.openSession('http://iframe.example.com', session),
},
url: 'http://localhost:1836/iframe-task.js',
resolveWithFullResponse: true,
});

expect(session.options.referer).eql(expectedReferer);
});

it('Should use `referrer` from the session options if it is not existed in request (GH-6295)', () => {
const req = {
url: getProxyUrl('http://example.com/'),
Expand Down

0 comments on commit a39c8c3

Please sign in to comment.