mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
Bug 716226. When using insertRule on a keyframes rule, set up the child keyframe rule correctly. r=dbaron
This commit is contained in:
parent
0bfb6db6b1
commit
47e571dfac
@ -2013,10 +2013,7 @@ nsCSSKeyframesRule::InsertRule(const nsAString& aRule)
|
||||
nsRefPtr<nsCSSKeyframeRule> rule =
|
||||
parser.ParseKeyframeRule(aRule, nsnull, 0);
|
||||
if (rule) {
|
||||
mRules.AppendObject(rule);
|
||||
if (mSheet) {
|
||||
mSheet->SetModifiedByChildRule();
|
||||
}
|
||||
AppendStyleRule(rule);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
@ -133,6 +133,7 @@ _TEST_FILES = test_acid3_test46.html \
|
||||
test_bug645998.html \
|
||||
file_bug645998-1.css \
|
||||
file_bug645998-2.css \
|
||||
test_bug716226.html \
|
||||
test_cascade.html \
|
||||
test_ch_ex_no_infloops.html \
|
||||
test_compute_data_with_start_struct.html \
|
||||
|
52
layout/style/test/test_bug716226.html
Normal file
52
layout/style/test/test_bug716226.html
Normal file
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=716226
|
||||
-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for Bug 716226</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
<style id="s">
|
||||
@-moz-keyframes foo { }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=716226">Mozilla Bug 716226</a>
|
||||
<p id="display"></p>
|
||||
<div id="content" style="display: none">
|
||||
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript">
|
||||
|
||||
/** Test for Bug 716226 **/
|
||||
var sheet = $("s").sheet;
|
||||
var rules = sheet.cssRules;
|
||||
is(rules.length, 1, "Should have one keyframes rule");
|
||||
var keyframesRule = rules[0];
|
||||
var keyframeRules = keyframesRule.cssRules;
|
||||
is(keyframeRules.length, 0, "Should have no keyframe rules yet");
|
||||
|
||||
keyframesRule.insertRule('0% { }');
|
||||
is(keyframeRules.length, 1, "Should have a keyframe rule now");
|
||||
var keyframeRule = keyframeRules[0];
|
||||
is(keyframeRule.parentRule, keyframesRule,
|
||||
"Parent of keyframe should be keyframes");
|
||||
is(keyframeRule.parentStyleSheet, sheet,
|
||||
"Parent stylesheet of keyframe should be our sheet");
|
||||
|
||||
is(keyframeRule.style.cssText, "", "Should have no declarations yet");
|
||||
// Note: purposefully non-canonical cssText string so we can make sure we
|
||||
// really invoked the CSS parser and serializer.
|
||||
keyframeRule.style.cssText = "color:green";
|
||||
is(keyframeRule.style.cssText, "color: green;",
|
||||
"Should have the declarations we set now");
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user