blob: 1efe8d74d0c3a8386053a5969802d54cbb7cbeb3 [file] [log] [blame]
<html>
<head>
<title>Service Worker third party registration</title>
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
</head>
<body>
<script>
if (window.testRunner) {
testRunner.waitUntilDone();
testRunner.dumpAsText();
}
function logAndFinishTest(msg)
{
document.body.innerHTML = msg;
if (window.testRunner)
testRunner.notifyDone();
}
var shouldTest = !!window.location.hash;
async function doTest()
{
const iframe = await with_iframe("http://127.0.0.1:8801/WebKit/service-workers/resources/third-party-registration-frame.html");
if (shouldTest) {
iframe.contentWindow.postMessage("ancestorOrigins", '*');
const ancestorOriginsData = await new Promise(resolve => window.onmessage = (e) => resolve(e.data));
if (ancestorOriginsData.length !== 1) {
logAndFinishTest("FAIL ancestorOriginsData length is not 1");
return;
}
if (ancestorOriginsData[0] !== "http://localhost:8801") {
logAndFinishTest("FAIL ancestorOriginsData length is not 1");
return;
}
}
iframe.contentWindow.postMessage(shouldTest ? "read" : "write", '*');
const result = await new Promise(resolve => window.onmessage = (e) => resolve(e.data));
if (shouldTest) {
var expected = '{\"cache\":[],\"db\":null}';
logAndFinishTest(result === expected ? "PASS" : ("FAIL: got " + result));
return;
}
iframe.remove();
window.location = "http://localhost:8801/WebKit/service-workers/third-party-registration.html#second";
}
doTest();
</script>
</body>
</html>