// META: global=window,worker // META: script=/common/get-host-info.sub.js const BASE = location.href; const IS_HTTPS = new URL(BASE).protocol === 'https:'; const REMOTE_HOST = get_host_info()['REMOTE_HOST']; const REMOTE_PORT = IS_HTTPS ? get_host_info()['HTTPS_PORT'] : get_host_info()['HTTP_PORT']; const REMOTE_ORIGIN = new URL(`//${REMOTE_HOST}:${REMOTE_PORT}`, BASE).origin; const DESTINATION = new URL('../resources/cors-top.txt', BASE); function CreateURL(url, BASE, params) { const u = new URL(url, BASE); for (const {name, value} of params) { u.searchParams.append(name, value); } return u; } const redirect = CreateURL('/fetch/api/resources/redirect.py', REMOTE_ORIGIN, [{name: 'redirect_status', value: 303}, {name: 'location', value: DESTINATION.href}]); promise_test(async (test) => { const res = await fetch(redirect.href, {mode: 'no-cors'}); // This is discussed at https://github.com/whatwg/fetch/issues/737. assert_equals(res.type, 'opaque'); }, 'original => remote => original with mode: "no-cors"'); promise_test(async (test) => { const res = await fetch(redirect.href, {mode: 'cors'}); assert_equals(res.type, 'cors'); }, 'original => remote => original with mode: "cors"'); done();