зеркало из https://github.com/mozilla/gecko-dev.git
63 строки
2.0 KiB
HTML
63 строки
2.0 KiB
HTML
<!doctype html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<style id="sheet"></style>
|
|
<script>
|
|
// Even though some of these no longer exist, we still do want to test that
|
|
// they aren't exposed to the web.
|
|
const NON_CONTENT_ACCESIBLE_PSEUDOS = [
|
|
"::-moz-complex-control-wrapper",
|
|
"::-moz-number-wrapper",
|
|
"::-moz-number-text",
|
|
"::-moz-number-spin-up",
|
|
"::-moz-number-spin-down",
|
|
"::-moz-number-spin-box",
|
|
"::-moz-search-clear-button",
|
|
|
|
":-moz-native-anonymous",
|
|
":-moz-use-shadow-tree-root",
|
|
":-moz-table-border-nonzero",
|
|
":-moz-browser-frame",
|
|
":-moz-devtools-highlighted",
|
|
":-moz-styleeditor-transitioning",
|
|
":-moz-user-disabled",
|
|
":-moz-handler-clicktoplay",
|
|
":-moz-handler-vulnerable-updatable",
|
|
":-moz-handler-vulnerable-no-update",
|
|
":-moz-handler-disabled",
|
|
":-moz-handler-blocked",
|
|
":-moz-handler-chrased",
|
|
":-moz-has-dir-attr",
|
|
":-moz-dir-attr-ltr",
|
|
":-moz-dir-attr-rtl",
|
|
":-moz-dir-attr-like-auto",
|
|
":-moz-autofill",
|
|
":-moz-autofill-preview",
|
|
];
|
|
|
|
if (!SpecialPowers.getBoolPref("layout.css.xul-tree-pseudos.content.enabled")) {
|
|
NON_CONTENT_ACCESIBLE_PSEUDOS.push("::-moz-tree-row", "::-moz-tree-row(foo)");
|
|
}
|
|
|
|
test(function() {
|
|
sheet.textContent = `div { color: initial }`;
|
|
assert_equals(sheet.sheet.cssRules.length, 1);
|
|
}, "sanity");
|
|
|
|
for (const pseudo of NON_CONTENT_ACCESIBLE_PSEUDOS) {
|
|
test(function() {
|
|
sheet.textContent = `${pseudo} { color: blue; }`;
|
|
assert_equals(sheet.sheet.cssRules.length, 0,
|
|
pseudo + " shouldn't be accessible to content");
|
|
if (pseudo.indexOf("::") === 0) {
|
|
let pseudoStyle = getComputedStyle(document.documentElement, pseudo);
|
|
let elementStyle = getComputedStyle(document.documentElement);
|
|
for (prop of pseudoStyle) {
|
|
assert_equals(pseudoStyle[prop], elementStyle[prop],
|
|
pseudo + " styles shouldn't be visible from getComputedStyle");
|
|
}
|
|
}
|
|
}, pseudo);
|
|
}
|
|
</script>
|