window-open-user-activation.https.html (1428B)
1 <!DOCTYPE html> 2 <meta name="timeout" content="long"> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/common/utils.js"></script> 6 <script src="/common/dispatcher/dispatcher.js"></script> 7 <script src="/common/get-host-info.sub.js"></script> 8 <script src="resources/utils.js"></script> 9 <title>Test activation behavior with window.open() in fenced frames</title> 10 11 <body> 12 <script> 13 promise_test(async (t) => { 14 const fencedframe = await attachFencedFrameContext( 15 {generator_api: 'fledge'}); 16 t.add_cleanup(async () => document.body.removeChild(fencedframe.element)); 17 18 let opened_key = token(); 19 await fencedframe.execute((opened) => { 20 assert_false(navigator.userActivation.isActive); 21 let opened_url = generateURL('embeddee.html', [opened]); 22 window.open(opened_url, '_unfencedTop'); 23 }, [opened_key]); 24 25 let result = await Promise.race([ 26 nextValueFromServer(opened_key), 27 new Promise((resolve) => { 28 t.step_timeout(() => resolve('timeout'), 2000); 29 }) 30 ]); 31 32 assert_equals(result, 'timeout'); 33 }, 'Test that _unfencedTop navigation fails without transient user ' + 34 'activation.'); 35 36 // TODO(averge): Once fenced frames require user activation for popup 37 // navigations, add a test here to match that behavior. 38 </script> 39 </body>