diff options
author | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-07-26 03:58:25 +0900 |
---|---|---|
committer | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-07-29 00:43:44 +0900 |
commit | f2db7faf19c34165c08f1d5839a7461bc04c20a5 (patch) | |
tree | b964365e1eb9bde7509ee91178ae64f2cc2ca765 /src/components/script/dom/element.rs | |
parent | 63b0e1568f7de58ba21c9891638154bed1848241 (diff) | |
download | servo-f2db7faf19c34165c08f1d5839a7461bc04c20a5.tar.gz servo-f2db7faf19c34165c08f1d5839a7461bc04c20a5.zip |
Port `id` attribute to use atom.
Diffstat (limited to 'src/components/script/dom/element.rs')
-rw-r--r-- | src/components/script/dom/element.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 9301e61b20a..6fc0ba1b4c0 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -239,6 +239,8 @@ pub trait AttributeHandlers { fn notify_attribute_changed(&self, local_name: DOMString); fn has_class(&self, name: &str) -> bool; + fn set_atomic_attribute(&self, name: &str, value: DOMString); + // http://www.whatwg.org/html/#reflecting-content-attributes-in-idl-attributes fn get_url_attribute(&self, name: &str) -> DOMString; fn set_url_attribute(&self, name: &str, value: DOMString); @@ -362,6 +364,12 @@ impl<'a> AttributeHandlers for JSRef<'a, Element> { classes.any(|class| name == class) } + fn set_atomic_attribute(&self, name: &str, value: DOMString) { + assert!(name == name.to_ascii_lower().as_slice()); + let value = AttrValue::from_atomic(value); + self.set_attribute(name, value); + } + fn get_url_attribute(&self, name: &str) -> DOMString { // XXX Resolve URL. self.get_string_attribute(name) @@ -459,7 +467,7 @@ impl<'a> ElementMethods for JSRef<'a, Element> { // http://dom.spec.whatwg.org/#dom-element-id fn SetId(&self, id: DOMString) { - self.set_string_attribute("id", id); + self.set_atomic_attribute("id", id); } // http://dom.spec.whatwg.org/#dom-element-classname @@ -824,6 +832,7 @@ impl<'a> VirtualMethods for JSRef<'a, Element> { fn parse_plain_attribute(&self, name: &str, value: DOMString) -> AttrValue { match name { + "id" => AttrValue::from_atomic(value), "class" => AttrValue::from_tokenlist(value), _ => self.super_type().unwrap().parse_plain_attribute(name, value), } |