| <!doctype html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>CSSOM - CSSStylesheet should support origins</title> |
| <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstylesheet-interface"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <link id="crossorigin" href="http://www1.{{host}}:{{ports[http][1]}}/stylesheet-same-origin.css" rel="stylesheet"> |
| <link id="sameorigin" href="stylesheet-same-origin.css" rel="stylesheet"> |
| <link id="sameorigindata" href="data:text/css,.green-text{color:rgb(0, 255, 0)}" rel="stylesheet"> |
| |
| <script> |
| var crossorigin = document.getElementById("crossorigin").sheet; |
| var sameorigin = document.getElementById("sameorigin").sheet; |
| var sameorigindata = document.getElementById("sameorigindata").sheet; |
| |
| test(function() { |
| assert_throws("SecurityError", |
| function () { |
| crossorigin.cssRules; |
| }, |
| "Cross origin stylesheet.cssRules should throw SecurityError."); |
| assert_throws("SecurityError", |
| function () { |
| crossorigin.insertRule("#test { margin: 10px; }", 1); |
| }, |
| "Cross origin stylesheet.insertRule should throw SecurityError."); |
| |
| assert_throws("SecurityError", |
| function () { |
| crossorigin.deleteRule(0); |
| }, |
| "Cross origin stylesheet.deleteRule should throw SecurityError."); |
| }, "Origin-clean check in cross-origin CSSOM Stylesheets"); |
| |
| function doOriginCleanCheck(sheet, name) { |
| assert_equals(sheet.cssRules.length, 1, name + " stylesheet.cssRules should be accessible."); |
| sheet.insertRule("#test { margin: 10px; }", 1); |
| assert_equals(sheet.cssRules.length, 2, name + " stylesheet.insertRule should be accessible."); |
| sheet.deleteRule(0); |
| assert_equals(sheet.cssRules.length, 1, name + " stylesheet.deleteRule should be accessible."); |
| } |
| |
| test(function() { |
| doOriginCleanCheck(sameorigin, "Same-origin"); |
| }, "Origin-clean check in same-origin CSSOM Stylesheets"); |
| |
| test(function() { |
| doOriginCleanCheck(sameorigindata, "data:css"); |
| }, "Origin-clean check in data:css CSSOM Stylesheets"); |
| |
| </script> |
| </head> |
| <body> |
| </html> |