selectionchange-on-shadow-dom.html (873B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>Test selectionchange events fired on shadow dom</title> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 7 <div id="root"></div> 8 9 <script> 10 let root = document.getElementById('root'); 11 let shadow = root.attachShadow({ mode: 'open' }); 12 let input = document.createElement('input'); 13 input.value = 'something to do 0'; 14 shadow.append(input); 15 16 let events_on_document = []; 17 document.addEventListener("selectionchange", ev => { 18 events_on_document.push(ev); 19 }); 20 21 promise_test(async () => { 22 input.focus(); 23 events_on_document.length = 0; 24 input.setSelectionRange(0, 1); 25 await new Promise(resolve => step_timeout(resolve, 0)); 26 assert_equals(events_on_document.length, 1); 27 }, "selectionchange event fired on a shadow dom bubble to the document"); 28 </script>