From b6be5ea38657cc1cede0296ed1e188a4e7fddd7e Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Tue, 21 Feb 2017 11:27:05 +0100 Subject: [PATCH] Make #![dom_struct] a proc_macro attribute --- Cargo.lock | 8 ++++++ components/dom_struct/Cargo.toml | 13 +++++++++ components/dom_struct/lib.rs | 28 +++++++++++++++++++ components/script/Cargo.toml | 1 + components/script/docs/JS-Servos-only-GC.md | 2 ++ components/script/dom/attr.rs | 1 + components/script/dom/beforeunloadevent.rs | 1 + components/script/dom/bindings/iterable.rs | 1 + components/script/dom/blob.rs | 1 + components/script/dom/bluetooth.rs | 1 + .../script/dom/bluetoothadvertisingevent.rs | 1 + .../dom/bluetoothcharacteristicproperties.rs | 1 + components/script/dom/bluetoothdevice.rs | 1 + .../script/dom/bluetoothpermissionresult.rs | 1 + .../dom/bluetoothremotegattcharacteristic.rs | 1 + .../dom/bluetoothremotegattdescriptor.rs | 1 + .../script/dom/bluetoothremotegattserver.rs | 1 + .../script/dom/bluetoothremotegattservice.rs | 1 + components/script/dom/bluetoothuuid.rs | 1 + components/script/dom/browsingcontext.rs | 1 + components/script/dom/canvasgradient.rs | 1 + components/script/dom/canvaspattern.rs | 1 + .../script/dom/canvasrenderingcontext2d.rs | 1 + components/script/dom/characterdata.rs | 1 + components/script/dom/client.rs | 1 + components/script/dom/closeevent.rs | 1 + components/script/dom/comment.rs | 1 + components/script/dom/crypto.rs | 1 + components/script/dom/css.rs | 1 + components/script/dom/cssconditionrule.rs | 1 + components/script/dom/cssfontfacerule.rs | 1 + components/script/dom/cssgroupingrule.rs | 1 + components/script/dom/cssimportrule.rs | 1 + components/script/dom/csskeyframerule.rs | 1 + components/script/dom/csskeyframesrule.rs | 1 + components/script/dom/cssmediarule.rs | 1 + components/script/dom/cssnamespacerule.rs | 1 + components/script/dom/cssrule.rs | 1 + components/script/dom/cssrulelist.rs | 1 + components/script/dom/cssstyledeclaration.rs | 1 + components/script/dom/cssstylerule.rs | 1 + components/script/dom/cssstylesheet.rs | 1 + components/script/dom/csssupportsrule.rs | 1 + components/script/dom/cssviewportrule.rs | 1 + components/script/dom/customevent.rs | 1 + .../script/dom/dedicatedworkerglobalscope.rs | 1 + .../script/dom/dissimilaroriginlocation.rs | 1 + .../script/dom/dissimilaroriginwindow.rs | 1 + components/script/dom/document.rs | 1 + components/script/dom/documentfragment.rs | 1 + components/script/dom/documenttype.rs | 1 + components/script/dom/domexception.rs | 1 + components/script/dom/domimplementation.rs | 1 + components/script/dom/dommatrix.rs | 1 + components/script/dom/dommatrixreadonly.rs | 1 + components/script/dom/domparser.rs | 1 + components/script/dom/dompoint.rs | 1 + components/script/dom/dompointreadonly.rs | 1 + components/script/dom/domquad.rs | 1 + components/script/dom/domrect.rs | 1 + components/script/dom/domrectlist.rs | 1 + components/script/dom/domrectreadonly.rs | 1 + components/script/dom/domstringmap.rs | 1 + components/script/dom/domtokenlist.rs | 1 + components/script/dom/element.rs | 1 + components/script/dom/errorevent.rs | 1 + components/script/dom/event.rs | 1 + components/script/dom/eventsource.rs | 1 + components/script/dom/eventtarget.rs | 1 + components/script/dom/extendableevent.rs | 1 + .../script/dom/extendablemessageevent.rs | 1 + components/script/dom/file.rs | 1 + components/script/dom/filelist.rs | 1 + components/script/dom/filereader.rs | 1 + components/script/dom/filereadersync.rs | 1 + components/script/dom/focusevent.rs | 1 + components/script/dom/forcetouchevent.rs | 1 + components/script/dom/formdata.rs | 1 + components/script/dom/globalscope.rs | 1 + components/script/dom/hashchangeevent.rs | 1 + components/script/dom/headers.rs | 1 + components/script/dom/history.rs | 1 + components/script/dom/htmlanchorelement.rs | 1 + components/script/dom/htmlappletelement.rs | 1 + components/script/dom/htmlareaelement.rs | 1 + components/script/dom/htmlaudioelement.rs | 1 + components/script/dom/htmlbaseelement.rs | 1 + components/script/dom/htmlbodyelement.rs | 1 + components/script/dom/htmlbrelement.rs | 1 + components/script/dom/htmlbuttonelement.rs | 1 + components/script/dom/htmlcanvaselement.rs | 1 + components/script/dom/htmlcollection.rs | 1 + components/script/dom/htmldataelement.rs | 1 + components/script/dom/htmldatalistelement.rs | 1 + components/script/dom/htmldetailselement.rs | 1 + components/script/dom/htmldialogelement.rs | 1 + components/script/dom/htmldirectoryelement.rs | 1 + components/script/dom/htmldivelement.rs | 1 + components/script/dom/htmldlistelement.rs | 1 + components/script/dom/htmlelement.rs | 1 + components/script/dom/htmlembedelement.rs | 1 + components/script/dom/htmlfieldsetelement.rs | 1 + components/script/dom/htmlfontelement.rs | 1 + .../script/dom/htmlformcontrolscollection.rs | 1 + components/script/dom/htmlformelement.rs | 1 + components/script/dom/htmlframeelement.rs | 1 + components/script/dom/htmlframesetelement.rs | 1 + components/script/dom/htmlheadelement.rs | 1 + components/script/dom/htmlheadingelement.rs | 1 + components/script/dom/htmlhrelement.rs | 1 + components/script/dom/htmlhtmlelement.rs | 1 + components/script/dom/htmliframeelement.rs | 1 + components/script/dom/htmlimageelement.rs | 1 + components/script/dom/htmlinputelement.rs | 1 + components/script/dom/htmllabelelement.rs | 1 + components/script/dom/htmllegendelement.rs | 1 + components/script/dom/htmllielement.rs | 1 + components/script/dom/htmllinkelement.rs | 1 + components/script/dom/htmlmapelement.rs | 1 + components/script/dom/htmlmediaelement.rs | 1 + components/script/dom/htmlmetaelement.rs | 1 + components/script/dom/htmlmeterelement.rs | 1 + components/script/dom/htmlmodelement.rs | 1 + components/script/dom/htmlobjectelement.rs | 1 + components/script/dom/htmlolistelement.rs | 1 + components/script/dom/htmloptgroupelement.rs | 1 + components/script/dom/htmloptionelement.rs | 1 + .../script/dom/htmloptionscollection.rs | 1 + components/script/dom/htmloutputelement.rs | 1 + components/script/dom/htmlparagraphelement.rs | 1 + components/script/dom/htmlparamelement.rs | 1 + components/script/dom/htmlpreelement.rs | 1 + components/script/dom/htmlprogresselement.rs | 1 + components/script/dom/htmlquoteelement.rs | 1 + components/script/dom/htmlscriptelement.rs | 1 + components/script/dom/htmlselectelement.rs | 1 + components/script/dom/htmlsourceelement.rs | 1 + components/script/dom/htmlspanelement.rs | 1 + components/script/dom/htmlstyleelement.rs | 1 + .../script/dom/htmltablecaptionelement.rs | 1 + components/script/dom/htmltablecellelement.rs | 1 + components/script/dom/htmltablecolelement.rs | 1 + .../script/dom/htmltabledatacellelement.rs | 1 + components/script/dom/htmltableelement.rs | 1 + .../script/dom/htmltableheadercellelement.rs | 1 + components/script/dom/htmltablerowelement.rs | 1 + .../script/dom/htmltablesectionelement.rs | 1 + components/script/dom/htmltemplateelement.rs | 1 + components/script/dom/htmltextareaelement.rs | 1 + components/script/dom/htmltimeelement.rs | 1 + components/script/dom/htmltitleelement.rs | 1 + components/script/dom/htmltrackelement.rs | 1 + components/script/dom/htmlulistelement.rs | 1 + components/script/dom/htmlunknownelement.rs | 1 + components/script/dom/htmlvideoelement.rs | 1 + components/script/dom/imagedata.rs | 1 + components/script/dom/keyboardevent.rs | 1 + components/script/dom/location.rs | 1 + components/script/dom/mediaerror.rs | 1 + components/script/dom/medialist.rs | 1 + components/script/dom/mediaquerylist.rs | 1 + components/script/dom/mediaquerylistevent.rs | 1 + components/script/dom/messageevent.rs | 1 + components/script/dom/mimetype.rs | 1 + components/script/dom/mimetypearray.rs | 1 + components/script/dom/mouseevent.rs | 1 + components/script/dom/namednodemap.rs | 1 + components/script/dom/navigator.rs | 1 + components/script/dom/node.rs | 1 + components/script/dom/nodeiterator.rs | 1 + components/script/dom/nodelist.rs | 1 + components/script/dom/pagetransitionevent.rs | 1 + components/script/dom/performance.rs | 1 + components/script/dom/performancetiming.rs | 1 + components/script/dom/permissions.rs | 1 + components/script/dom/permissionstatus.rs | 1 + components/script/dom/plugin.rs | 1 + components/script/dom/pluginarray.rs | 1 + components/script/dom/popstateevent.rs | 1 + .../script/dom/processinginstruction.rs | 1 + components/script/dom/progressevent.rs | 1 + components/script/dom/promise.rs | 1 + components/script/dom/promisenativehandler.rs | 1 + components/script/dom/radionodelist.rs | 1 + components/script/dom/range.rs | 1 + components/script/dom/request.rs | 1 + components/script/dom/response.rs | 1 + components/script/dom/screen.rs | 1 + components/script/dom/serviceworker.rs | 1 + .../script/dom/serviceworkercontainer.rs | 1 + .../script/dom/serviceworkerglobalscope.rs | 1 + .../script/dom/serviceworkerregistration.rs | 1 + components/script/dom/servoparser/mod.rs | 1 + components/script/dom/storage.rs | 1 + components/script/dom/storageevent.rs | 1 + components/script/dom/stylesheet.rs | 1 + components/script/dom/stylesheetlist.rs | 1 + components/script/dom/svgelement.rs | 1 + components/script/dom/svggraphicselement.rs | 1 + components/script/dom/svgsvgelement.rs | 1 + components/script/dom/testbinding.rs | 1 + components/script/dom/testbindingiterable.rs | 1 + .../script/dom/testbindingpairiterable.rs | 1 + components/script/dom/testbindingproxy.rs | 2 +- components/script/dom/testrunner.rs | 1 + components/script/dom/text.rs | 1 + components/script/dom/textdecoder.rs | 1 + components/script/dom/textencoder.rs | 1 + components/script/dom/touch.rs | 1 + components/script/dom/touchevent.rs | 1 + components/script/dom/touchlist.rs | 1 + components/script/dom/transitionevent.rs | 1 + components/script/dom/treewalker.rs | 1 + components/script/dom/uievent.rs | 1 + components/script/dom/url.rs | 1 + components/script/dom/urlsearchparams.rs | 1 + components/script/dom/validitystate.rs | 1 + components/script/dom/vr.rs | 1 + components/script/dom/vrdisplay.rs | 1 + .../script/dom/vrdisplaycapabilities.rs | 1 + components/script/dom/vrdisplayevent.rs | 1 + components/script/dom/vreyeparameters.rs | 1 + components/script/dom/vrfieldofview.rs | 1 + components/script/dom/vrframedata.rs | 1 + components/script/dom/vrpose.rs | 1 + components/script/dom/vrstageparameters.rs | 1 + components/script/dom/webglactiveinfo.rs | 1 + components/script/dom/webglbuffer.rs | 1 + components/script/dom/webglcontextevent.rs | 1 + components/script/dom/webglframebuffer.rs | 1 + components/script/dom/webglobject.rs | 1 + components/script/dom/webglprogram.rs | 1 + components/script/dom/webglrenderbuffer.rs | 1 + .../script/dom/webglrenderingcontext.rs | 1 + components/script/dom/webglshader.rs | 1 + .../script/dom/webglshaderprecisionformat.rs | 1 + components/script/dom/webgltexture.rs | 1 + components/script/dom/webgluniformlocation.rs | 1 + components/script/dom/websocket.rs | 1 + components/script/dom/window.rs | 1 + components/script/dom/worker.rs | 1 + components/script/dom/workerglobalscope.rs | 1 + components/script/dom/workerlocation.rs | 1 + components/script/dom/workernavigator.rs | 1 + components/script/dom/xmldocument.rs | 1 + components/script/dom/xmlhttprequest.rs | 1 + .../script/dom/xmlhttprequesteventtarget.rs | 1 + components/script/dom/xmlhttprequestupload.rs | 1 + components/script/lib.rs | 2 ++ components/script_plugins/jstraceable.rs | 24 ---------------- components/script_plugins/lib.rs | 11 +------- 251 files changed, 298 insertions(+), 35 deletions(-) create mode 100644 components/dom_struct/Cargo.toml create mode 100644 components/dom_struct/lib.rs delete mode 100644 components/script_plugins/jstraceable.rs diff --git a/Cargo.lock b/Cargo.lock index 083c1b99f268e..d2a0703eba9f3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -629,6 +629,13 @@ dependencies = [ "time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "dom_struct" +version = "0.0.1" +dependencies = [ + "quote 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "domobject_derive" version = "0.0.1" @@ -2203,6 +2210,7 @@ dependencies = [ "cssparser 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "deny_public_fields 0.0.1", "devtools_traits 0.0.1", + "dom_struct 0.0.1", "domobject_derive 0.0.1", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/components/dom_struct/Cargo.toml b/components/dom_struct/Cargo.toml new file mode 100644 index 0000000000000..e63689de003f6 --- /dev/null +++ b/components/dom_struct/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "dom_struct" +version = "0.0.1" +authors = ["The Servo Project Developers"] +license = "MPL-2.0" +publish = false + +[lib] +path = "lib.rs" +proc-macro = true + +[dependencies] +quote = "0.3" diff --git a/components/dom_struct/lib.rs b/components/dom_struct/lib.rs new file mode 100644 index 0000000000000..f74427789db13 --- /dev/null +++ b/components/dom_struct/lib.rs @@ -0,0 +1,28 @@ +/* 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/. */ + +#![feature(proc_macro)] + +extern crate proc_macro; +#[macro_use] extern crate quote; + +use proc_macro::TokenStream; + +#[proc_macro_attribute] +pub fn dom_struct(args: TokenStream, input: TokenStream) -> TokenStream { + if !args.to_string().is_empty() { + panic!("#[dom_struct] takes no arguments"); + } + expand_string(&input.to_string()).parse().unwrap() +} + +fn expand_string(input: &str) -> String { + let mut tokens = quote! { + #[derive(DenyPublicFields, DomObject, HeapSizeOf, JSTraceable)] + #[must_root] + #[repr(C)] + }; + tokens.append(input); + tokens.to_string() +} diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index eb737dfb2b6a5..3e2cdcdca7d67 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -37,6 +37,7 @@ cookie = {version = "0.2.5", features = ["serialize-rustc"]} cssparser = {version = "0.10", features = ["heapsize", "serde"]} deny_public_fields = {path = "../deny_public_fields"} devtools_traits = {path = "../devtools_traits"} +dom_struct = {path = "../dom_struct"} domobject_derive = {path = "../domobject_derive"} encoding = "0.2" euclid = "0.11" diff --git a/components/script/docs/JS-Servos-only-GC.md b/components/script/docs/JS-Servos-only-GC.md index e2ca71dad8b85..e5549a61063d1 100644 --- a/components/script/docs/JS-Servos-only-GC.md +++ b/components/script/docs/JS-Servos-only-GC.md @@ -138,6 +138,8 @@ Let's look at [Servo's implementation][document-rs] of the DOM's [document-mdn]: https://developer.mozilla.org/en-US/docs/Web/API/document ```rust +use dom_struct::dom_struct; + #[dom_struct] pub struct Document { node: Node, diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index 29c3279ad08aa..55f2adcfdb63f 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -12,6 +12,7 @@ use dom::bindings::str::DOMString; use dom::element::{AttributeMutation, Element}; use dom::virtualmethods::vtable_for; use dom::window::Window; +use dom_struct::dom_struct; use html5ever_atoms::{Prefix, LocalName, Namespace}; use servo_atoms::Atom; use std::borrow::ToOwned; diff --git a/components/script/dom/beforeunloadevent.rs b/components/script/dom/beforeunloadevent.rs index 3787bb5b62d53..f0b152e0fdda3 100644 --- a/components/script/dom/beforeunloadevent.rs +++ b/components/script/dom/beforeunloadevent.rs @@ -14,6 +14,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; // https://html.spec.whatwg.org/multipage/#beforeunloadevent diff --git a/components/script/dom/bindings/iterable.rs b/components/script/dom/bindings/iterable.rs index f10bd320b855f..845ecbaa8cd47 100644 --- a/components/script/dom/bindings/iterable.rs +++ b/components/script/dom/bindings/iterable.rs @@ -14,6 +14,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::bindings::trace::JSTraceable; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::conversions::ToJSValConvertible; use js::jsapi::{HandleValue, Heap, JSContext, JSObject, MutableHandleObject}; use js::jsval::UndefinedValue; diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 06ec986386c5f..e4e623d799d8f 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -11,6 +11,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use encoding::all::UTF_8; use encoding::types::{EncoderTrap, Encoding}; use ipc_channel::ipc; diff --git a/components/script/dom/bluetooth.rs b/components/script/dom/bluetooth.rs index 18ac71ad843c2..3c3b88a27ac92 100644 --- a/components/script/dom/bluetooth.rs +++ b/components/script/dom/bluetooth.rs @@ -30,6 +30,7 @@ use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::permissions::{get_descriptor_permission_state, PermissionAlgorithm}; use dom::promise::Promise; +use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcSender}; use ipc_channel::router::ROUTER; use js::conversions::ConversionResult; diff --git a/components/script/dom/bluetoothadvertisingevent.rs b/components/script/dom/bluetoothadvertisingevent.rs index cc65aa4cd9624..604a1c820259e 100644 --- a/components/script/dom/bluetoothadvertisingevent.rs +++ b/components/script/dom/bluetoothadvertisingevent.rs @@ -14,6 +14,7 @@ use dom::bluetoothdevice::BluetoothDevice; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::globalscope::GlobalScope; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; // https://webbluetoothcg.github.io/web-bluetooth/#bluetoothadvertisingevent diff --git a/components/script/dom/bluetoothcharacteristicproperties.rs b/components/script/dom/bluetoothcharacteristicproperties.rs index ccb5a37a6a8f9..a477c130a2de8 100644 --- a/components/script/dom/bluetoothcharacteristicproperties.rs +++ b/components/script/dom/bluetoothcharacteristicproperties.rs @@ -8,6 +8,7 @@ use dom::bindings::codegen::Bindings::BluetoothCharacteristicPropertiesBinding:: use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; // https://webbluetoothcg.github.io/web-bluetooth/#characteristicproperties #[dom_struct] diff --git a/components/script/dom/bluetoothdevice.rs b/components/script/dom/bluetoothdevice.rs index d33aab9be9741..ff11d8130b38a 100644 --- a/components/script/dom/bluetoothdevice.rs +++ b/components/script/dom/bluetoothdevice.rs @@ -24,6 +24,7 @@ use dom::bluetoothremotegattservice::BluetoothRemoteGATTService; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::promise::Promise; +use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcSender}; use js::jsapi::JSContext; use std::cell::Cell; diff --git a/components/script/dom/bluetoothpermissionresult.rs b/components/script/dom/bluetoothpermissionresult.rs index 4f228e6c75c30..da5de4bf5b191 100644 --- a/components/script/dom/bluetoothpermissionresult.rs +++ b/components/script/dom/bluetoothpermissionresult.rs @@ -18,6 +18,7 @@ use dom::bluetoothdevice::BluetoothDevice; use dom::globalscope::GlobalScope; use dom::permissionstatus::PermissionStatus; use dom::promise::Promise; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use js::jsapi::JSContext; use std::rc::Rc; diff --git a/components/script/dom/bluetoothremotegattcharacteristic.rs b/components/script/dom/bluetoothremotegattcharacteristic.rs index 81210e4b1701a..d6a39c154e396 100644 --- a/components/script/dom/bluetoothremotegattcharacteristic.rs +++ b/components/script/dom/bluetoothremotegattcharacteristic.rs @@ -25,6 +25,7 @@ use dom::bluetoothuuid::{BluetoothDescriptorUUID, BluetoothUUID}; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::promise::Promise; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use js::jsapi::JSContext; use std::rc::Rc; diff --git a/components/script/dom/bluetoothremotegattdescriptor.rs b/components/script/dom/bluetoothremotegattdescriptor.rs index c0ddd6dabe553..c9e24c499bee8 100644 --- a/components/script/dom/bluetoothremotegattdescriptor.rs +++ b/components/script/dom/bluetoothremotegattdescriptor.rs @@ -19,6 +19,7 @@ use dom::bluetooth::{AsyncBluetoothListener, response_async}; use dom::bluetoothremotegattcharacteristic::{BluetoothRemoteGATTCharacteristic, MAXIMUM_ATTRIBUTE_LENGTH}; use dom::globalscope::GlobalScope; use dom::promise::Promise; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use js::jsapi::JSContext; use std::rc::Rc; diff --git a/components/script/dom/bluetoothremotegattserver.rs b/components/script/dom/bluetoothremotegattserver.rs index cd90b8549072d..4a67e03e9847d 100644 --- a/components/script/dom/bluetoothremotegattserver.rs +++ b/components/script/dom/bluetoothremotegattserver.rs @@ -15,6 +15,7 @@ use dom::bluetoothdevice::BluetoothDevice; use dom::bluetoothuuid::{BluetoothServiceUUID, BluetoothUUID}; use dom::globalscope::GlobalScope; use dom::promise::Promise; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use js::jsapi::JSContext; use std::cell::Cell; diff --git a/components/script/dom/bluetoothremotegattservice.rs b/components/script/dom/bluetoothremotegattservice.rs index 9b0ce5a3a3d6e..347604df311e3 100644 --- a/components/script/dom/bluetoothremotegattservice.rs +++ b/components/script/dom/bluetoothremotegattservice.rs @@ -17,6 +17,7 @@ use dom::bluetoothuuid::{BluetoothCharacteristicUUID, BluetoothServiceUUID, Blue use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::promise::Promise; +use dom_struct::dom_struct; use js::jsapi::JSContext; use std::rc::Rc; diff --git a/components/script/dom/bluetoothuuid.rs b/components/script/dom/bluetoothuuid.rs index e16d8141e50bd..a4ef66568a6bd 100644 --- a/components/script/dom/bluetoothuuid.rs +++ b/components/script/dom/bluetoothuuid.rs @@ -8,6 +8,7 @@ use dom::bindings::error::Fallible; use dom::bindings::reflector::Reflector; use dom::bindings::str::DOMString; use dom::window::Window; +use dom_struct::dom_struct; use regex::Regex; pub type UUID = DOMString; diff --git a/components/script/dom/browsingcontext.rs b/components/script/dom/browsingcontext.rs index 5e523d6982a4c..77c6eac294145 100644 --- a/components/script/dom/browsingcontext.rs +++ b/components/script/dom/browsingcontext.rs @@ -15,6 +15,7 @@ use dom::dissimilaroriginwindow::DissimilarOriginWindow; use dom::element::Element; use dom::globalscope::GlobalScope; use dom::window::Window; +use dom_struct::dom_struct; use js::JSCLASS_IS_GLOBAL; use js::glue::{CreateWrapperProxyHandler, ProxyTraps, NewWindowProxy}; use js::glue::{GetProxyPrivate, SetProxyExtra, GetProxyExtra}; diff --git a/components/script/dom/canvasgradient.rs b/components/script/dom/canvasgradient.rs index 6491148e5aa60..994582f509b64 100644 --- a/components/script/dom/canvasgradient.rs +++ b/components/script/dom/canvasgradient.rs @@ -14,6 +14,7 @@ use dom::bindings::num::Finite; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; // https://html.spec.whatwg.org/multipage/#canvasgradient #[dom_struct] diff --git a/components/script/dom/canvaspattern.rs b/components/script/dom/canvaspattern.rs index 5fdb911c73a8f..6a6d6789918f4 100644 --- a/components/script/dom/canvaspattern.rs +++ b/components/script/dom/canvaspattern.rs @@ -8,6 +8,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::canvasgradient::ToFillOrStrokeStyle; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use euclid::size::Size2D; // https://html.spec.whatwg.org/multipage/#canvaspattern diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 065b966d93916..6a84c781b2323 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -33,6 +33,7 @@ use dom::htmlcanvaselement::utils as canvas_utils; use dom::htmlimageelement::HTMLImageElement; use dom::imagedata::ImageData; use dom::node::{Node, NodeDamage, window_from_node}; +use dom_struct::dom_struct; use euclid::matrix2d::Matrix2D; use euclid::point::Point2D; use euclid::rect::Rect; diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index a2c456317dc53..be4fc4d0ac121 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -19,6 +19,7 @@ use dom::element::Element; use dom::node::{Node, NodeDamage}; use dom::processinginstruction::ProcessingInstruction; use dom::text::Text; +use dom_struct::dom_struct; use servo_config::opts; use std::cell::Ref; diff --git a/components/script/dom/client.rs b/components/script/dom/client.rs index d9d43ce7e0159..7910ffc8dfa22 100644 --- a/components/script/dom/client.rs +++ b/components/script/dom/client.rs @@ -9,6 +9,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{DOMString, USVString}; use dom::serviceworker::ServiceWorker; use dom::window::Window; +use dom_struct::dom_struct; use servo_url::ServoUrl; use std::default::Default; use uuid::Uuid; diff --git a/components/script/dom/closeevent.rs b/components/script/dom/closeevent.rs index a4ad9893d8009..f052c0eff44d6 100644 --- a/components/script/dom/closeevent.rs +++ b/components/script/dom/closeevent.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use servo_atoms::Atom; #[dom_struct] diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs index 9efe8c8164cce..ad5121326988e 100644 --- a/components/script/dom/comment.rs +++ b/components/script/dom/comment.rs @@ -11,6 +11,7 @@ use dom::characterdata::CharacterData; use dom::document::Document; use dom::node::Node; use dom::window::Window; +use dom_struct::dom_struct; /// An HTML comment. #[dom_struct] diff --git a/components/script/dom/crypto.rs b/components/script/dom/crypto.rs index 0067dd1c51ab2..fc71faa660a8c 100644 --- a/components/script/dom/crypto.rs +++ b/components/script/dom/crypto.rs @@ -10,6 +10,7 @@ use dom::bindings::error::{Error, Fallible}; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{JSContext, JSObject}; use js::jsapi::Type; use servo_rand::{ServoRng, Rng}; diff --git a/components/script/dom/css.rs b/components/script/dom/css.rs index bf264f1432285..e24b36577756f 100644 --- a/components/script/dom/css.rs +++ b/components/script/dom/css.rs @@ -8,6 +8,7 @@ use dom::bindings::error::Fallible; use dom::bindings::reflector::Reflector; use dom::bindings::str::DOMString; use dom::window::Window; +use dom_struct::dom_struct; use style::parser::ParserContext; use style::supports::{Declaration, parse_condition_or_declaration}; diff --git a/components/script/dom/cssconditionrule.rs b/components/script/dom/cssconditionrule.rs index dace5f612c72e..02c52bcf28f43 100644 --- a/components/script/dom/cssconditionrule.rs +++ b/components/script/dom/cssconditionrule.rs @@ -9,6 +9,7 @@ use dom::cssgroupingrule::CSSGroupingRule; use dom::cssmediarule::CSSMediaRule; use dom::cssstylesheet::CSSStyleSheet; use dom::csssupportsrule::CSSSupportsRule; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::CssRules as StyleCssRules; diff --git a/components/script/dom/cssfontfacerule.rs b/components/script/dom/cssfontfacerule.rs index 61234f8846aae..b9ef949c1b7d3 100644 --- a/components/script/dom/cssfontfacerule.rs +++ b/components/script/dom/cssfontfacerule.rs @@ -9,6 +9,7 @@ use dom::bindings::str::DOMString; use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::font_face::FontFaceRule; diff --git a/components/script/dom/cssgroupingrule.rs b/components/script/dom/cssgroupingrule.rs index b793b04b28c15..ec608b2bc7716 100644 --- a/components/script/dom/cssgroupingrule.rs +++ b/components/script/dom/cssgroupingrule.rs @@ -11,6 +11,7 @@ use dom::bindings::str::DOMString; use dom::cssrule::CSSRule; use dom::cssrulelist::{CSSRuleList, RulesSource}; use dom::cssstylesheet::CSSStyleSheet; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::CssRules as StyleCssRules; diff --git a/components/script/dom/cssimportrule.rs b/components/script/dom/cssimportrule.rs index 582a6f597f9b7..6ef354ec43ec8 100644 --- a/components/script/dom/cssimportrule.rs +++ b/components/script/dom/cssimportrule.rs @@ -9,6 +9,7 @@ use dom::bindings::str::DOMString; use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::ImportRule; diff --git a/components/script/dom/csskeyframerule.rs b/components/script/dom/csskeyframerule.rs index db0a88edc6fc4..0f620bdc7646a 100644 --- a/components/script/dom/csskeyframerule.rs +++ b/components/script/dom/csskeyframerule.rs @@ -11,6 +11,7 @@ use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::keyframes::Keyframe; diff --git a/components/script/dom/csskeyframesrule.rs b/components/script/dom/csskeyframesrule.rs index 1c94e0e99fb8a..977c953265c05 100644 --- a/components/script/dom/csskeyframesrule.rs +++ b/components/script/dom/csskeyframesrule.rs @@ -15,6 +15,7 @@ use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssrulelist::{CSSRuleList, RulesSource}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use servo_atoms::Atom; use std::sync::Arc; diff --git a/components/script/dom/cssmediarule.rs b/components/script/dom/cssmediarule.rs index 438b390aea5fd..31923cb29dd83 100644 --- a/components/script/dom/cssmediarule.rs +++ b/components/script/dom/cssmediarule.rs @@ -13,6 +13,7 @@ use dom::cssrule::SpecificCSSRule; use dom::cssstylesheet::CSSStyleSheet; use dom::medialist::MediaList; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::media_queries::parse_media_query_list; diff --git a/components/script/dom/cssnamespacerule.rs b/components/script/dom/cssnamespacerule.rs index 5f451d3b798c2..51f60fafd08a7 100644 --- a/components/script/dom/cssnamespacerule.rs +++ b/components/script/dom/cssnamespacerule.rs @@ -10,6 +10,7 @@ use dom::bindings::str::DOMString; use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::NamespaceRule; diff --git a/components/script/dom/cssrule.rs b/components/script/dom/cssrule.rs index 4fa4041a8d730..277d7323a211f 100644 --- a/components/script/dom/cssrule.rs +++ b/components/script/dom/cssrule.rs @@ -18,6 +18,7 @@ use dom::cssstylesheet::CSSStyleSheet; use dom::csssupportsrule::CSSSupportsRule; use dom::cssviewportrule::CSSViewportRule; use dom::window::Window; +use dom_struct::dom_struct; use std::cell::Cell; use style::stylesheets::CssRule as StyleCssRule; diff --git a/components/script/dom/cssrulelist.rs b/components/script/dom/cssrulelist.rs index f667638b02209..0b6351d237cd1 100644 --- a/components/script/dom/cssrulelist.rs +++ b/components/script/dom/cssrulelist.rs @@ -12,6 +12,7 @@ use dom::csskeyframerule::CSSKeyframeRule; use dom::cssrule::CSSRule; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::{CssRules, KeyframesRule, RulesMutateError}; diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs index 12bf43864336a..a2a77125a9704 100644 --- a/components/script/dom/cssstyledeclaration.rs +++ b/components/script/dom/cssstyledeclaration.rs @@ -13,6 +13,7 @@ use dom::cssrule::CSSRule; use dom::element::Element; use dom::node::{Node, window_from_node}; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use servo_url::ServoUrl; use std::ascii::AsciiExt; diff --git a/components/script/dom/cssstylerule.rs b/components/script/dom/cssstylerule.rs index 5bd40dbe88cad..3c4c8c815d1a2 100644 --- a/components/script/dom/cssstylerule.rs +++ b/components/script/dom/cssstylerule.rs @@ -11,6 +11,7 @@ use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssstyledeclaration::{CSSModificationAccess, CSSStyleDeclaration, CSSStyleOwner}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::stylesheets::StyleRule; diff --git a/components/script/dom/cssstylesheet.rs b/components/script/dom/cssstylesheet.rs index d0f6ed869c3e4..f8397a732c218 100644 --- a/components/script/dom/cssstylesheet.rs +++ b/components/script/dom/cssstylesheet.rs @@ -13,6 +13,7 @@ use dom::cssrulelist::{CSSRuleList, RulesSource}; use dom::element::Element; use dom::stylesheet::StyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use std::cell::Cell; use std::sync::Arc; use style::stylesheets::Stylesheet as StyleStyleSheet; diff --git a/components/script/dom/csssupportsrule.rs b/components/script/dom/csssupportsrule.rs index 3e52fa3afc505..7b1e77a6c8fbf 100644 --- a/components/script/dom/csssupportsrule.rs +++ b/components/script/dom/csssupportsrule.rs @@ -12,6 +12,7 @@ use dom::cssconditionrule::CSSConditionRule; use dom::cssrule::SpecificCSSRule; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::parser::ParserContext; diff --git a/components/script/dom/cssviewportrule.rs b/components/script/dom/cssviewportrule.rs index 25ca1b292c88f..c784a26f4428d 100644 --- a/components/script/dom/cssviewportrule.rs +++ b/components/script/dom/cssviewportrule.rs @@ -9,6 +9,7 @@ use dom::bindings::str::DOMString; use dom::cssrule::{CSSRule, SpecificCSSRule}; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::viewport::ViewportRule; diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs index f11f2643dad59..dd9c1001593cc 100644 --- a/components/script/dom/customevent.rs +++ b/components/script/dom/customevent.rs @@ -13,6 +13,7 @@ use dom::bindings::str::DOMString; use dom::bindings::trace::RootedTraceableBox; use dom::event::Event; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, JSContext}; use js::jsval::JSVal; use servo_atoms::Atom; diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index 03e3cebe5e180..14dd070f44ddb 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -20,6 +20,7 @@ use dom::globalscope::GlobalScope; use dom::messageevent::MessageEvent; use dom::worker::{TrustedWorkerAddress, WorkerErrorHandler, WorkerMessageHandler}; use dom::workerglobalscope::WorkerGlobalScope; +use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; use ipc_channel::router::ROUTER; use js::jsapi::{HandleValue, JS_SetInterruptCallback}; diff --git a/components/script/dom/dissimilaroriginlocation.rs b/components/script/dom/dissimilaroriginlocation.rs index 6f5eda8c40250..b4cd2d84e5d22 100644 --- a/components/script/dom/dissimilaroriginlocation.rs +++ b/components/script/dom/dissimilaroriginlocation.rs @@ -11,6 +11,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::bindings::str::USVString; use dom::dissimilaroriginwindow::DissimilarOriginWindow; +use dom_struct::dom_struct; /// Represents a dissimilar-origin `Location` that exists in another script thread. /// diff --git a/components/script/dom/dissimilaroriginwindow.rs b/components/script/dom/dissimilaroriginwindow.rs index 518adb0f34167..9867e64290694 100644 --- a/components/script/dom/dissimilaroriginwindow.rs +++ b/components/script/dom/dissimilaroriginwindow.rs @@ -10,6 +10,7 @@ use dom::bindings::str::DOMString; use dom::browsingcontext::BrowsingContext; use dom::dissimilaroriginlocation::DissimilarOriginLocation; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use ipc_channel::ipc; use js::jsapi::{JSContext, HandleValue}; use js::jsval::{JSVal, UndefinedValue}; diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index c836a46f1da09..6d23575510147 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -87,6 +87,7 @@ use dom::treewalker::TreeWalker; use dom::uievent::UIEvent; use dom::webglcontextevent::WebGLContextEvent; use dom::window::{ReflowReason, Window}; +use dom_struct::dom_struct; use encoding::EncodingRef; use encoding::all::UTF_8; use euclid::point::Point2D; diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs index 554fb8fe3b3b0..6f2a123dd06c5 100644 --- a/components/script/dom/documentfragment.rs +++ b/components/script/dom/documentfragment.rs @@ -16,6 +16,7 @@ use dom::htmlcollection::HTMLCollection; use dom::node::{Node, window_from_node}; use dom::nodelist::NodeList; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; // https://dom.spec.whatwg.org/#documentfragment diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs index c48805eed7981..2b03ce2e07bf1 100644 --- a/components/script/dom/documenttype.rs +++ b/components/script/dom/documenttype.rs @@ -11,6 +11,7 @@ use dom::bindings::js::Root; use dom::bindings::str::DOMString; use dom::document::Document; use dom::node::Node; +use dom_struct::dom_struct; // https://dom.spec.whatwg.org/#documenttype /// The `DOCTYPE` tag. diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs index 7428a986c48ea..628ae5ceed598 100644 --- a/components/script/dom/domexception.rs +++ b/components/script/dom/domexception.rs @@ -9,6 +9,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; #[repr(u16)] #[derive(JSTraceable, Copy, Clone, Debug, HeapSizeOf)] diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs index 1de0a24863b11..e0f9d69a45aac 100644 --- a/components/script/dom/domimplementation.rs +++ b/components/script/dom/domimplementation.rs @@ -23,6 +23,7 @@ use dom::htmltitleelement::HTMLTitleElement; use dom::node::Node; use dom::text::Text; use dom::xmldocument::XMLDocument; +use dom_struct::dom_struct; use script_traits::DocumentActivity; // https://dom.spec.whatwg.org/#domimplementation diff --git a/components/script/dom/dommatrix.rs b/components/script/dom/dommatrix.rs index dbe7a27516cbe..eb33d42efcff4 100644 --- a/components/script/dom/dommatrix.rs +++ b/components/script/dom/dommatrix.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::dommatrixreadonly::{dommatrixinit_to_matrix, DOMMatrixReadOnly, entries_to_matrix}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use euclid::Matrix4D; diff --git a/components/script/dom/dommatrixreadonly.rs b/components/script/dom/dommatrixreadonly.rs index 978fa96ce6b18..4f6331e0dd757 100644 --- a/components/script/dom/dommatrixreadonly.rs +++ b/components/script/dom/dommatrixreadonly.rs @@ -13,6 +13,7 @@ use dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector}; use dom::dommatrix::DOMMatrix; use dom::dompoint::DOMPoint; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use euclid::{Matrix4D, Point4D, Radians}; use std::cell::{Cell, Ref}; use std::f64; diff --git a/components/script/dom/domparser.rs b/components/script/dom/domparser.rs index 67d16934c663f..4af6ebf8c60b0 100644 --- a/components/script/dom/domparser.rs +++ b/components/script/dom/domparser.rs @@ -19,6 +19,7 @@ use dom::document::{Document, HasBrowsingContext, IsHTMLDocument}; use dom::document::DocumentSource; use dom::servoparser::ServoParser; use dom::window::Window; +use dom_struct::dom_struct; use script_traits::DocumentActivity; #[dom_struct] diff --git a/components/script/dom/dompoint.rs b/components/script/dom/dompoint.rs index 2f77f77c2c19f..0a2ed9cec5ddb 100644 --- a/components/script/dom/dompoint.rs +++ b/components/script/dom/dompoint.rs @@ -9,6 +9,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::dompointreadonly::{DOMPointReadOnly, DOMPointWriteMethods}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; // http://dev.w3.org/fxtf/geometry/Overview.html#dompoint #[dom_struct] diff --git a/components/script/dom/dompointreadonly.rs b/components/script/dom/dompointreadonly.rs index 9da4e27a9844f..7180207c93089 100644 --- a/components/script/dom/dompointreadonly.rs +++ b/components/script/dom/dompointreadonly.rs @@ -7,6 +7,7 @@ use dom::bindings::error::Fallible; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use std::cell::Cell; // http://dev.w3.org/fxtf/geometry/Overview.html#dompointreadonly diff --git a/components/script/dom/domquad.rs b/components/script/dom/domquad.rs index 37d0b34281829..8c665731f847f 100644 --- a/components/script/dom/domquad.rs +++ b/components/script/dom/domquad.rs @@ -11,6 +11,7 @@ use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::dompoint::DOMPoint; use dom::domrect::DOMRect; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; // https://drafts.fxtf.org/geometry/#DOMQuad #[dom_struct] diff --git a/components/script/dom/domrect.rs b/components/script/dom/domrect.rs index 78e1b2db22e73..3201e6c49efa8 100644 --- a/components/script/dom/domrect.rs +++ b/components/script/dom/domrect.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::domrectreadonly::DOMRectReadOnly; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; #[dom_struct] pub struct DOMRect { diff --git a/components/script/dom/domrectlist.rs b/components/script/dom/domrectlist.rs index 392aa18997ee3..a7d99b99448f0 100644 --- a/components/script/dom/domrectlist.rs +++ b/components/script/dom/domrectlist.rs @@ -8,6 +8,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::domrect::DOMRect; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct DOMRectList { diff --git a/components/script/dom/domrectreadonly.rs b/components/script/dom/domrectreadonly.rs index ef0c7ce2c677e..f5e08a4fcb78b 100644 --- a/components/script/dom/domrectreadonly.rs +++ b/components/script/dom/domrectreadonly.rs @@ -7,6 +7,7 @@ use dom::bindings::error::Fallible; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use std::cell::Cell; #[dom_struct] diff --git a/components/script/dom/domstringmap.rs b/components/script/dom/domstringmap.rs index dd4384d5a280a..d529ca25cf8b9 100644 --- a/components/script/dom/domstringmap.rs +++ b/components/script/dom/domstringmap.rs @@ -10,6 +10,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::htmlelement::HTMLElement; use dom::node::window_from_node; +use dom_struct::dom_struct; #[dom_struct] pub struct DOMStringMap { diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs index 95f42d124601d..28266709f6704 100644 --- a/components/script/dom/domtokenlist.rs +++ b/components/script/dom/domtokenlist.rs @@ -11,6 +11,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::element::Element; use dom::node::window_from_node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use servo_atoms::Atom; use style::str::HTML_SPACE_CHARACTERS; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index 0c681f9759c8d..4717717289570 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -72,6 +72,7 @@ use dom::text::Text; use dom::validation::Validatable; use dom::virtualmethods::{VirtualMethods, vtable_for}; use dom::window::ReflowReason; +use dom_struct::dom_struct; use html5ever::serialize; use html5ever::serialize::SerializeOpts; use html5ever::serialize::TraversalScope; diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs index 37197b6125a98..58bd2e383984d 100644 --- a/components/script/dom/errorevent.rs +++ b/components/script/dom/errorevent.rs @@ -14,6 +14,7 @@ use dom::bindings::str::DOMString; use dom::bindings::trace::RootedTraceableBox; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, JSContext}; use js::jsval::JSVal; use servo_atoms::Atom; diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 2d3c2afe46032..d6ba1d8510953 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -19,6 +19,7 @@ use dom::globalscope::GlobalScope; use dom::node::Node; use dom::virtualmethods::vtable_for; use dom::window::Window; +use dom_struct::dom_struct; use script_thread::Runnable; use servo_atoms::Atom; use std::cell::Cell; diff --git a/components/script/dom/eventsource.rs b/components/script/dom/eventsource.rs index cedaa8fd39be4..7945eec0b7d55 100644 --- a/components/script/dom/eventsource.rs +++ b/components/script/dom/eventsource.rs @@ -15,6 +15,7 @@ use dom::event::Event; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::messageevent::MessageEvent; +use dom_struct::dom_struct; use encoding::Encoding; use encoding::all::UTF_8; use euclid::length::Length; diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index 57eedd8e3330a..f45942f0f05d9 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -26,6 +26,7 @@ use dom::event::{Event, EventBubbles, EventCancelable, EventStatus}; use dom::node::document_from_node; use dom::virtualmethods::VirtualMethods; use dom::window::Window; +use dom_struct::dom_struct; use fnv::FnvHasher; use heapsize::HeapSizeOf; use js::jsapi::{CompileFunction, JS_GetFunctionObject, JSAutoCompartment}; diff --git a/components/script/dom/extendableevent.rs b/components/script/dom/extendableevent.rs index 0a7db40b6d55e..8cc88706fb1b8 100644 --- a/components/script/dom/extendableevent.rs +++ b/components/script/dom/extendableevent.rs @@ -11,6 +11,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::Event; use dom::serviceworkerglobalscope::ServiceWorkerGlobalScope; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, JSContext}; use servo_atoms::Atom; diff --git a/components/script/dom/extendablemessageevent.rs b/components/script/dom/extendablemessageevent.rs index dd0360cb408d4..49c461083f2a2 100644 --- a/components/script/dom/extendablemessageevent.rs +++ b/components/script/dom/extendablemessageevent.rs @@ -15,6 +15,7 @@ use dom::eventtarget::EventTarget; use dom::extendableevent::ExtendableEvent; use dom::globalscope::GlobalScope; use dom::serviceworkerglobalscope::ServiceWorkerGlobalScope; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, Heap, JSContext}; use js::jsval::JSVal; use servo_atoms::Atom; diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs index dba94a85e50b2..6cf144d10e00d 100644 --- a/components/script/dom/file.rs +++ b/components/script/dom/file.rs @@ -13,6 +13,7 @@ use dom::bindings::str::DOMString; use dom::blob::{Blob, BlobImpl, blob_parts_to_bytes}; use dom::globalscope::GlobalScope; use dom::window::Window; +use dom_struct::dom_struct; use net_traits::filemanager_thread::SelectedFile; use time; diff --git a/components/script/dom/filelist.rs b/components/script/dom/filelist.rs index e3654b752dcf3..3a5acc41235e9 100644 --- a/components/script/dom/filelist.rs +++ b/components/script/dom/filelist.rs @@ -8,6 +8,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::file::File; use dom::window::Window; +use dom_struct::dom_struct; use std::slice::Iter; // https://w3c.github.io/FileAPI/#dfn-filelist diff --git a/components/script/dom/filereader.rs b/components/script/dom/filereader.rs index 0c30301065655..53493dbd1674a 100644 --- a/components/script/dom/filereader.rs +++ b/components/script/dom/filereader.rs @@ -19,6 +19,7 @@ use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::progressevent::ProgressEvent; +use dom_struct::dom_struct; use encoding::all::UTF_8; use encoding::label::encoding_from_whatwg_label; use encoding::types::{DecoderTrap, EncodingRef}; diff --git a/components/script/dom/filereadersync.rs b/components/script/dom/filereadersync.rs index 875843ea0c6bb..744625474cdd8 100644 --- a/components/script/dom/filereadersync.rs +++ b/components/script/dom/filereadersync.rs @@ -8,6 +8,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; #[dom_struct] pub struct FileReaderSync { diff --git a/components/script/dom/focusevent.rs b/components/script/dom/focusevent.rs index 6ffed30e85797..eae3920dae019 100644 --- a/components/script/dom/focusevent.rs +++ b/components/script/dom/focusevent.rs @@ -14,6 +14,7 @@ use dom::event::{EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; use dom::uievent::UIEvent; use dom::window::Window; +use dom_struct::dom_struct; use std::default::Default; #[dom_struct] diff --git a/components/script/dom/forcetouchevent.rs b/components/script/dom/forcetouchevent.rs index 9e1c5cfcd9162..cf5c622d8e8a1 100644 --- a/components/script/dom/forcetouchevent.rs +++ b/components/script/dom/forcetouchevent.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::uievent::UIEvent; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct ForceTouchEvent { diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs index 58b548aa47581..2b8ca8f4d46fa 100644 --- a/components/script/dom/formdata.rs +++ b/components/script/dom/formdata.rs @@ -15,6 +15,7 @@ use dom::blob::{Blob, BlobImpl}; use dom::file::File; use dom::globalscope::GlobalScope; use dom::htmlformelement::{HTMLFormElement, FormDatumValue, FormDatum}; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::collections::HashMap; use std::collections::hash_map::Entry::{Occupied, Vacant}; diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs index cc42ef18d065d..2b4d3fc688657 100644 --- a/components/script/dom/globalscope.rs +++ b/components/script/dom/globalscope.rs @@ -19,6 +19,7 @@ use dom::event::{Event, EventBubbles, EventCancelable, EventStatus}; use dom::eventtarget::EventTarget; use dom::window::Window; use dom::workerglobalscope::WorkerGlobalScope; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use js::{JSCLASS_IS_DOMJSCLASS, JSCLASS_IS_GLOBAL}; use js::glue::{IsWrapper, UnwrapObject}; diff --git a/components/script/dom/hashchangeevent.rs b/components/script/dom/hashchangeevent.rs index cd4b2b0a71fe8..4505d79f4401f 100644 --- a/components/script/dom/hashchangeevent.rs +++ b/components/script/dom/hashchangeevent.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::{DOMString, USVString}; use dom::event::Event; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; // https://html.spec.whatwg.org/multipage/#hashchangeevent diff --git a/components/script/dom/headers.rs b/components/script/dom/headers.rs index 02262dbb4750b..ac5b332b51b7f 100644 --- a/components/script/dom/headers.rs +++ b/components/script/dom/headers.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{ByteString, is_token}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use hyper::header::Headers as HyperHeaders; use mime::{Mime, TopLevel, SubLevel}; use std::cell::Cell; diff --git a/components/script/dom/history.rs b/components/script/dom/history.rs index 1a971eae00927..0e1aea4bf103b 100644 --- a/components/script/dom/history.rs +++ b/components/script/dom/history.rs @@ -11,6 +11,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc; use msg::constellation_msg::TraversalDirection; use script_traits::ScriptMsg as ConstellationMsg; diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 91ebadbd0f215..53aeb9a6bff51 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -24,6 +24,7 @@ use dom::mouseevent::MouseEvent; use dom::node::{Node, document_from_node}; use dom::urlhelper::UrlHelper; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use net_traits::ReferrerPolicy; use num_traits::ToPrimitive; diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs index 081172031a320..73de3061cfe25 100644 --- a/components/script/dom/htmlappletelement.rs +++ b/components/script/dom/htmlappletelement.rs @@ -11,6 +11,7 @@ use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::AttrValue; diff --git a/components/script/dom/htmlareaelement.rs b/components/script/dom/htmlareaelement.rs index 7b86a61a77304..724deb2bdcd1b 100644 --- a/components/script/dom/htmlareaelement.rs +++ b/components/script/dom/htmlareaelement.rs @@ -18,6 +18,7 @@ use dom::htmlanchorelement::follow_hyperlink; use dom::htmlelement::HTMLElement; use dom::node::{Node, document_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use euclid::point::Point2D; use html5ever_atoms::LocalName; use net_traits::ReferrerPolicy; diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs index 66c5b2b2fcab6..bb8b12f06d632 100644 --- a/components/script/dom/htmlaudioelement.rs +++ b/components/script/dom/htmlaudioelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlmediaelement::HTMLMediaElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs index 0db9b5398dd00..fe34e6d77f032 100644 --- a/components/script/dom/htmlbaseelement.rs +++ b/components/script/dom/htmlbaseelement.rs @@ -13,6 +13,7 @@ use dom::element::{AttributeMutation, Element}; use dom::htmlelement::HTMLElement; use dom::node::{Node, UnbindContext, document_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use servo_url::ServoUrl; use style::attr::AttrValue; diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index ea9b17757876e..ef2855fa512d1 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -17,6 +17,7 @@ use dom::globalscope::GlobalScope; use dom::htmlelement::HTMLElement; use dom::node::{Node, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use script_traits::ScriptMsg as ConstellationMsg; use servo_url::ServoUrl; diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs index 498013fc6c843..ebe6ed4370668 100644 --- a/components/script/dom/htmlbrelement.rs +++ b/components/script/dom/htmlbrelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index f266f0236c566..56a614cf60880 100755 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -23,6 +23,7 @@ use dom::nodelist::NodeList; use dom::validation::Validatable; use dom::validitystate::{ValidityState, ValidationFlags}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::cell::Cell; use style::element_state::*; diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index a51463f46749a..dbbf695b2d422 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -24,6 +24,7 @@ use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; use dom::webglrenderingcontext::{LayoutCanvasWebGLRenderingContextHelpers, WebGLRenderingContext}; +use dom_struct::dom_struct; use euclid::size::Size2D; use html5ever_atoms::LocalName; use image::ColorType; diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs index eacffd6cdedc0..4e05de86922a6 100644 --- a/components/script/dom/htmlcollection.rs +++ b/components/script/dom/htmlcollection.rs @@ -13,6 +13,7 @@ use dom::bindings::xmlname::namespace_from_domstring; use dom::element::Element; use dom::node::Node; use dom::window::Window; +use dom_struct::dom_struct; use html5ever_atoms::{LocalName, QualName}; use servo_atoms::Atom; use std::cell::Cell; diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs index dcd15f9261a74..8dc53d9860bc0 100644 --- a/components/script/dom/htmldataelement.rs +++ b/components/script/dom/htmldataelement.rs @@ -9,6 +9,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs index 616bcd8079221..48c39c500ed7a 100644 --- a/components/script/dom/htmldatalistelement.rs +++ b/components/script/dom/htmldatalistelement.rs @@ -13,6 +13,7 @@ use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlelement::HTMLElement; use dom::htmloptionelement::HTMLOptionElement; use dom::node::{Node, window_from_node}; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmldetailselement.rs b/components/script/dom/htmldetailselement.rs index 8df0f1a62fb46..1937c8f09b6d6 100644 --- a/components/script/dom/htmldetailselement.rs +++ b/components/script/dom/htmldetailselement.rs @@ -15,6 +15,7 @@ use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use script_thread::Runnable; use std::cell::Cell; diff --git a/components/script/dom/htmldialogelement.rs b/components/script/dom/htmldialogelement.rs index 80ee9499a9f5f..37b38ed82dc52 100644 --- a/components/script/dom/htmldialogelement.rs +++ b/components/script/dom/htmldialogelement.rs @@ -13,6 +13,7 @@ use dom::element::Element; use dom::eventtarget::EventTarget; use dom::htmlelement::HTMLElement; use dom::node::{Node, window_from_node}; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs index bd40c508ffe2d..aa24adcfacfd3 100644 --- a/components/script/dom/htmldirectoryelement.rs +++ b/components/script/dom/htmldirectoryelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs index ba738ca75e29a..e4d8bf669ef00 100644 --- a/components/script/dom/htmldivelement.rs +++ b/components/script/dom/htmldivelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs index db319c374584b..6da79f5d5c881 100644 --- a/components/script/dom/htmldlistelement.rs +++ b/components/script/dom/htmldlistelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 9caa85225efe5..ade0b7307d1e8 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -29,6 +29,7 @@ use dom::node::{Node, SEQUENTIALLY_FOCUSABLE}; use dom::node::{document_from_node, window_from_node}; use dom::nodelist::NodeList; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::ascii::AsciiExt; use std::borrow::ToOwned; diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs index 0c4610f09483c..9d88e7d7c12b7 100644 --- a/components/script/dom/htmlembedelement.rs +++ b/components/script/dom/htmlembedelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index 4168659b74168..19dbc8d4f1bf6 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -17,6 +17,7 @@ use dom::htmllegendelement::HTMLLegendElement; use dom::node::{Node, window_from_node}; use dom::validitystate::ValidityState; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::element_state::*; diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs index 80a0266595c89..8644544cdfe5d 100644 --- a/components/script/dom/htmlfontelement.rs +++ b/components/script/dom/htmlfontelement.rs @@ -13,6 +13,7 @@ use dom::element::{Element, RawLayoutElementHelpers}; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use servo_atoms::Atom; use style::attr::AttrValue; diff --git a/components/script/dom/htmlformcontrolscollection.rs b/components/script/dom/htmlformcontrolscollection.rs index 1009e5f114249..a90e2dd48eea1 100644 --- a/components/script/dom/htmlformcontrolscollection.rs +++ b/components/script/dom/htmlformcontrolscollection.rs @@ -14,6 +14,7 @@ use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::node::Node; use dom::radionodelist::RadioNodeList; use dom::window::Window; +use dom_struct::dom_struct; use std::iter; #[dom_struct] diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index b403b1389a8d4..67d80acdcab6d 100755 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -37,6 +37,7 @@ use dom::htmltextareaelement::HTMLTextAreaElement; use dom::node::{Node, document_from_node, window_from_node}; use dom::validitystate::ValidationFlags; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use encoding::EncodingRef; use encoding::all::UTF_8; use encoding::label::encoding_from_whatwg_label; diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs index 919c460dee548..e36bfc95310ab 100644 --- a/components/script/dom/htmlframeelement.rs +++ b/components/script/dom/htmlframeelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs index c2c95ea58c7b0..d6fba77cb087f 100644 --- a/components/script/dom/htmlframesetelement.rs +++ b/components/script/dom/htmlframesetelement.rs @@ -11,6 +11,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::{Node, document_from_node}; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs index fc6e888d015a4..7e05ac3d45c68 100644 --- a/components/script/dom/htmlheadelement.rs +++ b/components/script/dom/htmlheadelement.rs @@ -14,6 +14,7 @@ use dom::htmlmetaelement::HTMLMetaElement; use dom::node::{Node, document_from_node}; use dom::userscripts::load_script; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs index edfd894c51ea0..f820b8ba90f11 100644 --- a/components/script/dom/htmlheadingelement.rs +++ b/components/script/dom/htmlheadingelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[derive(JSTraceable, HeapSizeOf)] diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs index 939e389e81f31..f1d5774dbe987 100644 --- a/components/script/dom/htmlhrelement.rs +++ b/components/script/dom/htmlhrelement.rs @@ -12,6 +12,7 @@ use dom::element::{Element, RawLayoutElementHelpers}; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::{AttrValue, LengthOrPercentageOrAuto}; diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs index d79fbadcae29e..924b55650ee00 100644 --- a/components/script/dom/htmlhtmlelement.rs +++ b/components/script/dom/htmlhtmlelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 4ab8273538471..b01edf0c4ed71 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -35,6 +35,7 @@ use dom::htmlelement::HTMLElement; use dom::node::{Node, NodeDamage, UnbindContext, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; use dom::window::{ReflowReason, Window}; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use ipc_channel::ipc; use js::jsapi::{JSAutoCompartment, JSContext, MutableHandleValue}; diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index af98b0134105c..8f7497c55acad 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -32,6 +32,7 @@ use dom::node::{Node, NodeDamage, document_from_node, window_from_node}; use dom::values::UNSIGNED_LONG_MAX; use dom::virtualmethods::VirtualMethods; use dom::window::Window; +use dom_struct::dom_struct; use euclid::point::Point2D; use html5ever_atoms::LocalName; use ipc_channel::ipc; diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 7e0eddae26df8..f2e9f9833003f 100755 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -36,6 +36,7 @@ use dom::nodelist::NodeList; use dom::validation::Validatable; use dom::validitystate::ValidationFlags; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use ipc_channel::ipc::{self, IpcSender}; use mime_guess; diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs index 5d954cfc5dd1a..02345ad1f20cc 100644 --- a/components/script/dom/htmllabelelement.rs +++ b/components/script/dom/htmllabelelement.rs @@ -16,6 +16,7 @@ use dom::htmlelement::HTMLElement; use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::node::{document_from_node, Node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::AttrValue; diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs index 0b9cbf3992c06..f05ec6bfd3b2b 100644 --- a/components/script/dom/htmllegendelement.rs +++ b/components/script/dom/htmllegendelement.rs @@ -15,6 +15,7 @@ use dom::htmlfieldsetelement::HTMLFieldSetElement; use dom::htmlformelement::{HTMLFormElement, FormControl}; use dom::node::{Node, UnbindContext}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs index 4d17eb9376d28..aef80a52311a6 100644 --- a/components/script/dom/htmllielement.rs +++ b/components/script/dom/htmllielement.rs @@ -11,6 +11,7 @@ use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::AttrValue; diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 20e560e93adfd..b4f90b89b856c 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -21,6 +21,7 @@ use dom::htmlelement::HTMLElement; use dom::node::{Node, UnbindContext, document_from_node, window_from_node}; use dom::stylesheet::StyleSheet as DOMStyleSheet; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use net_traits::ReferrerPolicy; use script_traits::{MozBrowserEvent, ScriptMsg as ConstellationMsg}; diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs index 8ef091b07620c..c6bcb6154313e 100644 --- a/components/script/dom/htmlmapelement.rs +++ b/components/script/dom/htmlmapelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index fd327404b4dd5..fc036ee35cc9a 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -27,6 +27,7 @@ use dom::htmlvideoelement::HTMLVideoElement; use dom::mediaerror::MediaError; use dom::node::{window_from_node, document_from_node, Node, UnbindContext}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use ipc_channel::ipc; use ipc_channel::router::ROUTER; diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs index cf9d078e39f38..a751486de7d1f 100644 --- a/components/script/dom/htmlmetaelement.rs +++ b/components/script/dom/htmlmetaelement.rs @@ -17,6 +17,7 @@ use dom::htmlelement::HTMLElement; use dom::htmlheadelement::HTMLHeadElement; use dom::node::{Node, UnbindContext, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use parking_lot::RwLock; use servo_config::prefs::PREFS; diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs index e323af1485b47..b57951270a408 100644 --- a/components/script/dom/htmlmeterelement.rs +++ b/components/script/dom/htmlmeterelement.rs @@ -10,6 +10,7 @@ use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::nodelist::NodeList; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs index 6cd63d2450527..7724640642c26 100644 --- a/components/script/dom/htmlmodelement.rs +++ b/components/script/dom/htmlmodelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index d04f989ce5e72..6352ea5c862dc 100755 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -17,6 +17,7 @@ use dom::node::{Node, window_from_node}; use dom::validation::Validatable; use dom::validitystate::{ValidityState, ValidationFlags}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use net_traits::image::base::Image; use std::sync::Arc; diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs index 19c731bdc0abf..a36e97404e4f3 100644 --- a/components/script/dom/htmlolistelement.rs +++ b/components/script/dom/htmlolistelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs index 583c32337db93..13a68d7ff41d9 100644 --- a/components/script/dom/htmloptgroupelement.rs +++ b/components/script/dom/htmloptgroupelement.rs @@ -14,6 +14,7 @@ use dom::htmlelement::HTMLElement; use dom::htmloptionelement::HTMLOptionElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::element_state::*; diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index d1576d532e3b3..e54b9b563e47f 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -22,6 +22,7 @@ use dom::htmlselectelement::HTMLSelectElement; use dom::node::{Node, UnbindContext}; use dom::text::Text; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::cell::Cell; use style::element_state::*; diff --git a/components/script/dom/htmloptionscollection.rs b/components/script/dom/htmloptionscollection.rs index be7031ab8d036..42d6aebde35a5 100644 --- a/components/script/dom/htmloptionscollection.rs +++ b/components/script/dom/htmloptionscollection.rs @@ -20,6 +20,7 @@ use dom::htmloptionelement::HTMLOptionElement; use dom::htmlselectelement::HTMLSelectElement; use dom::node::{document_from_node, Node}; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct HTMLOptionsCollection { diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs index 16af40f12cc68..6f3154057ea41 100644 --- a/components/script/dom/htmloutputelement.rs +++ b/components/script/dom/htmloutputelement.rs @@ -13,6 +13,7 @@ use dom::htmlformelement::{FormControl, HTMLFormElement}; use dom::node::{Node, window_from_node}; use dom::nodelist::NodeList; use dom::validitystate::ValidityState; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs index f3976d8d202e7..1a7936352bcfb 100644 --- a/components/script/dom/htmlparagraphelement.rs +++ b/components/script/dom/htmlparagraphelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs index d27a85bc8bd1c..103faa0a641b3 100644 --- a/components/script/dom/htmlparamelement.rs +++ b/components/script/dom/htmlparamelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs index cfe9de109995a..7d3575d1eaeb5 100644 --- a/components/script/dom/htmlpreelement.rs +++ b/components/script/dom/htmlpreelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs index 258527ac368bb..fe8eb2775e9ac 100644 --- a/components/script/dom/htmlprogresselement.rs +++ b/components/script/dom/htmlprogresselement.rs @@ -10,6 +10,7 @@ use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::nodelist::NodeList; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs index 72e0329fe170a..de3e473434b0e 100644 --- a/components/script/dom/htmlquoteelement.rs +++ b/components/script/dom/htmlquoteelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 8703a45ea82af..f13c0224b1ae7 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -23,6 +23,7 @@ use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, CloneChildrenFlag, Node}; use dom::node::{document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use encoding::label::encoding_from_whatwg_label; use encoding::types::{DecoderTrap, EncodingRef}; use html5ever_atoms::LocalName; diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 84c3aa8992701..1f4a8f029b095 100755 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -30,6 +30,7 @@ use dom::nodelist::NodeList; use dom::validation::Validatable; use dom::validitystate::{ValidityState, ValidationFlags}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::iter; use style::attr::AttrValue; diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs index a5c93ba2b8f68..2b15fabd78937 100644 --- a/components/script/dom/htmlsourceelement.rs +++ b/components/script/dom/htmlsourceelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs index cc8127d651ae5..1437d1dbb0866 100644 --- a/components/script/dom/htmlspanelement.rs +++ b/components/script/dom/htmlspanelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index 285c8af3087bf..f9c6412f854b5 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -18,6 +18,7 @@ use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, Node, UnbindContext, document_from_node, window_from_node}; use dom::stylesheet::StyleSheet as DOMStyleSheet; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use net_traits::ReferrerPolicy; use script_layout_interface::message::Msg; diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs index e6ced76b973c8..fd6c06643dd43 100644 --- a/components/script/dom/htmltablecaptionelement.rs +++ b/components/script/dom/htmltablecaptionelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs index 4a6ca5ca9b1a3..ef4bffba5d7fa 100644 --- a/components/script/dom/htmltablecellelement.rs +++ b/components/script/dom/htmltablecellelement.rs @@ -14,6 +14,7 @@ use dom::htmlelement::HTMLElement; use dom::htmltablerowelement::HTMLTableRowElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::{AttrValue, LengthOrPercentageOrAuto}; diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs index cad7ecffbcd9d..00f618ed65f6c 100644 --- a/components/script/dom/htmltablecolelement.rs +++ b/components/script/dom/htmltablecolelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs index da723fe10e1bf..77808c77d7901 100644 --- a/components/script/dom/htmltabledatacellelement.rs +++ b/components/script/dom/htmltabledatacellelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmltablecellelement::HTMLTableCellElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index 741b53c38ac30..56e9876b75376 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -22,6 +22,7 @@ use dom::htmltablerowelement::HTMLTableRowElement; use dom::htmltablesectionelement::HTMLTableSectionElement; use dom::node::{Node, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::cell::Cell; use style::attr::{AttrValue, LengthOrPercentageOrAuto, parse_unsigned_integer}; diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs index c24c68479c8c9..a471faee00fbc 100644 --- a/components/script/dom/htmltableheadercellelement.rs +++ b/components/script/dom/htmltableheadercellelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmltablecellelement::HTMLTableCellElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs index c6b04648dc2d0..be1b636beb415 100644 --- a/components/script/dom/htmltablerowelement.rs +++ b/components/script/dom/htmltablerowelement.rs @@ -21,6 +21,7 @@ use dom::htmltableheadercellelement::HTMLTableHeaderCellElement; use dom::htmltablesectionelement::HTMLTableSectionElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::AttrValue; diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs index 2f5fcaca5660e..cf9be4b81b40b 100644 --- a/components/script/dom/htmltablesectionelement.rs +++ b/components/script/dom/htmltablesectionelement.rs @@ -16,6 +16,7 @@ use dom::htmlelement::HTMLElement; use dom::htmltablerowelement::HTMLTableRowElement; use dom::node::{Node, window_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::attr::AttrValue; diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs index 1c9b2c0aacd1f..8e54ae635235f 100644 --- a/components/script/dom/htmltemplateelement.rs +++ b/components/script/dom/htmltemplateelement.rs @@ -14,6 +14,7 @@ use dom::documentfragment::DocumentFragment; use dom::htmlelement::HTMLElement; use dom::node::{CloneChildrenFlag, Node, document_from_node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index c6fd4d6b17039..e7db7565adfa0 100755 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -25,6 +25,7 @@ use dom::node::{document_from_node, window_from_node}; use dom::nodelist::NodeList; use dom::validation::Validatable; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use ipc_channel::ipc::IpcSender; use script_traits::ScriptMsg as ConstellationMsg; diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs index c5286dd685fd5..2c559a30cc569 100644 --- a/components/script/dom/htmltimeelement.rs +++ b/components/script/dom/htmltimeelement.rs @@ -9,6 +9,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index 6dde6a6203bec..43208399fb6f7 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -12,6 +12,7 @@ use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::{ChildrenMutation, Node}; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs index 4c4263aa949e6..97811ee5a1064 100644 --- a/components/script/dom/htmltrackelement.rs +++ b/components/script/dom/htmltrackelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs index 211b77bb8b686..4153709e1080d 100644 --- a/components/script/dom/htmlulistelement.rs +++ b/components/script/dom/htmlulistelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs index 22930a32d7858..d54025de8523b 100644 --- a/components/script/dom/htmlunknownelement.rs +++ b/components/script/dom/htmlunknownelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlelement::HTMLElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs index 940888c3466c7..1a0d93dacf83e 100644 --- a/components/script/dom/htmlvideoelement.rs +++ b/components/script/dom/htmlvideoelement.rs @@ -8,6 +8,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::htmlmediaelement::HTMLMediaElement; use dom::node::Node; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; #[dom_struct] diff --git a/components/script/dom/imagedata.rs b/components/script/dom/imagedata.rs index 4de2e9ced9253..33863cde2b65f 100644 --- a/components/script/dom/imagedata.rs +++ b/components/script/dom/imagedata.rs @@ -8,6 +8,7 @@ use dom::bindings::codegen::Bindings::ImageDataBinding::ImageDataMethods; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use euclid::size::Size2D; use js::jsapi::{Heap, JSContext, JSObject}; use js::rust::Runtime; diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs index 38a25d4dc1e3f..33b044085a23d 100644 --- a/components/script/dom/keyboardevent.rs +++ b/components/script/dom/keyboardevent.rs @@ -14,6 +14,7 @@ use dom::bindings::str::DOMString; use dom::event::Event; use dom::uievent::UIEvent; use dom::window::Window; +use dom_struct::dom_struct; use msg::constellation_msg; use msg::constellation_msg::{Key, KeyModifiers}; use std::borrow::Cow; diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs index cc2c064f4b808..d06ec02d4a2ff 100644 --- a/components/script/dom/location.rs +++ b/components/script/dom/location.rs @@ -10,6 +10,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{DOMString, USVString}; use dom::urlhelper::UrlHelper; use dom::window::Window; +use dom_struct::dom_struct; use servo_url::ServoUrl; #[dom_struct] diff --git a/components/script/dom/mediaerror.rs b/components/script/dom/mediaerror.rs index b7b7a800989e4..ff158333473e6 100644 --- a/components/script/dom/mediaerror.rs +++ b/components/script/dom/mediaerror.rs @@ -6,6 +6,7 @@ use dom::bindings::codegen::Bindings::MediaErrorBinding::{self, MediaErrorMethod use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct MediaError { diff --git a/components/script/dom/medialist.rs b/components/script/dom/medialist.rs index b6e5fd9c1ee4a..806946f6356c6 100644 --- a/components/script/dom/medialist.rs +++ b/components/script/dom/medialist.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::window::Window; +use dom_struct::dom_struct; use parking_lot::RwLock; use std::sync::Arc; use style::media_queries::{MediaQuery, parse_media_query_list}; diff --git a/components/script/dom/mediaquerylist.rs b/components/script/dom/mediaquerylist.rs index 2545b911c7aa6..5bb44038a9e1b 100644 --- a/components/script/dom/mediaquerylist.rs +++ b/components/script/dom/mediaquerylist.rs @@ -18,6 +18,7 @@ use dom::document::Document; use dom::event::Event; use dom::eventtarget::EventTarget; use dom::mediaquerylistevent::MediaQueryListEvent; +use dom_struct::dom_struct; use euclid::scale_factor::ScaleFactor; use js::jsapi::JSTracer; use std::cell::Cell; diff --git a/components/script/dom/mediaquerylistevent.rs b/components/script/dom/mediaquerylistevent.rs index 8edd2fa3ab2bd..18be8b1d1b54c 100644 --- a/components/script/dom/mediaquerylistevent.rs +++ b/components/script/dom/mediaquerylistevent.rs @@ -14,6 +14,7 @@ use dom::bindings::str::DOMString; use dom::event::Event; use dom::globalscope::GlobalScope; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; use std::cell::Cell; diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index 3df960d0882e8..0bbeeb05cd7c5 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -14,6 +14,7 @@ use dom::bindings::trace::RootedTraceableBox; use dom::event::Event; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, Heap, JSContext}; use js::jsval::JSVal; use servo_atoms::Atom; diff --git a/components/script/dom/mimetype.rs b/components/script/dom/mimetype.rs index 94262de5c26ba..daa4990840829 100644 --- a/components/script/dom/mimetype.rs +++ b/components/script/dom/mimetype.rs @@ -7,6 +7,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::Reflector; use dom::bindings::str::DOMString; use dom::plugin::Plugin; +use dom_struct::dom_struct; #[dom_struct] pub struct MimeType { diff --git a/components/script/dom/mimetypearray.rs b/components/script/dom/mimetypearray.rs index e0dd8090f8f3c..4bc33e9b2373d 100644 --- a/components/script/dom/mimetypearray.rs +++ b/components/script/dom/mimetypearray.rs @@ -9,6 +9,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom::mimetype::MimeType; +use dom_struct::dom_struct; #[dom_struct] pub struct MimeTypeArray { diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs index 3b0e3fb1710bd..f19c37df868b7 100644 --- a/components/script/dom/mouseevent.rs +++ b/components/script/dom/mouseevent.rs @@ -14,6 +14,7 @@ use dom::event::{Event, EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; use dom::uievent::UIEvent; use dom::window::Window; +use dom_struct::dom_struct; use servo_config::prefs::PREFS; use std::cell::Cell; use std::default::Default; diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs index 148822cabb20d..273b87c8d00ca 100644 --- a/components/script/dom/namednodemap.rs +++ b/components/script/dom/namednodemap.rs @@ -13,6 +13,7 @@ use dom::bindings::str::DOMString; use dom::bindings::xmlname::namespace_from_domstring; use dom::element::Element; use dom::window::Window; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use std::ascii::AsciiExt; diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs index 27a1465e9d230..118f53ac49bfa 100644 --- a/components/script/dom/navigator.rs +++ b/components/script/dom/navigator.rs @@ -15,6 +15,7 @@ use dom::pluginarray::PluginArray; use dom::serviceworkercontainer::ServiceWorkerContainer; use dom::vr::VR; use dom::window::Window; +use dom_struct::dom_struct; use script_traits::WebVREventMsg; #[dom_struct] diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 96d3fceaff5d0..fce1ce4826df7 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -53,6 +53,7 @@ use dom::svgsvgelement::{SVGSVGElement, LayoutSVGSVGElementHelpers}; use dom::text::Text; use dom::virtualmethods::{VirtualMethods, vtable_for}; use dom::window::Window; +use dom_struct::dom_struct; use euclid::point::Point2D; use euclid::rect::Rect; use euclid::size::Size2D; diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs index 920d94d635c4f..91b590a3647a8 100644 --- a/components/script/dom/nodeiterator.rs +++ b/components/script/dom/nodeiterator.rs @@ -13,6 +13,7 @@ use dom::bindings::js::{JS, MutJS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::document::Document; use dom::node::Node; +use dom_struct::dom_struct; use std::cell::Cell; use std::rc::Rc; diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs index 21e05fc7dcc3b..5c0983ccaa35c 100644 --- a/components/script/dom/nodelist.rs +++ b/components/script/dom/nodelist.rs @@ -9,6 +9,7 @@ use dom::bindings::js::{JS, MutNullableJS, Root, RootedReference}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::node::{ChildrenMutation, Node}; use dom::window::Window; +use dom_struct::dom_struct; use std::cell::Cell; #[derive(JSTraceable, HeapSizeOf)] diff --git a/components/script/dom/pagetransitionevent.rs b/components/script/dom/pagetransitionevent.rs index e76a6444d4cb5..3757bece84ace 100644 --- a/components/script/dom/pagetransitionevent.rs +++ b/components/script/dom/pagetransitionevent.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::Event; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; use std::cell::Cell; diff --git a/components/script/dom/performance.rs b/components/script/dom/performance.rs index 3852a49b28c07..7ce0cd7d1eb98 100644 --- a/components/script/dom/performance.rs +++ b/components/script/dom/performance.rs @@ -9,6 +9,7 @@ use dom::bindings::num::Finite; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::performancetiming::PerformanceTiming; use dom::window::Window; +use dom_struct::dom_struct; use time; pub type DOMHighResTimeStamp = Finite; diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs index 02cb9c0b212f0..37001f5d15fbc 100644 --- a/components/script/dom/performancetiming.rs +++ b/components/script/dom/performancetiming.rs @@ -9,6 +9,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::document::Document; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct PerformanceTiming { diff --git a/components/script/dom/permissions.rs b/components/script/dom/permissions.rs index 87d333f5bac0b..4133eec4aaed0 100644 --- a/components/script/dom/permissions.rs +++ b/components/script/dom/permissions.rs @@ -13,6 +13,7 @@ use dom::bluetoothpermissionresult::BluetoothPermissionResult; use dom::globalscope::GlobalScope; use dom::permissionstatus::PermissionStatus; use dom::promise::Promise; +use dom_struct::dom_struct; use js::conversions::ConversionResult; use js::jsapi::{JSContext, JSObject}; use js::jsval::{ObjectValue, UndefinedValue}; diff --git a/components/script/dom/permissionstatus.rs b/components/script/dom/permissionstatus.rs index 339d8228ecae6..27d353bf0ed1a 100644 --- a/components/script/dom/permissionstatus.rs +++ b/components/script/dom/permissionstatus.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use std::cell::Cell; use std::fmt::{self, Display, Formatter}; diff --git a/components/script/dom/plugin.rs b/components/script/dom/plugin.rs index 222e9a2840ade..8e3af814ec942 100644 --- a/components/script/dom/plugin.rs +++ b/components/script/dom/plugin.rs @@ -7,6 +7,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::Reflector; use dom::bindings::str::DOMString; use dom::mimetype::MimeType; +use dom_struct::dom_struct; #[dom_struct] pub struct Plugin { diff --git a/components/script/dom/pluginarray.rs b/components/script/dom/pluginarray.rs index fde760d793c35..b359c2b83689f 100644 --- a/components/script/dom/pluginarray.rs +++ b/components/script/dom/pluginarray.rs @@ -9,6 +9,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; use dom::plugin::Plugin; +use dom_struct::dom_struct; #[dom_struct] pub struct PluginArray { diff --git a/components/script/dom/popstateevent.rs b/components/script/dom/popstateevent.rs index 1282d847d7c61..a1b0ffc7f001c 100644 --- a/components/script/dom/popstateevent.rs +++ b/components/script/dom/popstateevent.rs @@ -13,6 +13,7 @@ use dom::bindings::str::DOMString; use dom::bindings::trace::RootedTraceableBox; use dom::event::Event; use dom::window::Window; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, JSContext}; use js::jsval::JSVal; use servo_atoms::Atom; diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs index 68efbd67cd243..31e6737a977e0 100644 --- a/components/script/dom/processinginstruction.rs +++ b/components/script/dom/processinginstruction.rs @@ -9,6 +9,7 @@ use dom::bindings::str::DOMString; use dom::characterdata::CharacterData; use dom::document::Document; use dom::node::Node; +use dom_struct::dom_struct; /// An HTML processing instruction node. #[dom_struct] diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs index b8d3d5ba9f742..e5ca1af2ae1b0 100644 --- a/components/script/dom/progressevent.rs +++ b/components/script/dom/progressevent.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use servo_atoms::Atom; #[dom_struct] diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs index a727e5049f5b2..34f2c2bc704ac 100644 --- a/components/script/dom/promise.rs +++ b/components/script/dom/promise.rs @@ -19,6 +19,7 @@ use dom::bindings::js::MutHeapJSVal; use dom::bindings::reflector::{DomObject, MutDomObject, Reflector}; use dom::globalscope::GlobalScope; use dom::promisenativehandler::PromiseNativeHandler; +use dom_struct::dom_struct; use js::conversions::ToJSValConvertible; use js::jsapi::{CallOriginalPromiseResolve, CallOriginalPromiseReject, CallOriginalPromiseThen}; use js::jsapi::{JSAutoCompartment, CallArgs, JS_GetFunctionObject, JS_NewFunction}; diff --git a/components/script/dom/promisenativehandler.rs b/components/script/dom/promisenativehandler.rs index b1c0ff3504cd9..59fe1d7425b95 100644 --- a/components/script/dom/promisenativehandler.rs +++ b/components/script/dom/promisenativehandler.rs @@ -7,6 +7,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::trace::JSTraceable; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use heapsize::HeapSizeOf; use js::jsapi::{JSContext, HandleValue}; diff --git a/components/script/dom/radionodelist.rs b/components/script/dom/radionodelist.rs index b8078aa6670b9..07f479c6ed49c 100644 --- a/components/script/dom/radionodelist.rs +++ b/components/script/dom/radionodelist.rs @@ -14,6 +14,7 @@ use dom::htmlinputelement::HTMLInputElement; use dom::node::Node; use dom::nodelist::{NodeList, NodeListType}; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct RadioNodeList { diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs index 65b4d1b8487b4..8a6de0bc4e6c8 100644 --- a/components/script/dom/range.rs +++ b/components/script/dom/range.rs @@ -26,6 +26,7 @@ use dom::htmlscriptelement::HTMLScriptElement; use dom::node::{Node, UnbindContext}; use dom::text::Text; use dom::window::Window; +use dom_struct::dom_struct; use heapsize::HeapSizeOf; use js::jsapi::JSTracer; use std::cell::{Cell, UnsafeCell}; diff --git a/components/script/dom/request.rs b/components/script/dom/request.rs index a81d9f767b6f1..fdd230fb095c0 100644 --- a/components/script/dom/request.rs +++ b/components/script/dom/request.rs @@ -25,6 +25,7 @@ use dom::globalscope::GlobalScope; use dom::headers::{Guard, Headers}; use dom::promise::Promise; use dom::xmlhttprequest::Extractable; +use dom_struct::dom_struct; use hyper::method::Method as HttpMethod; use net_traits::ReferrerPolicy as MsgReferrerPolicy; use net_traits::request::{Origin, Window}; diff --git a/components/script/dom/response.rs b/components/script/dom/response.rs index 1d9d62c079a19..089a8acca6c5c 100644 --- a/components/script/dom/response.rs +++ b/components/script/dom/response.rs @@ -18,6 +18,7 @@ use dom::headers::{Headers, Guard}; use dom::headers::{is_vchar, is_obs_text}; use dom::promise::Promise; use dom::xmlhttprequest::Extractable; +use dom_struct::dom_struct; use hyper::header::Headers as HyperHeaders; use hyper::status::StatusCode; use hyper_serde::Serde; diff --git a/components/script/dom/screen.rs b/components/script/dom/screen.rs index 2c9fe185de19e..80e5bf8d5c6fd 100644 --- a/components/script/dom/screen.rs +++ b/components/script/dom/screen.rs @@ -7,6 +7,7 @@ use dom::bindings::codegen::Bindings::ScreenBinding::ScreenMethods; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct Screen { diff --git a/components/script/dom/serviceworker.rs b/components/script/dom/serviceworker.rs index 91de2b1c107dd..b59c1da1afcb6 100644 --- a/components/script/dom/serviceworker.rs +++ b/components/script/dom/serviceworker.rs @@ -15,6 +15,7 @@ use dom::bindings::str::USVString; use dom::bindings::structuredclone::StructuredCloneData; use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{HandleValue, JSContext}; use script_thread::Runnable; use script_traits::{ScriptMsg, DOMMessage}; diff --git a/components/script/dom/serviceworkercontainer.rs b/components/script/dom/serviceworkercontainer.rs index 6757fc0179daa..ba2e327409f10 100644 --- a/components/script/dom/serviceworkercontainer.rs +++ b/components/script/dom/serviceworkercontainer.rs @@ -13,6 +13,7 @@ use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::promise::Promise; use dom::serviceworker::ServiceWorker; +use dom_struct::dom_struct; use script_thread::ScriptThread; use serviceworkerjob::{Job, JobType}; use std::ascii::AsciiExt; diff --git a/components/script/dom/serviceworkerglobalscope.rs b/components/script/dom/serviceworkerglobalscope.rs index 553b016f0f811..953a6ae83284d 100644 --- a/components/script/dom/serviceworkerglobalscope.rs +++ b/components/script/dom/serviceworkerglobalscope.rs @@ -18,6 +18,7 @@ use dom::extendableevent::ExtendableEvent; use dom::extendablemessageevent::ExtendableMessageEvent; use dom::globalscope::GlobalScope; use dom::workerglobalscope::WorkerGlobalScope; +use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcSender, IpcReceiver}; use ipc_channel::router::ROUTER; use js::jsapi::{JS_SetInterruptCallback, JSAutoCompartment, JSContext}; diff --git a/components/script/dom/serviceworkerregistration.rs b/components/script/dom/serviceworkerregistration.rs index 869c885567633..b296b62b6c5bf 100644 --- a/components/script/dom/serviceworkerregistration.rs +++ b/components/script/dom/serviceworkerregistration.rs @@ -11,6 +11,7 @@ use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::serviceworker::ServiceWorker; use dom::workerglobalscope::prepare_workerscope_init; +use dom_struct::dom_struct; use script_traits::{WorkerScriptLoadOrigin, ScopeThings}; use servo_url::ServoUrl; use std::cell::Cell; diff --git a/components/script/dom/servoparser/mod.rs b/components/script/dom/servoparser/mod.rs index 149957576a238..531f13274e632 100644 --- a/components/script/dom/servoparser/mod.rs +++ b/components/script/dom/servoparser/mod.rs @@ -22,6 +22,7 @@ use dom::htmlimageelement::HTMLImageElement; use dom::htmlscriptelement::{HTMLScriptElement, ScriptResult}; use dom::node::{Node, NodeSiblingIterator}; use dom::text::Text; +use dom_struct::dom_struct; use encoding::all::UTF_8; use encoding::types::{DecoderTrap, Encoding}; use html5ever::tokenizer::buffer_queue::BufferQueue; diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs index 605a862951b1b..ea4662dda2003 100644 --- a/components/script/dom/storage.rs +++ b/components/script/dom/storage.rs @@ -13,6 +13,7 @@ use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::storageevent::StorageEvent; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcSender}; use net_traits::IpcSend; use net_traits::storage_thread::{StorageThreadMsg, StorageType}; diff --git a/components/script/dom/storageevent.rs b/components/script/dom/storageevent.rs index ff2d6bb8aafbf..b0cab81eb7b9e 100644 --- a/components/script/dom/storageevent.rs +++ b/components/script/dom/storageevent.rs @@ -13,6 +13,7 @@ use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::storage::Storage; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; #[dom_struct] diff --git a/components/script/dom/stylesheet.rs b/components/script/dom/stylesheet.rs index 91a6b186f27cd..bf4b1c562e3d7 100644 --- a/components/script/dom/stylesheet.rs +++ b/components/script/dom/stylesheet.rs @@ -10,6 +10,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::cssstylesheet::CSSStyleSheet; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct StyleSheet { diff --git a/components/script/dom/stylesheetlist.rs b/components/script/dom/stylesheetlist.rs index b028e7f2b73cf..25d95ae3986b6 100644 --- a/components/script/dom/stylesheetlist.rs +++ b/components/script/dom/stylesheetlist.rs @@ -9,6 +9,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::document::Document; use dom::stylesheet::StyleSheet; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct StyleSheetList { diff --git a/components/script/dom/svgelement.rs b/components/script/dom/svgelement.rs index 3a18f965ecc91..1a0654ed3123f 100644 --- a/components/script/dom/svgelement.rs +++ b/components/script/dom/svgelement.rs @@ -7,6 +7,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::element::Element; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::element_state::ElementState; diff --git a/components/script/dom/svggraphicselement.rs b/components/script/dom/svggraphicselement.rs index b8e8aced37181..f41768f981515 100644 --- a/components/script/dom/svggraphicselement.rs +++ b/components/script/dom/svggraphicselement.rs @@ -7,6 +7,7 @@ use dom::bindings::str::DOMString; use dom::document::Document; use dom::svgelement::SVGElement; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use style::element_state::ElementState; diff --git a/components/script/dom/svgsvgelement.rs b/components/script/dom/svgsvgelement.rs index e872fc25c8e0d..7c7d85f17b048 100644 --- a/components/script/dom/svgsvgelement.rs +++ b/components/script/dom/svgsvgelement.rs @@ -12,6 +12,7 @@ use dom::element::{AttributeMutation, Element, RawLayoutElementHelpers}; use dom::node::Node; use dom::svggraphicselement::SVGGraphicsElement; use dom::virtualmethods::VirtualMethods; +use dom_struct::dom_struct; use html5ever_atoms::LocalName; use script_layout_interface::SVGSVGData; use style::attr::AttrValue; diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs index d9defc5377076..e03cc0bd3de55 100644 --- a/components/script/dom/testbinding.rs +++ b/components/script/dom/testbinding.rs @@ -34,6 +34,7 @@ use dom::globalscope::GlobalScope; use dom::promise::Promise; use dom::promisenativehandler::{PromiseNativeHandler, Callback}; use dom::url::URL; +use dom_struct::dom_struct; use js::jsapi::{HandleObject, HandleValue, Heap, JSContext, JSObject, JSAutoCompartment}; use js::jsapi::{JS_NewPlainObject, JS_NewUint8ClampedArray}; use js::jsval::{JSVal, NullValue}; diff --git a/components/script/dom/testbindingiterable.rs b/components/script/dom/testbindingiterable.rs index 100457051924a..d89d7345f9122 100644 --- a/components/script/dom/testbindingiterable.rs +++ b/components/script/dom/testbindingiterable.rs @@ -11,6 +11,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; #[dom_struct] pub struct TestBindingIterable { diff --git a/components/script/dom/testbindingpairiterable.rs b/components/script/dom/testbindingpairiterable.rs index f536459c1e997..c31d0e34fb526 100644 --- a/components/script/dom/testbindingpairiterable.rs +++ b/components/script/dom/testbindingpairiterable.rs @@ -13,6 +13,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; #[dom_struct] pub struct TestBindingPairIterable { diff --git a/components/script/dom/testbindingproxy.rs b/components/script/dom/testbindingproxy.rs index 45e66bc5919ab..c6ff2bca3afb0 100644 --- a/components/script/dom/testbindingproxy.rs +++ b/components/script/dom/testbindingproxy.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::TestBindingProxyBinding::TestBindingProxyMethods; use dom::bindings::reflector::Reflector; use dom::bindings::str::DOMString; - +use dom_struct::dom_struct; #[dom_struct] pub struct TestBindingProxy { diff --git a/components/script/dom/testrunner.rs b/components/script/dom/testrunner.rs index 0e3b9e11a5fb1..1783fce722383 100644 --- a/components/script/dom/testrunner.rs +++ b/components/script/dom/testrunner.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use ipc_channel::ipc::{self, IpcSender}; // https://webbluetoothcg.github.io/web-bluetooth/tests#test-runner diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index cfa670d9acb94..dd2a85ec63fb7 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -16,6 +16,7 @@ use dom::characterdata::CharacterData; use dom::document::Document; use dom::node::Node; use dom::window::Window; +use dom_struct::dom_struct; /// An HTML text node. #[dom_struct] diff --git a/components/script/dom/textdecoder.rs b/components/script/dom/textdecoder.rs index 1c3ba6cf082f2..e1b1edc10480f 100644 --- a/components/script/dom/textdecoder.rs +++ b/components/script/dom/textdecoder.rs @@ -9,6 +9,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{DOMString, USVString}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use encoding::label::encoding_from_whatwg_label; use encoding::types::{DecoderTrap, EncodingRef}; use js::jsapi::{JSContext, JSObject}; diff --git a/components/script/dom/textencoder.rs b/components/script/dom/textencoder.rs index 03e6f4882e6dd..765c95ade0be6 100644 --- a/components/script/dom/textencoder.rs +++ b/components/script/dom/textencoder.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{DOMString, USVString}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use encoding::EncoderTrap; use encoding::Encoding; use encoding::all::UTF_8; diff --git a/components/script/dom/touch.rs b/components/script/dom/touch.rs index 9b4e61788d38c..3ebfd17af1250 100644 --- a/components/script/dom/touch.rs +++ b/components/script/dom/touch.rs @@ -9,6 +9,7 @@ use dom::bindings::num::Finite; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::eventtarget::EventTarget; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct Touch { diff --git a/components/script/dom/touchevent.rs b/components/script/dom/touchevent.rs index f20dc4dc01298..30044094fcdf4 100644 --- a/components/script/dom/touchevent.rs +++ b/components/script/dom/touchevent.rs @@ -13,6 +13,7 @@ use dom::event::{EventBubbles, EventCancelable}; use dom::touchlist::TouchList; use dom::uievent::UIEvent; use dom::window::Window; +use dom_struct::dom_struct; use std::cell::Cell; #[dom_struct] diff --git a/components/script/dom/touchlist.rs b/components/script/dom/touchlist.rs index a4ff7f8443ef1..829b6f0d5a6d7 100644 --- a/components/script/dom/touchlist.rs +++ b/components/script/dom/touchlist.rs @@ -8,6 +8,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::touch::Touch; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct TouchList { diff --git a/components/script/dom/transitionevent.rs b/components/script/dom/transitionevent.rs index 4630ec70bc0bc..28aec7097f886 100644 --- a/components/script/dom/transitionevent.rs +++ b/components/script/dom/transitionevent.rs @@ -13,6 +13,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::Event; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; #[dom_struct] diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs index 6dba79e893b19..24925b9f0d964 100644 --- a/components/script/dom/treewalker.rs +++ b/components/script/dom/treewalker.rs @@ -14,6 +14,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::document::Document; use dom::node::Node; +use dom_struct::dom_struct; use std::rc::Rc; // https://dom.spec.whatwg.org/#interface-treewalker diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs index b8c09a48994fb..f3f77953c2925 100644 --- a/components/script/dom/uievent.rs +++ b/components/script/dom/uievent.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; use std::cell::Cell; use std::default::Default; diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs index e85225b04d53a..5cf2e867149ab 100644 --- a/components/script/dom/url.rs +++ b/components/script/dom/url.rs @@ -13,6 +13,7 @@ use dom::blob::Blob; use dom::globalscope::GlobalScope; use dom::urlhelper::UrlHelper; use dom::urlsearchparams::URLSearchParams; +use dom_struct::dom_struct; use ipc_channel::ipc; use net_traits::{CoreResourceMsg, IpcSend}; use net_traits::blob_url_store::{get_blob_origin, parse_blob_url}; diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index b6ecd069b8cd7..58391d6515164 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -14,6 +14,7 @@ use dom::bindings::str::{DOMString, USVString}; use dom::bindings::weakref::MutableWeakRef; use dom::globalscope::GlobalScope; use dom::url::URL; +use dom_struct::dom_struct; use encoding::types::EncodingRef; use url::form_urlencoded; diff --git a/components/script/dom/validitystate.rs b/components/script/dom/validitystate.rs index f5b6501a82d6f..879438aa38934 100755 --- a/components/script/dom/validitystate.rs +++ b/components/script/dom/validitystate.rs @@ -8,6 +8,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::element::Element; use dom::window::Window; +use dom_struct::dom_struct; // https://html.spec.whatwg.org/multipage/#validity-states #[derive(JSTraceable, HeapSizeOf)] diff --git a/components/script/dom/vr.rs b/components/script/dom/vr.rs index 6e077c415acd3..aea8230ac0ebf 100644 --- a/components/script/dom/vr.rs +++ b/components/script/dom/vr.rs @@ -15,6 +15,7 @@ use dom::globalscope::GlobalScope; use dom::promise::Promise; use dom::vrdisplay::VRDisplay; use dom::vrdisplayevent::VRDisplayEvent; +use dom_struct::dom_struct; use ipc_channel::ipc; use ipc_channel::ipc::IpcSender; use script_traits::WebVREventMsg; diff --git a/components/script/dom/vrdisplay.rs b/components/script/dom/vrdisplay.rs index bb7d181146460..b977e1d3f6a55 100644 --- a/components/script/dom/vrdisplay.rs +++ b/components/script/dom/vrdisplay.rs @@ -30,6 +30,7 @@ use dom::vrframedata::VRFrameData; use dom::vrpose::VRPose; use dom::vrstageparameters::VRStageParameters; use dom::webglrenderingcontext::WebGLRenderingContext; +use dom_struct::dom_struct; use ipc_channel::ipc; use ipc_channel::ipc::{IpcSender, IpcReceiver}; use js::jsapi::JSContext; diff --git a/components/script/dom/vrdisplaycapabilities.rs b/components/script/dom/vrdisplaycapabilities.rs index 0b131f8ffd3ce..349fd27214069 100644 --- a/components/script/dom/vrdisplaycapabilities.rs +++ b/components/script/dom/vrdisplaycapabilities.rs @@ -8,6 +8,7 @@ use dom::bindings::codegen::Bindings::VRDisplayCapabilitiesBinding::VRDisplayCap use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use webvr_traits::WebVRDisplayCapabilities; #[dom_struct] diff --git a/components/script/dom/vrdisplayevent.rs b/components/script/dom/vrdisplayevent.rs index b6257464e5346..956229ead4c19 100644 --- a/components/script/dom/vrdisplayevent.rs +++ b/components/script/dom/vrdisplayevent.rs @@ -15,6 +15,7 @@ use dom::event::Event; use dom::globalscope::GlobalScope; use dom::vrdisplay::VRDisplay; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; use webvr_traits::{WebVRDisplayEvent, WebVRDisplayEventReason}; diff --git a/components/script/dom/vreyeparameters.rs b/components/script/dom/vreyeparameters.rs index 5fb835edb0f2b..0c429fee78a73 100644 --- a/components/script/dom/vreyeparameters.rs +++ b/components/script/dom/vreyeparameters.rs @@ -10,6 +10,7 @@ use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; use dom::vrfieldofview::VRFieldOfView; +use dom_struct::dom_struct; use js::jsapi::{Heap, JSContext, JSObject}; use js::typedarray::{Float32Array, CreateWith}; use std::default::Default; diff --git a/components/script/dom/vrfieldofview.rs b/components/script/dom/vrfieldofview.rs index 5103e1ec7814e..80a2f767d81e5 100644 --- a/components/script/dom/vrfieldofview.rs +++ b/components/script/dom/vrfieldofview.rs @@ -9,6 +9,7 @@ use dom::bindings::js::Root; use dom::bindings::num::Finite; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use webvr_traits::WebVRFieldOfView; #[dom_struct] diff --git a/components/script/dom/vrframedata.rs b/components/script/dom/vrframedata.rs index 65c9f5d7df441..5b153a2a43ecb 100644 --- a/components/script/dom/vrframedata.rs +++ b/components/script/dom/vrframedata.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; use dom::vrpose::VRPose; use dom::window::Window; +use dom_struct::dom_struct; use js::jsapi::{Heap, JSContext, JSObject}; use js::typedarray::{Float32Array, CreateWith}; use std::cell::Cell; diff --git a/components/script/dom/vrpose.rs b/components/script/dom/vrpose.rs index 96fa0597a3ab2..542059ca799f6 100644 --- a/components/script/dom/vrpose.rs +++ b/components/script/dom/vrpose.rs @@ -8,6 +8,7 @@ use dom::bindings::codegen::Bindings::VRPoseBinding::VRPoseMethods; use dom::bindings::js::Root; use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{Heap, JSContext, JSObject}; use js::typedarray::{Float32Array, CreateWith}; use std::ptr; diff --git a/components/script/dom/vrstageparameters.rs b/components/script/dom/vrstageparameters.rs index 35faa0bde35ba..0bc319466c32b 100644 --- a/components/script/dom/vrstageparameters.rs +++ b/components/script/dom/vrstageparameters.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::num::Finite; use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::globalscope::GlobalScope; +use dom_struct::dom_struct; use js::jsapi::{Heap, JSContext, JSObject}; use js::typedarray::{Float32Array, CreateWith}; use webvr_traits::WebVRStageParameters; diff --git a/components/script/dom/webglactiveinfo.rs b/components/script/dom/webglactiveinfo.rs index 515d6afa4a0f2..359a772a2683a 100644 --- a/components/script/dom/webglactiveinfo.rs +++ b/components/script/dom/webglactiveinfo.rs @@ -9,6 +9,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::DOMString; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct WebGLActiveInfo { diff --git a/components/script/dom/webglbuffer.rs b/components/script/dom/webglbuffer.rs index 752511df67a3f..6678b3d0b92ca 100644 --- a/components/script/dom/webglbuffer.rs +++ b/components/script/dom/webglbuffer.rs @@ -9,6 +9,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::webglobject::WebGLObject; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use std::cell::Cell; use webrender_traits; diff --git a/components/script/dom/webglcontextevent.rs b/components/script/dom/webglcontextevent.rs index 9d13fc8f64af3..ce569ee8cbc5b 100644 --- a/components/script/dom/webglcontextevent.rs +++ b/components/script/dom/webglcontextevent.rs @@ -13,6 +13,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::event::{Event, EventBubbles, EventCancelable}; use dom::window::Window; +use dom_struct::dom_struct; use servo_atoms::Atom; #[dom_struct] diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs index 2f18362122de1..8d2c0f7b89ca6 100644 --- a/components/script/dom/webglframebuffer.rs +++ b/components/script/dom/webglframebuffer.rs @@ -13,6 +13,7 @@ use dom::webglobject::WebGLObject; use dom::webglrenderbuffer::WebGLRenderbuffer; use dom::webgltexture::WebGLTexture; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use std::cell::Cell; use webrender_traits; diff --git a/components/script/dom/webglobject.rs b/components/script/dom/webglobject.rs index 3ebbf8fb0170d..123420b7cb0cc 100644 --- a/components/script/dom/webglobject.rs +++ b/components/script/dom/webglobject.rs @@ -4,6 +4,7 @@ // https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl use dom::bindings::reflector::Reflector; +use dom_struct::dom_struct; #[dom_struct] pub struct WebGLObject { diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs index ad33fc2f22f27..3b2710a5d91b2 100644 --- a/components/script/dom/webglprogram.rs +++ b/components/script/dom/webglprogram.rs @@ -14,6 +14,7 @@ use dom::webglobject::WebGLObject; use dom::webglrenderingcontext::MAX_UNIFORM_AND_ATTRIBUTE_LEN; use dom::webglshader::WebGLShader; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use std::cell::Cell; use webrender_traits; diff --git a/components/script/dom/webglrenderbuffer.rs b/components/script/dom/webglrenderbuffer.rs index b9d36f33d1c9c..7094a6b373416 100644 --- a/components/script/dom/webglrenderbuffer.rs +++ b/components/script/dom/webglrenderbuffer.rs @@ -10,6 +10,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::webglobject::WebGLObject; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use std::cell::Cell; use webrender_traits; diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 7844b53aac350..5261b96d1c5e4 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -34,6 +34,7 @@ use dom::webglshader::WebGLShader; use dom::webgltexture::{TexParameterValue, WebGLTexture}; use dom::webgluniformlocation::WebGLUniformLocation; use dom::window::Window; +use dom_struct::dom_struct; use euclid::size::Size2D; use ipc_channel::ipc::{self, IpcSender}; use js::conversions::ConversionBehavior; diff --git a/components/script/dom/webglshader.rs b/components/script/dom/webglshader.rs index d846ac34aa7e1..1526b5303f794 100644 --- a/components/script/dom/webglshader.rs +++ b/components/script/dom/webglshader.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::DOMString; use dom::webglobject::WebGLObject; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use std::cell::Cell; use std::sync::{ONCE_INIT, Once}; diff --git a/components/script/dom/webglshaderprecisionformat.rs b/components/script/dom/webglshaderprecisionformat.rs index 87ab7490e3a53..10a76b73fe1b9 100644 --- a/components/script/dom/webglshaderprecisionformat.rs +++ b/components/script/dom/webglshaderprecisionformat.rs @@ -10,6 +10,7 @@ use dom::bindings::codegen::Bindings::WebGLShaderPrecisionFormatBinding::WebGLSh use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::window::Window; +use dom_struct::dom_struct; #[dom_struct] pub struct WebGLShaderPrecisionFormat { diff --git a/components/script/dom/webgltexture.rs b/components/script/dom/webgltexture.rs index ad20a127e1726..d88f955a86244 100644 --- a/components/script/dom/webgltexture.rs +++ b/components/script/dom/webgltexture.rs @@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object; use dom::webgl_validations::types::{TexImageTarget, TexFormat, TexDataType}; use dom::webglobject::WebGLObject; use dom::window::Window; +use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; use std::cell::Cell; use std::cmp; diff --git a/components/script/dom/webgluniformlocation.rs b/components/script/dom/webgluniformlocation.rs index 1b355bd858214..d76ab91ee5d5c 100644 --- a/components/script/dom/webgluniformlocation.rs +++ b/components/script/dom/webgluniformlocation.rs @@ -7,6 +7,7 @@ use dom::bindings::codegen::Bindings::WebGLUniformLocationBinding; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::window::Window; +use dom_struct::dom_struct; use webrender_traits::WebGLProgramId; #[dom_struct] diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 7c02123f33da0..134cc9c3975b1 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -22,6 +22,7 @@ use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::messageevent::MessageEvent; use dom::urlhelper::UrlHelper; +use dom_struct::dom_struct; use hyper; use hyper_serde::Serde; use ipc_channel::ipc::{self, IpcReceiver, IpcSender}; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 93cdd1c31d052..6bbf84831dd53 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -48,6 +48,7 @@ use dom::promise::Promise; use dom::screen::Screen; use dom::storage::Storage; use dom::testrunner::TestRunner; +use dom_struct::dom_struct; use euclid::{Point2D, Rect, Size2D}; use fetch; use gfx_traits::ScrollRootId; diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index 18b3a441d6848..1fb354189e333 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -22,6 +22,7 @@ use dom::eventtarget::EventTarget; use dom::globalscope::GlobalScope; use dom::messageevent::MessageEvent; use dom::workerglobalscope::prepare_workerscope_init; +use dom_struct::dom_struct; use ipc_channel::ipc; use js::jsapi::{HandleValue, JSAutoCompartment, JSContext, NullHandleValue}; use js::jsval::UndefinedValue; diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 03e531c5f16f9..948d72c251b8e 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -23,6 +23,7 @@ use dom::serviceworkerglobalscope::ServiceWorkerGlobalScope; use dom::window::{base64_atob, base64_btoa}; use dom::workerlocation::WorkerLocation; use dom::workernavigator::WorkerNavigator; +use dom_struct::dom_struct; use fetch; use ipc_channel::ipc::IpcSender; use js::jsapi::{HandleValue, JSAutoCompartment, JSContext, JSRuntime}; diff --git a/components/script/dom/workerlocation.rs b/components/script/dom/workerlocation.rs index aee4233046354..f52e0efb69a10 100644 --- a/components/script/dom/workerlocation.rs +++ b/components/script/dom/workerlocation.rs @@ -9,6 +9,7 @@ use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::str::{DOMString, USVString}; use dom::urlhelper::UrlHelper; use dom::workerglobalscope::WorkerGlobalScope; +use dom_struct::dom_struct; use servo_url::ServoUrl; // https://html.spec.whatwg.org/multipage/#worker-locations diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs index d2a5a7da7d598..dafa3325b3883 100644 --- a/components/script/dom/workernavigator.rs +++ b/components/script/dom/workernavigator.rs @@ -10,6 +10,7 @@ use dom::bindings::str::DOMString; use dom::navigatorinfo; use dom::permissions::Permissions; use dom::workerglobalscope::WorkerGlobalScope; +use dom_struct::dom_struct; // https://html.spec.whatwg.org/multipage/#workernavigator #[dom_struct] diff --git a/components/script/dom/xmldocument.rs b/components/script/dom/xmldocument.rs index c832e018360ef..59c6739fb2d8f 100644 --- a/components/script/dom/xmldocument.rs +++ b/components/script/dom/xmldocument.rs @@ -14,6 +14,7 @@ use dom::document::{Document, DocumentSource, HasBrowsingContext, IsHTMLDocument use dom::location::Location; use dom::node::Node; use dom::window::Window; +use dom_struct::dom_struct; use js::jsapi::{JSContext, JSObject}; use script_traits::DocumentActivity; use servo_url::{MutableOrigin, ServoUrl}; diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index c5c3c63512940..e96fa2a44431f 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -36,6 +36,7 @@ use dom::window::Window; use dom::workerglobalscope::WorkerGlobalScope; use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget; use dom::xmlhttprequestupload::XMLHttpRequestUpload; +use dom_struct::dom_struct; use encoding::all::UTF_8; use encoding::label::encoding_from_whatwg_label; use encoding::types::{DecoderTrap, EncoderTrap, Encoding, EncodingRef}; diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs index cdbc7a29df832..399b2f65945f8 100644 --- a/components/script/dom/xmlhttprequesteventtarget.rs +++ b/components/script/dom/xmlhttprequesteventtarget.rs @@ -5,6 +5,7 @@ use dom::bindings::codegen::Bindings::EventHandlerBinding::EventHandlerNonNull; use dom::bindings::codegen::Bindings::XMLHttpRequestEventTargetBinding::XMLHttpRequestEventTargetMethods; use dom::eventtarget::EventTarget; +use dom_struct::dom_struct; #[dom_struct] pub struct XMLHttpRequestEventTarget { diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs index 6c53fe15eca78..02a54001388e9 100644 --- a/components/script/dom/xmlhttprequestupload.rs +++ b/components/script/dom/xmlhttprequestupload.rs @@ -7,6 +7,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::globalscope::GlobalScope; use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget; +use dom_struct::dom_struct; #[dom_struct] pub struct XMLHttpRequestUpload { diff --git a/components/script/lib.rs b/components/script/lib.rs index 9d3abf169b983..bc754bd870a62 100644 --- a/components/script/lib.rs +++ b/components/script/lib.rs @@ -11,6 +11,7 @@ #![feature(on_unimplemented)] #![feature(optin_builtin_traits)] #![feature(plugin)] +#![feature(proc_macro)] #![feature(slice_patterns)] #![feature(stmt_expr_attributes)] #![feature(try_from)] @@ -40,6 +41,7 @@ extern crate cssparser; #[macro_use] extern crate deny_public_fields; extern crate devtools_traits; +extern crate dom_struct; #[macro_use] extern crate domobject_derive; extern crate encoding; diff --git a/components/script_plugins/jstraceable.rs b/components/script_plugins/jstraceable.rs deleted file mode 100644 index 071a0b54fdc55..0000000000000 --- a/components/script_plugins/jstraceable.rs +++ /dev/null @@ -1,24 +0,0 @@ -/* 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::ast::MetaItem; -use syntax::codemap::Span; -use syntax::ext::base::{Annotatable, ExtCtxt}; -use syntax::ptr::P; - -pub fn expand_dom_struct(cx: &mut ExtCtxt, sp: Span, _: &MetaItem, anno: Annotatable) -> Annotatable { - if let Annotatable::Item(item) = anno { - let mut item2 = (*item).clone(); - item2.attrs.push(quote_attr!(cx, #[must_root])); - item2.attrs.push(quote_attr!(cx, #[repr(C)])); - item2.attrs.push(quote_attr!(cx, #[derive(JSTraceable)])); - item2.attrs.push(quote_attr!(cx, #[derive(HeapSizeOf)])); - item2.attrs.push(quote_attr!(cx, #[derive(DenyPublicFields)])); - item2.attrs.push(quote_attr!(cx, #[derive(DomObject)])); - Annotatable::Item(P(item2)) - } else { - cx.span_err(sp, "#[dom_struct] applied to something other than a struct"); - anno - } -} diff --git a/components/script_plugins/lib.rs b/components/script_plugins/lib.rs index 79aa5a4752de5..3b89106f0643a 100644 --- a/components/script_plugins/lib.rs +++ b/components/script_plugins/lib.rs @@ -15,7 +15,7 @@ #![deny(unsafe_code)] -#![feature(box_syntax, plugin, plugin_registrar, quote, rustc_private, slice_patterns)] +#![feature(box_syntax, plugin, plugin_registrar, rustc_private, slice_patterns)] #[macro_use] extern crate rustc; @@ -23,24 +23,15 @@ extern crate rustc_plugin; extern crate syntax; use rustc_plugin::Registry; -use syntax::ext::base::*; use syntax::feature_gate::AttributeType::Whitelisted; -use syntax::symbol::Symbol; mod ban; -// Public for documentation to show up -/// Handles the auto-deriving for `#[derive(JSTraceable)]` -pub mod jstraceable; mod unrooted_must_root; /// Utilities for writing plugins mod utils; #[plugin_registrar] pub fn plugin_registrar(reg: &mut Registry) { - reg.register_syntax_extension( - Symbol::intern("dom_struct"), - MultiModifier(box jstraceable::expand_dom_struct)); - reg.register_late_lint_pass(box unrooted_must_root::UnrootedPass::new()); reg.register_early_lint_pass(box ban::BanPass); reg.register_attribute("allow_unrooted_interior".to_string(), Whitelisted);