Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!DOCTYPE html>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<link id=light-link rel=stylesheet href=resources/link-rel-attribute.css>
<div id=light-div class=green></div>
<script>
async function testLinkRelModification(t, testDiv, testLink) {
const watcher = new EventWatcher(t, testLink, [ 'load' ]);
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 128, 0)");
testLink.setAttribute("rel", "test\u000Bstylesheet");
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 0, 0)");
testLink.setAttribute("rel", "test\u000Cstylesheet");
await watcher.wait_for('load');
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 128, 0)");
testLink.removeAttribute("rel");
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 0, 0)");
testLink.setAttribute("rel", "\u0009\u000A\u000C\u000D\u0020stylesheet");
await watcher.wait_for('load');
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 128, 0)");
testLink.removeAttribute("rel");
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 0, 0)");
testLink.setAttribute("rel", "\u0009\u000A\u000C\u000D\u0020stylesheet\u0009\u000A\u000C\u000D\u0020††††");
await watcher.wait_for('load');
assert_equals(getComputedStyle(testDiv).color, "rgb(0, 128, 0)");
}
promise_test(async (t) => {
await testLinkRelModification(t,
document.querySelector("#light-div"),
document.querySelector("#light-link"));
}, "The rel attribute needs to handle ASCII whitespace correctly");
</script>