From dd8360fb10a16f2124addfb276400615fe78a7ee Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 1 Dec 2014 08:00:12 -0500 Subject: [PATCH 1/7] Use inline(always) for trace() --- components/plugins/jstraceable.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/plugins/jstraceable.rs b/components/plugins/jstraceable.rs index a901f89003c..158ec60f37f 100644 --- a/components/plugins/jstraceable.rs +++ b/components/plugins/jstraceable.rs @@ -37,7 +37,9 @@ pub fn expand_jstraceable(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item: explicit_self: ty::borrowed_explicit_self(), args: vec!(ty::Ptr(box ty::Literal(ty::Path::new(vec!("js","jsapi","JSTracer"))), ty::Raw(ast::MutMutable))), ret_ty: ty::nil_ty(), - attributes: vec!(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("inline")))), + attributes: vec!(attr::mk_attr_outer(attr::mk_attr_id(), + attr::mk_name_value_item_str(InternedString::new("inline"), + InternedString::new("always")))), combine_substructure: combine_substructure(|a, b, c| { jstraceable_substructure(a, b, c) }) From 21607f066ca07a68a6fe84acad373de5da45523f Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 1 Dec 2014 10:10:33 -0500 Subject: [PATCH 2/7] Add internal plugin for creating Reflectable implementations --- components/plugins/jstraceable.rs | 3 ++ components/plugins/lib.rs | 7 ++++- components/plugins/reflector.rs | 50 +++++++++++++++++++++++++++++++ components/plugins/utils.rs | 29 ++++++++++++++++++ 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 components/plugins/reflector.rs create mode 100644 components/plugins/utils.rs diff --git a/components/plugins/jstraceable.rs b/components/plugins/jstraceable.rs index 158ec60f37f..a093ae9128a 100644 --- a/components/plugins/jstraceable.rs +++ b/components/plugins/jstraceable.rs @@ -17,6 +17,9 @@ pub fn expand_dom_struct(_: &mut ExtCtxt, _: Span, _: &MetaItem, item: P) item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("must_root")))); item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("privatize")))); item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("jstraceable")))); + + // The following attribute is only for internal usage + item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("_generate_reflector")))); P(item2) } diff --git a/components/plugins/lib.rs b/components/plugins/lib.rs index aa4ba7fd865..77587b3cda9 100644 --- a/components/plugins/lib.rs +++ b/components/plugins/lib.rs @@ -12,7 +12,7 @@ //! - `#[dom_struct]` : Implies `#[privatize]`,`#[jstraceable]`, and `#[must_root]`. //! Use this for structs that correspond to a DOM type -#![feature(macro_rules, plugin_registrar, quote, phase)] +#![feature(macro_rules, plugin_registrar, quote, phase, if_let)] #![deny(unused_imports)] #![deny(unused_variables)] @@ -33,12 +33,17 @@ use syntax::parse::token::intern; // Public for documentation to show up /// Handles the auto-deriving for `#[jstraceable]` pub mod jstraceable; +/// Autogenerates implementations of Reflectable on DOM structs +pub mod reflector; pub mod lints; +/// Utilities for writing plugins +pub mod utils; #[plugin_registrar] pub fn plugin_registrar(reg: &mut Registry) { reg.register_syntax_extension(intern("dom_struct"), Modifier(box jstraceable::expand_dom_struct)); reg.register_syntax_extension(intern("jstraceable"), Decorator(box jstraceable::expand_jstraceable)); + reg.register_syntax_extension(intern("_generate_reflector"), Decorator(box reflector::expand_reflector)); reg.register_lint_pass(box lints::TransmutePass as LintPassObject); reg.register_lint_pass(box lints::UnrootedPass as LintPassObject); reg.register_lint_pass(box lints::PrivatizePass as LintPassObject); diff --git a/components/plugins/reflector.rs b/components/plugins/reflector.rs new file mode 100644 index 00000000000..901846791c4 --- /dev/null +++ b/components/plugins/reflector.rs @@ -0,0 +1,50 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use syntax::ext::base::ExtCtxt; +use syntax::codemap::Span; +use syntax::ptr::P; +use syntax::ast::{Item, MetaItem}; +use syntax::ast; +use utils::match_ty_unwrap; + + +pub fn expand_reflector(cx: &mut ExtCtxt, span: Span, _: &MetaItem, item: &Item, push: |P|) { + + if let ast::ItemStruct(ref def, _) = item.node { + let struct_name = item.ident; + match def.fields.iter().find(|f| match_ty_unwrap(&*f.node.ty, &["dom", "bindings", "utils", "Reflector"]).is_some()) { + // If it has a field that is a Reflector, use that + Some(f) => { + let field_name = f.node.ident(); + let impl_item = quote_item!(cx, + impl ::dom::bindings::utils::Reflectable for $struct_name { + fn reflector<'a>(&'a self) -> &'a ::dom::bindings::utils::Reflector { + &self.$field_name + } + } + ); + impl_item.map(|it| push(it)) + }, + // Or just call it on the first field (supertype). + // TODO: Write a lint to ensure that this first field is indeed a #[dom_struct], + // and the only such field in the struct definition (including reflectors) + // Unfortunately we can't do it here itself because a def_map (from middle) is not available + // at expansion time + None => { + let field_name = def.fields[0].node.ident(); + let impl_item = quote_item!(cx, + impl ::dom::bindings::utils::Reflectable for $struct_name { + fn reflector<'a>(&'a self) -> &'a ::dom::bindings::utils::Reflector { + self.$field_name.reflector() + } + } + ); + impl_item.map(|it| push(it)) + } + }; + } else { + cx.span_bug(span, "#[dom_struct] seems to have been applied to a non-struct"); + } +} diff --git a/components/plugins/utils.rs b/components/plugins/utils.rs new file mode 100644 index 00000000000..434a5e08582 --- /dev/null +++ b/components/plugins/utils.rs @@ -0,0 +1,29 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use syntax::ptr::P; +use syntax::ast::{TyPath, Path, AngleBracketedParameters, PathSegment, Ty}; + +/// Matches a type with a provided string, and returns its type parameters if successful +pub fn match_ty_unwrap<'a>(ty: &'a Ty, segments: &[&str]) -> Option<&'a [P]> { + match ty.node { + TyPath(Path {segments: ref seg, ..}, _, _) => { + // So ast::Path isn't the full path, just the tokens that were provided. + // I could muck around with the maps and find the full path + // however the more efficient way is to simply reverse the iterators and zip them + // which will compare them in reverse until one of them runs out of segments + if seg.iter().rev().zip(segments.iter().rev()).all(|(a,b)| a.identifier.as_str() == *b) { + match seg.as_slice().last() { + Some(&PathSegment {parameters: AngleBracketedParameters(ref a), ..}) => { + Some(a.types.as_slice()) + } + _ => None + } + } else { + None + } + }, + _ => None + } +} From 552db382d6fc868be3bc6aeb500915953f5e0ea3 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 1 Dec 2014 10:19:45 -0500 Subject: [PATCH 3/7] Remove manual impls of Reflectors (autogen) Obtained via: `find . -maxdepth 1 -type f -print0 | xargs -0 sed -z -i "s/\\nimpl Reflectable for[^{]*{[^}]*}[^}]*}\\n//"` `find . -maxdepth 1 -type f -print0 |xargs -0 grep -lZ dom_struct | xargs -0 grep -LZ "reflector()\\|Reflector::new" |xargs -0 sed -z -i "s/use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};/use dom::bindings::utils::reflect_dom_object;/"` followed by semi-automated removal of leftover imports --- components/script/dom/attr.rs | 7 +-- components/script/dom/blob.rs | 7 +-- .../script/dom/canvasrenderingcontext2d.rs | 7 +-- components/script/dom/characterdata.rs | 6 --- components/script/dom/comment.rs | 6 --- components/script/dom/console.rs | 7 +-- components/script/dom/customevent.rs | 7 +-- .../script/dom/dedicatedworkerglobalscope.rs | 7 +-- components/script/dom/document.rs | 7 +-- components/script/dom/documentfragment.rs | 6 --- components/script/dom/documenttype.rs | 6 --- components/script/dom/domexception.rs | 7 +-- components/script/dom/domimplementation.rs | 7 +-- components/script/dom/domparser.rs | 7 +-- components/script/dom/domrect.rs | 7 +-- components/script/dom/domrectlist.rs | 7 +-- components/script/dom/domstringmap.rs | 7 +-- components/script/dom/domtokenlist.rs | 7 +-- components/script/dom/element.rs | 6 --- components/script/dom/event.rs | 17 +------ components/script/dom/eventtarget.rs | 5 -- components/script/dom/file.rs | 7 +-- components/script/dom/formdata.rs | 7 +-- components/script/dom/htmlanchorelement.rs | 6 --- components/script/dom/htmlappletelement.rs | 6 --- components/script/dom/htmlaudioelement.rs | 6 --- components/script/dom/htmlbaseelement.rs | 6 --- components/script/dom/htmlbodyelement.rs | 7 +-- components/script/dom/htmlbrelement.rs | 6 --- components/script/dom/htmlbuttonelement.rs | 6 --- components/script/dom/htmlcanvaselement.rs | 6 --- components/script/dom/htmlcollection.rs | 7 +-- components/script/dom/htmldataelement.rs | 6 --- components/script/dom/htmldatalistelement.rs | 6 --- components/script/dom/htmldirectoryelement.rs | 6 --- components/script/dom/htmldivelement.rs | 6 --- components/script/dom/htmldlistelement.rs | 6 --- components/script/dom/htmlelement.rs | 7 +-- components/script/dom/htmlembedelement.rs | 6 --- components/script/dom/htmlfieldsetelement.rs | 6 --- components/script/dom/htmlfontelement.rs | 6 --- components/script/dom/htmlformelement.rs | 6 --- components/script/dom/htmlframeelement.rs | 6 --- components/script/dom/htmlframesetelement.rs | 6 --- components/script/dom/htmlheadelement.rs | 6 --- components/script/dom/htmlheadingelement.rs | 6 --- components/script/dom/htmlhrelement.rs | 6 --- components/script/dom/htmlhtmlelement.rs | 6 --- components/script/dom/htmliframeelement.rs | 6 --- components/script/dom/htmlimageelement.rs | 6 --- components/script/dom/htmlinputelement.rs | 6 --- components/script/dom/htmllabelelement.rs | 6 --- components/script/dom/htmllegendelement.rs | 6 --- components/script/dom/htmllielement.rs | 6 --- components/script/dom/htmllinkelement.rs | 6 --- components/script/dom/htmlmapelement.rs | 6 --- components/script/dom/htmlmediaelement.rs | 6 --- components/script/dom/htmlmetaelement.rs | 6 --- components/script/dom/htmlmeterelement.rs | 6 --- components/script/dom/htmlmodelement.rs | 6 --- components/script/dom/htmlobjectelement.rs | 6 --- components/script/dom/htmlolistelement.rs | 6 --- components/script/dom/htmloptgroupelement.rs | 6 --- components/script/dom/htmloptionelement.rs | 6 --- components/script/dom/htmloutputelement.rs | 6 --- components/script/dom/htmlparagraphelement.rs | 6 --- components/script/dom/htmlparamelement.rs | 6 --- components/script/dom/htmlpreelement.rs | 6 --- components/script/dom/htmlprogresselement.rs | 6 --- components/script/dom/htmlquoteelement.rs | 6 --- components/script/dom/htmlscriptelement.rs | 6 --- components/script/dom/htmlselectelement.rs | 6 --- components/script/dom/htmlsourceelement.rs | 6 --- components/script/dom/htmlspanelement.rs | 6 --- components/script/dom/htmlstyleelement.rs | 6 --- .../script/dom/htmltablecaptionelement.rs | 6 --- components/script/dom/htmltablecellelement.rs | 6 --- components/script/dom/htmltablecolelement.rs | 6 --- .../script/dom/htmltabledatacellelement.rs | 6 --- components/script/dom/htmltableelement.rs | 6 --- .../script/dom/htmltableheadercellelement.rs | 6 --- components/script/dom/htmltablerowelement.rs | 50 ------------------- .../script/dom/htmltablesectionelement.rs | 50 ------------------- components/script/dom/htmltemplateelement.rs | 6 --- components/script/dom/htmltextareaelement.rs | 24 --------- components/script/dom/htmltimeelement.rs | 6 --- components/script/dom/htmltitleelement.rs | 22 -------- components/script/dom/htmltrackelement.rs | 6 --- components/script/dom/htmlulistelement.rs | 6 --- components/script/dom/htmlunknownelement.rs | 6 --- components/script/dom/htmlvideoelement.rs | 6 --- components/script/dom/location.rs | 7 +-- components/script/dom/messageevent.rs | 7 +-- components/script/dom/mouseevent.rs | 7 +-- components/script/dom/namednodemap.rs | 7 +-- components/script/dom/navigator.rs | 7 +-- components/script/dom/node.rs | 8 +-- components/script/dom/nodeiterator.rs | 7 +-- components/script/dom/nodelist.rs | 7 +-- components/script/dom/performance.rs | 7 +-- components/script/dom/performancetiming.rs | 7 +-- .../script/dom/processinginstruction.rs | 6 --- components/script/dom/progressevent.rs | 7 +-- components/script/dom/range.rs | 7 +-- components/script/dom/screen.rs | 7 +-- components/script/dom/storage.rs | 7 +-- components/script/dom/testbinding.rs | 5 -- components/script/dom/text.rs | 6 --- components/script/dom/treewalker.rs | 7 +-- components/script/dom/uievent.rs | 7 +-- components/script/dom/urlsearchparams.rs | 7 +-- components/script/dom/validitystate.rs | 7 +-- components/script/dom/websocket.rs | 7 +-- components/script/dom/window.rs | 7 +-- components/script/dom/worker.rs | 7 +-- components/script/dom/workerglobalscope.rs | 7 +-- components/script/dom/workerlocation.rs | 7 +-- components/script/dom/workernavigator.rs | 7 +-- components/script/dom/xmlhttprequest.rs | 7 +-- .../script/dom/xmlhttprequesteventtarget.rs | 6 --- components/script/dom/xmlhttprequestupload.rs | 7 +-- 121 files changed, 47 insertions(+), 856 deletions(-) diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index d1b288bd7ad..22896e4fce0 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::AttrBinding::AttrMethods; use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, AttributeHandlers}; use dom::node::Node; use dom::window::Window; @@ -85,11 +85,6 @@ pub struct Attr { owner: Option>, } -impl Reflectable for Attr { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} impl Attr { fn new_inherited(local_name: Atom, value: AttrValue, diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index e51eca2d186..0a6a4f057ab 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::InheritTypes::FileDerived; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::error::Fallible; use dom::bindings::codegen::Bindings::BlobBinding; use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; @@ -124,11 +124,6 @@ impl<'a> BlobMethods for JSRef<'a, Blob> { // TODO //} } -impl Reflectable for Blob { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} impl FileDerived for Blob { fn is_file(&self) -> bool { diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index be9320d4b42..701c3ed1c4e 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::CanvasRenderingContext2DBinding; use dom::bindings::codegen::Bindings::CanvasRenderingContext2DBinding::CanvasRenderingContext2DMethods; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflector, Reflectable, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::htmlcanvaselement::HTMLCanvasElement; use geom::point::Point2D; @@ -64,11 +64,6 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D> } } -impl Reflectable for CanvasRenderingContext2D { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} #[unsafe_destructor] impl Drop for CanvasRenderingContext2D { diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 91bb1de46c2..45e7285bfea 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -10,7 +10,6 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, NodeCast}; use dom::bindings::error::{Fallible, ErrorResult}; use dom::bindings::error::Error::IndexSize; use dom::bindings::js::JSRef; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::node::{Node, NodeHelpers, NodeTypeId}; @@ -122,8 +121,3 @@ impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { } } -impl Reflectable for CharacterData { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.node.reflector() - } -} diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs index 11c7bf68b44..82150bebf4e 100644 --- a/components/script/dom/comment.rs +++ b/components/script/dom/comment.rs @@ -8,7 +8,6 @@ use dom::bindings::codegen::InheritTypes::CommentDerived; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::characterdata::CharacterData; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -50,8 +49,3 @@ impl Comment { } } -impl Reflectable for Comment { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.characterdata.reflector() - } -} diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs index 2383e96aa6c..585878e528c 100644 --- a/components/script/dom/console.rs +++ b/components/script/dom/console.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::ConsoleBinding; use dom::bindings::codegen::Bindings::ConsoleBinding::ConsoleMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use servo_util::str::DOMString; #[dom_struct] @@ -58,8 +58,3 @@ impl<'a> ConsoleMethods for JSRef<'a, Console> { } } -impl Reflectable for Console { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs index 05390b6864f..9805cd57efa 100644 --- a/components/script/dom/customevent.rs +++ b/components/script/dom/customevent.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{EventCast, CustomEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary, MutHeap}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use js::jsapi::JSContext; use js::jsval::{JSVal, NullValue}; @@ -73,8 +73,3 @@ impl<'a> CustomEventMethods for JSRef<'a, CustomEvent> { } } -impl Reflectable for CustomEvent { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.event.reflector() - } -} diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 9b9b08704ec..51d2436d3c3 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -11,7 +11,7 @@ use dom::bindings::error::ErrorResult; use dom::bindings::error::Error::DataClone; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary, RootCollection}; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::Reflectable; use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; use dom::messageevent::MessageEvent; use dom::worker::{Worker, TrustedWorkerAddress}; @@ -182,11 +182,6 @@ impl<'a> PrivateDedicatedWorkerGlobalScopeHelpers for JSRef<'a, DedicatedWorkerG } } -impl Reflectable for DedicatedWorkerGlobalScope { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.workerglobalscope.reflector() - } -} impl DedicatedWorkerGlobalScopeDerived for EventTarget { fn is_dedicatedworkerglobalscope(&self) -> bool { diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 697bd011b84..1bb351adbbc 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -25,7 +25,7 @@ use dom::bindings::error::Error::{HierarchyRequest, NamespaceError}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JS, JSRef, Temporary, OptionalSettable, TemporaryPushable}; use dom::bindings::js::OptionalRootable; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::bindings::utils::xml_name_type; use dom::bindings::utils::XMLName::{QName, Name, InvalidXMLName}; use dom::comment::Comment; @@ -472,11 +472,6 @@ impl Document { } } -impl Reflectable for Document { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.node.reflector() - } -} trait PrivateDocumentHelpers { fn createNodeList(self, callback: |node: JSRef| -> bool) -> Temporary; diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs index 951aac09351..fdda82beced 100644 --- a/components/script/dom/documentfragment.rs +++ b/components/script/dom/documentfragment.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::InheritTypes::{DocumentFragmentDerived, NodeCast}; use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::Element; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -70,8 +69,3 @@ impl<'a> DocumentFragmentMethods for JSRef<'a, DocumentFragment> { } } -impl Reflectable for DocumentFragment { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.node.reflector() - } -} diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs index 9bd1357553a..eecc7e49fbb 100644 --- a/components/script/dom/documenttype.rs +++ b/components/script/dom/documenttype.rs @@ -6,7 +6,6 @@ use dom::bindings::codegen::Bindings::DocumentTypeBinding; use dom::bindings::codegen::Bindings::DocumentTypeBinding::DocumentTypeMethods; use dom::bindings::codegen::InheritTypes::{DocumentTypeDerived, NodeCast}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::node::{Node, NodeHelpers, NodeTypeId}; @@ -89,8 +88,3 @@ impl<'a> DocumentTypeMethods for JSRef<'a, DocumentType> { } } -impl Reflectable for DocumentType { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.node.reflector() - } -} diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 1d6906f1be6..5ef2fcd83f1 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::DOMExceptionBinding::DOMExceptionMethods; use dom::bindings::error::Error; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use servo_util::str::DOMString; #[repr(uint)] @@ -83,11 +83,6 @@ impl DOMException { } } -impl Reflectable for DOMException { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} impl<'a> DOMExceptionMethods for JSRef<'a, DOMException> { // http://dom.spec.whatwg.org/#dom-domexception-code diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs index 45be86c538a..c9e6988f216 100644 --- a/components/script/dom/domimplementation.rs +++ b/components/script/dom/domimplementation.rs @@ -11,7 +11,7 @@ use dom::bindings::error::Fallible; use dom::bindings::error::Error::{InvalidCharacter, NamespaceError}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Root, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflector, Reflectable, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::utils::xml_name_type; use dom::bindings::utils::XMLName::{QName, Name, InvalidXMLName}; use dom::document::{Document, DocumentHelpers, IsHTMLDocument}; @@ -47,11 +47,6 @@ impl DOMImplementation { } } -impl Reflectable for DOMImplementation { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} // http://dom.spec.whatwg.org/#domimplementation impl<'a> DOMImplementationMethods for JSRef<'a, DOMImplementation> { diff --git a/components/script/dom/domparser.rs b/components/script/dom/domparser.rs index 8b4af333995..06c3cb36813 100644 --- a/components/script/dom/domparser.rs +++ b/components/script/dom/domparser.rs @@ -10,7 +10,7 @@ use dom::bindings::error::Fallible; use dom::bindings::error::Error::FailureUnknown; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflector, Reflectable, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers, IsHTMLDocument}; use dom::document::DocumentSource; use dom::window::Window; @@ -74,8 +74,3 @@ impl<'a> DOMParserMethods for JSRef<'a, DOMParser> { } } -impl Reflectable for DOMParser { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/domrect.rs b/components/script/dom/domrect.rs index 31ddd1d3cee..737ea69ed5f 100644 --- a/components/script/dom/domrect.rs +++ b/components/script/dom/domrect.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::DOMRectBinding; use dom::bindings::codegen::Bindings::DOMRectBinding::DOMRectMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::window::Window; use servo_util::geometry::Au; use std::num::Float; @@ -66,8 +66,3 @@ impl<'a> DOMRectMethods for JSRef<'a, DOMRect> { } } -impl Reflectable for DOMRect { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/domrectlist.rs b/components/script/dom/domrectlist.rs index c4aaa1be09c..86cb64c6454 100644 --- a/components/script/dom/domrectlist.rs +++ b/components/script/dom/domrectlist.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::DOMRectListBinding; use dom::bindings::codegen::Bindings::DOMRectListBinding::DOMRectListMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::domrect::DOMRect; use dom::window::Window; @@ -55,8 +55,3 @@ impl<'a> DOMRectListMethods for JSRef<'a, DOMRectList> { } } -impl Reflectable for DOMRectList { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/domstringmap.rs b/components/script/dom/domstringmap.rs index ff4990eb5f6..39c08e32b87 100644 --- a/components/script/dom/domstringmap.rs +++ b/components/script/dom/domstringmap.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::DOMStringMapBinding::DOMStringMapMethods; use dom::bindings::error::ErrorResult; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::node::window_from_node; use dom::htmlelement::{HTMLElement, HTMLElementCustomAttributeHelpers}; use servo_util::str::DOMString; @@ -64,8 +64,3 @@ impl<'a> DOMStringMapMethods for JSRef<'a, DOMStringMap> { } } -impl Reflectable for DOMStringMap { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs index 6ba0307b14e..f9deb3161e2 100644 --- a/components/script/dom/domtokenlist.rs +++ b/components/script/dom/domtokenlist.rs @@ -9,7 +9,7 @@ use dom::bindings::error::Fallible; use dom::bindings::error::Error::{InvalidCharacter, Syntax}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflector, Reflectable, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, AttributeHandlers}; use dom::node::window_from_node; @@ -40,11 +40,6 @@ impl DOMTokenList { } } -impl Reflectable for DOMTokenList { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} trait PrivateDOMTokenListHelpers { fn attribute(self) -> Option>; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 52a16fc6ea4..67d835c2cec 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -25,7 +25,6 @@ use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{NamespaceError, InvalidCharacter, Syntax}; use dom::bindings::js::{MutNullableJS, JS, JSRef, Temporary, TemporaryPushable}; use dom::bindings::js::{OptionalRootable, Root}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::bindings::utils::xml_name_type; use dom::bindings::utils::XMLName::{QName, Name, InvalidXMLName}; use dom::create::create_element; @@ -86,11 +85,6 @@ impl ElementDerived for EventTarget { } } -impl Reflectable for Element { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.node.reflector() - } -} #[deriving(PartialEq, Show)] #[jstraceable] diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 5224945f086..1ece583009f 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::EventBinding::{EventConstants, EventMethod use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::eventtarget::EventTarget; use servo_util::str::DOMString; use std::cell::Cell; @@ -240,18 +240,3 @@ impl<'a> EventMethods for JSRef<'a, Event> { } } -impl Reflectable for Event { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} - -pub trait EventHelpers { - fn set_trusted(self, trusted: bool); -} - -impl<'a> EventHelpers for JSRef<'a, Event> { - fn set_trusted(self, trusted: bool) { - self.trusted.set(trusted); - } -} diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 3293a099276..ab6c3e7bc63 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -301,11 +301,6 @@ impl<'a> EventTargetMethods for JSRef<'a, EventTarget> { } } -impl Reflectable for EventTarget { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} impl<'a> VirtualMethods for JSRef<'a, EventTarget> { fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs index f79631c9d52..5ac612e8ecd 100644 --- a/components/script/dom/file.rs +++ b/components/script/dom/file.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::FileBinding; use dom::bindings::codegen::Bindings::FileBinding::FileMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::blob::{Blob, BlobTypeId}; use servo_util::str::DOMString; @@ -44,8 +44,3 @@ impl<'a> FileMethods for JSRef<'a, File> { } } -impl Reflectable for File { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.blob.reflector() - } -} diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs index 5a76dda5511..75ed9cfa3ba 100644 --- a/components/script/dom/formdata.rs +++ b/components/script/dom/formdata.rs @@ -11,7 +11,7 @@ use dom::bindings::codegen::UnionTypes::FileOrString::{eFile, eString}; use dom::bindings::error::{Fallible}; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::blob::Blob; use dom::file::File; use dom::htmlformelement::HTMLFormElement; @@ -107,11 +107,6 @@ impl<'a> FormDataMethods for JSRef<'a, FormData> { } } -impl Reflectable for FormData { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} trait PrivateFormDataHelpers{ fn get_file_from_blob(&self, value: JSRef, filename: Option) -> Temporary; diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 10d574672a3..d80ddeeb0b3 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -11,7 +11,6 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::HTMLAnchorElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; use dom::bindings::js::{MutNullableJS, JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::domtokenlist::DOMTokenList; use dom::element::{Element, AttributeHandlers, ElementTypeId}; @@ -99,11 +98,6 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLAnchorElement> { } } -impl Reflectable for HTMLAnchorElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} impl<'a> HTMLAnchorElementMethods for JSRef<'a, HTMLAnchorElement> { fn Text(self) -> DOMString { diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs index f54a3f32125..c50bf6b305b 100644 --- a/components/script/dom/htmlappletelement.rs +++ b/components/script/dom/htmlappletelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLAppletElementBinding; use dom::bindings::codegen::InheritTypes::HTMLAppletElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLAppletElement { } } -impl Reflectable for HTMLAppletElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs index d850d65a309..20da3756e1f 100644 --- a/components/script/dom/htmlaudioelement.rs +++ b/components/script/dom/htmlaudioelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLAudioElementBinding; use dom::bindings::codegen::InheritTypes::HTMLAudioElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLAudioElement { } } -impl Reflectable for HTMLAudioElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlmediaelement.reflector() - } -} diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs index cc72295080c..0c84191842c 100644 --- a/components/script/dom/htmlbaseelement.rs +++ b/components/script/dom/htmlbaseelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLBaseElementBinding; use dom::bindings::codegen::InheritTypes::HTMLBaseElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLBaseElement { } } -impl Reflectable for HTMLBaseElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index a692243db2d..ba35548aa54 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::EventTargetCast; use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementCast}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::Reflectable; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId, EventTargetHelpers}; @@ -130,8 +130,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLBodyElement> { } } -impl Reflectable for HTMLBodyElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs index fdfe2abd98e..8901896fb47 100644 --- a/components/script/dom/htmlbrelement.rs +++ b/components/script/dom/htmlbrelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLBRElementBinding; use dom::bindings::codegen::InheritTypes::HTMLBRElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLBRElement { } } -impl Reflectable for HTMLBRElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index d0ca30025d5..16d09791eb2 100644 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElemen use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLButtonElementDerived, HTMLFieldSetElementDerived}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -138,8 +137,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLButtonElement> { } } -impl Reflectable for HTMLButtonElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index d07080a440a..0c3d8df0e1d 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -10,7 +10,6 @@ use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, Temporary, OptionalSettable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::canvasrenderingcontext2d::CanvasRenderingContext2D; use dom::document::Document; use dom::element::{Element, ElementTypeId, AttributeHandlers}; @@ -156,8 +155,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLCanvasElement> { } } -impl Reflectable for HTMLCanvasElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs index 8f2b8bc9e78..7e08fcb6e2d 100644 --- a/components/script/dom/htmlcollection.rs +++ b/components/script/dom/htmlcollection.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::trace::JSTraceable; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, AttributeHandlers, ElementHelpers}; use dom::node::{Node, NodeHelpers, TreeIterator}; use dom::window::Window; @@ -246,8 +246,3 @@ impl<'a> HTMLCollectionMethods for JSRef<'a, HTMLCollection> { } } -impl Reflectable for HTMLCollection { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs index 85480e4e41f..ac2b133fe8b 100644 --- a/components/script/dom/htmldataelement.rs +++ b/components/script/dom/htmldataelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLDataElementBinding; use dom::bindings::codegen::InheritTypes::HTMLDataElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLDataElement { } } -impl Reflectable for HTMLDataElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs index 0083af0cc25..77c665dca7a 100644 --- a/components/script/dom/htmldatalistelement.rs +++ b/components/script/dom/htmldatalistelement.rs @@ -7,7 +7,6 @@ use dom::bindings::codegen::Bindings::HTMLDataListElementBinding::HTMLDataListEl use dom::bindings::codegen::InheritTypes::{HTMLDataListElementDerived, HTMLOptionElementDerived}; use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{Element, ElementTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -57,8 +56,3 @@ impl<'a> HTMLDataListElementMethods for JSRef<'a, HTMLDataListElement> { } } -impl Reflectable for HTMLDataListElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs index 3969c56e886..57251a27992 100644 --- a/components/script/dom/htmldirectoryelement.rs +++ b/components/script/dom/htmldirectoryelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLDirectoryElementBinding; use dom::bindings::codegen::InheritTypes::HTMLDirectoryElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLDirectoryElement { } } -impl Reflectable for HTMLDirectoryElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs index a5f9eb3238c..4451f22e337 100644 --- a/components/script/dom/htmldivelement.rs +++ b/components/script/dom/htmldivelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLDivElementBinding; use dom::bindings::codegen::InheritTypes::HTMLDivElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLDivElement { } } -impl Reflectable for HTMLDivElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs index aeb23b7afb4..10bc22d2b33 100644 --- a/components/script/dom/htmldlistelement.rs +++ b/components/script/dom/htmldlistelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLDListElementBinding; use dom::bindings::codegen::InheritTypes::HTMLDListElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLDListElement { } } -impl Reflectable for HTMLDListElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index f36e84a078e..3e86b3243a9 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -15,7 +15,7 @@ use dom::bindings::codegen::InheritTypes::{HTMLElementDerived, HTMLBodyElementDe use dom::bindings::js::{JSRef, Temporary, MutNullableJS}; use dom::bindings::error::ErrorResult; use dom::bindings::error::Error::Syntax; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::Reflectable; use dom::cssstyledeclaration::CSSStyleDeclaration; use dom::document::Document; use dom::domstringmap::DOMStringMap; @@ -203,8 +203,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLElement> { } } -impl Reflectable for HTMLElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.element.reflector() - } -} diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs index fd4945f2ded..76e574a4548 100644 --- a/components/script/dom/htmlembedelement.rs +++ b/components/script/dom/htmlembedelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLEmbedElementBinding; use dom::bindings::codegen::InheritTypes::HTMLEmbedElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLEmbedElement { } } -impl Reflectable for HTMLEmbedElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index a2396a847c9..d7cb3f1f7b6 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding::HTMLFieldSetEl use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLLegendElementDerived}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementHelpers, ElementTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -148,8 +147,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLFieldSetElement> { } } -impl Reflectable for HTMLFieldSetElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs index 4303668b0e5..9842e98d878 100644 --- a/components/script/dom/htmlfontelement.rs +++ b/components/script/dom/htmlfontelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLFontElementBinding; use dom::bindings::codegen::InheritTypes::HTMLFontElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLFontElement { } } -impl Reflectable for HTMLFontElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index 50c58a22cad..ffee4ab4687 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -12,7 +12,6 @@ use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLFormElementDeriv use dom::bindings::codegen::InheritTypes::{HTMLInputElementCast, HTMLTextAreaElementCast, HTMLFormElementCast}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::element::{Element, AttributeHandlers, ElementTypeId}; use dom::event::{Event, EventHelpers, EventBubbles, EventCancelable}; @@ -390,11 +389,6 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { } } -impl Reflectable for HTMLFormElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} // TODO: add file support pub struct FormDatum { diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs index 87b286d6094..47cfd521264 100644 --- a/components/script/dom/htmlframeelement.rs +++ b/components/script/dom/htmlframeelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLFrameElementBinding; use dom::bindings::codegen::InheritTypes::HTMLFrameElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLFrameElement { } } -impl Reflectable for HTMLFrameElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs index 8b92ced546d..b9423972bfb 100644 --- a/components/script/dom/htmlframesetelement.rs +++ b/components/script/dom/htmlframesetelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLFrameSetElementBinding; use dom::bindings::codegen::InheritTypes::HTMLFrameSetElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLFrameSetElement { } } -impl Reflectable for HTMLFrameSetElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs index f37e50c688f..cd970b5ad87 100644 --- a/components/script/dom/htmlheadelement.rs +++ b/components/script/dom/htmlheadelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLHeadElementBinding; use dom::bindings::codegen::InheritTypes::HTMLHeadElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLHeadElement { } } -impl Reflectable for HTMLHeadElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs index c8deabe4670..eee3f931809 100644 --- a/components/script/dom/htmlheadingelement.rs +++ b/components/script/dom/htmlheadingelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLHeadingElementBinding; use dom::bindings::codegen::InheritTypes::HTMLHeadingElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -50,8 +49,3 @@ impl HTMLHeadingElement { } } -impl Reflectable for HTMLHeadingElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs index e849716e3b5..a05e3f6350a 100644 --- a/components/script/dom/htmlhrelement.rs +++ b/components/script/dom/htmlhrelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLHRElementBinding; use dom::bindings::codegen::InheritTypes::HTMLHRElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLHRElement { } } -impl Reflectable for HTMLHRElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs index cf60c1e9568..8fe515ec3ff 100644 --- a/components/script/dom/htmlhtmlelement.rs +++ b/components/script/dom/htmlhtmlelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLHtmlElementBinding; use dom::bindings::codegen::InheritTypes::HTMLHtmlElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLHtmlElement { } } -impl Reflectable for HTMLHtmlElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 8a9bfe572a4..11da7996058 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -10,7 +10,6 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLIFrameElementDerived}; use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{ElementTypeId, Element}; use dom::element::AttributeHandlers; @@ -262,8 +261,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLIFrameElement> { } } -impl Reflectable for HTMLIFrameElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 151a5215319..4cea3cbd34c 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::Bindings::HTMLImageElementBinding; use dom::bindings::codegen::Bindings::HTMLImageElementBinding::HTMLImageElementMethods; use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, HTMLElementCast, HTMLImageElementDerived}; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::element::{Element, ElementTypeId}; use dom::element::AttributeHandlers; @@ -215,8 +214,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLImageElement> { } } -impl Reflectable for HTMLImageElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 970396d9e18..d17ac616522 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -17,7 +17,6 @@ use dom::bindings::codegen::InheritTypes::KeyboardEventCast; use dom::bindings::global::GlobalRef; use dom::bindings::js::{Comparable, JS, JSRef, Root, Temporary, OptionalRootable}; use dom::bindings::js::{ResultRootable, RootedReference, MutNullableJS}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::element::{AttributeHandlers, Element, ElementTypeId}; use dom::element::{RawLayoutElementHelpers, ActivationElementHelpers}; @@ -571,11 +570,6 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> { } } -impl Reflectable for HTMLInputElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} impl<'a> FormControl<'a> for JSRef<'a, HTMLInputElement> { fn to_element(self) -> JSRef<'a, Element> { diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs index f7b1fa9f08e..e1c2ff95c92 100644 --- a/components/script/dom/htmllabelelement.rs +++ b/components/script/dom/htmllabelelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLLabelElementBinding; use dom::bindings::codegen::InheritTypes::HTMLLabelElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLLabelElement { } } -impl Reflectable for HTMLLabelElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs index 5d888bf440c..3ca6ec15d4b 100644 --- a/components/script/dom/htmllegendelement.rs +++ b/components/script/dom/htmllegendelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLLegendElementBinding; use dom::bindings::codegen::InheritTypes::HTMLLegendElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLLegendElement { } } -impl Reflectable for HTMLLegendElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs index 022684c5317..59de87026c3 100644 --- a/components/script/dom/htmllielement.rs +++ b/components/script/dom/htmllielement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLLIElementBinding; use dom::bindings::codegen::InheritTypes::HTMLLIElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLLIElement { } } -impl Reflectable for HTMLLIElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index f84314b7008..6c94ee3b81f 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::Bindings::HTMLLinkElementBinding::HTMLLinkElementMet use dom::bindings::codegen::InheritTypes::HTMLLinkElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::{MutNullableJS, JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::domtokenlist::DOMTokenList; use dom::element::{AttributeHandlers, Element, ElementTypeId}; @@ -138,11 +137,6 @@ impl<'a> PrivateHTMLLinkElementHelpers for JSRef<'a, HTMLLinkElement> { } } -impl Reflectable for HTMLLinkElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} impl<'a> HTMLLinkElementMethods for JSRef<'a, HTMLLinkElement> { make_url_getter!(Href) diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs index 8fd64b949e3..46ab391b47c 100644 --- a/components/script/dom/htmlmapelement.rs +++ b/components/script/dom/htmlmapelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLMapElementBinding; use dom::bindings::codegen::InheritTypes::HTMLMapElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLMapElement { } } -impl Reflectable for HTMLMapElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index 09473d017b5..8067cbf6ed5 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -3,7 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::js::{JSRef}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::bindings::codegen::InheritTypes::HTMLMediaElementDerived; use dom::document::Document; use dom::element::ElementTypeId; @@ -40,8 +39,3 @@ impl HTMLMediaElement { } } -impl Reflectable for HTMLMediaElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index a32a738dd1b..712663f6922 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLMetaElementBinding; use dom::bindings::codegen::InheritTypes::HTMLMetaElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLMetaElement { } } -impl Reflectable for HTMLMetaElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs index 622d753ee4a..30ace612ad7 100644 --- a/components/script/dom/htmlmeterelement.rs +++ b/components/script/dom/htmlmeterelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLMeterElementBinding; use dom::bindings::codegen::InheritTypes::HTMLMeterElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLMeterElement { } } -impl Reflectable for HTMLMeterElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs index 746b952d551..1644d81c1ae 100644 --- a/components/script/dom/htmlmodelement.rs +++ b/components/script/dom/htmlmodelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLModElementBinding; use dom::bindings::codegen::InheritTypes::HTMLModElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLModElement { } } -impl Reflectable for HTMLModElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index 411ecfd7b6e..81b0e31371b 100644 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -10,7 +10,6 @@ use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElemen use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{Element, ElementTypeId}; use dom::element::AttributeHandlers; @@ -117,8 +116,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLObjectElement> { } } -impl Reflectable for HTMLObjectElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs index a450800b442..59f2bb5d395 100644 --- a/components/script/dom/htmlolistelement.rs +++ b/components/script/dom/htmlolistelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLOListElementBinding; use dom::bindings::codegen::InheritTypes::HTMLOListElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLOListElement { } } -impl Reflectable for HTMLOListElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs index ba954cc035f..b0692032099 100644 --- a/components/script/dom/htmloptgroupelement.rs +++ b/components/script/dom/htmloptgroupelement.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding::HTMLOptGroupEl use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLOptGroupElementDerived, HTMLOptionElementDerived}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{AttributeHandlers, ElementTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -99,8 +98,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLOptGroupElement> { } } -impl Reflectable for HTMLOptGroupElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index 0610ed8c558..64dcbf8df5e 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -12,7 +12,6 @@ use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived}; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::characterdata::CharacterData; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementHelpers, ElementTypeId}; @@ -186,8 +185,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLOptionElement> { } } -impl Reflectable for HTMLOptionElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs index 73e58f31906..5d7b8f6e198 100644 --- a/components/script/dom/htmloutputelement.rs +++ b/components/script/dom/htmloutputelement.rs @@ -6,7 +6,6 @@ use dom::bindings::codegen::Bindings::HTMLOutputElementBinding; use dom::bindings::codegen::Bindings::HTMLOutputElementBinding::HTMLOutputElementMethods; use dom::bindings::codegen::InheritTypes::HTMLOutputElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -47,8 +46,3 @@ impl<'a> HTMLOutputElementMethods for JSRef<'a, HTMLOutputElement> { } } -impl Reflectable for HTMLOutputElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs index 5cd07ac1929..d2085af7bf0 100644 --- a/components/script/dom/htmlparagraphelement.rs +++ b/components/script/dom/htmlparagraphelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLParagraphElementBinding; use dom::bindings::codegen::InheritTypes::HTMLParagraphElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLParagraphElement { } } -impl Reflectable for HTMLParagraphElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs index 9aa5ec02499..8b1c2205866 100644 --- a/components/script/dom/htmlparamelement.rs +++ b/components/script/dom/htmlparamelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLParamElementBinding; use dom::bindings::codegen::InheritTypes::HTMLParamElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLParamElement { } } -impl Reflectable for HTMLParamElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs index bc4e840bee3..b677adf087f 100644 --- a/components/script/dom/htmlpreelement.rs +++ b/components/script/dom/htmlpreelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLPreElementBinding; use dom::bindings::codegen::InheritTypes::HTMLPreElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLPreElement { } } -impl Reflectable for HTMLPreElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs index 648a9bf2fbb..a33fe59017d 100644 --- a/components/script/dom/htmlprogresselement.rs +++ b/components/script/dom/htmlprogresselement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLProgressElementBinding; use dom::bindings::codegen::InheritTypes::HTMLProgressElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLProgressElement { } } -impl Reflectable for HTMLProgressElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs index 3160b705b4f..38b0dac095d 100644 --- a/components/script/dom/htmlquoteelement.rs +++ b/components/script/dom/htmlquoteelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLQuoteElementBinding; use dom::bindings::codegen::InheritTypes::HTMLQuoteElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLQuoteElement { } } -impl Reflectable for HTMLQuoteElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 3883d83f562..17c9820a344 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -15,7 +15,6 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCas use dom::bindings::codegen::InheritTypes::EventTargetCast; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{ElementTypeId, Element, AttributeHandlers, ElementCreator}; use dom::eventtarget::{EventTarget, EventTargetTypeId, EventTargetHelpers}; @@ -330,8 +329,3 @@ impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> { } } -impl Reflectable for HTMLScriptElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index a249cb8bc26..335d3fb2ab1 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -11,7 +11,6 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLSelectElementDerived use dom::bindings::codegen::UnionTypes::HTMLElementOrLong; use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementTypeId}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -139,8 +138,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLSelectElement> { } } -impl Reflectable for HTMLSelectElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs index b53aa3bac45..8f2b466b129 100644 --- a/components/script/dom/htmlsourceelement.rs +++ b/components/script/dom/htmlsourceelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLSourceElementBinding; use dom::bindings::codegen::InheritTypes::HTMLSourceElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLSourceElement { } } -impl Reflectable for HTMLSourceElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs index 7ca9b960c55..232a9de5113 100644 --- a/components/script/dom/htmlspanelement.rs +++ b/components/script/dom/htmlspanelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLSpanElementBinding; use dom::bindings::codegen::InheritTypes::HTMLSpanElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLSpanElement { } } -impl Reflectable for HTMLSpanElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index d250fda3f54..633fb74bad0 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -6,7 +6,6 @@ use dom::bindings::codegen::Bindings::HTMLStyleElementBinding; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLStyleElementDerived, NodeCast}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -92,8 +91,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLStyleElement> { } } -impl Reflectable for HTMLStyleElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs index 2a12f2fd01a..6f4f0047da6 100644 --- a/components/script/dom/htmltablecaptionelement.rs +++ b/components/script/dom/htmltablecaptionelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTableCaptionElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTableCaptionElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLTableCaptionElement { } } -impl Reflectable for HTMLTableCaptionElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs index 346da6560d5..fcf9a76a948 100644 --- a/components/script/dom/htmltablecellelement.rs +++ b/components/script/dom/htmltablecellelement.rs @@ -5,7 +5,6 @@ use dom::attr::{Attr, AttrHelpers}; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCellElementDerived}; use dom::bindings::js::JSRef; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -114,8 +113,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTableCellElement> { } } -impl Reflectable for HTMLTableCellElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs index 99771d70918..74cd9396ec6 100644 --- a/components/script/dom/htmltablecolelement.rs +++ b/components/script/dom/htmltablecolelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTableColElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTableColElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLTableColElement { } } -impl Reflectable for HTMLTableColElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs index db4a7248b10..899ef558864 100644 --- a/components/script/dom/htmltabledatacellelement.rs +++ b/components/script/dom/htmltabledatacellelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTableDataCellElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTableDataCellElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -42,8 +41,3 @@ impl HTMLTableDataCellElement { } } -impl Reflectable for HTMLTableDataCellElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmltablecellelement.reflector() - } -} diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index b73f0995b8f..cb638e4f371 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -9,7 +9,6 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCaptionElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLTableElementDerived, NodeCast}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -58,11 +57,6 @@ impl HTMLTableElement { } } -impl Reflectable for HTMLTableElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} impl<'a> HTMLTableElementMethods for JSRef<'a, HTMLTableElement> { // http://www.whatwg.org/html/#dom-table-caption diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs index f20647069d5..38664831902 100644 --- a/components/script/dom/htmltableheadercellelement.rs +++ b/components/script/dom/htmltableheadercellelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTableHeaderCellElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTableHeaderCellElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLTableHeaderCellElement { } } -impl Reflectable for HTMLTableHeaderCellElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmltablecellelement.reflector() - } -} diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs index 6f34f290a5d..d8e9aad1323 100644 --- a/components/script/dom/htmltablerowelement.rs +++ b/components/script/dom/htmltablerowelement.rs @@ -6,7 +6,6 @@ use dom::attr::{Attr, AttrHelpers}; use dom::bindings::codegen::Bindings::HTMLTableRowElementBinding; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableRowElementDerived}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -51,52 +50,3 @@ impl HTMLTableRowElement { } } -impl Reflectable for HTMLTableRowElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} - -pub trait HTMLTableRowElementHelpers { - fn get_background_color(&self) -> Option; -} - -impl HTMLTableRowElementHelpers for HTMLTableRowElement { - fn get_background_color(&self) -> Option { - self.background_color.get() - } -} - -impl<'a> VirtualMethods for JSRef<'a, HTMLTableRowElement> { - fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { - let htmlelement: &JSRef = HTMLElementCast::from_borrowed_ref(self); - Some(htmlelement as &VirtualMethods) - } - - fn after_set_attr(&self, attr: JSRef) { - match self.super_type() { - Some(ref s) => s.after_set_attr(attr), - _ => () - } - - match attr.local_name() { - &atom!("bgcolor") => { - self.background_color.set(str::parse_legacy_color(attr.value().as_slice()).ok()) - } - _ => {} - } - } - - fn before_remove_attr(&self, attr: JSRef) { - match self.super_type() { - Some(ref s) => s.before_remove_attr(attr), - _ => () - } - - match attr.local_name() { - &atom!("bgcolor") => self.background_color.set(None), - _ => {} - } - } -} - diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs index d27fabd2153..40e7f91ac0a 100644 --- a/components/script/dom/htmltablesectionelement.rs +++ b/components/script/dom/htmltablesectionelement.rs @@ -6,7 +6,6 @@ use dom::attr::{Attr, AttrHelpers}; use dom::bindings::codegen::Bindings::HTMLTableSectionElementBinding; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableSectionElementDerived}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -50,52 +49,3 @@ impl HTMLTableSectionElement { } } -impl Reflectable for HTMLTableSectionElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} - -pub trait HTMLTableSectionElementHelpers { - fn get_background_color(&self) -> Option; -} - -impl HTMLTableSectionElementHelpers for HTMLTableSectionElement { - fn get_background_color(&self) -> Option { - self.background_color.get() - } -} - -impl<'a> VirtualMethods for JSRef<'a, HTMLTableSectionElement> { - fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { - let htmlelement: &JSRef = HTMLElementCast::from_borrowed_ref(self); - Some(htmlelement as &VirtualMethods) - } - - fn after_set_attr(&self, attr: JSRef) { - match self.super_type() { - Some(ref s) => s.after_set_attr(attr), - _ => () - } - - match attr.local_name() { - &atom!("bgcolor") => { - self.background_color.set(str::parse_legacy_color(attr.value().as_slice()).ok()) - } - _ => {} - } - } - - fn before_remove_attr(&self, attr: JSRef) { - match self.super_type() { - Some(ref s) => s.before_remove_attr(attr), - _ => () - } - - match attr.local_name() { - &atom!("bgcolor") => self.background_color.set(None), - _ => {} - } - } -} - diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs index 86b2fb3bc4a..783c2275b26 100644 --- a/components/script/dom/htmltemplateelement.rs +++ b/components/script/dom/htmltemplateelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTemplateElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTemplateElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLTemplateElement { } } -impl Reflectable for HTMLTemplateElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 8789fcf9fb1..5637cf74318 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -13,7 +13,6 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCas use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementDerived, HTMLFieldSetElementDerived}; use dom::bindings::codegen::InheritTypes::{KeyboardEventCast, TextDerived}; use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::element::{Element, AttributeHandlers, ElementTypeId}; use dom::event::Event; @@ -330,26 +329,3 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> { } } -impl Reflectable for HTMLTextAreaElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} - -impl<'a> FormControl<'a> for JSRef<'a, HTMLTextAreaElement> { - fn to_element(self) -> JSRef<'a, Element> { - ElementCast::from_ref(self) - } - - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-mutable - fn mutable(self) -> bool { - // https://html.spec.whatwg.org/multipage/forms.html#the-textarea-element:concept-fe-mutable - !(self.Disabled() || self.ReadOnly()) - } - - fn reset(self) { - // https://html.spec.whatwg.org/multipage/forms.html#the-textarea-element:concept-form-reset-control - self.SetValue(self.DefaultValue()); - self.value_changed.set(false); - } -} diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs index bb31f5021a9..166a55003b2 100644 --- a/components/script/dom/htmltimeelement.rs +++ b/components/script/dom/htmltimeelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTimeElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTimeElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLTimeElement { } } -impl Reflectable for HTMLTimeElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index ba54a1790ec..fb3a4a5eace 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -8,7 +8,6 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTitleElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::{TextCast}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::{Document, DocumentHelpers}; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -65,24 +64,3 @@ impl<'a> HTMLTitleElementMethods for JSRef<'a, HTMLTitleElement> { } } -impl Reflectable for HTMLTitleElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} - -impl<'a> VirtualMethods for JSRef<'a, HTMLTitleElement> { - fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { - let htmlelement: &JSRef = HTMLElementCast::from_borrowed_ref(self); - Some(htmlelement as &VirtualMethods) - } - - fn bind_to_tree(&self, is_in_doc: bool) { - let node: JSRef = NodeCast::from_ref(*self); - if is_in_doc { - let document = node.owner_doc().root(); - document.send_title_to_compositor() - } - } -} - diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs index 6dab96b0ec1..80118c75b67 100644 --- a/components/script/dom/htmltrackelement.rs +++ b/components/script/dom/htmltrackelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLTrackElementBinding; use dom::bindings::codegen::InheritTypes::HTMLTrackElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLTrackElement { } } -impl Reflectable for HTMLTrackElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs index ecf206d89ce..e7da5aaf9e6 100644 --- a/components/script/dom/htmlulistelement.rs +++ b/components/script/dom/htmlulistelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLUListElementBinding; use dom::bindings::codegen::InheritTypes::HTMLUListElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLUListElement { } } -impl Reflectable for HTMLUListElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs index cc538c2c983..c36cc919c40 100644 --- a/components/script/dom/htmlunknownelement.rs +++ b/components/script/dom/htmlunknownelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLUnknownElementBinding; use dom::bindings::codegen::InheritTypes::HTMLUnknownElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLUnknownElement { } } -impl Reflectable for HTMLUnknownElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlelement.reflector() - } -} diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs index 28e9f0c945c..769c695b5a6 100644 --- a/components/script/dom/htmlvideoelement.rs +++ b/components/script/dom/htmlvideoelement.rs @@ -5,7 +5,6 @@ use dom::bindings::codegen::Bindings::HTMLVideoElementBinding; use dom::bindings::codegen::InheritTypes::HTMLVideoElementDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::ElementTypeId; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -38,8 +37,3 @@ impl HTMLVideoElement { } } -impl Reflectable for HTMLVideoElement { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.htmlmediaelement.reflector() - } -} diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs index 9ac0ed67e94..58e95ecba2c 100644 --- a/components/script/dom/location.rs +++ b/components/script/dom/location.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::LocationBinding; use dom::bindings::codegen::Bindings::LocationBinding::LocationMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::urlhelper::UrlHelper; use dom::window::Window; use page::Page; @@ -50,8 +50,3 @@ impl<'a> LocationMethods for JSRef<'a, Location> { } } -impl Reflectable for Location { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index 23ff7083ee8..52da2576b0a 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{EventCast, MessageEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use dom::eventtarget::{EventTarget, EventTargetHelpers}; @@ -99,8 +99,3 @@ impl<'a> MessageEventMethods for JSRef<'a, MessageEvent> { } } -impl Reflectable for MessageEvent { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.event.reflector() - } -} diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs index 02cbf428437..ec3c18263b4 100644 --- a/components/script/dom/mouseevent.rs +++ b/components/script/dom/mouseevent.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast, MouseEventDer use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, RootedReference, Temporary, OptionalSettable}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use dom::eventtarget::EventTarget; use dom::uievent::UIEvent; @@ -179,8 +179,3 @@ impl<'a> MouseEventMethods for JSRef<'a, MouseEvent> { } } -impl Reflectable for MouseEvent { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.uievent.reflector() - } -} diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs index 70d27878c0d..e0bc06b980d 100644 --- a/components/script/dom/namednodemap.rs +++ b/components/script/dom/namednodemap.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::NamedNodeMapBinding; use dom::bindings::codegen::Bindings::NamedNodeMapBinding::NamedNodeMapMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, ElementHelpers}; use dom::window::Window; @@ -47,8 +47,3 @@ impl<'a> NamedNodeMapMethods for JSRef<'a, NamedNodeMap> { } } -impl Reflectable for NamedNodeMap { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs index 0e3415f8b48..3eb688de6e1 100644 --- a/components/script/dom/navigator.rs +++ b/components/script/dom/navigator.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::NavigatorBinding; use dom::bindings::codegen::Bindings::NavigatorBinding::NavigatorMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::navigatorinfo::NavigatorInfo; use dom::window::Window; use servo_util::str::DOMString; @@ -56,8 +56,3 @@ impl<'a> NavigatorMethods for JSRef<'a, Navigator> { } } -impl Reflectable for Navigator { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 1187e76a688..539ceb9f70e 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -27,7 +27,8 @@ use dom::bindings::js::{JS, JSRef, RootedReference, Temporary, Root}; use dom::bindings::js::{OptionalSettable, TemporaryPushable, OptionalRootedRootable}; use dom::bindings::js::{ResultRootable, OptionalRootable, MutNullableJS}; use dom::bindings::trace::JSTraceable; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils; +use dom::bindings::utils::{Reflectable, reflect_dom_object}; use dom::characterdata::CharacterData; use dom::comment::Comment; use dom::document::{Document, DocumentHelpers, IsHTMLDocument, DocumentSource}; @@ -2169,11 +2170,6 @@ impl<'a> NodeMethods for JSRef<'a, Node> { } -impl Reflectable for Node { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} /// The address of a node known to be valid. These are sent from script to layout, /// and are also used in the HTML parser interface. diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs index 7529b5fd190..5734bc89c9e 100644 --- a/components/script/dom/nodeiterator.rs +++ b/components/script/dom/nodeiterator.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::NodeIteratorBinding; use dom::bindings::codegen::Bindings::NodeIteratorBinding::NodeIteratorMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; #[dom_struct] pub struct NodeIterator { @@ -28,8 +28,3 @@ impl NodeIterator { impl<'a> NodeIteratorMethods for JSRef<'a, NodeIterator> { } -impl Reflectable for NodeIterator { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs index b4c5955a798..61087cdcb32 100644 --- a/components/script/dom/nodelist.rs +++ b/components/script/dom/nodelist.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::NodeListBinding; use dom::bindings::codegen::Bindings::NodeListBinding::NodeListMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::node::{Node, NodeHelpers}; use dom::window::Window; @@ -76,8 +76,3 @@ impl<'a> NodeListMethods for JSRef<'a, NodeList> { } } -impl Reflectable for NodeList { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/performance.rs b/components/script/dom/performance.rs index c5882e77b40..ecc15868939 100644 --- a/components/script/dom/performance.rs +++ b/components/script/dom/performance.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::PerformanceBinding; use dom::bindings::codegen::Bindings::PerformanceBinding::PerformanceMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::performancetiming::{PerformanceTiming, PerformanceTimingHelpers}; use dom::window::Window; use time; @@ -54,8 +54,3 @@ impl<'a> PerformanceMethods for JSRef<'a, Performance> { } } -impl Reflectable for Performance { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs index e65eed16b8b..858e1e6c9ab 100644 --- a/components/script/dom/performancetiming.rs +++ b/components/script/dom/performancetiming.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::PerformanceTimingBinding; use dom::bindings::codegen::Bindings::PerformanceTimingBinding::PerformanceTimingMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::window::Window; #[dom_struct] @@ -54,8 +54,3 @@ impl<'a> PerformanceTimingHelpers for JSRef<'a, PerformanceTiming> { } } -impl Reflectable for PerformanceTiming { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs index 99c904817a4..23b37f2d436 100644 --- a/components/script/dom/processinginstruction.rs +++ b/components/script/dom/processinginstruction.rs @@ -6,7 +6,6 @@ use dom::bindings::codegen::Bindings::ProcessingInstructionBinding; use dom::bindings::codegen::Bindings::ProcessingInstructionBinding::ProcessingInstructionMethods; use dom::bindings::codegen::InheritTypes::ProcessingInstructionDerived; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::characterdata::CharacterData; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -54,8 +53,3 @@ impl<'a> ProcessingInstructionMethods for JSRef<'a, ProcessingInstruction> { } } -impl Reflectable for ProcessingInstruction { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.characterdata.reflector() - } -} diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs index f3b4d5f29db..4a05c1658da 100644 --- a/components/script/dom/progressevent.rs +++ b/components/script/dom/progressevent.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{EventCast, ProgressEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use servo_util::str::DOMString; @@ -68,8 +68,3 @@ impl<'a> ProgressEventMethods for JSRef<'a, ProgressEvent> { } } -impl Reflectable for ProgressEvent { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.event.reflector() - } -} diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs index a66b1fd4683..74cf1f8bafd 100644 --- a/components/script/dom/range.rs +++ b/components/script/dom/range.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers}; #[dom_struct] @@ -43,8 +43,3 @@ impl<'a> RangeMethods for JSRef<'a, Range> { } } -impl Reflectable for Range { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/screen.rs b/components/script/dom/screen.rs index 84662b5c4e8..a78ec98e994 100644 --- a/components/script/dom/screen.rs +++ b/components/script/dom/screen.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::ScreenBinding; use dom::bindings::codegen::Bindings::ScreenBinding::ScreenMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::window::Window; #[dom_struct] @@ -38,8 +38,3 @@ impl<'a> ScreenMethods for JSRef<'a, Screen> { } } -impl Reflectable for Screen { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs index 8620afae38a..acf2d43d1ca 100644 --- a/components/script/dom/storage.rs +++ b/components/script/dom/storage.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::StorageBinding; use dom::bindings::codegen::Bindings::StorageBinding::StorageMethods; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::error::Fallible; use servo_util::str::DOMString; use servo_net::storage_task::StorageTask; @@ -118,8 +118,3 @@ impl<'a> StorageMethods for JSRef<'a, Storage> { } } -impl Reflectable for Storage { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs index 8c4ea8d7817..123d8b040fa 100644 --- a/components/script/dom/testbinding.rs +++ b/components/script/dom/testbinding.rs @@ -307,8 +307,3 @@ impl TestBinding { pub fn ReceiveVoidStatic() {} } -impl Reflectable for TestBinding { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector - } -} diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index 368b1373fa7..0a925309dad 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -8,7 +8,6 @@ use dom::bindings::codegen::InheritTypes::TextDerived; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::characterdata::CharacterData; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; @@ -50,8 +49,3 @@ impl Text { } } -impl Reflectable for Text { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.characterdata.reflector() - } -} diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs index 7f6d18fae4e..3bd8a4cfb0c 100644 --- a/components/script/dom/treewalker.rs +++ b/components/script/dom/treewalker.rs @@ -14,7 +14,7 @@ use dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilter; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, OptionalRootable, Temporary, MutHeap}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers}; use dom::node::{Node, NodeHelpers}; @@ -119,11 +119,6 @@ impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> { } } -impl Reflectable for TreeWalker { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} type NodeAdvancer<'a> = |node: JSRef<'a, Node>|: 'a -> Option>; diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs index 829561b78c9..04d8f22e88f 100644 --- a/components/script/dom/uievent.rs +++ b/components/script/dom/uievent.rs @@ -10,7 +10,7 @@ use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, RootedReference, Temporary, OptionalSettable}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use dom::window::Window; use servo_util::str::DOMString; @@ -93,8 +93,3 @@ impl<'a> UIEventMethods for JSRef<'a, UIEvent> { } } -impl Reflectable for UIEvent { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.event.reflector() - } -} diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index c71a28cc3d1..08230760a41 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -10,7 +10,7 @@ use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eURLSearchPara use dom::bindings::error::{Fallible}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use servo_util::str::DOMString; @@ -93,11 +93,6 @@ impl<'a> URLSearchParamsMethods for JSRef<'a, URLSearchParams> { } } -impl Reflectable for URLSearchParams { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} pub trait URLSearchParamsHelpers { fn serialize(&self, encoding: Option) -> Vec; diff --git a/components/script/dom/validitystate.rs b/components/script/dom/validitystate.rs index 79a4824252f..5e87e9de2b1 100644 --- a/components/script/dom/validitystate.rs +++ b/components/script/dom/validitystate.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::ValidityStateBinding; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::window::Window; #[dom_struct] @@ -29,8 +29,3 @@ impl ValidityState { } } -impl Reflectable for ValidityState { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 3e565bfd367..9e0aa6e3752 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::WebSocketBinding::WebSocketMethods; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::js::{Temporary, JSRef}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use servo_util::str::DOMString; @@ -36,11 +36,6 @@ impl WebSocket { } } -impl Reflectable for WebSocket { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { fn Url(self) -> DOMString { diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index c4ac768225f..9af66b3fb30 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -12,7 +12,7 @@ use dom::bindings::error::Fallible; use dom::bindings::error::Error::InvalidCharacter; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::Reflectable; use dom::browsercontext::BrowserContext; use dom::console::Console; use dom::document::Document; @@ -293,11 +293,6 @@ impl<'a> WindowMethods for JSRef<'a, Window> { } } -impl Reflectable for Window { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} pub trait WindowHelpers { fn flush_layout(self, goal: ReflowGoal, query: ReflowQueryType); diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index 6669b496c70..4d03d312223 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -11,7 +11,7 @@ use dom::bindings::error::Error::{Syntax, DataClone}; use dom::bindings::global::{GlobalRef, GlobalField}; use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::trace::JSTraceable; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflectable, reflect_dom_object}; use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope; use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; use dom::messageevent::MessageEvent; @@ -153,8 +153,3 @@ impl<'a> WorkerMethods for JSRef<'a, Worker> { event_handler!(message, GetOnmessage, SetOnmessage) } -impl Reflectable for Worker { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index f4827daaa34..b9e1709ca44 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -8,7 +8,7 @@ use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{Syntax, Network, FailureUnknown}; use dom::bindings::global::GlobalRef; use dom::bindings::js::{MutNullableJS, JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::Reflectable; use dom::console::Console; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::workerlocation::WorkerLocation; @@ -186,8 +186,3 @@ impl<'a> WorkerGlobalScopeHelpers for JSRef<'a, WorkerGlobalScope> { } -impl Reflectable for WorkerGlobalScope { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} diff --git a/components/script/dom/workerlocation.rs b/components/script/dom/workerlocation.rs index d539da9b3b4..5193d50495a 100644 --- a/components/script/dom/workerlocation.rs +++ b/components/script/dom/workerlocation.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::WorkerLocationBinding; use dom::bindings::codegen::Bindings::WorkerLocationBinding::WorkerLocationMethods; use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::global::GlobalRef; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::urlhelper::UrlHelper; use dom::workerglobalscope::WorkerGlobalScope; @@ -49,8 +49,3 @@ impl<'a> WorkerLocationMethods for JSRef<'a, WorkerLocation> { } } -impl Reflectable for WorkerLocation { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs index 50bad86ca31..f585153550b 100644 --- a/components/script/dom/workernavigator.rs +++ b/components/script/dom/workernavigator.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::WorkerNavigatorBinding; use dom::bindings::codegen::Bindings::WorkerNavigatorBinding::WorkerNavigatorMethods; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JSRef, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::navigatorinfo::NavigatorInfo; use dom::workerglobalscope::WorkerGlobalScope; use servo_util::str::DOMString; @@ -56,8 +56,3 @@ impl<'a> WorkerNavigatorMethods for JSRef<'a, WorkerNavigator> { } } -impl Reflectable for WorkerNavigator { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 21495b9f4b3..e667c0a615c 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -16,7 +16,7 @@ use dom::bindings::error::Error::{Network, Syntax, Security, Abort, Timeout}; use dom::bindings::global::{GlobalField, GlobalRef, GlobalRoot}; use dom::bindings::js::{MutNullableJS, JS, JSRef, Temporary, OptionalRootedRootable}; use dom::bindings::str::ByteString; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflectable, reflect_dom_object}; use dom::document::Document; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; @@ -759,11 +759,6 @@ impl<'a> XMLHttpRequestMethods for JSRef<'a, XMLHttpRequest> { } } -impl Reflectable for XMLHttpRequest { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} impl XMLHttpRequestDerived for EventTarget { fn is_xmlhttprequest(&self) -> bool { diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs index 231cf1e0d4a..480598c882d 100644 --- a/components/script/dom/xmlhttprequesteventtarget.rs +++ b/components/script/dom/xmlhttprequesteventtarget.rs @@ -7,7 +7,6 @@ use dom::bindings::codegen::Bindings::XMLHttpRequestEventTargetBinding::XMLHttpR use dom::bindings::codegen::InheritTypes::EventTargetCast; use dom::bindings::codegen::InheritTypes::XMLHttpRequestEventTargetDerived; use dom::bindings::js::JSRef; -use dom::bindings::utils::{Reflectable, Reflector}; use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId}; #[deriving(PartialEq)] @@ -44,11 +43,6 @@ impl XMLHttpRequestEventTargetDerived for EventTarget { } -impl Reflectable for XMLHttpRequestEventTarget { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} impl<'a> XMLHttpRequestEventTargetMethods for JSRef<'a, XMLHttpRequestEventTarget> { event_handler!(loadstart,GetOnloadstart, SetOnloadstart) diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs index 2af3245689a..756a8c2e3aa 100644 --- a/components/script/dom/xmlhttprequestupload.rs +++ b/components/script/dom/xmlhttprequestupload.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::InheritTypes::XMLHttpRequestUploadDerived; use dom::bindings::codegen::Bindings::XMLHttpRequestUploadBinding; use dom::bindings::global::GlobalRef; use dom::bindings::js::Temporary; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget; use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTargetTypeId; @@ -28,11 +28,6 @@ impl XMLHttpRequestUpload { XMLHttpRequestUploadBinding::Wrap) } } -impl Reflectable for XMLHttpRequestUpload { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.eventtarget.reflector() - } -} impl XMLHttpRequestUploadDerived for EventTarget { fn is_xmlhttprequestupload(&self) -> bool { From 7d656735616a6ab852e20a86f65428d1103ceca3 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 1 Dec 2014 10:50:17 -0500 Subject: [PATCH 4/7] Remove extra spaces Command: `find . -maxdepth 1 -type f -print0 | xargs -0 sed -z -i "s/}\\n\\n\\n/}\\n\\n/"` --- components/script/dom/attr.rs | 1 - components/script/dom/canvasrenderingcontext2d.rs | 1 - components/script/dom/create.rs | 1 - components/script/dom/dedicatedworkerglobalscope.rs | 1 - components/script/dom/document.rs | 1 - components/script/dom/domexception.rs | 1 - components/script/dom/domimplementation.rs | 1 - components/script/dom/domtokenlist.rs | 1 - components/script/dom/element.rs | 1 - components/script/dom/eventtarget.rs | 1 - components/script/dom/formdata.rs | 1 - components/script/dom/htmlanchorelement.rs | 1 - components/script/dom/htmlformelement.rs | 1 - components/script/dom/htmlinputelement.rs | 1 - components/script/dom/htmllinkelement.rs | 1 - components/script/dom/htmltableelement.rs | 1 - components/script/dom/node.rs | 1 - components/script/dom/treewalker.rs | 1 - components/script/dom/urlsearchparams.rs | 1 - components/script/dom/websocket.rs | 1 - components/script/dom/window.rs | 1 - components/script/dom/xmlhttprequest.rs | 1 - components/script/dom/xmlhttprequesteventtarget.rs | 1 - 23 files changed, 23 deletions(-) diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index 22896e4fce0..726e5285fb9 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -85,7 +85,6 @@ pub struct Attr { owner: Option>, } - impl Attr { fn new_inherited(local_name: Atom, value: AttrValue, name: Atom, namespace: Namespace, diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 701c3ed1c4e..0e7b3ed6e69 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -64,7 +64,6 @@ impl<'a> CanvasRenderingContext2DMethods for JSRef<'a, CanvasRenderingContext2D> } } - #[unsafe_destructor] impl Drop for CanvasRenderingContext2D { fn drop(&mut self) { diff --git a/components/script/dom/create.rs b/components/script/dom/create.rs index 8311a297bdd..4d94cae4840 100644 --- a/components/script/dom/create.rs +++ b/components/script/dom/create.rs @@ -222,4 +222,3 @@ pub fn create_element(name: QualName, prefix: Option, } } - diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 51d2436d3c3..ae0bee5c670 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -182,7 +182,6 @@ impl<'a> PrivateDedicatedWorkerGlobalScopeHelpers for JSRef<'a, DedicatedWorkerG } } - impl DedicatedWorkerGlobalScopeDerived for EventTarget { fn is_dedicatedworkerglobalscope(&self) -> bool { match *self.type_id() { diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 1bb351adbbc..b968e6fef47 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -472,7 +472,6 @@ impl Document { } } - trait PrivateDocumentHelpers { fn createNodeList(self, callback: |node: JSRef| -> bool) -> Temporary; fn get_html_element(self) -> Option>; diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 5ef2fcd83f1..2d71a1b26e4 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -83,7 +83,6 @@ impl DOMException { } } - impl<'a> DOMExceptionMethods for JSRef<'a, DOMException> { // http://dom.spec.whatwg.org/#dom-domexception-code fn Code(self) -> u16 { diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs index c9e6988f216..2f593e5fe7b 100644 --- a/components/script/dom/domimplementation.rs +++ b/components/script/dom/domimplementation.rs @@ -47,7 +47,6 @@ impl DOMImplementation { } } - // http://dom.spec.whatwg.org/#domimplementation impl<'a> DOMImplementationMethods for JSRef<'a, DOMImplementation> { // http://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs index f9deb3161e2..81ba957778a 100644 --- a/components/script/dom/domtokenlist.rs +++ b/components/script/dom/domtokenlist.rs @@ -40,7 +40,6 @@ impl DOMTokenList { } } - trait PrivateDOMTokenListHelpers { fn attribute(self) -> Option>; fn check_token_exceptions<'a>(self, token: &'a str) -> Fallible<&'a str>; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 67d835c2cec..57dfdc71d91 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -85,7 +85,6 @@ impl ElementDerived for EventTarget { } } - #[deriving(PartialEq, Show)] #[jstraceable] pub enum ElementTypeId { diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index ab6c3e7bc63..227212077d7 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -301,7 +301,6 @@ impl<'a> EventTargetMethods for JSRef<'a, EventTarget> { } } - impl<'a> VirtualMethods for JSRef<'a, EventTarget> { fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { None diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs index 75ed9cfa3ba..8de4263a61e 100644 --- a/components/script/dom/formdata.rs +++ b/components/script/dom/formdata.rs @@ -107,7 +107,6 @@ impl<'a> FormDataMethods for JSRef<'a, FormData> { } } - trait PrivateFormDataHelpers{ fn get_file_from_blob(&self, value: JSRef, filename: Option) -> Temporary; } diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index d80ddeeb0b3..f43dfa6d943 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -98,7 +98,6 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLAnchorElement> { } } - impl<'a> HTMLAnchorElementMethods for JSRef<'a, HTMLAnchorElement> { fn Text(self) -> DOMString { let node: JSRef = NodeCast::from_ref(self); diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index ffee4ab4687..4a0bc1f0ab8 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -389,7 +389,6 @@ impl<'a> HTMLFormElementHelpers for JSRef<'a, HTMLFormElement> { } } - // TODO: add file support pub struct FormDatum { pub ty: DOMString, diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index d17ac616522..48017751cc6 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -570,7 +570,6 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLInputElement> { } } - impl<'a> FormControl<'a> for JSRef<'a, HTMLInputElement> { fn to_element(self) -> JSRef<'a, Element> { ElementCast::from_ref(self) diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 6c94ee3b81f..f44abbd0a81 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -137,7 +137,6 @@ impl<'a> PrivateHTMLLinkElementHelpers for JSRef<'a, HTMLLinkElement> { } } - impl<'a> HTMLLinkElementMethods for JSRef<'a, HTMLLinkElement> { make_url_getter!(Href) make_setter!(SetHref, "href") diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index cb638e4f371..b21950b096c 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -57,7 +57,6 @@ impl HTMLTableElement { } } - impl<'a> HTMLTableElementMethods for JSRef<'a, HTMLTableElement> { // http://www.whatwg.org/html/#dom-table-caption fn GetCaption(self) -> Option> { diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 539ceb9f70e..0b66cc678a5 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -482,7 +482,6 @@ pub trait NodeHelpers<'a> { fn summarize(self) -> NodeInfo; } - impl<'a> NodeHelpers<'a> for JSRef<'a, Node> { /// Dumps the subtree rooted at this node, for debugging. fn dump(self) { diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs index 3bd8a4cfb0c..5551ec1e211 100644 --- a/components/script/dom/treewalker.rs +++ b/components/script/dom/treewalker.rs @@ -119,7 +119,6 @@ impl<'a> TreeWalkerMethods for JSRef<'a, TreeWalker> { } } - type NodeAdvancer<'a> = |node: JSRef<'a, Node>|: 'a -> Option>; trait PrivateTreeWalkerHelpers<'a> { diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index 08230760a41..a45230726c6 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -93,7 +93,6 @@ impl<'a> URLSearchParamsMethods for JSRef<'a, URLSearchParams> { } } - pub trait URLSearchParamsHelpers { fn serialize(&self, encoding: Option) -> Vec; fn update_steps(&self); diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 9e0aa6e3752..e043ea5b3dc 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -36,7 +36,6 @@ impl WebSocket { } } - impl<'a> WebSocketMethods for JSRef<'a, WebSocket> { fn Url(self) -> DOMString { self.url.clone() diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 9af66b3fb30..21afb9e59af 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -182,7 +182,6 @@ pub fn base64_atob(atob: DOMString) -> Fallible { } } - impl<'a> WindowMethods for JSRef<'a, Window> { fn Alert(self, s: DOMString) { // Right now, just print to the console diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index e667c0a615c..3bdb2de4152 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -240,7 +240,6 @@ impl XMLHttpRequest { } } - macro_rules! notify_error_and_return( ($err:expr) => ({ notify_partial_progress(fetch_type, XHRProgress::Errored(gen_id, $err)); diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs index 480598c882d..430dd158371 100644 --- a/components/script/dom/xmlhttprequesteventtarget.rs +++ b/components/script/dom/xmlhttprequesteventtarget.rs @@ -43,7 +43,6 @@ impl XMLHttpRequestEventTargetDerived for EventTarget { } - impl<'a> XMLHttpRequestEventTargetMethods for JSRef<'a, XMLHttpRequestEventTarget> { event_handler!(loadstart,GetOnloadstart, SetOnloadstart) event_handler!(progress, GetOnprogress, SetOnprogress) From d761877ef692f46970315ee0008fe0f3254323eb Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 1 Dec 2014 14:13:50 -0500 Subject: [PATCH 5/7] Add inheritance-checking lint --- components/plugins/jstraceable.rs | 18 ++++-- components/plugins/lib.rs | 1 + components/plugins/lints.rs | 74 ++++++++++++++++++++++++- components/plugins/reflector.rs | 8 +-- components/plugins/utils.rs | 33 +++++++++++ components/script/dom/bindings/utils.rs | 5 +- components/script/dom/browsercontext.rs | 4 +- components/script/dom/errorevent.rs | 8 +-- components/script/dom/event.rs | 9 +++ 9 files changed, 139 insertions(+), 21 deletions(-) diff --git a/components/plugins/jstraceable.rs b/components/plugins/jstraceable.rs index a093ae9128a..fb06b6a649a 100644 --- a/components/plugins/jstraceable.rs +++ b/components/plugins/jstraceable.rs @@ -14,12 +14,20 @@ use syntax::parse::token::InternedString; pub fn expand_dom_struct(_: &mut ExtCtxt, _: Span, _: &MetaItem, item: P) -> P { let mut item2 = (*item).clone(); - item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("must_root")))); - item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("privatize")))); - item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("jstraceable")))); + { + let add_attr = |s| { + item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new(s)))); + }; + add_attr("must_root"); + add_attr("privatize"); + add_attr("jstraceable"); - // The following attribute is only for internal usage - item2.attrs.push(attr::mk_attr_outer(attr::mk_attr_id(), attr::mk_word_item(InternedString::new("_generate_reflector")))); + // The following attributes are only for internal usage + add_attr("_generate_reflector"); + // #[dom_struct] gets consumed, so this lets us keep around a residue + // Do NOT register a modifier/decorator on this attribute + add_attr("_dom_struct_marker"); + } P(item2) } diff --git a/components/plugins/lib.rs b/components/plugins/lib.rs index 77587b3cda9..a7d356f47ee 100644 --- a/components/plugins/lib.rs +++ b/components/plugins/lib.rs @@ -47,5 +47,6 @@ pub fn plugin_registrar(reg: &mut Registry) { reg.register_lint_pass(box lints::TransmutePass as LintPassObject); reg.register_lint_pass(box lints::UnrootedPass as LintPassObject); reg.register_lint_pass(box lints::PrivatizePass as LintPassObject); + reg.register_lint_pass(box lints::InheritancePass as LintPassObject); } diff --git a/components/plugins/lints.rs b/components/plugins/lints.rs index d5891cc9c5a..e83b634abe2 100644 --- a/components/plugins/lints.rs +++ b/components/plugins/lints.rs @@ -5,18 +5,22 @@ use syntax::{ast, ast_map, ast_util, codemap, visit}; use syntax::ast::Public; use syntax::attr::AttrMetaMethods; -use rustc::lint::{Context, LintPass, LintArray}; +use rustc::lint::{Context, LintPass, LintArray, Level}; use rustc::middle::ty::expr_ty; use rustc::middle::{ty, def}; use rustc::middle::typeck::astconv::AstConv; use rustc::util::ppaux::Repr; +use utils::match_lang_ty; + declare_lint!(TRANSMUTE_TYPE_LINT, Allow, "Warn and report types being transmuted") declare_lint!(UNROOTED_MUST_ROOT, Deny, "Warn and report usage of unrooted jsmanaged objects") declare_lint!(PRIVATIZE, Deny, "Allows to enforce private fields for struct definitions") +declare_lint!(INHERITANCE_INTEGRITY, Deny, + "Ensures that struct fields are properly laid out for inheritance to work") /// Lint for auditing transmutes /// @@ -41,6 +45,12 @@ pub struct UnrootedPass; /// This lint (disable with `-A privatize`/`#[allow(privatize)]`) ensures all types marked with `#[privatize]` have no private fields pub struct PrivatizePass; +/// Lint for ensuring proper layout of DOM structs +/// +/// A DOM struct must have one Reflector field or one field +/// which itself is a DOM struct (in which case it must be the first field). +pub struct InheritancePass; + impl LintPass for TransmutePass { fn get_lints(&self) -> LintArray { lint_array!(TRANSMUTE_TYPE_LINT) @@ -251,3 +261,65 @@ impl LintPass for PrivatizePass { } } } + +impl LintPass for InheritancePass { + fn get_lints(&self) -> LintArray { + lint_array!(INHERITANCE_INTEGRITY) + } + + fn check_struct_def(&mut self, cx: &Context, def: &ast::StructDef, _i: ast::Ident, _gen: &ast::Generics, id: ast::NodeId) { + // Lints are run post expansion, so it's fine to use + // #[_dom_struct_marker] here without also checking for #[dom_struct] + if ty::has_attr(cx.tcx, ast_util::local_def(id), "_dom_struct_marker") { + // Find the reflector, if any + let reflector_span = def.fields.iter() + .find(|f| match_lang_ty(cx, &*f.node.ty, "reflector")) + .map(|f| f.span); + // Find all #[dom_struct] fields + let dom_spans: Vec<_> = def.fields.iter().enumerate().filter_map(|(ctr, f)| { + if let ast::TyPath(_, _, ty_id) = f.node.ty.node { + if let Some(def::DefTy(def_id, _)) = cx.tcx.def_map.borrow().find_copy(&ty_id) { + if ty::has_attr(cx.tcx, def_id, "_dom_struct_marker") { + // If the field is not the first, it's probably + // being misused (a) + if ctr > 0 { + cx.span_lint(INHERITANCE_INTEGRITY, f.span, + "Bare DOM structs should only be used as the first field of a \ + DOM struct. Consider using JS instead."); + } + return Some(f.span) + } + } + } + None + }).collect(); + + // We should not have both a reflector and a dom struct field + if let Some(sp) = reflector_span { + if dom_spans.len() > 0 { + cx.span_lint(INHERITANCE_INTEGRITY, cx.tcx.map.expect_item(id).span, + "This DOM struct has both Reflector and bare DOM struct members"); + if cx.current_level(INHERITANCE_INTEGRITY) != Level::Allow { + let sess = cx.sess(); + sess.span_note(sp, "Reflector found here"); + for span in dom_spans.iter() { + sess.span_note(*span, "Bare DOM struct found here"); + } + } + } + // Nor should we have more than one dom struct field + } else if dom_spans.len() > 1 { + cx.span_lint(INHERITANCE_INTEGRITY, cx.tcx.map.expect_item(id).span, + "This DOM struct has multiple DOM struct members, only one is allowed"); + if cx.current_level(INHERITANCE_INTEGRITY) != Level::Allow { + for span in dom_spans.iter() { + cx.sess().span_note(*span, "Bare DOM struct found here"); + } + } + } else if dom_spans.len() == 0 { + cx.span_lint(INHERITANCE_INTEGRITY, cx.tcx.map.expect_item(id).span, + "This DOM struct has no reflector or parent DOM struct"); + } + } + } +} diff --git a/components/plugins/reflector.rs b/components/plugins/reflector.rs index 901846791c4..4b0681c4d39 100644 --- a/components/plugins/reflector.rs +++ b/components/plugins/reflector.rs @@ -11,9 +11,9 @@ use utils::match_ty_unwrap; pub fn expand_reflector(cx: &mut ExtCtxt, span: Span, _: &MetaItem, item: &Item, push: |P|) { - if let ast::ItemStruct(ref def, _) = item.node { let struct_name = item.ident; + // This path has to be hardcoded, unfortunately, since we can't resolve paths at expansion time match def.fields.iter().find(|f| match_ty_unwrap(&*f.node.ty, &["dom", "bindings", "utils", "Reflector"]).is_some()) { // If it has a field that is a Reflector, use that Some(f) => { @@ -28,10 +28,6 @@ pub fn expand_reflector(cx: &mut ExtCtxt, span: Span, _: &MetaItem, item: &Item, impl_item.map(|it| push(it)) }, // Or just call it on the first field (supertype). - // TODO: Write a lint to ensure that this first field is indeed a #[dom_struct], - // and the only such field in the struct definition (including reflectors) - // Unfortunately we can't do it here itself because a def_map (from middle) is not available - // at expansion time None => { let field_name = def.fields[0].node.ident(); let impl_item = quote_item!(cx, @@ -45,6 +41,6 @@ pub fn expand_reflector(cx: &mut ExtCtxt, span: Span, _: &MetaItem, item: &Item, } }; } else { - cx.span_bug(span, "#[dom_struct] seems to have been applied to a non-struct"); + cx.span_err(span, "#[dom_struct] seems to have been applied to a non-struct"); } } diff --git a/components/plugins/utils.rs b/components/plugins/utils.rs index 434a5e08582..ec3df8a99ad 100644 --- a/components/plugins/utils.rs +++ b/components/plugins/utils.rs @@ -2,10 +2,17 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +use rustc::lint::Context; +use rustc::middle::{ty, def}; + use syntax::ptr::P; +use syntax::ast; use syntax::ast::{TyPath, Path, AngleBracketedParameters, PathSegment, Ty}; +use syntax::attr::mark_used; /// Matches a type with a provided string, and returns its type parameters if successful +/// +/// Try not to use this for types defined in crates you own, use match_lang_ty instead (for lint passes) pub fn match_ty_unwrap<'a>(ty: &'a Ty, segments: &[&str]) -> Option<&'a [P]> { match ty.node { TyPath(Path {segments: ref seg, ..}, _, _) => { @@ -27,3 +34,29 @@ pub fn match_ty_unwrap<'a>(ty: &'a Ty, segments: &[&str]) -> Option<&'a [P]> _ => None } } + +/// Checks if a type has a #[servo_lang = "str"] attribute +pub fn match_lang_ty(cx: &Context, ty: &Ty, value: &str) -> bool { + let mut found = false; + if let TyPath(_, _, ty_id) = ty.node { + if let Some(def::DefTy(def_id, _)) = cx.tcx.def_map.borrow().find_copy(&ty_id) { + // Iterating through attributes is hard because of cross-crate defs + ty::each_attr(cx.tcx, def_id, |attr| { + if let ast::MetaNameValue(ref name, ref val) = attr.node.value.node { + if name.get() == "servo_lang" { + if let ast::LitStr(ref v, _) = val.node { + if v.get() == value { + mark_used(attr); + found = true; + // We're done with the loop + return false; + } + } + } + } + true + }); + }; + } + found +} \ No newline at end of file diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index 3482633ba67..9cf2c3eea47 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -346,9 +346,12 @@ pub fn reflect_dom_object } /// A struct to store a reference to the reflector of a DOM object. -#[allow(raw_pointer_deriving, unrooted_must_root)] +// Allowing unused_attribute because the lint sometimes doesn't run in order +#[allow(raw_pointer_deriving, unrooted_must_root, unused_attributes)] #[deriving(PartialEq)] #[must_root] +#[servo_lang = "reflector"] +// If you're renaming or moving this field, update the path in plugins::reflector as well pub struct Reflector { object: Cell<*mut JSObject>, } diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs index ed987f3a687..3ee2387b4f6 100644 --- a/components/script/dom/browsercontext.rs +++ b/components/script/dom/browsercontext.rs @@ -65,7 +65,9 @@ impl BrowserContext { } } -#[dom_struct] +#[must_root] +#[privatize] +#[jstraceable] pub struct SessionHistoryEntry { document: JS, children: Vec diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs index d4f048a8f47..8692420f7f1 100644 --- a/components/script/dom/errorevent.rs +++ b/components/script/dom/errorevent.rs @@ -12,7 +12,7 @@ use dom::bindings::js::{JSRef, Temporary, MutHeap}; use js::jsapi::JSContext; use dom::bindings::trace::JSTraceable; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable}; use servo_util::str::DOMString; @@ -127,9 +127,3 @@ impl<'a> ErrorEventMethods for JSRef<'a, ErrorEvent> { } } - -impl Reflectable for ErrorEvent { - fn reflector<'a>(&'a self) -> &'a Reflector { - self.event.reflector() - } -} diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 1ece583009f..a8455a94e6f 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -240,3 +240,12 @@ impl<'a> EventMethods for JSRef<'a, Event> { } } +pub trait EventHelpers { + fn set_trusted(self, trusted: bool); +} + +impl<'a> EventHelpers for JSRef<'a, Event> { + fn set_trusted(self, trusted: bool) { + self.trusted.set(trusted); + } +} From 21a888341d3e184b0835c4de73959b851d275571 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Wed, 10 Dec 2014 11:56:20 +0530 Subject: [PATCH 6/7] Ensure that Reflectors are the first field --- components/plugins/lints.rs | 15 +++++-- components/script/dom/domexception.rs | 4 +- components/script/dom/domimplementation.rs | 4 +- components/script/dom/domparser.rs | 4 +- components/script/dom/event.rs | 4 +- components/script/dom/eventtarget.rs | 4 +- components/script/dom/formdata.rs | 4 +- components/script/dom/htmlcollection.rs | 4 +- components/script/dom/htmltablerowelement.rs | 43 +++++++++++++++++++ .../script/dom/htmltablesectionelement.rs | 42 ++++++++++++++++++ components/script/dom/htmltextareaelement.rs | 17 ++++++++ components/script/dom/htmltitleelement.rs | 14 ++++++ components/script/dom/nodelist.rs | 4 +- components/script/dom/urlsearchparams.rs | 4 +- 14 files changed, 146 insertions(+), 21 deletions(-) diff --git a/components/plugins/lints.rs b/components/plugins/lints.rs index e83b634abe2..587eae0fa10 100644 --- a/components/plugins/lints.rs +++ b/components/plugins/lints.rs @@ -272,9 +272,18 @@ impl LintPass for InheritancePass { // #[_dom_struct_marker] here without also checking for #[dom_struct] if ty::has_attr(cx.tcx, ast_util::local_def(id), "_dom_struct_marker") { // Find the reflector, if any - let reflector_span = def.fields.iter() - .find(|f| match_lang_ty(cx, &*f.node.ty, "reflector")) - .map(|f| f.span); + let reflector_span = def.fields.iter().enumerate() + .find(|&(ctr, f)| { + if match_lang_ty(cx, &*f.node.ty, "reflector") { + if ctr > 0 { + cx.span_lint(INHERITANCE_INTEGRITY, f.span, + "The Reflector should be the first field of the DOM struct"); + } + return true; + } + false + }) + .map(|(_, f)| f.span); // Find all #[dom_struct] fields let dom_spans: Vec<_> = def.fields.iter().enumerate().filter_map(|(ctr, f)| { if let ast::TyPath(_, _, ty_id) = f.node.ty.node { diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 2d71a1b26e4..d3375fd8e05 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -62,15 +62,15 @@ impl DOMErrorName { #[dom_struct] pub struct DOMException { + reflector_: Reflector, code: DOMErrorName, - reflector_: Reflector } impl DOMException { fn new_inherited(code: DOMErrorName) -> DOMException { DOMException { + reflector_: Reflector::new(), code: code, - reflector_: Reflector::new() } } diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs index 2f593e5fe7b..0d227f81733 100644 --- a/components/script/dom/domimplementation.rs +++ b/components/script/dom/domimplementation.rs @@ -27,15 +27,15 @@ use servo_util::str::DOMString; #[dom_struct] pub struct DOMImplementation { - document: JS, reflector_: Reflector, + document: JS, } impl DOMImplementation { fn new_inherited(document: JSRef) -> DOMImplementation { DOMImplementation { - document: JS::from_rooted(document), reflector_: Reflector::new(), + document: JS::from_rooted(document), } } diff --git a/components/script/dom/domparser.rs b/components/script/dom/domparser.rs index 06c3cb36813..a77a21d83d5 100644 --- a/components/script/dom/domparser.rs +++ b/components/script/dom/domparser.rs @@ -19,15 +19,15 @@ use servo_util::str::DOMString; #[dom_struct] pub struct DOMParser { + reflector_: Reflector, window: JS, //XXXjdm Document instead? - reflector_: Reflector } impl DOMParser { fn new_inherited(window: JSRef) -> DOMParser { DOMParser { + reflector_: Reflector::new(), window: JS::from_rooted(window), - reflector_: Reflector::new() } } diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index a8455a94e6f..ea885e02a9a 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -51,8 +51,8 @@ pub enum EventCancelable { #[dom_struct] pub struct Event { - type_id: EventTypeId, reflector_: Reflector, + type_id: EventTypeId, current_target: MutNullableJS, target: MutNullableJS, type_: DOMRefCell, @@ -71,8 +71,8 @@ pub struct Event { impl Event { pub fn new_inherited(type_id: EventTypeId) -> Event { Event { - type_id: type_id, reflector_: Reflector::new(), + type_id: type_id, current_target: Default::default(), target: Default::default(), phase: Cell::new(EventPhase::None), diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 227212077d7..9decaf829ab 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -72,16 +72,16 @@ pub struct EventListenerEntry { #[dom_struct] pub struct EventTarget { - type_id: EventTargetTypeId, reflector_: Reflector, + type_id: EventTargetTypeId, handlers: DOMRefCell, FnvHasher>>, } impl EventTarget { pub fn new_inherited(type_id: EventTargetTypeId) -> EventTarget { EventTarget { - type_id: type_id, reflector_: Reflector::new(), + type_id: type_id, handlers: DOMRefCell::new(HashMap::with_hasher(FnvHasher)), } } diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs index 8de4263a61e..461207f11a8 100644 --- a/components/script/dom/formdata.rs +++ b/components/script/dom/formdata.rs @@ -29,8 +29,8 @@ pub enum FormDatum { #[dom_struct] pub struct FormData { - data: DOMRefCell>>, reflector_: Reflector, + data: DOMRefCell>>, global: GlobalField, form: Option> } @@ -38,8 +38,8 @@ pub struct FormData { impl FormData { fn new_inherited(form: Option>, global: &GlobalRef) -> FormData { FormData { - data: DOMRefCell::new(HashMap::new()), reflector_: Reflector::new(), + data: DOMRefCell::new(HashMap::new()), global: GlobalField::from_rooted(global), form: form.map(|f| JS::from_rooted(f)), } diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs index 7e08fcb6e2d..af885c0b561 100644 --- a/components/script/dom/htmlcollection.rs +++ b/components/script/dom/htmlcollection.rs @@ -32,15 +32,15 @@ pub enum CollectionTypeId { #[dom_struct] pub struct HTMLCollection { - collection: CollectionTypeId, reflector_: Reflector, + collection: CollectionTypeId, } impl HTMLCollection { fn new_inherited(collection: CollectionTypeId) -> HTMLCollection { HTMLCollection { - collection: collection, reflector_: Reflector::new(), + collection: collection, } } diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs index d8e9aad1323..287b994a81b 100644 --- a/components/script/dom/htmltablerowelement.rs +++ b/components/script/dom/htmltablerowelement.rs @@ -50,3 +50,46 @@ impl HTMLTableRowElement { } } + +pub trait HTMLTableRowElementHelpers { + fn get_background_color(&self) -> Option; +} + +impl HTMLTableRowElementHelpers for HTMLTableRowElement { + fn get_background_color(&self) -> Option { + self.background_color.get() + } +} + +impl<'a> VirtualMethods for JSRef<'a, HTMLTableRowElement> { + fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { + let htmlelement: &JSRef = HTMLElementCast::from_borrowed_ref(self); + Some(htmlelement as &VirtualMethods) + } + + fn after_set_attr(&self, attr: JSRef) { + match self.super_type() { + Some(ref s) => s.after_set_attr(attr), + _ => () + } + + match attr.local_name() { + &atom!("bgcolor") => { + self.background_color.set(str::parse_legacy_color(attr.value().as_slice()).ok()) + } + _ => {} + } + } + + fn before_remove_attr(&self, attr: JSRef) { + match self.super_type() { + Some(ref s) => s.before_remove_attr(attr), + _ => () + } + + match attr.local_name() { + &atom!("bgcolor") => self.background_color.set(None), + _ => {} + } + } +} diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs index 40e7f91ac0a..5894d20bab5 100644 --- a/components/script/dom/htmltablesectionelement.rs +++ b/components/script/dom/htmltablesectionelement.rs @@ -49,3 +49,45 @@ impl HTMLTableSectionElement { } } +pub trait HTMLTableSectionElementHelpers { + fn get_background_color(&self) -> Option; +} + +impl HTMLTableSectionElementHelpers for HTMLTableSectionElement { + fn get_background_color(&self) -> Option { + self.background_color.get() + } +} + +impl<'a> VirtualMethods for JSRef<'a, HTMLTableSectionElement> { + fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { + let htmlelement: &JSRef = HTMLElementCast::from_borrowed_ref(self); + Some(htmlelement as &VirtualMethods) + } + + fn after_set_attr(&self, attr: JSRef) { + match self.super_type() { + Some(ref s) => s.after_set_attr(attr), + _ => () + } + + match attr.local_name() { + &atom!("bgcolor") => { + self.background_color.set(str::parse_legacy_color(attr.value().as_slice()).ok()) + } + _ => {} + } + } + + fn before_remove_attr(&self, attr: JSRef) { + match self.super_type() { + Some(ref s) => s.before_remove_attr(attr), + _ => () + } + + match attr.local_name() { + &atom!("bgcolor") => self.background_color.set(None), + _ => {} + } + } +} diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 5637cf74318..ea0d1156bb4 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -329,3 +329,20 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLTextAreaElement> { } } +impl<'a> FormControl<'a> for JSRef<'a, HTMLTextAreaElement> { + fn to_element(self) -> JSRef<'a, Element> { + ElementCast::from_ref(self) + } + + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-mutable + fn mutable(self) -> bool { + // https://html.spec.whatwg.org/multipage/forms.html#the-textarea-element:concept-fe-mutable + !(self.Disabled() || self.ReadOnly()) + } + + fn reset(self) { + // https://html.spec.whatwg.org/multipage/forms.html#the-textarea-element:concept-form-reset-control + self.SetValue(self.DefaultValue()); + self.value_changed.set(false); + } +} diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index fb3a4a5eace..c7f42c85eb9 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -64,3 +64,17 @@ impl<'a> HTMLTitleElementMethods for JSRef<'a, HTMLTitleElement> { } } +impl<'a> VirtualMethods for JSRef<'a, HTMLTitleElement> { + fn super_type<'a>(&'a self) -> Option<&'a VirtualMethods> { + let htmlelement: &JSRef = HTMLElementCast::from_borrowed_ref(self); + Some(htmlelement as &VirtualMethods) + } + + fn bind_to_tree(&self, is_in_doc: bool) { + let node: JSRef = NodeCast::from_ref(*self); + if is_in_doc { + let document = node.owner_doc().root(); + document.send_title_to_compositor() + } + } +} diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs index 61087cdcb32..5714764eeaf 100644 --- a/components/script/dom/nodelist.rs +++ b/components/script/dom/nodelist.rs @@ -19,15 +19,15 @@ pub enum NodeListType { #[dom_struct] pub struct NodeList { - list_type: NodeListType, reflector_: Reflector, + list_type: NodeListType, } impl NodeList { fn new_inherited(list_type: NodeListType) -> NodeList { NodeList { - list_type: list_type, reflector_: Reflector::new(), + list_type: list_type, } } diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index a45230726c6..d472d294d5f 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -24,15 +24,15 @@ use std::ascii::OwnedAsciiExt; #[dom_struct] pub struct URLSearchParams { - data: DOMRefCell>>, reflector_: Reflector, + data: DOMRefCell>>, } impl URLSearchParams { fn new_inherited() -> URLSearchParams { URLSearchParams { - data: DOMRefCell::new(HashMap::new()), reflector_: Reflector::new(), + data: DOMRefCell::new(HashMap::new()), } } From 50c246bdc525afd26ff1864001eaf243db834192 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Thu, 18 Dec 2014 15:18:11 +0530 Subject: [PATCH 7/7] Fix warnings post-upgrade --- components/plugins/lints.rs | 6 +++--- components/plugins/utils.rs | 4 ++-- components/script/dom/browsercontext.rs | 2 ++ components/script/dom/cssstyledeclaration.rs | 8 +------- components/script/dom/node.rs | 1 - 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/components/plugins/lints.rs b/components/plugins/lints.rs index 587eae0fa10..639520974e0 100644 --- a/components/plugins/lints.rs +++ b/components/plugins/lints.rs @@ -277,7 +277,7 @@ impl LintPass for InheritancePass { if match_lang_ty(cx, &*f.node.ty, "reflector") { if ctr > 0 { cx.span_lint(INHERITANCE_INTEGRITY, f.span, - "The Reflector should be the first field of the DOM struct"); + "The Reflector should be the first field of the DOM struct"); } return true; } @@ -287,7 +287,7 @@ impl LintPass for InheritancePass { // Find all #[dom_struct] fields let dom_spans: Vec<_> = def.fields.iter().enumerate().filter_map(|(ctr, f)| { if let ast::TyPath(_, _, ty_id) = f.node.ty.node { - if let Some(def::DefTy(def_id, _)) = cx.tcx.def_map.borrow().find_copy(&ty_id) { + if let Some(def::DefTy(def_id, _)) = cx.tcx.def_map.borrow().get(&ty_id).cloned() { if ty::has_attr(cx.tcx, def_id, "_dom_struct_marker") { // If the field is not the first, it's probably // being misused (a) @@ -327,7 +327,7 @@ impl LintPass for InheritancePass { } } else if dom_spans.len() == 0 { cx.span_lint(INHERITANCE_INTEGRITY, cx.tcx.map.expect_item(id).span, - "This DOM struct has no reflector or parent DOM struct"); + "This DOM struct has no reflector or parent DOM struct"); } } } diff --git a/components/plugins/utils.rs b/components/plugins/utils.rs index ec3df8a99ad..34d74a4001f 100644 --- a/components/plugins/utils.rs +++ b/components/plugins/utils.rs @@ -39,7 +39,7 @@ pub fn match_ty_unwrap<'a>(ty: &'a Ty, segments: &[&str]) -> Option<&'a [P]> pub fn match_lang_ty(cx: &Context, ty: &Ty, value: &str) -> bool { let mut found = false; if let TyPath(_, _, ty_id) = ty.node { - if let Some(def::DefTy(def_id, _)) = cx.tcx.def_map.borrow().find_copy(&ty_id) { + if let Some(def::DefTy(def_id, _)) = cx.tcx.def_map.borrow().get(&ty_id).cloned() { // Iterating through attributes is hard because of cross-crate defs ty::each_attr(cx.tcx, def_id, |attr| { if let ast::MetaNameValue(ref name, ref val) = attr.node.value.node { @@ -59,4 +59,4 @@ pub fn match_lang_ty(cx: &Context, ty: &Ty, value: &str) -> bool { }; } found -} \ No newline at end of file +} diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs index 3ee2387b4f6..0bd96b75ec8 100644 --- a/components/script/dom/browsercontext.rs +++ b/components/script/dom/browsercontext.rs @@ -65,6 +65,8 @@ impl BrowserContext { } } +// This isn't a DOM struct, just a convenience struct +// without a reflector, so we don't mark this as #[dom_struct] #[must_root] #[privatize] #[jstraceable] diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs index 7d4feeb40ab..8eab5fcb06e 100644 --- a/components/script/dom/cssstyledeclaration.rs +++ b/components/script/dom/cssstyledeclaration.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast}; use dom::bindings::error::ErrorResult; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, OptionalRootedRootable, Temporary}; -use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; +use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::DocumentHelpers; use dom::element::{Element, ElementHelpers, StylePriority}; use dom::htmlelement::HTMLElement; @@ -412,9 +412,3 @@ impl<'a> CSSStyleDeclarationMethods for JSRef<'a, CSSStyleDeclaration> { [ZIndex, SetZIndex, "z-index"] ) } - -impl Reflectable for CSSStyleDeclaration { - fn reflector<'a>(&'a self) -> &'a Reflector { - &self.reflector_ - } -} diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 0b66cc678a5..a6564d801ee 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -27,7 +27,6 @@ use dom::bindings::js::{JS, JSRef, RootedReference, Temporary, Root}; use dom::bindings::js::{OptionalSettable, TemporaryPushable, OptionalRootedRootable}; use dom::bindings::js::{ResultRootable, OptionalRootable, MutNullableJS}; use dom::bindings::trace::JSTraceable; -use dom::bindings::utils; use dom::bindings::utils::{Reflectable, reflect_dom_object}; use dom::characterdata::CharacterData; use dom::comment::Comment;