Files
ladybird/Tests/LibWeb/Text/input/Worker/Worker-referrer.html
Shannon Booth 093ad69f5b Tests/LibWeb: Do not hardcode URL path for echo server tests
Instead, use the URL used by the echo server.
2026-03-23 22:32:43 +01:00

62 lines
1.8 KiB
HTML

<!doctype html>
<script src="../include.js"></script>
<script>
asyncTest(async done => {
const server = httpTestServer();
const reflectorUrl = await server.createEcho("GET", "/worker-referrer/reflector", {
status: 200,
headers: {
"Content-Type": "application/json",
},
reflect_headers_in_body: true,
});
const workerUrl = await server.createEcho("GET", "/worker-referrer/worker.js", {
status: 200,
headers: {
"Content-Type": "text/javascript",
},
body: `fetch("${reflectorUrl}").then(r => r.json()).then(r => postMessage(r))`,
});
const redirectSecondUrl = await server.createEcho("GET", "/redirect-second", {
status: 302,
headers: {
Location: workerUrl,
},
});
const redirectFirstUrl = await server.createEcho("GET", "/redirect-first", {
status: 302,
headers: {
Location: redirectSecondUrl,
},
});
const iframeUrl = await server.createEcho("GET", "/worker-referrer/iframe", {
status: 200,
headers: {
"Access-Control-Allow-Origin": "*",
"Content-Type": "text/html",
},
body: `
<!DOCTYPE html>
<script>
new Worker("${redirectFirstUrl}").onmessage = e => window.parent.postMessage(e.data, "*")
<\/script>`,
});
window.onmessage = e => {
const referrer = new URL(e.data["Referer"][0]);
referrer.port = "";
println("Got referrer: " + referrer);
done();
};
document.querySelector("iframe").src = iframeUrl;
});
</script>
<iframe></iframe>