diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2017-04-25 09:14:32 +0200 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2017-04-26 13:04:22 +0900 |
commit | 11469218661fe3076b255eba35c2b0736dcce500 (patch) | |
tree | 6ee81830f217ef9117bc6aee4ce06bc71306dffa /components/script/dom/csskeyframesrule.rs | |
parent | 82c04113d09cf728542df2620c4397f55028df40 (diff) | |
download | servo-11469218661fe3076b255eba35c2b0736dcce500.tar.gz servo-11469218661fe3076b255eba35c2b0736dcce500.zip |
Keep custom-ident and string separate in animation/keyframes name.
Diffstat (limited to 'components/script/dom/csskeyframesrule.rs')
-rw-r--r-- | components/script/dom/csskeyframesrule.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/components/script/dom/csskeyframesrule.rs b/components/script/dom/csskeyframesrule.rs index 5a03dc41658..a3715e914ed 100644 --- a/components/script/dom/csskeyframesrule.rs +++ b/components/script/dom/csskeyframesrule.rs @@ -5,7 +5,7 @@ use cssparser::Parser; use dom::bindings::codegen::Bindings::CSSKeyframesRuleBinding; use dom::bindings::codegen::Bindings::CSSKeyframesRuleBinding::CSSKeyframesRuleMethods; -use dom::bindings::error::{Error, ErrorResult}; +use dom::bindings::error::ErrorResult; use dom::bindings::inheritance::Castable; use dom::bindings::js::{MutNullableJS, Root}; use dom::bindings::reflector::{DomObject, reflect_dom_object}; @@ -20,7 +20,7 @@ use std::sync::Arc; use style::keyframes::{Keyframe, KeyframeSelector}; use style::shared_lock::{Locked, ToCssWithGuard}; use style::stylesheets::KeyframesRule; -use style::values::CustomIdent; +use style::values::KeyframesName; #[dom_struct] pub struct CSSKeyframesRule { @@ -107,15 +107,15 @@ 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.0) + DOMString::from(&**self.keyframesrule.read_with(&guard).name.as_atom()) } // https://drafts.csswg.org/css-animations/#dom-csskeyframesrule-name fn SetName(&self, value: DOMString) -> ErrorResult { - // https://github.com/w3c/csswg-drafts/issues/801 - // Setting this property to a CSS-wide keyword or `none` will - // throw a Syntax Error. - let name = CustomIdent::from_ident(value.into(), &["none"]).map_err(|()| Error::Syntax)?; + // Spec deviation: https://github.com/w3c/csswg-drafts/issues/801 + // Setting this property to a CSS-wide keyword or `none` does not throw, + // it stores a value that serializes as a quoted string. + let name = KeyframesName::from_ident(value.into()); let mut guard = self.cssrule.shared_lock().write(); self.keyframesrule.write_with(&mut guard).name = name; Ok(()) |