show-picker-user-gesture.html (1107B)
1 <!DOCTYPE html> 2 <title>Test showPicker() user gesture requirement</title> 3 <meta name="timeout" content="long"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script src="/resources/testdriver.js"></script> 7 <script src="/resources/testdriver-vendor.js"></script> 8 9 <select> 10 <option>option</option> 11 </select> 12 13 <script type=module> 14 const select = document.querySelector('select'); 15 16 test(() => { 17 assert_throws_dom('NotAllowedError', () => { select.showPicker(); }); 18 }, `select showPicker() requires a user gesture`); 19 20 promise_test(async t => { 21 await test_driver.bless('show picker'); 22 select.showPicker(); 23 select.blur(); 24 25 assert_false(navigator.userActivation.isActive, 26 'User activation should be consumed after calling showPicker().'); 27 28 assert_throws_dom('NotAllowedError', () => select.showPicker(), 29 'select.showPicker() should throw when there is no user activation.'); 30 }, `select showPicker() does not throw when user activation is active.`); 31 </script>