mirror of
https://github.com/servo/servo.git
synced 2025-08-12 00:45:33 +01:00
Update web-platform-tests to revision be5419e845d39089ba6dc338c1bd0fa279108317
This commit is contained in:
parent
aa199307c8
commit
2b6f573eb5
3440 changed files with 109438 additions and 41750 deletions
|
@ -9,88 +9,163 @@ function openWindow(url) {
|
|||
});
|
||||
}
|
||||
|
||||
// Run a referrer policy test with the given settings.
|
||||
//
|
||||
// Example:
|
||||
// settings = {
|
||||
// workletType: 'paint',
|
||||
// fetchType: 'top-level' or 'descendant',
|
||||
// referrerPolicy: 'no-referrer',
|
||||
// scriptsOrigins: { topLevel: 'same', descendant: 'remote' }
|
||||
// };
|
||||
function runReferrerTest(settings) {
|
||||
const kWindowURL =
|
||||
'resources/referrer-window.html' +
|
||||
`?pipe=header(Referrer-Policy, ${settings.referrerPolicy})`;
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage(settings, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
}
|
||||
|
||||
// Runs a series of tests related to the referrer policy on a worklet.
|
||||
//
|
||||
// Usage:
|
||||
// runReferrerTests("paint");
|
||||
function runReferrerTests(worklet_type) {
|
||||
const worklet = get_worklet(worklet_type);
|
||||
function runReferrerTests(workletType) {
|
||||
const worklet = get_worklet(workletType);
|
||||
|
||||
// Tests for top-level script fetch -----------------------------------------
|
||||
|
||||
promise_test(() => {
|
||||
const kWindowURL = "resources/referrer-window.html" +
|
||||
"?pipe=header(Referrer-Policy,no-referrer)";
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage({ type: worklet_type,
|
||||
referrer_policy: 'no-referrer',
|
||||
is_cross_origin: false }, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'top-level',
|
||||
referrerPolicy: 'no-referrer',
|
||||
scriptOrigins: { topLevel: 'same' } });
|
||||
}, 'Importing a same-origin script from a page that has "no-referrer" ' +
|
||||
'referrer policy should not send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
const kWindowURL = "resources/referrer-window.html" +
|
||||
"?pipe=header(Referrer-Policy,no-referrer)";
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage({ type: worklet_type,
|
||||
referrer_policy: 'no-referrer',
|
||||
is_cross_origin: true }, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'top-level',
|
||||
referrerPolicy: 'no-referrer',
|
||||
scriptOrigins: { topLevel: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a page that has "no-referrer" ' +
|
||||
'referrer policy should not send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
const kWindowURL = 'resources/referrer-window.html' +
|
||||
'?pipe=header(Referrer-Policy,origin)';
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage({ type: worklet_type,
|
||||
referrer_policy: 'origin',
|
||||
is_cross_origin: false }, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'top-level',
|
||||
referrerPolicy: 'origin',
|
||||
scriptOrigins: { topLevel: 'same' } });
|
||||
}, 'Importing a same-origin script from a page that has "origin" ' +
|
||||
'referrer policy should send only an origin as referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
const kWindowURL = 'resources/referrer-window.html' +
|
||||
'?pipe=header(Referrer-Policy,origin)';
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage({ type: worklet_type,
|
||||
referrer_policy: 'origin',
|
||||
is_cross_origin: true }, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'top-level',
|
||||
referrerPolicy: 'origin',
|
||||
scriptOrigins: { topLevel: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a page that has "origin" ' +
|
||||
'referrer policy should send only an origin as referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
const kWindowURL = 'resources/referrer-window.html' +
|
||||
'?pipe=header(Referrer-Policy,same-origin)';
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage({ type: worklet_type,
|
||||
referrer_policy: 'same-origin',
|
||||
is_cross_origin: false }, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'top-level',
|
||||
referrerPolicy: 'same-origin',
|
||||
scriptOrigins: { topLevel: 'same' } });
|
||||
}, 'Importing a same-origin script from a page that has "same-origin" ' +
|
||||
'referrer policy should send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
const kWindowURL = 'resources/referrer-window.html' +
|
||||
'?pipe=header(Referrer-Policy,same-origin)';
|
||||
return openWindow(kWindowURL).then(win => {
|
||||
const promise = new Promise(resolve => window.onmessage = resolve);
|
||||
win.postMessage({ type: worklet_type,
|
||||
referrer_policy: 'same-origin',
|
||||
is_cross_origin: true }, '*');
|
||||
return promise;
|
||||
}).then(msg_event => assert_equals(msg_event.data, 'RESOLVED'));
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'top-level',
|
||||
referrerPolicy: 'same-origin',
|
||||
scriptOrigins: { topLevel: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a page that has "same-origin" ' +
|
||||
'referrer policy should not send referrer.');
|
||||
|
||||
// Tests for descendant script fetch -----------------------------------------
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'no-referrer',
|
||||
scriptOrigins: { topLevel: 'same',
|
||||
descendant: 'same' } });
|
||||
}, 'Importing a same-origin script from a same-origin worklet script that ' +
|
||||
'has "no-referrer" referrer policy should not send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'no-referrer',
|
||||
scriptOrigins: { topLevel: 'same',
|
||||
descendant: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a same-origin worklet script ' +
|
||||
'that has "no-referrer" referrer policy should not send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'no-referrer',
|
||||
scriptOrigins: { topLevel: 'remote',
|
||||
descendant: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a remote-origin worklet script ' +
|
||||
'that has "no-referrer" referrer policy should not send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'origin',
|
||||
scriptOrigins: { topLevel: 'same',
|
||||
descendant: 'same' } });
|
||||
}, 'Importing a same-origin script from a same-origin worklet script that ' +
|
||||
'has "origin" referrer policy should send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'origin',
|
||||
scriptOrigins: { topLevel: 'same',
|
||||
descendant: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a same-origin worklet script ' +
|
||||
'that has "origin" referrer policy should send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'origin',
|
||||
scriptOrigins: { topLevel: 'remote',
|
||||
descendant: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a remote-origin worklet script ' +
|
||||
'that has "origin" referrer policy should send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'same-origin',
|
||||
scriptOrigins: { topLevel: 'same',
|
||||
descendant: 'same' } });
|
||||
}, 'Importing a same-origin script from a same-origin worklet script that ' +
|
||||
'has "same-origin" referrer policy should send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'same-origin',
|
||||
scriptOrigins: { topLevel: 'same',
|
||||
descendant: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a same-origin worklet script ' +
|
||||
'that has "same-origin" referrer policy should not send referrer.');
|
||||
|
||||
promise_test(() => {
|
||||
return runReferrerTest({ workletType: workletType,
|
||||
fetchType: 'descendant',
|
||||
referrerPolicy: 'same-origin',
|
||||
scriptOrigins: { topLevel: 'remote',
|
||||
descendant: 'remote' } });
|
||||
}, 'Importing a remote-origin script from a remote-origin worklet script ' +
|
||||
'that has "same-origin" referrer policy should not send referrer.');
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue