header-referrer-helper.js (1197B)
1 'use strict'; 2 3 // https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer 4 const REFERRER_ORIGIN = self.location.origin + '/'; 5 const REFERRER_URL = self.location.href; 6 7 function testReferrerHeader(id, host, expectedReferrer) { 8 const url = `${ 9 host}/beacon/resources/inspect-header.py?header=referer&cmd=put&id=${id}`; 10 11 promise_test(t => { 12 fetchLater(url, {activateAfter: 0}); 13 return pollResult(expectedReferrer, id).then(result => { 14 assert_equals(result, expectedReferrer, 'Correct referrer header result'); 15 }); 16 }, `Test referer header ${host}`); 17 } 18 19 function pollResult(expectedReferrer, id) { 20 const checkUrl = 21 `/beacon/resources/inspect-header.py?header=referer&cmd=get&id=${id}`; 22 23 return new Promise(resolve => { 24 function checkResult() { 25 fetch(checkUrl).then(response => { 26 assert_equals( 27 response.status, 200, 'Inspect header response\'s status is 200'); 28 let result = response.headers.get('x-request-referer'); 29 30 if (result != undefined) { 31 resolve(result); 32 } else { 33 step_timeout(checkResult.bind(this), 100); 34 } 35 }); 36 } 37 checkResult(); 38 }); 39 }