blob: b8bd88c13123c11d669ffd86357949e79ce74e82 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../resources/js-test.js"></script>
<script>
description("Passes a User Gesture through postMessage() to a worker context; press any key, click, or tap to continue.");
window.jsTestIsAsync = true;
function runTest() {
const mc = new MessageChannel();
const w = new Worker("worker-user-gesture.js");
w.postMessage('hello worker');
w.onmessage = event => {
if (window.internals) {
if (internals.isProcessingUserGesture())
testPassed('User Gesture was propagated through postMessage and back.');
else
testFailed('User Gesture was not propagated through postMessage and back.')
finishJSTest();
return;
}
navigator.clipboard.writeText(event.data).then(() => {
testPassed('User Gesture was propagated through postMessage and back.')
}).catch(e => {
testFailed('User Gesture was not propagated through postMessage and back.')
}).finally(finishJSTest);
};
}
window.addEventListener('load', event => {
if (window.internals)
internals.withUserGesture(runTest);
else
['keypress', 'click', 'touchend'].forEach(eventName => window.addEventListener(eventName, runTest, {once: true}));
});
</script>
</head>
<body>
</body>
</html>