aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/element.rs
diff options
context:
space:
mode:
authorIlyong Cho <ilyoan@gmail.com>2013-08-12 14:09:26 +0900
committerJack Moffitt <jack@metajack.im>2013-08-15 11:36:15 -0600
commit2ad350531a233b14c7c146fa4c5f32fc9686b013 (patch)
tree2e677f898d6bb13227ec12c62810f6f1ef8920ba /src/components/script/dom/element.rs
parenteadda9411bafec6f551c22b4cb48a29b356d3c82 (diff)
downloadservo-2ad350531a233b14c7c146fa4c5f32fc9686b013.tar.gz
servo-2ad350531a233b14c7c146fa4c5f32fc9686b013.zip
Handle style attributes in element setter instead of html parser
Diffstat (limited to 'src/components/script/dom/element.rs')
-rw-r--r--src/components/script/dom/element.rs13
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) {