aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/element.rs
diff options
context:
space:
mode:
authorTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-07-26 03:58:25 +0900
committerTetsuharu OHZEKI <saneyuki.snyk@gmail.com>2014-07-29 00:43:44 +0900
commitf2db7faf19c34165c08f1d5839a7461bc04c20a5 (patch)
treeb964365e1eb9bde7509ee91178ae64f2cc2ca765 /src/components/script/dom/element.rs
parent63b0e1568f7de58ba21c9891638154bed1848241 (diff)
downloadservo-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.rs11
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),
}