aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/script/dom/element.rs')
-rw-r--r--src/components/script/dom/element.rs16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs
index be475bd1d85..0bb776628c9 100644
--- a/src/components/script/dom/element.rs
+++ b/src/components/script/dom/element.rs
@@ -139,9 +139,9 @@ impl<'self> Element {
return None;
}
- pub fn set_attr(&mut self, name: &DOMString, value: &DOMString) {
- let name = name.to_str();
- let value_cell = Cell::new(value.to_str());
+ pub fn set_attr(&mut self, raw_name: &DOMString, raw_value: &DOMString) {
+ let name = raw_name.to_str();
+ let value_cell = Cell::new(raw_value.to_str());
let mut found = false;
for attr in self.attrs.mut_iter() {
if eq_slice(attr.name, name) {
@@ -158,7 +158,15 @@ impl<'self> Element {
self.style_attribute = Some(
Stylesheet::from_attribute(
FromStr::from_str("http://www.example.com/").unwrap(),
- value.get_ref()));
+ raw_value.get_ref()));
+ }
+
+ //XXXjdm We really need something like a vtable so we can call AfterSetAttr.
+ // This hardcoding is awful.
+ if self.parent.abstract.unwrap().is_iframe_element() {
+ do self.parent.abstract.unwrap().with_mut_iframe_element |iframe| {
+ iframe.AfterSetAttr(raw_name, raw_value);
+ }
}
match self.parent.owner_doc {