| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Test: CSSOM StyleSheet insertRule across context</title> |
| <link rel="author" title="Kagami Sascha Rosylight" href="mailto:saschanaz@outlook.com"> |
| <link rel="author" title="Mozilla" href="https://mozilla.org"> |
| <link rel="help" href="https://drafts.csswg.org/cssom/"> |
| <script src="/resources/testharness.js" type="text/javascript"></script> |
| <script src="/resources/testharnessreport.js" type="text/javascript"></script> |
| |
| <iframe id="iframe"></iframe> |
| <script> |
| function createSheet() { |
| const tempStyleElement = iframe.contentDocument.createElement('style'); |
| iframe.contentDocument.head.append(tempStyleElement); |
| |
| const tempStyle = tempStyleElement.sheet; |
| tempStyleElement.remove(); |
| return tempStyle; |
| } |
| |
| test(() => { |
| const sheet = createSheet(); |
| sheet.insertRule(".kaoru {}"); |
| assert_equals(sheet.rules[0].constructor, iframe.contentWindow.CSSStyleRule); |
| }, "The constructor of inserted rule object must be from iframe"); |
| |
| test(() => { |
| const sheet = new iframe.contentWindow.CSSStyleSheet(); |
| sheet.insertRule(".kaoru {}"); |
| assert_equals(sheet.rules[0].constructor, iframe.contentWindow.CSSStyleRule); |
| }, "The constructor of inserted rule object must be from iframe for new CSSStyleSheet()"); |
| </script> |