diff options
author | Ilyong Cho <ilyoan@gmail.com> | 2013-08-12 14:09:26 +0900 |
---|---|---|
committer | Jack Moffitt <jack@metajack.im> | 2013-08-15 11:36:15 -0600 |
commit | 2ad350531a233b14c7c146fa4c5f32fc9686b013 (patch) | |
tree | 2e677f898d6bb13227ec12c62810f6f1ef8920ba /src/components/script/dom | |
parent | eadda9411bafec6f551c22b4cb48a29b356d3c82 (diff) | |
download | servo-2ad350531a233b14c7c146fa4c5f32fc9686b013.tar.gz servo-2ad350531a233b14c7c146fa4c5f32fc9686b013.zip |
Handle style attributes in element setter instead of html parser
Diffstat (limited to 'src/components/script/dom')
-rw-r--r-- | src/components/script/dom/element.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 5628cb03314..e6ac799f4c7 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -47,6 +47,7 @@ use js::jsapi::{JSContext, JSObject}; use std::cell::Cell; use std::comm; use std::str::eq_slice; +use extra::net::url; pub struct Element { parent: Node<ScriptView>, @@ -262,8 +263,7 @@ impl<'self> Element { pub fn set_attr(&mut self, name: &DOMString, value: &DOMString) { let name = name.to_str(); - let value = value.to_str(); - let value_cell = Cell::new(value); + let value_cell = Cell::new(value.to_str()); let mut found = false; for self.attrs.mut_iter().advance |attr| { if eq_slice(attr.name, name) { @@ -276,6 +276,13 @@ impl<'self> Element { self.attrs.push(Attr::new(name.to_str(), value_cell.take().clone())); } + if "style" == name { + self.style_attribute = Some( + Stylesheet::from_attribute( + url::from_str("http://www.example.com/").unwrap(), + value.get_ref())); + } + match self.parent.owner_doc { Some(owner) => do owner.with_base |owner| { owner.content_changed() }, None => {} @@ -312,7 +319,7 @@ impl Element { null_string } - pub fn SetAttribute(&self, _name: &DOMString, _value: &DOMString, _rv: &mut ErrorResult) { + pub fn SetAttribute(&mut self, _name: &DOMString, _value: &DOMString, _rv: &mut ErrorResult) { } pub fn SetAttributeNS(&self, _namespace: &DOMString, _localname: &DOMString, _value: &DOMString, _rv: &mut ErrorResult) { |