aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/csskeyframesrule.rs
diff options
context:
space:
mode:
authorNazım Can Altınova <canaltinova@gmail.com>2016-12-13 19:01:05 +0300
committerNazım Can Altınova <canaltinova@gmail.com>2016-12-14 12:48:47 +0300
commit9696c3a28acaaab2395e4ada77137e87855f4953 (patch)
tree2da5b6c911447167a376a68826c0f3ea0b013528 /components/script/dom/csskeyframesrule.rs
parentdebf5e0e7872347d67d9046b72979bcf7d08f9ca (diff)
downloadservo-9696c3a28acaaab2395e4ada77137e87855f4953.tar.gz
servo-9696c3a28acaaab2395e4ada77137e87855f4953.zip
Implement CSSKeyframesRule.name
Diffstat (limited to 'components/script/dom/csskeyframesrule.rs')
-rw-r--r--components/script/dom/csskeyframesrule.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/components/script/dom/csskeyframesrule.rs b/components/script/dom/csskeyframesrule.rs
index 3ddaa5c5b61..1c94e0e99fb 100644
--- a/components/script/dom/csskeyframesrule.rs
+++ b/components/script/dom/csskeyframesrule.rs
@@ -5,6 +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::inheritance::Castable;
use dom::bindings::js::{MutNullableJS, Root};
use dom::bindings::reflector::{DomObject, reflect_dom_object};
@@ -15,6 +16,7 @@ use dom::cssrulelist::{CSSRuleList, RulesSource};
use dom::cssstylesheet::CSSStyleSheet;
use dom::window::Window;
use parking_lot::RwLock;
+use servo_atoms::Atom;
use std::sync::Arc;
use style::keyframes::{Keyframe, KeyframeSelector};
use style::parser::ParserContextExtraData;
@@ -101,6 +103,27 @@ impl CSSKeyframesRuleMethods for CSSKeyframesRule {
self.rulelist().item(idx as u32)
}).and_then(Root::downcast)
}
+
+ // https://drafts.csswg.org/css-animations/#dom-csskeyframesrule-name
+ fn Name(&self) -> DOMString {
+ DOMString::from(&*self.keyframesrule.read().name)
+ }
+
+ // 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.
+ 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),
+ _ => ()
+ }
+ self.keyframesrule.write().name = Atom::from(value);
+ Ok(())
+ }
}
impl SpecificCSSRule for CSSKeyframesRule {