test_bug1574596.html (2094B)
1 <!DOCTYPE html> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1574596 5 --> 6 <head> 7 <title>Test for Bug 1574596</title> 8 <script src="/tests/SimpleTest/SimpleTest.js"></script> 9 <script src="/tests/SimpleTest/EventUtils.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 11 12 <script> 13 14 function resizingActive(win) { 15 let Ci = SpecialPowers.Ci; 16 let editor = SpecialPowers.wrap(win).docShell.editor; 17 return editor && editor.QueryInterface(Ci.nsIHTMLObjectResizer).isObjectResizingActive; 18 } 19 20 add_task(async function() { 21 let iframe = document.getElementById("iframe1"); 22 iframe.focus(); 23 let edit = iframe.contentDocument.getElementById("edit"); 24 edit.focus(); 25 26 iframe.contentDocument.execCommand("enableObjectResizing", false, true); 27 28 async function waitForSelectionChange() { 29 return new Promise(resolve => { 30 iframe.contentDocument.addEventListener("selectionchange", () => { 31 resolve(); 32 }, {once: true}); 33 }); 34 } 35 36 let target = iframe.contentDocument.getElementById("target"); 37 let promiseSelectionChangeEvent = waitForSelectionChange(); 38 synthesizeMouseAtCenter(target, {}, iframe.contentWindow); 39 await promiseSelectionChangeEvent; 40 41 ok(resizingActive(iframe.contentWindow), "Resizing should be active"); 42 43 iframe.style.display = "none"; 44 iframe.offsetHeight; // reflow 45 46 await new Promise(SimpleTest.executeSoon); 47 ok(!resizingActive(iframe.contentWindow), "Resizing should not be active"); 48 49 iframe.style.display = ""; 50 iframe.offsetHeight; // reflow 51 52 promiseSelectionChangeEvent = waitForSelectionChange(); 53 synthesizeMouseAtCenter(target, {}, iframe.contentWindow); 54 await promiseSelectionChangeEvent; 55 ok(resizingActive(iframe.contentWindow), "Resizing should be active again"); 56 }); 57 </script> 58 </head> 59 <body> 60 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1574596">Mozilla Bug 1574596</a> 61 <p id="display"></p> 62 63 <div> 64 <iframe id="iframe1" srcdoc="<div id=edit contenteditable><img id='target' src='green.png'></div>"></iframe> 65 </div> 66 </body> 67 </html>