OLD | NEW |
(Empty) | |
| 1 if (this.document === undefined) { |
| 2 importScripts("/common/utils.js"); |
| 3 importScripts("/resources/testharness.js"); |
| 4 importScripts("../resources/utils.js"); |
| 5 importScripts("/common/get-host-info.sub.js"); |
| 6 } |
| 7 |
| 8 function testReferrerAfterRedirection(desc, redirectUrl, redirectLocation, refer
rerPolicy, redirectReferrerPolicy, expectedReferrer) { |
| 9 var url = redirectUrl; |
| 10 var urlParameters = "?location=" + encodeURIComponent(redirectLocation); |
| 11 |
| 12 if (redirectReferrerPolicy) |
| 13 urlParameters += "&redirect_referrerpolicy=" + redirectReferrerPolicy; |
| 14 |
| 15 var requestInit = {"redirect": "follow", "referrerPolicy": referrerPolicy}; |
| 16 |
| 17 promise_test(function(test) { |
| 18 return fetch(url + urlParameters, requestInit).then(function(response) { |
| 19 assert_equals(response.status, 200, "Inspect header response's status is
200"); |
| 20 assert_equals(response.headers.get("x-request-referer"), expectedReferre
r ? expectedReferrer : null, "Check referrer header"); |
| 21 }); |
| 22 }, desc); |
| 23 } |
| 24 |
| 25 var referrerOrigin = get_host_info().HTTP_ORIGIN + "/"; |
| 26 var referrerUrl = location.href; |
| 27 |
| 28 var redirectUrl = RESOURCES_DIR + "redirect.py"; |
| 29 var locationUrl = get_host_info().HTTP_ORIGIN + dirname(location.pathname) + RES
OURCES_DIR + "inspect-headers.py?headers=referer"; |
| 30 var crossLocationUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pa
thname) + RESOURCES_DIR + "inspect-headers.py?cors&headers=referer"; |
| 31 |
| 32 testReferrerAfterRedirection("Same origin redirection, empty init, unsafe-url re
direct header ", redirectUrl, locationUrl, "", "unsafe-url", referrerUrl); |
| 33 testReferrerAfterRedirection("Same origin redirection, empty init, no-referrer-w
hen-downgrade redirect header ", redirectUrl, locationUrl, "", "no-referrer-when
-downgrade", referrerUrl); |
| 34 testReferrerAfterRedirection("Same origin redirection, empty init, same-origin r
edirect header ", redirectUrl, locationUrl, "", "same-origin", referrerUrl); |
| 35 testReferrerAfterRedirection("Same origin redirection, empty init, origin redire
ct header ", redirectUrl, locationUrl, "", "origin", referrerOrigin); |
| 36 testReferrerAfterRedirection("Same origin redirection, empty init, origin-when-c
ross-origin redirect header ", redirectUrl, locationUrl, "", "origin-when-cross-
origin", referrerUrl); |
| 37 testReferrerAfterRedirection("Same origin redirection, empty init, no-referrer r
edirect header ", redirectUrl, locationUrl, "", "no-referrer", null); |
| 38 testReferrerAfterRedirection("Same origin redirection, empty init, strict-origin
redirect header ", redirectUrl, locationUrl, "", "strict-origin", referrerOrigi
n); |
| 39 testReferrerAfterRedirection("Same origin redirection, empty init, strict-origin
-when-cross-origin redirect header ", redirectUrl, locationUrl, "", "strict-orig
in-when-cross-origin", referrerUrl); |
| 40 |
| 41 testReferrerAfterRedirection("Same origin redirection, empty redirect header, un
safe-url init ", redirectUrl, locationUrl, "unsafe-url", "", referrerUrl); |
| 42 testReferrerAfterRedirection("Same origin redirection, empty redirect header, no
-referrer-when-downgrade init ", redirectUrl, locationUrl, "no-referrer-when-dow
ngrade", "", referrerUrl); |
| 43 testReferrerAfterRedirection("Same origin redirection, empty redirect header, sa
me-origin init ", redirectUrl, locationUrl, "same-origin", "", referrerUrl); |
| 44 testReferrerAfterRedirection("Same origin redirection, empty redirect header, or
igin init ", redirectUrl, locationUrl, "origin", "", referrerOrigin); |
| 45 testReferrerAfterRedirection("Same origin redirection, empty redirect header, or
igin-when-cross-origin init ", redirectUrl, locationUrl, "origin-when-cross-orig
in", "", referrerUrl); |
| 46 testReferrerAfterRedirection("Same origin redirection, empty redirect header, no
-referrer init ", redirectUrl, locationUrl, "no-referrer", "", null); |
| 47 testReferrerAfterRedirection("Same origin redirection, empty redirect header, st
rict-origin init ", redirectUrl, locationUrl, "strict-origin", "", referrerOrigi
n); |
| 48 testReferrerAfterRedirection("Same origin redirection, empty redirect header, st
rict-origin-when-cross-origin init ", redirectUrl, locationUrl, "strict-origin-w
hen-cross-origin", "", referrerUrl); |
| 49 |
| 50 testReferrerAfterRedirection("Cross origin redirection, empty init, unsafe-url r
edirect header ", redirectUrl, crossLocationUrl, "", "unsafe-url", referrerUrl); |
| 51 testReferrerAfterRedirection("Cross origin redirection, empty init, no-referrer-
when-downgrade redirect header ", redirectUrl, crossLocationUrl, "", "no-referre
r-when-downgrade", referrerUrl); |
| 52 testReferrerAfterRedirection("Cross origin redirection, empty init, same-origin
redirect header ", redirectUrl, crossLocationUrl, "", "same-origin", null); |
| 53 testReferrerAfterRedirection("Cross origin redirection, empty init, origin redir
ect header ", redirectUrl, crossLocationUrl, "", "origin", referrerOrigin); |
| 54 testReferrerAfterRedirection("Cross origin redirection, empty init, origin-when-
cross-origin redirect header ", redirectUrl, crossLocationUrl, "", "origin-when-
cross-origin", referrerOrigin); |
| 55 testReferrerAfterRedirection("Cross origin redirection, empty init, no-referrer
redirect header ", redirectUrl, crossLocationUrl, "", "no-referrer", null); |
| 56 testReferrerAfterRedirection("Cross origin redirection, empty init, strict-origi
n redirect header ", redirectUrl, crossLocationUrl, "", "strict-origin", referre
rOrigin); |
| 57 testReferrerAfterRedirection("Cross origin redirection, empty init, strict-origi
n-when-cross-origin redirect header ", redirectUrl, crossLocationUrl, "", "stric
t-origin-when-cross-origin", referrerOrigin); |
| 58 |
| 59 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, u
nsafe-url init ", redirectUrl, crossLocationUrl, "unsafe-url", "", referrerUrl); |
| 60 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, n
o-referrer-when-downgrade init ", redirectUrl, crossLocationUrl, "no-referrer-wh
en-downgrade", "", referrerUrl); |
| 61 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, s
ame-origin init ", redirectUrl, crossLocationUrl, "same-origin", "", null); |
| 62 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, o
rigin init ", redirectUrl, crossLocationUrl, "origin", "", referrerOrigin); |
| 63 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, o
rigin-when-cross-origin init ", redirectUrl, crossLocationUrl, "origin-when-cros
s-origin", "", referrerOrigin); |
| 64 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, n
o-referrer init ", redirectUrl, crossLocationUrl, "no-referrer", "", null); |
| 65 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, s
trict-origin init ", redirectUrl, crossLocationUrl, "strict-origin", "", referre
rOrigin); |
| 66 testReferrerAfterRedirection("Cross origin redirection, empty redirect header, s
trict-origin-when-cross-origin init ", redirectUrl, crossLocationUrl, "strict-or
igin-when-cross-origin", "", referrerOrigin); |
| 67 |
| 68 done(); |
OLD | NEW |