diff options
Diffstat (limited to 'components/script/dom/virtualmethods.rs')
-rw-r--r-- | components/script/dom/virtualmethods.rs | 95 |
1 files changed, 34 insertions, 61 deletions
diff --git a/components/script/dom/virtualmethods.rs b/components/script/dom/virtualmethods.rs index 4effc4daf33..8bb62637ac6 100644 --- a/components/script/dom/virtualmethods.rs +++ b/components/script/dom/virtualmethods.rs @@ -31,37 +31,10 @@ use dom::bindings::codegen::InheritTypes::HTMLTableRowElementCast; use dom::bindings::codegen::InheritTypes::HTMLTableSectionElementCast; use dom::bindings::codegen::InheritTypes::HTMLTextAreaElementCast; use dom::bindings::codegen::InheritTypes::HTMLTitleElementCast; -use dom::bindings::js::JSRef; use dom::document::Document; -use dom::element::Element; use dom::element::ElementTypeId; use dom::event::Event; -use dom::htmlanchorelement::HTMLAnchorElement; -use dom::htmlareaelement::HTMLAreaElement; -use dom::htmlbodyelement::HTMLBodyElement; -use dom::htmlbuttonelement::HTMLButtonElement; -use dom::htmlcanvaselement::HTMLCanvasElement; -use dom::htmlelement::{HTMLElement, HTMLElementTypeId}; -use dom::htmlfieldsetelement::HTMLFieldSetElement; -use dom::htmlfontelement::HTMLFontElement; -use dom::htmlformelement::HTMLFormElement; -use dom::htmlheadelement::HTMLHeadElement; -use dom::htmliframeelement::HTMLIFrameElement; -use dom::htmlimageelement::HTMLImageElement; -use dom::htmlinputelement::HTMLInputElement; -use dom::htmllinkelement::HTMLLinkElement; -use dom::htmlobjectelement::HTMLObjectElement; -use dom::htmloptgroupelement::HTMLOptGroupElement; -use dom::htmloptionelement::HTMLOptionElement; -use dom::htmlscriptelement::HTMLScriptElement; -use dom::htmlselectelement::HTMLSelectElement; -use dom::htmlstyleelement::HTMLStyleElement; -use dom::htmltableelement::HTMLTableElement; -use dom::htmltablecellelement::HTMLTableCellElement; -use dom::htmltablerowelement::HTMLTableRowElement; -use dom::htmltablesectionelement::HTMLTableSectionElement; -use dom::htmltextareaelement::HTMLTextAreaElement; -use dom::htmltitleelement::HTMLTitleElement; +use dom::htmlelement::HTMLElementTypeId; use dom::node::{Node, NodeHelpers, NodeTypeId, CloneChildrenFlag}; use util::str::DOMString; @@ -77,7 +50,7 @@ pub trait VirtualMethods { /// Called when changing or adding attributes, after the attribute's value /// has been updated. - fn after_set_attr(&self, attr: JSRef<Attr>) { + fn after_set_attr(&self, attr: &Attr) { if let Some(ref s) = self.super_type() { s.after_set_attr(attr); } @@ -85,7 +58,7 @@ pub trait VirtualMethods { /// Called when changing or removing attributes, before any modification /// has taken place. - fn before_remove_attr(&self, attr: JSRef<Attr>) { + fn before_remove_attr(&self, attr: &Attr) { if let Some(ref s) = self.super_type() { s.before_remove_attr(attr); } @@ -125,21 +98,21 @@ pub trait VirtualMethods { } /// Called on the parent when a node is added to its child list. - fn child_inserted(&self, child: JSRef<Node>) { + fn child_inserted(&self, child: &Node) { if let Some(ref s) = self.super_type() { s.child_inserted(child); } } /// Called during event dispatch after the bubbling phase completes. - fn handle_event(&self, event: JSRef<Event>) { + fn handle_event(&self, event: &Event) { if let Some(s) = self.super_type() { s.handle_event(event); } } /// https://dom.spec.whatwg.org/#concept-node-clone (step 5) - fn cloning_steps(&self, copy: JSRef<Node>, maybe_doc: Option<JSRef<Document>>, + fn cloning_steps(&self, copy: &Node, maybe_doc: Option<&Document>, clone_children: CloneChildrenFlag) { if let Some(ref s) = self.super_type() { s.cloning_steps(copy, maybe_doc, clone_children); @@ -151,122 +124,122 @@ pub trait VirtualMethods { /// method call on the trait object will invoke the corresponding method on the /// concrete type, propagating up the parent hierarchy unless otherwise /// interrupted. -pub fn vtable_for<'a>(node: &'a JSRef<'a, Node>) -> &'a (VirtualMethods + 'a) { +pub fn vtable_for<'a>(node: &'a &'a Node) -> &'a (VirtualMethods + 'a) { match node.type_id() { NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAnchorElement)) => { - let element: &'a JSRef<'a, HTMLAnchorElement> = HTMLAnchorElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLAnchorElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAppletElement)) => { HTMLAppletElementCast::to_borrowed_ref(node).unwrap() as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLAreaElement)) => { - let element: &'a JSRef<'a, HTMLAreaElement> = HTMLAreaElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLAreaElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLBodyElement)) => { - let element: &'a JSRef<'a, HTMLBodyElement> = HTMLBodyElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLBodyElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLButtonElement)) => { - let element: &'a JSRef<'a, HTMLButtonElement> = HTMLButtonElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLButtonElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLCanvasElement)) => { - let element: &'a JSRef<'a, HTMLCanvasElement> = HTMLCanvasElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLCanvasElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFieldSetElement)) => { - let element: &'a JSRef<'a, HTMLFieldSetElement> = HTMLFieldSetElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLFieldSetElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFontElement)) => { - let element: &'a JSRef<'a, HTMLFontElement> = HTMLFontElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLFontElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLFormElement)) => { - let element: &'a JSRef<'a, HTMLFormElement> = HTMLFormElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLFormElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLHeadElement)) => { - let element: &'a JSRef<'a, HTMLHeadElement> = HTMLHeadElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLHeadElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLImageElement)) => { - let element: &'a JSRef<'a, HTMLImageElement> = HTMLImageElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLImageElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLIFrameElement)) => { - let element: &'a JSRef<'a, HTMLIFrameElement> = HTMLIFrameElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLIFrameElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLInputElement)) => { - let element: &'a JSRef<'a, HTMLInputElement> = HTMLInputElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLInputElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLLinkElement)) => { - let element: &'a JSRef<'a, HTMLLinkElement> = HTMLLinkElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLLinkElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLObjectElement)) => { - let element: &'a JSRef<'a, HTMLObjectElement> = HTMLObjectElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLObjectElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOptGroupElement)) => { - let element: &'a JSRef<'a, HTMLOptGroupElement> = HTMLOptGroupElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLOptGroupElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLOptionElement)) => { - let element: &'a JSRef<'a, HTMLOptionElement> = HTMLOptionElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLOptionElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLScriptElement)) => { - let element: &'a JSRef<'a, HTMLScriptElement> = HTMLScriptElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLScriptElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLSelectElement)) => { - let element: &'a JSRef<'a, HTMLSelectElement> = HTMLSelectElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLSelectElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLStyleElement)) => { - let element: &'a JSRef<'a, HTMLStyleElement> = HTMLStyleElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLStyleElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableElement)) => { - let element: &'a JSRef<'a, HTMLTableElement> = + let element = HTMLTableElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableCellElement(_))) => { - let element: &'a JSRef<'a, HTMLTableCellElement> = + let element = HTMLTableCellElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableRowElement)) => { - let element: &'a JSRef<'a, HTMLTableRowElement> = + let element = HTMLTableRowElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTableSectionElement)) => { - let element: &'a JSRef<'a, HTMLTableSectionElement> = + let element = HTMLTableSectionElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTextAreaElement)) => { - let element: &'a JSRef<'a, HTMLTextAreaElement> = HTMLTextAreaElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLTextAreaElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLTitleElement)) => { - let element: &'a JSRef<'a, HTMLTitleElement> = + let element = HTMLTitleElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(ElementTypeId::Element) => { - let element: &'a JSRef<'a, Element> = ElementCast::to_borrowed_ref(node).unwrap(); + let element = ElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } NodeTypeId::Element(_) => { - let element: &'a JSRef<'a, HTMLElement> = HTMLElementCast::to_borrowed_ref(node).unwrap(); + let element = HTMLElementCast::to_borrowed_ref(node).unwrap(); element as &'a (VirtualMethods + 'a) } _ => { |