diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2017-02-21 11:27:05 +0100 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2017-02-24 01:50:51 +0100 |
commit | 31e9d81c0f8fdfa4bb8ab27fda804b8d424e5378 (patch) | |
tree | 2a60d1308916da48c5c3958572865f48f03c60e3 | |
parent | 64885c4213c97c818f37026c7071975f299466fb (diff) | |
download | servo-31e9d81c0f8fdfa4bb8ab27fda804b8d424e5378.tar.gz servo-31e9d81c0f8fdfa4bb8ab27fda804b8d424e5378.zip |
Make #[dom_struct] a proc_macro attribute
251 files changed, 298 insertions, 35 deletions
diff --git a/Cargo.lock b/Cargo.lock index 2c395502984..713f04581af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -630,6 +630,13 @@ dependencies = [ ] [[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" dependencies = [ @@ -2204,6 +2211,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 00000000000..e63689de003 --- /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 00000000000..f74427789db --- /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 eb737dfb2b6..3e2cdcdca7d 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 e2ca71dad8b..e5549a61063 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 29c3279ad08..55f2adcfdb6 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 3787bb5b62d..f0b152e0fdd 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 f10bd320b85..845ecbaa8cd 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 06ec986386c..e4e623d799d 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 18ac71ad843..3c3b88a27ac 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 cc65aa4cd96..604a1c82025 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 ccb5a37a6a8..a477c130a2d 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 d33aab9be97..ff11d8130b3 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 4f228e6c75c..da5de4bf5b1 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 81210e4b170..d6a39c154e3 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 c0ddd6dabe5..c9e24c499be 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 cd90b854907..4a67e03e984 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 9b0ce5a3a3d..347604df311 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 e16d8141e50..a4ef66568a6 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 5e523d6982a..77c6eac2941 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 6491148e5aa..994582f509b 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 5fdb911c73a..6a6d6789918 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 065b966d939..6a84c781b23 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 a2c456317dc..be4fc4d0ac1 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 d9d43ce7e01..7910ffc8dfa 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 a4ad9893d80..f052c0eff44 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 9efe8c8164c..ad512132698 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 0067dd1c51a..fc71faa660a 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 bf264f14322..e24b3657775 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 dace5f612c7..02c52bcf28f 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 61234f8846a..b9ef949c1b7 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 b793b04b28c..ec608b2bc77 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 582a6f597f9..6ef354ec43e 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 db0a88edc6f..0f620bdc764 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 1c94e0e99fb..977c953265c 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 438b390aea5..31923cb29dd 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 5f451d3b798..51f60fafd08 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 4fa4041a8d7..277d7323a21 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 f667638b022..0b6351d237c 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 12bf4386433..a2a77125a97 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 5bd40dbe88c..3c4c8c815d1 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 d0f6ed869c3..f8397a732c2 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 3e52fa3afc5..7b1e77a6c8f 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 25ca1b292c8..c784a26f442 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 f11f2643dad..dd9c1001593 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 03e3cebe5e1..14dd070f44d 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 6f5eda8c402..b4cd2d84e5d 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 518adb0f341..9867e642906 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 4b693f0448d..a14a809e785 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 554fb8fe3b3..6f2a123dd06 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 c48805eed79..2b03ce2e07b 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 7428a986c48..628ae5ceed5 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 1de0a24863b..e0f9d69a45a 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 dbe7a27516c..eb33d42efcf 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 978fa96ce6b..4f6331e0dd7 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 67d16934c66..4af6ebf8c60 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 2f77f77c2c1..0a2ed9cec5d 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 9da4e27a984..7180207c930 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 37d0b342818..8c665731f84 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 78e1b2db22e..3201e6c49ef 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 392aa18997e..a7d99b99448 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 ef0c7ce2c67..f5e08a4fcb7 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 dd4384d5a28..d529ca25cf8 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 95f42d12460..28266709f67 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 0c681f9759c..47177172895 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 37197b6125a..58bd2e38398 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 2d3c2afe460..d6ba1d85109 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 cedaa8fd39b..7945eec0b7d 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 57eedd8e333..f45942f0f05 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 0a7db40b6d5..8cc88706fb1 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 dd0360cb408..49c461083f2 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 dba94a85e50..6cf144d10e0 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 e3654b752dc..3a5acc41235 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 0c303010656..53493dbd167 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 875843ea0c6..744625474cd 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 6ffed30e857..eae3920dae0 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 9e1c5cfcd91..cf5c622d8e8 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 58b548aa475..2b8ca8f4d46 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 cc42ef18d06..2b4d3fc6886 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 cd4b2b0a71f..4505d79f440 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 02262dbb475..ac5b332b51b 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 1a971eae009..0e1aea4bf10 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 91ebadbd0f2..53aeb9a6bff 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 081172031a3..73de3061cfe 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 7b86a61a773..724deb2bdcd 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 66c5b2b2fca..bb8b12f06d6 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 0db9b5398dd..fe34e6d77f0 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 ea9b1775787..ef2855fa512 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 498013fc6c8..ebe6ed43706 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 f266f0236c5..56a614cf608 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 a51463f4674..dbbf695b2d4 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 eacffd6cded..4e05de86922 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 dcd15f9261a..8dc53d9860b 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 616bcd80792..48c39c500ed 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 8df0f1a62fb..1937c8f09b6 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 80ee9499a9f..37b38ed82dc 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 bd40c508ffe..aa24adcfacf 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 ba738ca75e2..e4d8bf669ef 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 db319c37458..6da79f5d5c8 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 9caa85225ef..ade0b7307d1 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 0c4610f0948..9d88e7d7c12 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 4168659b741..19dbc8d4f1b 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 80a0266595c..8644544cdfe 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 1009e5f1142..a90e2dd48ee 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 b403b1389a8..67d80acdcab 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 919c460dee5..e36bfc95310 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 c2c95ea58c7..d6fba77cb08 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 fc6e888d015..7e05ac3d45c 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 edfd894c51e..f820b8ba90f 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 939e389e81f..f1d5774dbe9 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 d79fbadcae2..924b55650ee 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 4ab82735384..b01edf0c4ed 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 af98b013410..8f7497c55ac 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 7e0eddae26d..f2e9f983300 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 5d954cfc5dd..02345ad1f20 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 0b9cbf3992c..f05ec6bfd3b 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 4d17eb9376d..aef80a52311 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 20e560e93ad..b4f90b89b85 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 8ef091b0762..c6bcb615431 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 fd327404b4d..fc036ee35cc 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 cf9d078e39f..a751486de7d 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 e323af1485b..b57951270a4 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 6cd63d24505..7724640642c 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 d04f989ce5e..6352ea5c862 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 19c731bdc0a..a36e97404e4 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 583c32337db..13a68d7ff41 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 d1576d532e3..e54b9b563e4 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 be7031ab8d0..42d6aebde35 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 16af40f12cc..6f3154057ea 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 f3976d8d202..1a7936352bc 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 d27a85bc8bd..103faa0a641 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 cfe9de10999..7d3575d1eae 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 258527ac368..fe8eb2775e9 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 72e0329fe17..de3e473434b 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 8703a45ea82..f13c0224b1a 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 84c3aa89927..1f4a8f029b0 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 a5c93ba2b8f..2b15fabd789 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 cc8127d651a..1437d1dbb08 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 285c8af3087..f9c6412f854 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 e6ced76b973..fd6c06643dd 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 4a6ca5ca9b1..ef4bffba5d7 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 cad7ecffbcd..00f618ed65f 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 da723fe10e1..77808c77d79 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 741b53c38ac..56e9876b753 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 c24c68479c8..a471faee00f 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 c6b04648dc2..be1b636beb4 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 2f5fcaca566..cf9be4b81b4 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 1c9b2c0aacd..8e54ae63523 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 c6fd4d6b170..e7db7565adf 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 c5286dd685f..2c559a30cc5 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 6dde6a6203b..43208399fb6 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 4c4263aa949..97811ee5a10 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 211b77bb8b6..4153709e108 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 22930a32d78..d54025de852 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 940888c3466..1a0d93dacf8 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 4de2e9ced92..33863cde2b6 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 38a25d4dc1e..33b044085a2 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 cc2c064f4b8..d06ec02d4a2 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 b7b7a800989..ff158333473 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 b6e5fd9c1ee..806946f6356 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 486f9f64fd3..dafc7602794 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 js::jsapi::JSTracer; use std::cell::Cell; use std::rc::Rc; diff --git a/components/script/dom/mediaquerylistevent.rs b/components/script/dom/mediaquerylistevent.rs index 8edd2fa3ab2..18be8b1d1b5 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 3df960d0882..0bbeeb05cd7 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 94262de5c26..daa49908408 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 e0dd8090f8f..4bc33e9b237 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 3b0e3fb1710..f19c37df868 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 148822cabb2..273b87c8d00 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 27a1465e9d2..118f53ac49b 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 96d3fceaff5..fce1ce4826d 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 920d94d635c..91b590a3647 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 21e05fc7dcc..5c0983ccaa3 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 e76a6444d4c..3757bece84a 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 3852a49b28c..7ce0cd7d1eb 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<f64>; diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs index 02cb9c0b212..37001f5d15f 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 87d333f5bac..4133eec4aae 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 339d8228eca..27d353bf0ed 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 222e9a2840a..8e3af814ec9 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 fde760d793c..b359c2b8368 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 1282d847d7c..a1b0ffc7f00 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 68efbd67cd2..31e6737a977 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 b8d3d5ba9f7..e5ca1af2ae1 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 a727e5049f5..34f2c2bc704 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 b1c0ff3504c..59fe1d7425b 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 b8078aa6670..07f479c6ed4 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 65b4d1b8487..8a6de0bc4e6 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 a81d9f767b6..fdd230fb095 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 1d9d62c079a..089a8acca6c 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 2c9fe185de1..80e5bf8d5c6 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 91de2b1c107..b59c1da1afc 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 6757fc0179d..ba2e327409f 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 553b016f0f8..953a6ae8328 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 869c8855676..b296b62b6c5 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 149957576a2..531f13274e6 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 605a862951b..ea4662dda20 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 ff2d6bb8aaf..b0cab81eb7b 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 91a6b186f27..bf4b1c562e3 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 b028e7f2b73..25d95ae3986 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 3a18f965ecc..1a0654ed312 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 b8e8aced371..f41768f9815 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 e872fc25c8e..7c7d85f17b0 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 d9defc53770..e03cc0bd3de 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 10045705192..d89d7345f91 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 f536459c1e9..c31d0e34fb5 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 45e66bc5919..c6ff2bca3af 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 0e3b9e11a5f..1783fce7223 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 cfa670d9acb..dd2a85ec63f 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 1c3ba6cf082..e1b1edc1048 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 03e6f4882e6..765c95ade0b 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 9b4e61788d3..3ebfd17af12 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 f20dc4dc012..30044094fcd 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 a4ff7f8443e..829b6f0d5a6 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 4630ec70bc0..28aec7097f8 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 6dba79e893b..24925b9f0d9 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 b8c09a48994..f3f77953c29 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 e85225b04d5..5cf2e867149 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 b6ecd069b8c..58391d65151 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 f5b6501a82d..879438aa389 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 6e077c415ac..aea8230ac0e 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 bb7d1811464..b977e1d3f6a 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 0b131f8ffd3..349fd272140 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 b6257464e53..956229ead4c 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 5fb835edb0f..0c429fee78a 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 5103e1ec781..80a2f767d81 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 65c9f5d7df4..5b153a2a43e 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 96fa0597a3a..542059ca799 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 35faa0bde35..0bc319466c3 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 515d6afa4a0..359a772a268 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 752511df67a..6678b3d0b92 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 9d13fc8f64a..ce569ee8cbc 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 2f18362122d..8d2c0f7b89c 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 3ebbf8fb017..123420b7cb0 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 ad33fc2f22f..3b2710a5d91 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 b9d36f33d1c..7094a6b3734 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 7844b53aac3..5261b96d1c5 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 d846ac34aa7..1526b5303f7 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 87ab7490e3a..10a76b73fe1 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 ad20a127e17..d88f955a862 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 1b355bd8582..d76ab91ee5d 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 7c02123f33d..134cc9c3975 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 919093c158c..7a09394c3fd 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 18b3a441d68..1fb354189e3 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 03e531c5f16..948d72c251b 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 aee42330463..f52e0efb69a 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 d2a5a7da7d5..dafa3325b38 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 c832e018360..59c6739fb2d 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 c5c3c635129..e96fa2a4443 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 cdbc7a29df8..399b2f65945 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 6c53fe15eca..02a54001388 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 9d3abf169b9..bc754bd870a 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 071a0b54fdc..00000000000 --- 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 79aa5a4752d..3b89106f064 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); |