test_anonymousContent_append_after_reflow.html (1628B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1020244 --> 4 <meta charset="utf-8"> 5 <title>Test for Bug 1020244 - Make sure anonymous content still works after a reflow (after the canvasframe has been reconstructed)</title> 6 <script src="/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" href="/tests/SimpleTest/test.css"/> 8 <div> 9 <div id="test-element" style="color:red;">text content</div> 10 </div> 11 <script> 12 info("Inserting anonymous content into the document frame"); 13 let chromeDocument = SpecialPowers.wrap(document); 14 let anonymousContent = chromeDocument.insertAnonymousContent(); 15 let testElement = document.querySelector("div"); 16 anonymousContent.root.appendChild(testElement.cloneNode(true)); 17 18 info("Modifying the style of an element in the anonymous content"); 19 anonymousContent.root.getElementById("test-element").style.color = "green"; 20 21 info("Toggling the display style on the document element to force reframing"); 22 // Note that we force sync reflows to make sure the canvasframe is recreated 23 // synchronously. 24 document.documentElement.style.display = "none"; 25 let forceFlush = document.documentElement.offsetHeight; 26 document.documentElement.style.display = "block"; 27 forceFlush = document.documentElement.offsetHeight; 28 29 info("Checking that the anonymous content can be retrieved still"); 30 let color = anonymousContent.root.getElementById("test-element").style.color; 31 is(color, "green", "The anonymous content still exists after reflow"); 32 33 info("Removing the anonymous content"); 34 chromeDocument.removeAnonymousContent(anonymousContent); 35 </script>