blob: 815434785a2d24b835cbc33584be932172defc6e [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>
Test allow attribute with "web-share" and canShare() method
</title>
<meta name="viewport" content="initial-scale=5, width=device-width" />
<script src="../resources/js-test-pre.js"></script>
<script>
testRunner?.dumpAsText();
testRunner?.waitUntilDone();
function waitFor(target, eventName) {
return new Promise((resolve) => {
target.addEventListener(eventName, resolve, { once: true });
});
}
window.addEventListener("load", async () => {
for (const iframe of document.querySelectorAll("iframe")) {
const { enabled, src } = iframe.dataset;
const isAllowed = enabled === "true";
const action = "call canShare()";
iframe.contentWindow.postMessage({ action }, "*");
const { data } = await waitFor(window, "message");
const { exceptionMessage, exceptionName, result } = data;
const msg = `iframe src: "${iframe.src}" with allow="${
iframe.allow
}" ${
isAllowed ? "is allowed to" : "MUST NOT be allowed to"
} ${action}. ${exceptionName ?? ""} ${exceptionMessage ?? ""}`;
switch (result) {
case true:
isAllowed ? testPassed(msg) : testFailed(msg);
break;
case false:
!isAllowed ? testPassed(msg) : testFailed(msg);
break;
default:
testFailed(msg + ` - result was: ${result}`);
}
}
testRunner.notifyDone();
});
</script>
</head>
<body>
<iframe
data-enabled="false"
src="https://localhost:8443/webshare/resources/webshare-postmessage.html"
></iframe>
<iframe
data-enabled="true"
src="./resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share"
data-enabled="true"
src="https://localhost:8443/webshare/resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share"
data-enabled="true"
src="./resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share *"
data-enabled="true"
src="https://localhost:8443/webshare/resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share *"
data-enabled="true"
src="./resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share 'none'"
data-enabled="false"
src="https://localhost:8443/webshare/resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share 'none'"
data-enabled="false"
src="./resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share 'self'"
data-enabled="false"
src="https://localhost:8443/webshare/resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share 'self'"
data-enabled="true"
src="./resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share https://localhost:8443"
data-enabled="true"
src="https://localhost:8443/webshare/resources/webshare-postmessage.html"
></iframe>
<iframe
allow="web-share https://localhost:8443"
data-enabled="false"
src="./resources/webshare-postmessage.html"
></iframe>
</body>
</html>