aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/csskeyframesrule.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2017-04-14 05:26:51 +0200
committerSimon Sapin <simon.sapin@exyr.org>2017-04-26 13:02:16 +0900
commitd9c2d1a9fb5889cea52731de0695e222f19fe54e (patch)
treed3b3fd19bc85a6fe8baaa7825d7e9e78d593929e /components/script/dom/csskeyframesrule.rs
parent4993a80074f1fe3d69c732e65a67480349c48d25 (diff)
downloadservo-d9c2d1a9fb5889cea52731de0695e222f19fe54e.tar.gz
servo-d9c2d1a9fb5889cea52731de0695e222f19fe54e.zip
Use CustomIdent for animation-name and @keyframes
Diffstat (limited to 'components/script/dom/csskeyframesrule.rs')
-rw-r--r--components/script/dom/csskeyframesrule.rs14
1 files changed, 4 insertions, 10 deletions
diff --git a/components/script/dom/csskeyframesrule.rs b/components/script/dom/csskeyframesrule.rs
index 281ccd972a7..5a03dc41658 100644
--- a/components/script/dom/csskeyframesrule.rs
+++ b/components/script/dom/csskeyframesrule.rs
@@ -16,11 +16,11 @@ use dom::cssrulelist::{CSSRuleList, RulesSource};
use dom::cssstylesheet::CSSStyleSheet;
use dom::window::Window;
use dom_struct::dom_struct;
-use servo_atoms::Atom;
use std::sync::Arc;
use style::keyframes::{Keyframe, KeyframeSelector};
use style::shared_lock::{Locked, ToCssWithGuard};
use style::stylesheets::KeyframesRule;
+use style::values::CustomIdent;
#[dom_struct]
pub struct CSSKeyframesRule {
@@ -107,7 +107,7 @@ impl CSSKeyframesRuleMethods for CSSKeyframesRule {
// https://drafts.csswg.org/css-animations/#dom-csskeyframesrule-name
fn Name(&self) -> DOMString {
let guard = self.cssrule.shared_lock().read();
- DOMString::from(&*self.keyframesrule.read_with(&guard).name)
+ DOMString::from(&*self.keyframesrule.read_with(&guard).name.0)
}
// https://drafts.csswg.org/css-animations/#dom-csskeyframesrule-name
@@ -115,15 +115,9 @@ impl CSSKeyframesRuleMethods for CSSKeyframesRule {
// https://github.com/w3c/csswg-drafts/issues/801
// Setting this property to a CSS-wide keyword or `none` will
// throw a Syntax Error.
- match_ignore_ascii_case! { &value,
- "initial" => return Err(Error::Syntax),
- "inherit" => return Err(Error::Syntax),
- "unset" => return Err(Error::Syntax),
- "none" => return Err(Error::Syntax),
- _ => ()
- }
+ let name = CustomIdent::from_ident(value.into(), &["none"]).map_err(|()| Error::Syntax)?;
let mut guard = self.cssrule.shared_lock().write();
- self.keyframesrule.write_with(&mut guard).name = Atom::from(value);
+ self.keyframesrule.write_with(&mut guard).name = name;
Ok(())
}
}