Bug 894874. Fix .selectedStyleSheetSet to consider all the sheets even after it finds an enabled sheet. r=smaug

This commit is contained in:
Boris Zbarsky 2013-07-17 23:23:52 -04:00
parent 3978c4cfd1
commit 7bc16a6b9c
3 changed files with 47 additions and 4 deletions

View File

@ -5418,10 +5418,7 @@ nsIDocument::GetSelectedStyleSheetSet(nsAString& aSheetSet)
if (aSheetSet.IsEmpty()) {
aSheetSet = title;
return;
}
if (!title.IsEmpty() && !aSheetSet.Equals(title)) {
} else if (!title.IsEmpty() && !aSheetSet.Equals(title)) {
// Sheets from multiple sets enabled; return null string, per spec.
SetDOMStringToNull(aSheetSet);
return;

View File

@ -248,6 +248,7 @@ MOCHITEST_FILES_A = \
test_bug811701.xhtml \
test_bug820909.html \
test_bug704063.html \
test_bug894874.html \
$(NULL)
MOCHITEST_FILES_B = \

View File

@ -0,0 +1,45 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=894874
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 894874</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<!-- IMPORTANT: Keep the sheets in this order! -->
<link rel="stylesheet" type="text/css" href="data:text/css,">
<link rel="stylesheet" type="text/css" title="one" href="data:text/css,">
<link rel="stylesheet" type="text/css" title="two" href="data:text/css,">
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<script type="application/javascript">
/** Test for Bug 894874 **/
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
is(document.styleSheets[0].disabled, false,
"Sheet with no title should be enabled");
is(document.styleSheets[1].disabled, false,
"First preferred sheet should be enabled");
is(document.styleSheets[2].disabled, true,
"Second preferred sheet should be disabled");
is(document.selectedStyleSheetSet, "one", "Sheet one is enabled");
document.styleSheets[0].disabled = true;
document.styleSheets[2].disabled = false;
ok(document.selectedStyleSheetSet === null,
"Sheet one and sheet two are both enabled");
SimpleTest.finish();
});
</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=894874">Mozilla Bug 894874</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
</html>