// Helpers that return headers objects with a particular guard function headersGuardNone(fill) { if (fill) returnnew Headers(fill); returnnew Headers();
}
function headersGuardResponse(fill) { const opts = {}; if (fill) opts.headers = fill; returnnew Response('', opts).headers;
}
function headersGuardRequest(fill) { const opts = {}; if (fill) opts.headers = fill; returnnew Request('./', opts).headers;
}
function headersGuardRequestNoCors(fill) { const opts = { mode: 'no-cors' }; if (fill) opts.headers = fill; returnnew Request('./', opts).headers;
}
for (const [guardType, createHeaders] of headerGuardTypes) {
test(() => { // There are three ways to set headers. // Filling, appending, and setting. Test each:
let headers = createHeaders({ Range: 'foo' });
assert_equals(headers.get('Range'), 'foo');
assert_regexp_match(await response.json(),
/.*\bidentity\b.*/,
`Expect identity accept-encoding if range header is ${JSON.stringify(rangeHeader)}`);
}
}, `Fetch with range header will be sent with Accept-Encoding: identity`);
promise_test(async () => { const wavURL = new URL(get_host_info().HTTP_REMOTE_ORIGIN + '/fetch/range/resources/long-wav.py'); const stashTakeURL = new URL('resources/stash-take.py', location);
for (const rangeHeader of rangeHeaders) {
changeToken();
await fetch(wavURL, { headers: { Range : rangeHeader} }).then(() => { throw"loaded with range header " + rangeHeader }, () => { });
}
}, `Cross Origin Fetch with non safe range header`);
promise_test(async () => { const wavURL = new URL(get_host_info().HTTP_REMOTE_ORIGIN + '/fetch/range/resources/long-wav.py'); const stashTakeURL = new URL('resources/stash-take.py', location);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.