aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/htmlobjectelement.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2014-04-09 20:02:40 +0200
committerMs2ger <ms2ger@gmail.com>2014-04-10 10:27:28 +0200
commitca6cfb5bca2ffbb41dd7735557f11fb5726be6e4 (patch)
treed2f94f87e1e1c5ca84c02ea45d7bf5cf9d3c1080 /src/components/script/dom/htmlobjectelement.rs
parentea2560ef20ec1116b0897e84fb58eb14a8ea4696 (diff)
downloadservo-ca6cfb5bca2ffbb41dd7735557f11fb5726be6e4.tar.gz
servo-ca6cfb5bca2ffbb41dd7735557f11fb5726be6e4.zip
Add support for trait-based virtual methods on Nodes, and use it for before_remove_attr and after_set_attr.
Diffstat (limited to 'src/components/script/dom/htmlobjectelement.rs')
-rw-r--r--src/components/script/dom/htmlobjectelement.rs19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs
index 03fc8984845..6288dcfc33d 100644
--- a/src/components/script/dom/htmlobjectelement.rs
+++ b/src/components/script/dom/htmlobjectelement.rs
@@ -4,17 +4,18 @@
use dom::bindings::codegen::HTMLObjectElementBinding;
use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived;
-use dom::bindings::codegen::InheritTypes::ElementCast;
+use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast};
use dom::bindings::js::JS;
use dom::bindings::error::ErrorResult;
use dom::document::Document;
use dom::element::{Element, HTMLObjectElementTypeId};
-use dom::element::{AttributeHandlers, AfterSetAttrListener};
+use dom::element::AttributeHandlers;
use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::htmlelement::HTMLElement;
use dom::htmlformelement::HTMLFormElement;
use dom::node::{Node, ElementNodeTypeId, NodeHelpers, window_from_node};
use dom::validitystate::ValidityState;
+use dom::virtualmethods::VirtualMethods;
use dom::windowproxy::WindowProxy;
use servo_util::str::DOMString;
@@ -244,8 +245,18 @@ impl HTMLObjectElement {
}
}
-impl AfterSetAttrListener for JS<HTMLObjectElement> {
- fn AfterSetAttr(&mut self, name: DOMString, _value: DOMString) {
+impl VirtualMethods for JS<HTMLObjectElement> {
+ fn super_type(&self) -> Option<~VirtualMethods:> {
+ let htmlelement: JS<HTMLElement> = HTMLElementCast::from(self);
+ Some(~htmlelement as ~VirtualMethods:)
+ }
+
+ fn after_set_attr(&mut self, name: DOMString, value: DOMString) {
+ match self.super_type() {
+ Some(ref mut s) => s.after_set_attr(name.clone(), value),
+ _ => (),
+ }
+
if "data" == name {
let window = window_from_node(self);
let url = Some(window.get().get_url());