diff --git a/fetch/metadata/embed.tentative.https.sub.html b/fetch/metadata/embed.tentative.https.sub.html index bf895e9d5385e9c..8a4e1ebf027061f 100644 --- a/fetch/metadata/embed.tentative.https.sub.html +++ b/fetch/metadata/embed.tentative.https.sub.html @@ -65,4 +65,76 @@ document.body.appendChild(e); }) }, "Cross-Site embed"); + + promise_test(t => { + return new Promise((resolve, reject) => { + let key = "post-embed-same-origin" + nonce; + + let e = document.createElement('embed'); + e.src = "/common/blank.html"; + e.addEventListener("load", _ => { + e.addEventListener("load", e => { + let expected = {"dest":"embed", "site":"same-origin", "user":"", "mode":"no-cors"}; + fetch("/fetch/metadata/resources/record-header.py?retrieve=true&file=" + key) + .then(response => response.text()) + .then(text => assert_header_equals(text, expected)) + .then(_ => resolve()) + .catch(e => reject(e)); + }, { once: true }); + + // Navigate the existing `` + window.frames[window.length - 1].location = "https://{{host}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; + }, { once: true }); + + document.body.appendChild(e); + }) + }, "Navigate to same-origin embed"); + + promise_test(t => { + return new Promise((resolve, reject) => { + let key = "post-embed-same-origin" + nonce; + + let e = document.createElement('embed'); + e.src = "/common/blank.html"; + e.addEventListener("load", _ => { + e.addEventListener("load", e => { + let expected = {"dest":"embed", "site":"same-site", "user":"", "mode":"no-cors"}; + fetch("/fetch/metadata/resources/record-header.py?retrieve=true&file=" + key) + .then(response => response.text()) + .then(text => assert_header_equals(text, expected)) + .then(_ => resolve()) + .catch(e => reject(e)); + }, { once: true }); + + // Navigate the existing `` + window.frames[window.length - 1].location = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; + }, { once: true }); + + document.body.appendChild(e); + }) + }, "Navigate to same-site embed"); + + promise_test(t => { + return new Promise((resolve, reject) => { + let key = "post-embed-same-origin" + nonce; + + let e = document.createElement('embed'); + e.src = "/common/blank.html"; + e.addEventListener("load", _ => { + e.addEventListener("load", e => { + let expected = {"dest":"embed", "site":"cross-site", "user":"", "mode":"no-cors"}; + fetch("/fetch/metadata/resources/record-header.py?retrieve=true&file=" + key) + .then(response => response.text()) + .then(text => assert_header_equals(text, expected)) + .then(_ => resolve()) + .catch(e => reject(e)); + }, { once: true }); + + // Navigate the existing `` + window.frames[window.length - 1].location = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/metadata/resources/record-header.py?file=" + key; + }, { once: true }); + + document.body.appendChild(e); + }) + }, "Navigate to cross-site embed");