CSSStyleSheet-modify-after-removal.html (1232B)
1 <!doctype html> 2 <title>CSS Test: CSSStyleSheet modifications after removal</title> 3 <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstylesheet-interface"> 4 <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssrule-interface"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <iframe id="frm"></iframe> 8 <iframe id="frm2"></iframe> 9 <script> 10 test(() => { 11 frm.contentDocument.body.innerHTML = "<style>div {color:red}</style>"; 12 let sheet = frm.contentDocument.querySelector("style").sheet; 13 assert_equals(sheet.cssRules.length, 1); 14 frm.remove(); 15 document.body.offsetTop; 16 sheet.insertRule("span {color: green}", 0); 17 assert_equals(sheet.cssRules.length, 2); 18 }, "Modify sheet from removed iframe"); 19 20 test(() => { 21 frm2.contentWindow.eval("let sheet = new CSSStyleSheet(); document.adoptedStyleSheets = [ sheet ];"); 22 let sheet = frm2.contentDocument.adoptedStyleSheets[0]; 23 assert_equals(sheet.cssRules.length, 0); 24 frm2.remove(); 25 document.body.offsetTop; 26 sheet.insertRule("span {color: green}", 0); 27 assert_equals(sheet.cssRules.length, 1); 28 }, "Modify constructed sheet from removed iframe"); 29 </script>