servo: Merge #18753 - Only generate structs file for the current build (from upsuper:binding-structs); r=emilio
authorXidorn Quan <me@upsuper.org>
Thu, 05 Oct 2017 11:24:22 -0500
changeset 427451 0b06fec0239c467ffe76068c4b9f919e13583579
parent 427450 983f163e94eaf2022744e1135a43728d3ef6ef5d
child 427452 4099fa94e3ba6728761655f0e11e7b65d573617d
push id97
push userfmarier@mozilla.com
push dateSat, 14 Oct 2017 01:12:59 +0000
reviewersemilio
milestone58.0a1
servo: Merge #18753 - Only generate structs file for the current build (from upsuper:binding-structs); r=emilio This PR changes build_gecko.rs to only generate the `structs.rs` for the current build (rather than both), depending on whether `gecko_debug` feature is set. The in-tree files are switched to use the previous release one, because that's what we currently use for stylo test and it is in general what we really care about. For this change, `gecko_debug` mode is removed from Servo CI (in `build-geckolib`) with the assumption that people general do that build locally for stylo development, so it is less likely to be broken than release. Source-Repo: https://github.com/servo/servo Source-Revision: f2879a568d34ecc8d42de55569813d8a851e904f
servo/components/style/build_gecko.rs
servo/components/style/gecko/generated/structs.rs
servo/components/style/gecko/generated/structs_debug.rs
servo/components/style/gecko/generated/structs_release.rs
servo/components/style/gecko_bindings/mod.rs
servo/python/servo/build_commands.py
servo/servo-tidy.toml
servo/tests/unit/stylo/build.rs
--- a/servo/components/style/build_gecko.rs
+++ b/servo/components/style/build_gecko.rs
@@ -39,33 +39,19 @@ mod bindings {
     use std::process::{Command, exit};
     use std::slice;
     use std::sync::Mutex;
     use std::time::SystemTime;
     use super::common::*;
     use super::super::PYTHON;
     use toml;
 
-    const STRUCTS_DEBUG_FILE: &'static str = "structs_debug.rs";
-    const STRUCTS_RELEASE_FILE: &'static str = "structs_release.rs";
+    const STRUCTS_FILE: &'static str = "structs.rs";
     const BINDINGS_FILE: &'static str = "bindings.rs";
 
-    #[derive(Clone, Copy, PartialEq)]
-    enum BuildType {
-        Debug,
-        Release,
-    }
-
-    fn structs_file(build_type: BuildType) -> &'static str {
-        match build_type {
-            BuildType::Debug => STRUCTS_DEBUG_FILE,
-            BuildType::Release => STRUCTS_RELEASE_FILE
-        }
-    }
-
     fn read_config(path: &PathBuf) -> toml::Table {
         println!("cargo:rerun-if-changed={}", path.to_str().unwrap());
         update_last_modified(&path);
 
         let mut contents = String::new();
         File::open(path).expect("Failed to open config file")
             .read_to_string(&mut contents).expect("Failed to read config file");
         let mut parser = toml::Parser::new(&contents);
@@ -171,17 +157,17 @@ mod bindings {
         let mut added_paths = ADDED_PATHS.lock().unwrap();
         let file = search_include(name).expect("Include not found!");
         let result = String::from(file.to_str().unwrap());
         add_headers_recursively(file, &mut *added_paths);
         result
     }
 
     trait BuilderExt {
-        fn get_initial_builder(build_type: BuildType) -> Builder;
+        fn get_initial_builder() -> Builder;
         fn include<T: Into<String>>(self, file: T) -> Builder;
         fn zero_size_type(self, ty: &str, structs_list: &HashSet<&str>) -> Builder;
         fn borrowed_type(self, ty: &str) -> Builder;
         fn mutable_borrowed_type(self, ty: &str) -> Builder;
     }
 
     fn add_clang_args(mut builder: Builder, config: &toml::Table, matched_os: &mut bool) -> Builder {
         fn add_args(mut builder: Builder, values: &[toml::Value]) -> Builder {
@@ -208,24 +194,24 @@ mod bindings {
                 toml::Value::Array(ref array) => add_args(builder, array),
                 _ => panic!("Unknown type"),
             };
         }
         builder
     }
 
     impl BuilderExt for Builder {
-        fn get_initial_builder(build_type: BuildType) -> Builder {
+        fn get_initial_builder() -> Builder {
             let mut builder = Builder::default();
             for dir in SEARCH_PATHS.iter() {
                 builder = builder.clang_arg("-I").clang_arg(dir.to_str().unwrap());
             }
             builder = builder.include(add_include("mozilla-config.h"));
 
-            if build_type == BuildType::Debug {
+            if env::var("CARGO_FEATURE_GECKO_DEBUG").is_ok() {
                 builder = builder.clang_arg("-DDEBUG=1").clang_arg("-DJS_DEBUG=1");
             }
 
             let mut matched_os = false;
             let build_config = CONFIG["build"].as_table().expect("Malformed config file");
             builder = add_clang_args(builder, build_config, &mut matched_os);
             let build_config = BUILD_CONFIG["build"].as_table().expect("Malformed config file");
             builder = add_clang_args(builder, build_config, &mut matched_os);
@@ -371,17 +357,17 @@ mod bindings {
                 if !self.used_keys.contains(key.as_str()) {
                     panic!(format!("Unknown key: {}", key));
                 }
             }
             self.builder
         }
     }
 
-    fn generate_structs(build_type: BuildType) {
+    fn generate_structs() {
         #[derive(Debug)]
         struct Callbacks(HashMap<String, RegexSet>);
         impl ParseCallbacks for Callbacks {
             fn enum_variant_behavior(&self,
                                      enum_name: Option<&str>,
                                      variant_name: &str,
                                      _variant_value: EnumVariantValue)
                 -> Option<EnumVariantCustomBehavior> {
@@ -389,17 +375,17 @@ mod bindings {
                     .and_then(|regex| if regex.is_match(variant_name) {
                         Some(EnumVariantCustomBehavior::Constify)
                     } else {
                         None
                     })
             }
         }
 
-        let builder = Builder::get_initial_builder(build_type)
+        let builder = Builder::get_initial_builder()
             .enable_cxx_namespaces()
             .with_codegen_config(CodegenConfig {
                 types: true,
                 vars: true,
                 ..CodegenConfig::nothing()
             });
         let mut fixups = vec![];
         let builder = BuilderWithConfig::new(builder, CONFIG["structs"].as_table().unwrap())
@@ -429,17 +415,17 @@ mod bindings {
                     pat: format!("\\broot::{}\\b", gecko),
                     rep: format!("::gecko_bindings::structs::{}", gecko_name)
                 });
                 builder.hide_type(gecko)
                     .raw_line(format!("pub type {0}{2} = {1}{2};", gecko_name, servo,
                                       if generic { "<T>" } else { "" }))
             })
             .get_builder();
-        write_binding_file(builder, structs_file(build_type), &fixups);
+        write_binding_file(builder, STRUCTS_FILE, &fixups);
     }
 
     fn setup_logging() -> bool {
         use log;
 
         struct BuildLogger {
             file: Option<Mutex<fs::File>>,
             filter: String,
@@ -478,17 +464,17 @@ mod bindings {
             .expect("Failed to set logger.");
             true
         } else {
             false
         }
     }
 
     fn generate_bindings() {
-        let builder = Builder::get_initial_builder(BuildType::Release)
+        let builder = Builder::get_initial_builder()
             .disable_name_namespacing()
             .with_codegen_config(CodegenConfig {
                 functions: true,
                 ..CodegenConfig::nothing()
             });
         let config = CONFIG["bindings"].as_table().unwrap();
         let mut structs_types = HashSet::new();
         let mut fixups = vec![];
@@ -574,18 +560,17 @@ mod bindings {
                     let threads = vec![$( thread::spawn(|| $task) ),+];
                     for thread in threads.into_iter() {
                         thread.join().unwrap();
                     }
                 }
             }
         }
         run_tasks! {
-            generate_structs(BuildType::Debug),
-            generate_structs(BuildType::Release),
+            generate_structs(),
             generate_bindings(),
             generate_atoms(),
         }
 
         // Copy all generated files to dist for the binding package
         let path = DISTDIR_PATH.join("rust_bindings/style");
         if path.exists() {
             fs::remove_dir_all(&path).expect("Fail to remove binding dir in dist");
rename from servo/components/style/gecko/generated/structs_release.rs
rename to servo/components/style/gecko/generated/structs.rs
deleted file mode 100644
--- a/servo/components/style/gecko/generated/structs_debug.rs
+++ /dev/null
@@ -1,37847 +0,0 @@
-/* automatically generated by rust-bindgen */
-
-pub use self::root::*;
-pub use self::root::mozilla::*;
-pub use self::root::mozilla::css::*;
-pub use self::root::mozilla::dom::*;
-use atomic_refcell::AtomicRefCell;
-use data::ElementData;
-pub type ServoUnsafeCell<T> = ::std::cell::UnsafeCell<T>;
-pub type ServoCell<T> = ::std::cell::Cell<T>;
-pub type ServoNodeData = AtomicRefCell<ElementData>;
-pub type ServoWritingMode = ::logical_geometry::WritingMode;
-pub type ServoCustomPropertiesMap = Option<::servo_arc::Arc<::custom_properties::CustomPropertiesMap>>;
-pub type ServoRuleNode = Option<::rule_tree::StrongRuleNode>;
-pub type ServoVisitedStyle = Option<::servo_arc::RawOffsetArc<::properties::ComputedValues>>;
-pub type ServoComputedValueFlags = ::properties::computed_value_flags::ComputedValueFlags;
-pub type ServoRawOffsetArc<T> = ::servo_arc::RawOffsetArc<T>;
-pub type ServoStyleContextStrong = ::gecko_bindings::sugar::ownership::Strong<::properties::ComputedValues>;
-
-#[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
-pub mod root {
-    #[repr(C)]
-    pub struct __BindgenUnionField<T>(::std::marker::PhantomData<T>);
-    impl <T> __BindgenUnionField<T> {
-        #[inline]
-        pub fn new() -> Self {
-            __BindgenUnionField(::std::marker::PhantomData)
-        }
-        #[inline]
-        pub unsafe fn as_ref(&self) -> &T { ::std::mem::transmute(self) }
-        #[inline]
-        pub unsafe fn as_mut(&mut self) -> &mut T {
-            ::std::mem::transmute(self)
-        }
-    }
-    impl <T> ::std::default::Default for __BindgenUnionField<T> {
-        #[inline]
-        fn default() -> Self { Self::new() }
-    }
-    impl <T> ::std::clone::Clone for __BindgenUnionField<T> {
-        #[inline]
-        fn clone(&self) -> Self { Self::new() }
-    }
-    impl <T> ::std::marker::Copy for __BindgenUnionField<T> { }
-    impl <T> ::std::fmt::Debug for __BindgenUnionField<T> {
-        fn fmt(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
-            fmt.write_str("__BindgenUnionField")
-        }
-    }
-    #[allow(unused_imports)]
-    use self::super::root;
-    pub const NS_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_WEIGHT_NORMAL: ::std::os::raw::c_uint = 400;
-    pub const NS_FONT_WEIGHT_BOLD: ::std::os::raw::c_uint = 700;
-    pub const NS_FONT_WEIGHT_THIN: ::std::os::raw::c_uint = 100;
-    pub const NS_FONT_STRETCH_ULTRA_CONDENSED: ::std::os::raw::c_int = -4;
-    pub const NS_FONT_STRETCH_EXTRA_CONDENSED: ::std::os::raw::c_int = -3;
-    pub const NS_FONT_STRETCH_CONDENSED: ::std::os::raw::c_int = -2;
-    pub const NS_FONT_STRETCH_SEMI_CONDENSED: ::std::os::raw::c_int = -1;
-    pub const NS_FONT_STRETCH_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_STRETCH_SEMI_EXPANDED: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_STRETCH_EXPANDED: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_STRETCH_EXTRA_EXPANDED: ::std::os::raw::c_uint = 3;
-    pub const NS_FONT_STRETCH_ULTRA_EXPANDED: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_SMOOTHING_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_SMOOTHING_GRAYSCALE: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_KERNING_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_KERNING_NONE: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_KERNING_NORMAL: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_SYNTHESIS_WEIGHT: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_SYNTHESIS_STYLE: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_DISPLAY_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_DISPLAY_BLOCK: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_DISPLAY_SWAP: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_DISPLAY_FALLBACK: ::std::os::raw::c_uint = 3;
-    pub const NS_FONT_DISPLAY_OPTIONAL: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_VARIANT_ALTERNATES_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_ALTERNATES_HISTORICAL: ::std::os::raw::c_uint =
-        1;
-    pub const NS_FONT_VARIANT_ALTERNATES_STYLISTIC: ::std::os::raw::c_uint =
-        2;
-    pub const NS_FONT_VARIANT_ALTERNATES_STYLESET: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT:
-              ::std::os::raw::c_uint =
-        8;
-    pub const NS_FONT_VARIANT_ALTERNATES_SWASH: ::std::os::raw::c_uint = 16;
-    pub const NS_FONT_VARIANT_ALTERNATES_ORNAMENTS: ::std::os::raw::c_uint =
-        32;
-    pub const NS_FONT_VARIANT_ALTERNATES_ANNOTATION: ::std::os::raw::c_uint =
-        64;
-    pub const NS_FONT_VARIANT_ALTERNATES_COUNT: ::std::os::raw::c_uint = 7;
-    pub const NS_FONT_VARIANT_ALTERNATES_ENUMERATED_MASK:
-              ::std::os::raw::c_uint =
-        1;
-    pub const NS_FONT_VARIANT_ALTERNATES_FUNCTIONAL_MASK:
-              ::std::os::raw::c_uint =
-        126;
-    pub const NS_FONT_VARIANT_CAPS_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_CAPS_SMALLCAPS: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_VARIANT_CAPS_ALLSMALL: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_VARIANT_CAPS_PETITECAPS: ::std::os::raw::c_uint = 3;
-    pub const NS_FONT_VARIANT_CAPS_ALLPETITE: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_VARIANT_CAPS_TITLING: ::std::os::raw::c_uint = 5;
-    pub const NS_FONT_VARIANT_CAPS_UNICASE: ::std::os::raw::c_uint = 6;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_JIS78: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_JIS83: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_JIS90: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_JIS04: ::std::os::raw::c_uint = 8;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED: ::std::os::raw::c_uint =
-        16;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL: ::std::os::raw::c_uint =
-        32;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH: ::std::os::raw::c_uint =
-        64;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_PROP_WIDTH: ::std::os::raw::c_uint =
-        128;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_RUBY: ::std::os::raw::c_uint = 256;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_COUNT: ::std::os::raw::c_uint = 9;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_VARIANT_MASK: ::std::os::raw::c_uint
-              =
-        63;
-    pub const NS_FONT_VARIANT_EAST_ASIAN_WIDTH_MASK: ::std::os::raw::c_uint =
-        192;
-    pub const NS_FONT_VARIANT_LIGATURES_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_LIGATURES_NONE: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_VARIANT_LIGATURES_COMMON: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_VARIANT_LIGATURES_NO_COMMON: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_VARIANT_LIGATURES_DISCRETIONARY: ::std::os::raw::c_uint
-              =
-        8;
-    pub const NS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY:
-              ::std::os::raw::c_uint =
-        16;
-    pub const NS_FONT_VARIANT_LIGATURES_HISTORICAL: ::std::os::raw::c_uint =
-        32;
-    pub const NS_FONT_VARIANT_LIGATURES_NO_HISTORICAL: ::std::os::raw::c_uint
-              =
-        64;
-    pub const NS_FONT_VARIANT_LIGATURES_CONTEXTUAL: ::std::os::raw::c_uint =
-        128;
-    pub const NS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL: ::std::os::raw::c_uint
-              =
-        256;
-    pub const NS_FONT_VARIANT_LIGATURES_COUNT: ::std::os::raw::c_uint = 9;
-    pub const NS_FONT_VARIANT_LIGATURES_COMMON_MASK: ::std::os::raw::c_uint =
-        6;
-    pub const NS_FONT_VARIANT_LIGATURES_DISCRETIONARY_MASK:
-              ::std::os::raw::c_uint =
-        24;
-    pub const NS_FONT_VARIANT_LIGATURES_HISTORICAL_MASK:
-              ::std::os::raw::c_uint =
-        96;
-    pub const NS_FONT_VARIANT_LIGATURES_CONTEXTUAL_MASK:
-              ::std::os::raw::c_uint =
-        384;
-    pub const NS_FONT_VARIANT_NUMERIC_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_NUMERIC_LINING: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_VARIANT_NUMERIC_OLDSTYLE: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_VARIANT_NUMERIC_PROPORTIONAL: ::std::os::raw::c_uint =
-        4;
-    pub const NS_FONT_VARIANT_NUMERIC_TABULAR: ::std::os::raw::c_uint = 8;
-    pub const NS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS:
-              ::std::os::raw::c_uint =
-        16;
-    pub const NS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS:
-              ::std::os::raw::c_uint =
-        32;
-    pub const NS_FONT_VARIANT_NUMERIC_SLASHZERO: ::std::os::raw::c_uint = 64;
-    pub const NS_FONT_VARIANT_NUMERIC_ORDINAL: ::std::os::raw::c_uint = 128;
-    pub const NS_FONT_VARIANT_NUMERIC_COUNT: ::std::os::raw::c_uint = 8;
-    pub const NS_FONT_VARIANT_NUMERIC_FIGURE_MASK: ::std::os::raw::c_uint = 3;
-    pub const NS_FONT_VARIANT_NUMERIC_SPACING_MASK: ::std::os::raw::c_uint =
-        12;
-    pub const NS_FONT_VARIANT_NUMERIC_FRACTION_MASK: ::std::os::raw::c_uint =
-        48;
-    pub const NS_FONT_VARIANT_POSITION_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_POSITION_SUPER: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_VARIANT_POSITION_SUB: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_VARIANT_WIDTH_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_WIDTH_FULL: ::std::os::raw::c_uint = 1;
-    pub const NS_FONT_VARIANT_WIDTH_HALF: ::std::os::raw::c_uint = 2;
-    pub const NS_FONT_VARIANT_WIDTH_THIRD: ::std::os::raw::c_uint = 3;
-    pub const NS_FONT_VARIANT_WIDTH_QUARTER: ::std::os::raw::c_uint = 4;
-    pub const NS_FONT_SUBSCRIPT_OFFSET_RATIO: f64 = 0.2;
-    pub const NS_FONT_SUPERSCRIPT_OFFSET_RATIO: f64 = 0.34;
-    pub const NS_FONT_SUB_SUPER_SIZE_RATIO_SMALL: f64 = 0.82;
-    pub const NS_FONT_SUB_SUPER_SIZE_RATIO_LARGE: f64 = 0.667;
-    pub const NS_FONT_SUB_SUPER_SMALL_SIZE: f64 = 20.;
-    pub const NS_FONT_SUB_SUPER_LARGE_SIZE: f64 = 45.;
-    pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_FONT_VARIANT_SMALL_CAPS: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_COLOR_INHERIT_FROM_BODY: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_WILL_CHANGE_STACKING_CONTEXT: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_WILL_CHANGE_TRANSFORM: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_WILL_CHANGE_SCROLL: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_WILL_CHANGE_OPACITY: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_WILL_CHANGE_FIXPOS_CB: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_WILL_CHANGE_ABSPOS_CB: ::std::os::raw::c_uint = 32;
-    pub const NS_STYLE_ANIMATION_ITERATION_COUNT_INFINITE:
-              ::std::os::raw::c_uint =
-        0;
-    pub const NS_STYLE_ANIMATION_PLAY_STATE_RUNNING: ::std::os::raw::c_uint =
-        0;
-    pub const NS_STYLE_ANIMATION_PLAY_STATE_PAUSED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_IMAGELAYER_ATTACHMENT_SCROLL: ::std::os::raw::c_uint =
-        0;
-    pub const NS_STYLE_IMAGELAYER_ATTACHMENT_FIXED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_IMAGELAYER_ATTACHMENT_LOCAL: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_IMAGELAYER_CLIP_MOZ_ALMOST_PADDING:
-              ::std::os::raw::c_uint =
-        127;
-    pub const NS_STYLE_IMAGELAYER_POSITION_CENTER: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_IMAGELAYER_POSITION_TOP: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_IMAGELAYER_POSITION_BOTTOM: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_IMAGELAYER_POSITION_LEFT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_IMAGELAYER_POSITION_RIGHT: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_IMAGELAYER_SIZE_CONTAIN: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_IMAGELAYER_SIZE_COVER: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_MASK_MODE_ALPHA: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_MASK_MODE_LUMINANCE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_MASK_MODE_MATCH_SOURCE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_BG_INLINE_POLICY_EACH_BOX: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_BG_INLINE_POLICY_CONTINUOUS: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_BG_INLINE_POLICY_BOUNDING_BOX: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_BORDER_COLLAPSE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_BORDER_SEPARATE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_BORDER_WIDTH_THIN: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_BORDER_WIDTH_MEDIUM: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_BORDER_WIDTH_THICK: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_BORDER_STYLE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_BORDER_STYLE_GROOVE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_BORDER_STYLE_RIDGE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_BORDER_STYLE_DOTTED: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_BORDER_STYLE_DASHED: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_BORDER_STYLE_SOLID: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_BORDER_STYLE_DOUBLE: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_BORDER_STYLE_INSET: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_BORDER_STYLE_OUTSET: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_BORDER_STYLE_HIDDEN: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_BORDER_STYLE_AUTO: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_BORDER_IMAGE_REPEAT_STRETCH: ::std::os::raw::c_uint =
-        0;
-    pub const NS_STYLE_BORDER_IMAGE_REPEAT_REPEAT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_BORDER_IMAGE_REPEAT_ROUND: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_BORDER_IMAGE_REPEAT_SPACE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_BORDER_IMAGE_SLICE_NOFILL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_BORDER_IMAGE_SLICE_FILL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CURSOR_AUTO: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CURSOR_CROSSHAIR: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_CURSOR_DEFAULT: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_CURSOR_POINTER: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_CURSOR_MOVE: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_CURSOR_E_RESIZE: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_CURSOR_NE_RESIZE: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_CURSOR_NW_RESIZE: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_CURSOR_N_RESIZE: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_CURSOR_SE_RESIZE: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_CURSOR_SW_RESIZE: ::std::os::raw::c_uint = 11;
-    pub const NS_STYLE_CURSOR_S_RESIZE: ::std::os::raw::c_uint = 12;
-    pub const NS_STYLE_CURSOR_W_RESIZE: ::std::os::raw::c_uint = 13;
-    pub const NS_STYLE_CURSOR_TEXT: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_CURSOR_WAIT: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_CURSOR_HELP: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_CURSOR_COPY: ::std::os::raw::c_uint = 17;
-    pub const NS_STYLE_CURSOR_ALIAS: ::std::os::raw::c_uint = 18;
-    pub const NS_STYLE_CURSOR_CONTEXT_MENU: ::std::os::raw::c_uint = 19;
-    pub const NS_STYLE_CURSOR_CELL: ::std::os::raw::c_uint = 20;
-    pub const NS_STYLE_CURSOR_GRAB: ::std::os::raw::c_uint = 21;
-    pub const NS_STYLE_CURSOR_GRABBING: ::std::os::raw::c_uint = 22;
-    pub const NS_STYLE_CURSOR_SPINNING: ::std::os::raw::c_uint = 23;
-    pub const NS_STYLE_CURSOR_ZOOM_IN: ::std::os::raw::c_uint = 24;
-    pub const NS_STYLE_CURSOR_ZOOM_OUT: ::std::os::raw::c_uint = 25;
-    pub const NS_STYLE_CURSOR_NOT_ALLOWED: ::std::os::raw::c_uint = 26;
-    pub const NS_STYLE_CURSOR_COL_RESIZE: ::std::os::raw::c_uint = 27;
-    pub const NS_STYLE_CURSOR_ROW_RESIZE: ::std::os::raw::c_uint = 28;
-    pub const NS_STYLE_CURSOR_NO_DROP: ::std::os::raw::c_uint = 29;
-    pub const NS_STYLE_CURSOR_VERTICAL_TEXT: ::std::os::raw::c_uint = 30;
-    pub const NS_STYLE_CURSOR_ALL_SCROLL: ::std::os::raw::c_uint = 31;
-    pub const NS_STYLE_CURSOR_NESW_RESIZE: ::std::os::raw::c_uint = 32;
-    pub const NS_STYLE_CURSOR_NWSE_RESIZE: ::std::os::raw::c_uint = 33;
-    pub const NS_STYLE_CURSOR_NS_RESIZE: ::std::os::raw::c_uint = 34;
-    pub const NS_STYLE_CURSOR_EW_RESIZE: ::std::os::raw::c_uint = 35;
-    pub const NS_STYLE_CURSOR_NONE: ::std::os::raw::c_uint = 36;
-    pub const NS_STYLE_DIRECTION_LTR: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_DIRECTION_RTL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_WRITING_MODE_HORIZONTAL_TB: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_WRITING_MODE_VERTICAL_RL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_WRITING_MODE_VERTICAL_LR: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_WRITING_MODE_SIDEWAYS_MASK: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_WRITING_MODE_SIDEWAYS_RL: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_WRITING_MODE_SIDEWAYS_LR: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_CONTAIN_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_CONTAIN_STRICT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CONTAIN_LAYOUT: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_CONTAIN_STYLE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_CONTAIN_PAINT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_CONTAIN_ALL_BITS: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_ALIGN_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_ALIGN_NORMAL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_ALIGN_START: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_ALIGN_END: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_ALIGN_FLEX_START: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_ALIGN_FLEX_END: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_ALIGN_CENTER: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_ALIGN_LEFT: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_ALIGN_RIGHT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_ALIGN_BASELINE: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_ALIGN_LAST_BASELINE: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_ALIGN_STRETCH: ::std::os::raw::c_uint = 11;
-    pub const NS_STYLE_ALIGN_SELF_START: ::std::os::raw::c_uint = 12;
-    pub const NS_STYLE_ALIGN_SELF_END: ::std::os::raw::c_uint = 13;
-    pub const NS_STYLE_ALIGN_SPACE_BETWEEN: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_ALIGN_SPACE_AROUND: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_ALIGN_SPACE_EVENLY: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_ALIGN_LEGACY: ::std::os::raw::c_uint = 32;
-    pub const NS_STYLE_ALIGN_SAFE: ::std::os::raw::c_uint = 64;
-    pub const NS_STYLE_ALIGN_UNSAFE: ::std::os::raw::c_uint = 128;
-    pub const NS_STYLE_ALIGN_FLAG_BITS: ::std::os::raw::c_uint = 224;
-    pub const NS_STYLE_ALIGN_ALL_BITS: ::std::os::raw::c_uint = 255;
-    pub const NS_STYLE_ALIGN_ALL_SHIFT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_JUSTIFY_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_JUSTIFY_NORMAL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_JUSTIFY_START: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_JUSTIFY_END: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_JUSTIFY_FLEX_START: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_JUSTIFY_FLEX_END: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_JUSTIFY_CENTER: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_JUSTIFY_LEFT: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_JUSTIFY_RIGHT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_JUSTIFY_BASELINE: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_JUSTIFY_LAST_BASELINE: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_JUSTIFY_STRETCH: ::std::os::raw::c_uint = 11;
-    pub const NS_STYLE_JUSTIFY_SELF_START: ::std::os::raw::c_uint = 12;
-    pub const NS_STYLE_JUSTIFY_SELF_END: ::std::os::raw::c_uint = 13;
-    pub const NS_STYLE_JUSTIFY_SPACE_BETWEEN: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_JUSTIFY_SPACE_AROUND: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_JUSTIFY_SPACE_EVENLY: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_JUSTIFY_LEGACY: ::std::os::raw::c_uint = 32;
-    pub const NS_STYLE_JUSTIFY_SAFE: ::std::os::raw::c_uint = 64;
-    pub const NS_STYLE_JUSTIFY_UNSAFE: ::std::os::raw::c_uint = 128;
-    pub const NS_STYLE_JUSTIFY_FLAG_BITS: ::std::os::raw::c_uint = 224;
-    pub const NS_STYLE_JUSTIFY_ALL_BITS: ::std::os::raw::c_uint = 255;
-    pub const NS_STYLE_JUSTIFY_ALL_SHIFT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_FLEX_DIRECTION_ROW: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FLEX_DIRECTION_ROW_REVERSE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FLEX_DIRECTION_COLUMN: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FLEX_DIRECTION_COLUMN_REVERSE: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_FLEX_WRAP_NOWRAP: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FLEX_WRAP_WRAP: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FLEX_WRAP_WRAP_REVERSE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_ORDER_INITIAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_JUSTIFY_CONTENT_FLEX_START: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_JUSTIFY_CONTENT_FLEX_END: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_JUSTIFY_CONTENT_CENTER: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_JUSTIFY_CONTENT_SPACE_BETWEEN: ::std::os::raw::c_uint =
-        14;
-    pub const NS_STYLE_JUSTIFY_CONTENT_SPACE_AROUND: ::std::os::raw::c_uint =
-        15;
-    pub const NS_STYLE_FILTER_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FILTER_URL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FILTER_BLUR: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FILTER_BRIGHTNESS: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_FILTER_CONTRAST: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_FILTER_GRAYSCALE: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_FILTER_INVERT: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_FILTER_OPACITY: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_FILTER_SATURATE: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_FILTER_SEPIA: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_FILTER_HUE_ROTATE: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_FILTER_DROP_SHADOW: ::std::os::raw::c_uint = 11;
-    pub const NS_STYLE_FONT_STYLE_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FONT_STYLE_ITALIC: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FONT_STYLE_OBLIQUE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FONT_WEIGHT_NORMAL: ::std::os::raw::c_uint = 400;
-    pub const NS_STYLE_FONT_WEIGHT_BOLD: ::std::os::raw::c_uint = 700;
-    pub const NS_STYLE_FONT_WEIGHT_BOLDER: ::std::os::raw::c_int = -1;
-    pub const NS_STYLE_FONT_WEIGHT_LIGHTER: ::std::os::raw::c_int = -2;
-    pub const NS_STYLE_FONT_SIZE_XXSMALL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FONT_SIZE_XSMALL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FONT_SIZE_SMALL: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FONT_SIZE_MEDIUM: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_FONT_SIZE_LARGE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_FONT_SIZE_XLARGE: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_FONT_SIZE_XXLARGE: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_FONT_SIZE_XXXLARGE: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_FONT_SIZE_LARGER: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_FONT_SIZE_SMALLER: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_FONT_SIZE_NO_KEYWORD: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_FONT_STRETCH_ULTRA_CONDENSED: ::std::os::raw::c_int =
-        -4;
-    pub const NS_STYLE_FONT_STRETCH_EXTRA_CONDENSED: ::std::os::raw::c_int =
-        -3;
-    pub const NS_STYLE_FONT_STRETCH_CONDENSED: ::std::os::raw::c_int = -2;
-    pub const NS_STYLE_FONT_STRETCH_SEMI_CONDENSED: ::std::os::raw::c_int =
-        -1;
-    pub const NS_STYLE_FONT_STRETCH_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FONT_STRETCH_SEMI_EXPANDED: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FONT_STRETCH_EXPANDED: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FONT_STRETCH_EXTRA_EXPANDED: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_FONT_STRETCH_ULTRA_EXPANDED: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_FONT_CAPTION: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FONT_ICON: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FONT_MENU: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_FONT_MESSAGE_BOX: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_FONT_SMALL_CAPTION: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_FONT_STATUS_BAR: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_FONT_WINDOW: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_FONT_DOCUMENT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_FONT_WORKSPACE: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_FONT_DESKTOP: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_FONT_INFO: ::std::os::raw::c_uint = 11;
-    pub const NS_STYLE_FONT_DIALOG: ::std::os::raw::c_uint = 12;
-    pub const NS_STYLE_FONT_BUTTON: ::std::os::raw::c_uint = 13;
-    pub const NS_STYLE_FONT_PULL_DOWN_MENU: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_FONT_LIST: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_FONT_FIELD: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_GRID_AUTO_FLOW_ROW: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_GRID_AUTO_FLOW_COLUMN: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_GRID_AUTO_FLOW_DENSE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_GRID_TEMPLATE_SUBGRID: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_GRID_REPEAT_AUTO_FILL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_GRID_REPEAT_AUTO_FIT: ::std::os::raw::c_uint = 1;
-    pub const NS_MATHML_DEFAULT_SCRIPT_SIZE_MULTIPLIER: f64 = 0.71;
-    pub const NS_MATHML_DEFAULT_SCRIPT_MIN_SIZE_PT: ::std::os::raw::c_uint =
-        8;
-    pub const NS_MATHML_MATHVARIANT_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_MATHML_MATHVARIANT_NORMAL: ::std::os::raw::c_uint = 1;
-    pub const NS_MATHML_MATHVARIANT_BOLD: ::std::os::raw::c_uint = 2;
-    pub const NS_MATHML_MATHVARIANT_ITALIC: ::std::os::raw::c_uint = 3;
-    pub const NS_MATHML_MATHVARIANT_BOLD_ITALIC: ::std::os::raw::c_uint = 4;
-    pub const NS_MATHML_MATHVARIANT_SCRIPT: ::std::os::raw::c_uint = 5;
-    pub const NS_MATHML_MATHVARIANT_BOLD_SCRIPT: ::std::os::raw::c_uint = 6;
-    pub const NS_MATHML_MATHVARIANT_FRAKTUR: ::std::os::raw::c_uint = 7;
-    pub const NS_MATHML_MATHVARIANT_DOUBLE_STRUCK: ::std::os::raw::c_uint = 8;
-    pub const NS_MATHML_MATHVARIANT_BOLD_FRAKTUR: ::std::os::raw::c_uint = 9;
-    pub const NS_MATHML_MATHVARIANT_SANS_SERIF: ::std::os::raw::c_uint = 10;
-    pub const NS_MATHML_MATHVARIANT_BOLD_SANS_SERIF: ::std::os::raw::c_uint =
-        11;
-    pub const NS_MATHML_MATHVARIANT_SANS_SERIF_ITALIC: ::std::os::raw::c_uint
-              =
-        12;
-    pub const NS_MATHML_MATHVARIANT_SANS_SERIF_BOLD_ITALIC:
-              ::std::os::raw::c_uint =
-        13;
-    pub const NS_MATHML_MATHVARIANT_MONOSPACE: ::std::os::raw::c_uint = 14;
-    pub const NS_MATHML_MATHVARIANT_INITIAL: ::std::os::raw::c_uint = 15;
-    pub const NS_MATHML_MATHVARIANT_TAILED: ::std::os::raw::c_uint = 16;
-    pub const NS_MATHML_MATHVARIANT_LOOPED: ::std::os::raw::c_uint = 17;
-    pub const NS_MATHML_MATHVARIANT_STRETCHED: ::std::os::raw::c_uint = 18;
-    pub const NS_MATHML_DISPLAYSTYLE_INLINE: ::std::os::raw::c_uint = 0;
-    pub const NS_MATHML_DISPLAYSTYLE_BLOCK: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_WIDTH_MAX_CONTENT: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_WIDTH_MIN_CONTENT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_WIDTH_FIT_CONTENT: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_WIDTH_AVAILABLE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_POSITION_STATIC: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_POSITION_RELATIVE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_POSITION_ABSOLUTE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_POSITION_FIXED: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_POSITION_STICKY: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_CLIP_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_CLIP_RECT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CLIP_TYPE_MASK: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_CLIP_LEFT_AUTO: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_CLIP_TOP_AUTO: ::std::os::raw::c_uint = 32;
-    pub const NS_STYLE_CLIP_RIGHT_AUTO: ::std::os::raw::c_uint = 64;
-    pub const NS_STYLE_CLIP_BOTTOM_AUTO: ::std::os::raw::c_uint = 128;
-    pub const NS_STYLE_FRAME_YES: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_FRAME_NO: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_FRAME_0: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_FRAME_1: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_FRAME_ON: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_FRAME_OFF: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_FRAME_AUTO: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_FRAME_SCROLL: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_FRAME_NOSCROLL: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_OVERFLOW_VISIBLE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_OVERFLOW_HIDDEN: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_OVERFLOW_SCROLL: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_OVERFLOW_AUTO: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_OVERFLOW_CLIP: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_OVERFLOW_SCROLLBARS_HORIZONTAL: ::std::os::raw::c_uint
-              =
-        5;
-    pub const NS_STYLE_OVERFLOW_SCROLLBARS_VERTICAL: ::std::os::raw::c_uint =
-        6;
-    pub const NS_STYLE_OVERFLOW_CLIP_BOX_PADDING_BOX: ::std::os::raw::c_uint =
-        0;
-    pub const NS_STYLE_OVERFLOW_CLIP_BOX_CONTENT_BOX: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_LIST_STYLE_CUSTOM: ::std::os::raw::c_int = -1;
-    pub const NS_STYLE_LIST_STYLE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_LIST_STYLE_DECIMAL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_LIST_STYLE_DISC: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_LIST_STYLE_CIRCLE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_LIST_STYLE_SQUARE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_LIST_STYLE_DISCLOSURE_CLOSED: ::std::os::raw::c_uint =
-        5;
-    pub const NS_STYLE_LIST_STYLE_DISCLOSURE_OPEN: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_LIST_STYLE_HEBREW: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_LIST_STYLE_JAPANESE_INFORMAL: ::std::os::raw::c_uint =
-        8;
-    pub const NS_STYLE_LIST_STYLE_JAPANESE_FORMAL: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_LIST_STYLE_KOREAN_HANGUL_FORMAL: ::std::os::raw::c_uint
-              =
-        10;
-    pub const NS_STYLE_LIST_STYLE_KOREAN_HANJA_INFORMAL:
-              ::std::os::raw::c_uint =
-        11;
-    pub const NS_STYLE_LIST_STYLE_KOREAN_HANJA_FORMAL: ::std::os::raw::c_uint
-              =
-        12;
-    pub const NS_STYLE_LIST_STYLE_SIMP_CHINESE_INFORMAL:
-              ::std::os::raw::c_uint =
-        13;
-    pub const NS_STYLE_LIST_STYLE_SIMP_CHINESE_FORMAL: ::std::os::raw::c_uint
-              =
-        14;
-    pub const NS_STYLE_LIST_STYLE_TRAD_CHINESE_INFORMAL:
-              ::std::os::raw::c_uint =
-        15;
-    pub const NS_STYLE_LIST_STYLE_TRAD_CHINESE_FORMAL: ::std::os::raw::c_uint
-              =
-        16;
-    pub const NS_STYLE_LIST_STYLE_ETHIOPIC_NUMERIC: ::std::os::raw::c_uint =
-        17;
-    pub const NS_STYLE_LIST_STYLE_LOWER_ROMAN: ::std::os::raw::c_uint = 100;
-    pub const NS_STYLE_LIST_STYLE_UPPER_ROMAN: ::std::os::raw::c_uint = 101;
-    pub const NS_STYLE_LIST_STYLE_LOWER_ALPHA: ::std::os::raw::c_uint = 102;
-    pub const NS_STYLE_LIST_STYLE_UPPER_ALPHA: ::std::os::raw::c_uint = 103;
-    pub const NS_STYLE_LIST_STYLE_POSITION_INSIDE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_LIST_STYLE_POSITION_OUTSIDE: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_MARGIN_SIZE_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_POINTER_EVENTS_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_POINTER_EVENTS_VISIBLEPAINTED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_POINTER_EVENTS_VISIBLEFILL: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_POINTER_EVENTS_VISIBLESTROKE: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_POINTER_EVENTS_VISIBLE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_POINTER_EVENTS_PAINTED: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_POINTER_EVENTS_FILL: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_POINTER_EVENTS_STROKE: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_POINTER_EVENTS_ALL: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_POINTER_EVENTS_AUTO: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_IMAGE_ORIENTATION_FLIP: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_IMAGE_ORIENTATION_FROM_IMAGE: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_ISOLATION_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_ISOLATION_ISOLATE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_OBJECT_FIT_FILL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_OBJECT_FIT_CONTAIN: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_OBJECT_FIT_COVER: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_OBJECT_FIT_NONE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_OBJECT_FIT_SCALE_DOWN: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_RESIZE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_RESIZE_BOTH: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_RESIZE_HORIZONTAL: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_RESIZE_VERTICAL: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_TEXT_ALIGN_START: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_ALIGN_LEFT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_ALIGN_RIGHT: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TEXT_ALIGN_CENTER: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_TEXT_ALIGN_JUSTIFY: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_TEXT_ALIGN_CHAR: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_TEXT_ALIGN_END: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_TEXT_ALIGN_AUTO: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_TEXT_ALIGN_MOZ_CENTER: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_TEXT_ALIGN_MOZ_RIGHT: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_TEXT_ALIGN_MOZ_LEFT: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_TEXT_ALIGN_MOZ_CENTER_OR_INHERIT:
-              ::std::os::raw::c_uint =
-        11;
-    pub const NS_STYLE_TEXT_ALIGN_UNSAFE: ::std::os::raw::c_uint = 12;
-    pub const NS_STYLE_TEXT_ALIGN_MATCH_PARENT: ::std::os::raw::c_uint = 13;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_UNDERLINE: ::std::os::raw::c_uint
-              =
-        1;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_OVERLINE: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_LINE_THROUGH:
-              ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_BLINK: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_OVERRIDE_ALL:
-              ::std::os::raw::c_uint =
-        16;
-    pub const NS_STYLE_TEXT_DECORATION_LINE_LINES_MASK: ::std::os::raw::c_uint
-              =
-        7;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_DOTTED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_DASHED: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_SOLID: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_DOUBLE: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_WAVY: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_TEXT_DECORATION_STYLE_MAX: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_TEXT_OVERFLOW_CLIP: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_OVERFLOW_ELLIPSIS: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_OVERFLOW_STRING: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TEXT_TRANSFORM_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_TRANSFORM_CAPITALIZE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_TRANSFORM_LOWERCASE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TEXT_TRANSFORM_UPPERCASE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_TEXT_TRANSFORM_FULL_WIDTH: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_TOUCH_ACTION_NONE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TOUCH_ACTION_AUTO: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TOUCH_ACTION_PAN_X: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_TOUCH_ACTION_PAN_Y: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_TOUCH_ACTION_MANIPULATION: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_TOP_LAYER_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TOP_LAYER_TOP: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE: ::std::os::raw::c_uint
-              =
-        0;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_LINEAR:
-              ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN:
-              ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_OUT:
-              ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_EASE_IN_OUT:
-              ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_START:
-              ::std::os::raw::c_uint =
-        5;
-    pub const NS_STYLE_TRANSITION_TIMING_FUNCTION_STEP_END:
-              ::std::os::raw::c_uint =
-        6;
-    pub const NS_STYLE_VERTICAL_ALIGN_BASELINE: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_VERTICAL_ALIGN_SUB: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_VERTICAL_ALIGN_SUPER: ::std::os::raw::c_uint = 16;
-    pub const NS_STYLE_VERTICAL_ALIGN_TOP: ::std::os::raw::c_uint = 17;
-    pub const NS_STYLE_VERTICAL_ALIGN_TEXT_TOP: ::std::os::raw::c_uint = 18;
-    pub const NS_STYLE_VERTICAL_ALIGN_MIDDLE: ::std::os::raw::c_uint = 19;
-    pub const NS_STYLE_VERTICAL_ALIGN_TEXT_BOTTOM: ::std::os::raw::c_uint =
-        20;
-    pub const NS_STYLE_VERTICAL_ALIGN_BOTTOM: ::std::os::raw::c_uint = 21;
-    pub const NS_STYLE_VERTICAL_ALIGN_MIDDLE_WITH_BASELINE:
-              ::std::os::raw::c_uint =
-        22;
-    pub const NS_STYLE_VISIBILITY_HIDDEN: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_VISIBILITY_VISIBLE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_VISIBILITY_COLLAPSE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TABSIZE_INITIAL: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_WORDBREAK_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_WORDBREAK_BREAK_ALL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_WORDBREAK_KEEP_ALL: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_OVERFLOWWRAP_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_OVERFLOWWRAP_BREAK_WORD: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_RUBY_ALIGN_START: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_RUBY_ALIGN_CENTER: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_RUBY_ALIGN_SPACE_BETWEEN: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_RUBY_ALIGN_SPACE_AROUND: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_RUBY_POSITION_OVER: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_RUBY_POSITION_UNDER: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_RUBY_POSITION_INTER_CHARACTER: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TEXT_SIZE_ADJUST_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_SIZE_ADJUST_AUTO: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_ORIENTATION_MIXED: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_ORIENTATION_UPRIGHT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_ORIENTATION_SIDEWAYS: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_ALL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_2: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_3: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_TEXT_COMBINE_UPRIGHT_DIGITS_4: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_LINE_HEIGHT_BLOCK_HEIGHT: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_UNICODE_BIDI_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_UNICODE_BIDI_EMBED: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_UNICODE_BIDI_ISOLATE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_UNICODE_BIDI_BIDI_OVERRIDE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_UNICODE_BIDI_ISOLATE_OVERRIDE: ::std::os::raw::c_uint =
-        6;
-    pub const NS_STYLE_UNICODE_BIDI_PLAINTEXT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_TABLE_LAYOUT_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TABLE_LAYOUT_FIXED: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TABLE_EMPTY_CELLS_HIDE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TABLE_EMPTY_CELLS_SHOW: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CAPTION_SIDE_TOP: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_CAPTION_SIDE_RIGHT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CAPTION_SIDE_BOTTOM: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_CAPTION_SIDE_LEFT: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_CAPTION_SIDE_TOP_OUTSIDE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_CAPTION_SIDE_BOTTOM_OUTSIDE: ::std::os::raw::c_uint =
-        5;
-    pub const NS_STYLE_CELL_SCOPE_ROW: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_CELL_SCOPE_COL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CELL_SCOPE_ROWGROUP: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_CELL_SCOPE_COLGROUP: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_PAGE_MARKS_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_PAGE_MARKS_CROP: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_PAGE_MARKS_REGISTER: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_PAGE_SIZE_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_PAGE_SIZE_PORTRAIT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_PAGE_SIZE_LANDSCAPE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_PAGE_BREAK_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_PAGE_BREAK_ALWAYS: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_PAGE_BREAK_AVOID: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_PAGE_BREAK_LEFT: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_PAGE_BREAK_RIGHT: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_COLUMN_COUNT_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COLUMN_COUNT_UNLIMITED: ::std::os::raw::c_int = -1;
-    pub const NS_STYLE_COLUMN_FILL_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COLUMN_FILL_BALANCE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_COLUMN_SPAN_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COLUMN_SPAN_ALL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_IME_MODE_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_IME_MODE_NORMAL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_IME_MODE_ACTIVE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_IME_MODE_DISABLED: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_IME_MODE_INACTIVE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_GRADIENT_SHAPE_LINEAR: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_GRADIENT_SHAPE_ELLIPTICAL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_GRADIENT_SHAPE_CIRCULAR: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_GRADIENT_SIZE_CLOSEST_SIDE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_GRADIENT_SIZE_CLOSEST_CORNER: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_GRADIENT_SIZE_FARTHEST_SIDE: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_GRADIENT_SIZE_FARTHEST_CORNER: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_GRADIENT_SIZE_EXPLICIT_SIZE: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_CONTEXT_PROPERTY_FILL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_CONTEXT_PROPERTY_STROKE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_CONTEXT_PROPERTY_FILL_OPACITY: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_CONTEXT_PROPERTY_STROKE_OPACITY: ::std::os::raw::c_uint
-              =
-        8;
-    pub const NS_STYLE_WINDOW_SHADOW_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_WINDOW_SHADOW_DEFAULT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_WINDOW_SHADOW_MENU: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_WINDOW_SHADOW_TOOLTIP: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_WINDOW_SHADOW_SHEET: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_DOMINANT_BASELINE_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_DOMINANT_BASELINE_USE_SCRIPT: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_DOMINANT_BASELINE_NO_CHANGE: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_DOMINANT_BASELINE_RESET_SIZE: ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_DOMINANT_BASELINE_IDEOGRAPHIC: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_DOMINANT_BASELINE_ALPHABETIC: ::std::os::raw::c_uint =
-        5;
-    pub const NS_STYLE_DOMINANT_BASELINE_HANGING: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_DOMINANT_BASELINE_MATHEMATICAL: ::std::os::raw::c_uint
-              =
-        7;
-    pub const NS_STYLE_DOMINANT_BASELINE_CENTRAL: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_DOMINANT_BASELINE_MIDDLE: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_DOMINANT_BASELINE_TEXT_AFTER_EDGE:
-              ::std::os::raw::c_uint =
-        10;
-    pub const NS_STYLE_DOMINANT_BASELINE_TEXT_BEFORE_EDGE:
-              ::std::os::raw::c_uint =
-        11;
-    pub const NS_STYLE_IMAGE_RENDERING_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_IMAGE_RENDERING_OPTIMIZESPEED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_IMAGE_RENDERING_OPTIMIZEQUALITY: ::std::os::raw::c_uint
-              =
-        2;
-    pub const NS_STYLE_IMAGE_RENDERING_CRISPEDGES: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_MASK_TYPE_LUMINANCE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_MASK_TYPE_ALPHA: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_PAINT_ORDER_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_PAINT_ORDER_FILL: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_PAINT_ORDER_STROKE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_PAINT_ORDER_MARKERS: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_PAINT_ORDER_LAST_VALUE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_PAINT_ORDER_BITWIDTH: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_SHAPE_RENDERING_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_SHAPE_RENDERING_OPTIMIZESPEED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_SHAPE_RENDERING_CRISPEDGES: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_SHAPE_RENDERING_GEOMETRICPRECISION:
-              ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_STROKE_LINECAP_BUTT: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_STROKE_LINECAP_ROUND: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_STROKE_LINECAP_SQUARE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_STROKE_LINEJOIN_MITER: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_STROKE_LINEJOIN_ROUND: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_STROKE_LINEJOIN_BEVEL: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_STROKE_PROP_CONTEXT_VALUE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_ANCHOR_START: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_ANCHOR_MIDDLE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_ANCHOR_END: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TEXT_EMPHASIS_POSITION_OVER: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_TEXT_EMPHASIS_POSITION_UNDER: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TEXT_EMPHASIS_POSITION_LEFT: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_TEXT_EMPHASIS_POSITION_RIGHT: ::std::os::raw::c_uint =
-        8;
-    pub const NS_STYLE_TEXT_EMPHASIS_POSITION_DEFAULT: ::std::os::raw::c_uint
-              =
-        9;
-    pub const NS_STYLE_TEXT_EMPHASIS_POSITION_DEFAULT_ZH:
-              ::std::os::raw::c_uint =
-        10;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_FILL_MASK: ::std::os::raw::c_uint =
-        8;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_FILLED: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_OPEN: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_SHAPE_MASK: ::std::os::raw::c_uint
-              =
-        7;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_DOT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_CIRCLE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_DOUBLE_CIRCLE:
-              ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_TRIANGLE: ::std::os::raw::c_uint =
-        4;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_SESAME: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_TEXT_EMPHASIS_STYLE_STRING: ::std::os::raw::c_uint =
-        255;
-    pub const NS_STYLE_TEXT_RENDERING_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TEXT_RENDERING_OPTIMIZESPEED: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_TEXT_RENDERING_OPTIMIZELEGIBILITY:
-              ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_TEXT_RENDERING_GEOMETRICPRECISION:
-              ::std::os::raw::c_uint =
-        3;
-    pub const NS_STYLE_COLOR_ADJUST_ECONOMY: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COLOR_ADJUST_EXACT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_COLOR_INTERPOLATION_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COLOR_INTERPOLATION_SRGB: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_COLOR_INTERPOLATION_LINEARRGB: ::std::os::raw::c_uint =
-        2;
-    pub const NS_STYLE_VECTOR_EFFECT_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_VECTOR_EFFECT_NON_SCALING_STROKE:
-              ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_BACKFACE_VISIBILITY_VISIBLE: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_BACKFACE_VISIBILITY_HIDDEN: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TRANSFORM_STYLE_FLAT: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_TRANSFORM_STYLE_PRESERVE_3D: ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_CONTEXT_FILL_OPACITY: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_CONTEXT_STROKE_OPACITY: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_BLEND_NORMAL: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_BLEND_MULTIPLY: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_BLEND_SCREEN: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_BLEND_OVERLAY: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_BLEND_DARKEN: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_BLEND_LIGHTEN: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_BLEND_COLOR_DODGE: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_BLEND_COLOR_BURN: ::std::os::raw::c_uint = 7;
-    pub const NS_STYLE_BLEND_HARD_LIGHT: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_BLEND_SOFT_LIGHT: ::std::os::raw::c_uint = 9;
-    pub const NS_STYLE_BLEND_DIFFERENCE: ::std::os::raw::c_uint = 10;
-    pub const NS_STYLE_BLEND_EXCLUSION: ::std::os::raw::c_uint = 11;
-    pub const NS_STYLE_BLEND_HUE: ::std::os::raw::c_uint = 12;
-    pub const NS_STYLE_BLEND_SATURATION: ::std::os::raw::c_uint = 13;
-    pub const NS_STYLE_BLEND_COLOR: ::std::os::raw::c_uint = 14;
-    pub const NS_STYLE_BLEND_LUMINOSITY: ::std::os::raw::c_uint = 15;
-    pub const NS_STYLE_MASK_COMPOSITE_ADD: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_MASK_COMPOSITE_SUBTRACT: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_MASK_COMPOSITE_INTERSECT: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_MASK_COMPOSITE_EXCLUDE: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_CONTROL_CHARACTER_VISIBILITY_HIDDEN:
-              ::std::os::raw::c_uint =
-        0;
-    pub const NS_STYLE_CONTROL_CHARACTER_VISIBILITY_VISIBLE:
-              ::std::os::raw::c_uint =
-        1;
-    pub const NS_STYLE_COUNTER_SYSTEM_CYCLIC: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COUNTER_SYSTEM_NUMERIC: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_COUNTER_SYSTEM_ALPHABETIC: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_COUNTER_SYSTEM_SYMBOLIC: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_COUNTER_SYSTEM_ADDITIVE: ::std::os::raw::c_uint = 4;
-    pub const NS_STYLE_COUNTER_SYSTEM_FIXED: ::std::os::raw::c_uint = 5;
-    pub const NS_STYLE_COUNTER_SYSTEM_EXTENDS: ::std::os::raw::c_uint = 6;
-    pub const NS_STYLE_COUNTER_RANGE_INFINITE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COUNTER_SPEAKAS_BULLETS: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_COUNTER_SPEAKAS_NUMBERS: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_COUNTER_SPEAKAS_WORDS: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_COUNTER_SPEAKAS_SPELL_OUT: ::std::os::raw::c_uint = 3;
-    pub const NS_STYLE_COUNTER_SPEAKAS_OTHER: ::std::os::raw::c_uint = 255;
-    pub const NS_STYLE_SCROLL_BEHAVIOR_AUTO: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_SCROLL_BEHAVIOR_SMOOTH: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_SCROLL_SNAP_TYPE_NONE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_SCROLL_SNAP_TYPE_MANDATORY: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_SCROLL_SNAP_TYPE_PROXIMITY: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_ORIENTATION_PORTRAIT: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_ORIENTATION_LANDSCAPE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_SCAN_PROGRESSIVE: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_SCAN_INTERLACE: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_DISPLAY_MODE_BROWSER: ::std::os::raw::c_uint = 0;
-    pub const NS_STYLE_DISPLAY_MODE_MINIMAL_UI: ::std::os::raw::c_uint = 1;
-    pub const NS_STYLE_DISPLAY_MODE_STANDALONE: ::std::os::raw::c_uint = 2;
-    pub const NS_STYLE_DISPLAY_MODE_FULLSCREEN: ::std::os::raw::c_uint = 3;
-    pub const CSS_PSEUDO_ELEMENT_IS_CSS2: ::std::os::raw::c_uint = 1;
-    pub const CSS_PSEUDO_ELEMENT_CONTAINS_ELEMENTS: ::std::os::raw::c_uint =
-        2;
-    pub const CSS_PSEUDO_ELEMENT_SUPPORTS_STYLE_ATTRIBUTE:
-              ::std::os::raw::c_uint =
-        4;
-    pub const CSS_PSEUDO_ELEMENT_SUPPORTS_USER_ACTION_STATE:
-              ::std::os::raw::c_uint =
-        8;
-    pub const CSS_PSEUDO_ELEMENT_UA_SHEET_ONLY: ::std::os::raw::c_uint = 16;
-    pub const CSS_PSEUDO_ELEMENT_IS_JS_CREATED_NAC: ::std::os::raw::c_uint =
-        32;
-    pub const CSS_PSEUDO_ELEMENT_IS_FLEX_OR_GRID_ITEM: ::std::os::raw::c_uint
-              =
-        64;
-    pub const kNameSpaceID_Unknown: ::std::os::raw::c_int = -1;
-    pub const kNameSpaceID_XMLNS: ::std::os::raw::c_uint = 1;
-    pub const kNameSpaceID_XML: ::std::os::raw::c_uint = 2;
-    pub const kNameSpaceID_XHTML: ::std::os::raw::c_uint = 3;
-    pub const kNameSpaceID_XLink: ::std::os::raw::c_uint = 4;
-    pub const kNameSpaceID_XSLT: ::std::os::raw::c_uint = 5;
-    pub const kNameSpaceID_XBL: ::std::os::raw::c_uint = 6;
-    pub const kNameSpaceID_MathML: ::std::os::raw::c_uint = 7;
-    pub const kNameSpaceID_RDF: ::std::os::raw::c_uint = 8;
-    pub const kNameSpaceID_XUL: ::std::os::raw::c_uint = 9;
-    pub const kNameSpaceID_SVG: ::std::os::raw::c_uint = 10;
-    pub const kNameSpaceID_disabled_MathML: ::std::os::raw::c_uint = 11;
-    pub const kNameSpaceID_disabled_SVG: ::std::os::raw::c_uint = 12;
-    pub const kNameSpaceID_LastBuiltin: ::std::os::raw::c_uint = 12;
-    pub const kNameSpaceID_Wildcard: ::std::os::raw::c_int = -2147483648;
-    pub const NS_AUTHOR_SPECIFIED_BACKGROUND: ::std::os::raw::c_uint = 1;
-    pub const NS_AUTHOR_SPECIFIED_BORDER: ::std::os::raw::c_uint = 2;
-    pub const NS_AUTHOR_SPECIFIED_PADDING: ::std::os::raw::c_uint = 4;
-    pub const NS_AUTHOR_SPECIFIED_TEXT_SHADOW: ::std::os::raw::c_uint = 8;
-    pub const NS_STYLE_INHERIT_MASK: ::std::os::raw::c_uint = 16777215;
-    pub const NS_STYLE_HAS_TEXT_DECORATION_LINES: ::std::os::raw::c_uint =
-        16777216;
-    pub const NS_STYLE_HAS_PSEUDO_ELEMENT_DATA: ::std::os::raw::c_uint =
-        33554432;
-    pub const NS_STYLE_RELEVANT_LINK_VISITED: ::std::os::raw::c_uint =
-        67108864;
-    pub const NS_STYLE_IS_STYLE_IF_VISITED: ::std::os::raw::c_uint =
-        134217728;
-    pub const NS_STYLE_CHILD_USES_GRANDANCESTOR_STYLE: ::std::os::raw::c_uint
-              =
-        268435456;
-    pub const NS_STYLE_IS_SHARED: ::std::os::raw::c_uint = 536870912;
-    pub const NS_STYLE_IS_GOING_AWAY: ::std::os::raw::c_uint = 1073741824;
-    pub const NS_STYLE_SUPPRESS_LINEBREAK: ::std::os::raw::c_uint =
-        2147483648;
-    pub const NS_STYLE_IN_DISPLAY_NONE_SUBTREE: ::std::os::raw::c_ulonglong =
-        4294967296;
-    pub const NS_STYLE_INELIGIBLE_FOR_SHARING: ::std::os::raw::c_ulonglong =
-        8589934592;
-    pub const NS_STYLE_HAS_CHILD_THAT_USES_RESET_STYLE:
-              ::std::os::raw::c_ulonglong =
-        17179869184;
-    pub const NS_STYLE_IS_TEXT_COMBINED: ::std::os::raw::c_ulonglong =
-        34359738368;
-    pub const NS_STYLE_CONTEXT_IS_GECKO: ::std::os::raw::c_ulonglong =
-        68719476736;
-    pub const NS_STYLE_CONTEXT_TYPE_SHIFT: ::std::os::raw::c_uint = 37;
-    pub mod std {
-        #[allow(unused_imports)]
-        use self::super::super::root;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct pair<_T1, _T2> {
-            pub first: _T1,
-            pub second: _T2,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<_T1>>,
-            pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<_T2>>,
-        }
-        pub type pair_first_type<_T1> = _T1;
-        pub type pair_second_type<_T2> = _T2;
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct input_iterator_tag {
-            pub _address: u8,
-        }
-        #[test]
-        fn bindgen_test_layout_input_iterator_tag() {
-            assert_eq!(::std::mem::size_of::<input_iterator_tag>() , 1usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( input_iterator_tag ) ));
-            assert_eq! (::std::mem::align_of::<input_iterator_tag>() , 1usize
-                        , concat ! (
-                        "Alignment of " , stringify ! ( input_iterator_tag )
-                        ));
-        }
-        impl Clone for input_iterator_tag {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct iterator {
-            pub _address: u8,
-        }
-        pub type iterator_iterator_category<_Category> = _Category;
-        pub type iterator_value_type<_Tp> = _Tp;
-        pub type iterator_difference_type<_Distance> = _Distance;
-        pub type iterator_pointer<_Pointer> = _Pointer;
-        pub type iterator_reference<_Reference> = _Reference;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct atomic {
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct function {
-            pub _address: u8,
-        }
-        pub type _Base_bitset__WordT = ::std::os::raw::c_ulong;
-        pub type bitset__Base = u8;
-        pub type bitset__WordT = ::std::os::raw::c_ulong;
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct bitset_reference {
-            pub _M_wp: *mut root::std::bitset__WordT,
-            pub _M_bpos: usize,
-        }
-    }
-    pub mod __gnu_cxx {
-        #[allow(unused_imports)]
-        use self::super::super::root;
-    }
-    pub mod mozilla {
-        #[allow(unused_imports)]
-        use self::super::super::root;
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct fallible_t {
-            pub _address: u8,
-        }
-        #[test]
-        fn bindgen_test_layout_fallible_t() {
-            assert_eq!(::std::mem::size_of::<fallible_t>() , 1usize , concat !
-                       ( "Size of: " , stringify ! ( fallible_t ) ));
-            assert_eq! (::std::mem::align_of::<fallible_t>() , 1usize , concat
-                        ! ( "Alignment of " , stringify ! ( fallible_t ) ));
-        }
-        impl Clone for fallible_t {
-            fn clone(&self) -> Self { *self }
-        }
-        pub type IntegralConstant_ValueType<T> = T;
-        pub type IntegralConstant_Type = u8;
-        /// Convenient aliases.
-        pub type TrueType = u8;
-        pub type FalseType = u8;
-        pub mod detail {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct nsTStringRepr<T> {
-                pub mData: *mut root::mozilla::detail::nsTStringRepr_char_type<T>,
-                pub mLength: root::mozilla::detail::nsTStringRepr_size_type,
-                pub mDataFlags: root::mozilla::detail::nsTStringRepr_DataFlags,
-                pub mClassFlags: root::mozilla::detail::nsTStringRepr_ClassFlags,
-                pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-            }
-            pub type nsTStringRepr_fallible_t = root::mozilla::fallible_t;
-            pub type nsTStringRepr_char_type<T> = T;
-            pub type nsTStringRepr_self_type<T> =
-                root::mozilla::detail::nsTStringRepr<T>;
-            pub type nsTStringRepr_base_string_type<T> =
-                root::mozilla::detail::nsTStringRepr_self_type<T>;
-            pub type nsTStringRepr_substring_type<T> = root::nsTSubstring<T>;
-            pub type nsTStringRepr_substring_tuple_type<T> =
-                root::nsTSubstringTuple<T>;
-            pub type nsTStringRepr_const_iterator<T> =
-                root::nsReadingIterator<root::mozilla::detail::nsTStringRepr_char_type<T>>;
-            pub type nsTStringRepr_iterator<T> =
-                root::nsWritingIterator<root::mozilla::detail::nsTStringRepr_char_type<T>>;
-            pub type nsTStringRepr_comparator_type =
-                root::nsTStringComparator;
-            pub type nsTStringRepr_char_iterator<T> =
-                *mut root::mozilla::detail::nsTStringRepr_char_type<T>;
-            pub type nsTStringRepr_const_char_iterator<T> =
-                *const root::mozilla::detail::nsTStringRepr_char_type<T>;
-            pub type nsTStringRepr_index_type = u32;
-            pub type nsTStringRepr_size_type = u32;
-            pub type nsTStringRepr_DataFlags =
-                root::mozilla::detail::StringDataFlags;
-            pub type nsTStringRepr_ClassFlags =
-                root::mozilla::detail::StringClassFlags;
-            pub type nsTStringRepr_IsChar = u8;
-            pub type nsTStringRepr_IsChar16 = u8;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct nsTStringRepr_raw_type {
-                pub _address: u8,
-            }
-            pub type nsTStringRepr_raw_type_type<U> = *mut U;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct AllocPolicyBasedFreePolicy {
-                pub _address: u8,
-            }
-            #[repr(u16)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum StringDataFlags {
-                TERMINATED = 1,
-                VOIDED = 2,
-                SHARED = 4,
-                OWNED = 8,
-                FIXED = 16,
-                LITERAL = 32,
-            }
-            #[repr(u16)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum StringClassFlags { FIXED = 1, NULL_TERMINATED = 2, }
-            /// LinkedList supports refcounted elements using this adapter class. Clients
-            /// using LinkedList<RefPtr<T>> will get a data structure that holds a strong
-            /// reference to T as long as T is in the list.
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct LinkedListElementTraits {
-                pub _address: u8,
-            }
-            pub type LinkedListElementTraits_RawType<T> = *mut T;
-            pub type LinkedListElementTraits_ConstRawType<T> = *mut T;
-            pub type LinkedListElementTraits_ClientType<T> = *mut T;
-            pub type LinkedListElementTraits_ConstClientType<T> = *mut T;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct WeakReference {
-            }
-        }
-        pub type Conditional_Type<A> = A;
-        #[repr(u32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum ArenaObjectID {
-            eArenaObjectID_DummyBeforeFirstObjectID = 171,
-            eArenaObjectID_GeckoStyleContext = 172,
-            eArenaObjectID_nsLineBox = 173,
-            eArenaObjectID_nsRuleNode = 174,
-            eArenaObjectID_DisplayItemData = 175,
-            eArenaObjectID_nsInheritedStyleData = 176,
-            eArenaObjectID_nsResetStyleData = 177,
-            eArenaObjectID_nsConditionalResetStyleData = 178,
-            eArenaObjectID_nsConditionalResetStyleDataEntry = 179,
-            eArenaObjectID_nsFrameList = 180,
-            eArenaObjectID_CustomCounterStyle = 181,
-            eArenaObjectID_DependentBuiltinCounterStyle = 182,
-            eArenaObjectID_nsCallbackEventRequest = 183,
-            eArenaObjectID_nsIntervalSet_Interval = 184,
-            eArenaObjectID_CellData = 185,
-            eArenaObjectID_BCCellData = 186,
-            eArenaObjectID_nsStyleFont = 187,
-            eArenaObjectID_nsStyleColor = 188,
-            eArenaObjectID_nsStyleList = 189,
-            eArenaObjectID_nsStyleText = 190,
-            eArenaObjectID_nsStyleVisibility = 191,
-            eArenaObjectID_nsStyleUserInterface = 192,
-            eArenaObjectID_nsStyleTableBorder = 193,
-            eArenaObjectID_nsStyleSVG = 194,
-            eArenaObjectID_nsStyleVariables = 195,
-            eArenaObjectID_nsStyleBackground = 196,
-            eArenaObjectID_nsStylePosition = 197,
-            eArenaObjectID_nsStyleTextReset = 198,
-            eArenaObjectID_nsStyleDisplay = 199,
-            eArenaObjectID_nsStyleContent = 200,
-            eArenaObjectID_nsStyleUIReset = 201,
-            eArenaObjectID_nsStyleTable = 202,
-            eArenaObjectID_nsStyleMargin = 203,
-            eArenaObjectID_nsStylePadding = 204,
-            eArenaObjectID_nsStyleBorder = 205,
-            eArenaObjectID_nsStyleOutline = 206,
-            eArenaObjectID_nsStyleXUL = 207,
-            eArenaObjectID_nsStyleSVGReset = 208,
-            eArenaObjectID_nsStyleColumn = 209,
-            eArenaObjectID_nsStyleEffects = 210,
-            eArenaObjectID_COUNT = 211,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct MallocAllocPolicy {
-            pub _address: u8,
-        }
-        #[test]
-        fn bindgen_test_layout_MallocAllocPolicy() {
-            assert_eq!(::std::mem::size_of::<MallocAllocPolicy>() , 1usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( MallocAllocPolicy ) ));
-            assert_eq! (::std::mem::align_of::<MallocAllocPolicy>() , 1usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( MallocAllocPolicy )
-                        ));
-        }
-        impl Clone for MallocAllocPolicy {
-            fn clone(&self) -> Self { *self }
-        }
-        /// A default deletion policy using plain old operator delete.
-        ///
-        /// Note that this type can be specialized, but authors should beware of the risk
-        /// that the specialization may at some point cease to match (either because it
-        /// gets moved to a different compilation unit or the signature changes). If the
-        /// non-specialized (|delete|-based) version compiles for that type but does the
-        /// wrong thing, bad things could happen.
-        ///
-        /// This is a non-issue for types which are always incomplete (i.e. opaque handle
-        /// types), since |delete|-ing such a type will always trigger a compilation
-        /// error.
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct DefaultDelete {
-            pub _address: u8,
-        }
-        pub type MallocSizeOf =
-            ::std::option::Option<unsafe extern "C" fn(p:
-                                                           *const ::std::os::raw::c_void)
-                                      -> usize>;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct ReverseIterator<IteratorT> {
-            pub mCurrent: IteratorT,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<IteratorT>>,
-        }
-        pub type Array_iterator<T> = *mut T;
-        pub type Array_const_iterator<T> = *mut T;
-        pub type Array_reverse_iterator<T> =
-            root::mozilla::ReverseIterator<T>;
-        pub type Array_const_reverse_iterator<T> =
-            root::mozilla::ReverseIterator<T>;
-        pub mod css {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct ErrorReporter {
-                pub mError: root::nsAutoString,
-                pub mErrorLine: ::nsstring::nsStringRepr,
-                pub mFileName: ::nsstring::nsStringRepr,
-                pub mScanner: *const root::nsCSSScanner,
-                pub mSheet: *const root::mozilla::StyleSheet,
-                pub mLoader: *const root::mozilla::css::Loader,
-                pub mURI: *mut root::nsIURI,
-                pub mInnerWindowID: u64,
-                pub mErrorLineNumber: u32,
-                pub mPrevErrorLineNumber: u32,
-                pub mErrorColNumber: u32,
-            }
-            #[test]
-            fn bindgen_test_layout_ErrorReporter() {
-                assert_eq!(::std::mem::size_of::<ErrorReporter>() , 248usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( ErrorReporter ) ));
-                assert_eq! (::std::mem::align_of::<ErrorReporter>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( ErrorReporter )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) . mError as
-                            * const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mError )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) .
-                            mErrorLine as * const _ as usize } , 160usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mErrorLine
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) . mFileName
-                            as * const _ as usize } , 176usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mFileName )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) . mScanner
-                            as * const _ as usize } , 192usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mScanner )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) . mSheet as
-                            * const _ as usize } , 200usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mSheet )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) . mLoader
-                            as * const _ as usize } , 208usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mLoader )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) . mURI as *
-                            const _ as usize } , 216usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! ( mURI ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) .
-                            mInnerWindowID as * const _ as usize } , 224usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! (
-                            mInnerWindowID ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) .
-                            mErrorLineNumber as * const _ as usize } ,
-                            232usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! (
-                            mErrorLineNumber ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) .
-                            mPrevErrorLineNumber as * const _ as usize } ,
-                            236usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! (
-                            mPrevErrorLineNumber ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ErrorReporter ) ) .
-                            mErrorColNumber as * const _ as usize } , 240usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ErrorReporter ) , "::" , stringify ! (
-                            mErrorColNumber ) ));
-            }
-            #[repr(u8)]
-            /// Enum defining the mode in which a sheet is to be parsed.  This is
-            /// usually, but not always, the same as the cascade level at which the
-            /// sheet will apply (see nsStyleSet.h).  Most of the Loader APIs only
-            /// support loading of author sheets.
-            ///
-            /// Author sheets are the normal case: styles embedded in or linked
-            /// from HTML pages.  They are also the most restricted.
-            ///
-            /// User sheets can do anything author sheets can do, and also get
-            /// access to a few CSS extensions that are not yet suitable for
-            /// exposure on the public Web, but are very useful for expressing
-            /// user style overrides, such as @-moz-document rules.
-            ///
-            /// XXX: eUserSheetFeatures was added in bug 1035091, but some patches in
-            /// that bug never landed to use this enum value. Currently, all the features
-            /// in user sheet are also available in author sheet.
-            ///
-            /// Agent sheets have access to all author- and user-sheet features
-            /// plus more extensions that are necessary for internal use but,
-            /// again, not yet suitable for exposure on the public Web.  Some of
-            /// these are outright unsafe to expose; in particular, incorrect
-            /// styling of anonymous box pseudo-elements can violate layout
-            /// invariants.
-            ///
-            /// Agent sheets that do not use any unsafe rules could use
-            /// eSafeAgentSheetFeatures when creating the sheet. This enum value allows
-            /// Servo backend to recognize the sheets as the agent level, but Gecko
-            /// backend will parse it under _author_ level.
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum SheetParsingMode {
-                eAuthorSheetFeatures = 0,
-                eUserSheetFeatures = 1,
-                eAgentSheetFeatures = 2,
-                eSafeAgentSheetFeatures = 3,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct GroupRule {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct Rule {
-                pub _base: root::nsIDOMCSSRule,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mSheet: *mut root::mozilla::StyleSheet,
-                pub mParentRule: *mut root::mozilla::css::GroupRule,
-                pub mLineNumber: u32,
-                pub mColumnNumber: u32,
-            }
-            pub type Rule_HasThreadSafeRefCnt = root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct Rule_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_Rule_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<Rule_cycleCollection>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! ( Rule_cycleCollection )
-                           ));
-                assert_eq! (::std::mem::align_of::<Rule_cycleCollection>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            Rule_cycleCollection ) ));
-            }
-            impl Clone for Rule_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            pub const Rule_UNKNOWN_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::UNKNOWN_RULE;
-            pub const Rule_CHARSET_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::CHARSET_RULE;
-            pub const Rule_IMPORT_RULE: root::mozilla::css::Rule__bindgen_ty_1
-                      =
-                Rule__bindgen_ty_1::IMPORT_RULE;
-            pub const Rule_NAMESPACE_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::NAMESPACE_RULE;
-            pub const Rule_STYLE_RULE: root::mozilla::css::Rule__bindgen_ty_1
-                      =
-                Rule__bindgen_ty_1::STYLE_RULE;
-            pub const Rule_MEDIA_RULE: root::mozilla::css::Rule__bindgen_ty_1
-                      =
-                Rule__bindgen_ty_1::MEDIA_RULE;
-            pub const Rule_FONT_FACE_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::FONT_FACE_RULE;
-            pub const Rule_PAGE_RULE: root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::PAGE_RULE;
-            pub const Rule_KEYFRAME_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::KEYFRAME_RULE;
-            pub const Rule_KEYFRAMES_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::KEYFRAMES_RULE;
-            pub const Rule_DOCUMENT_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::DOCUMENT_RULE;
-            pub const Rule_SUPPORTS_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::SUPPORTS_RULE;
-            pub const Rule_FONT_FEATURE_VALUES_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::FONT_FEATURE_VALUES_RULE;
-            pub const Rule_COUNTER_STYLE_RULE:
-                      root::mozilla::css::Rule__bindgen_ty_1 =
-                Rule__bindgen_ty_1::COUNTER_STYLE_RULE;
-            #[repr(u32)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum Rule__bindgen_ty_1 {
-                UNKNOWN_RULE = 0,
-                CHARSET_RULE = 1,
-                IMPORT_RULE = 2,
-                NAMESPACE_RULE = 3,
-                STYLE_RULE = 4,
-                MEDIA_RULE = 5,
-                FONT_FACE_RULE = 6,
-                PAGE_RULE = 7,
-                KEYFRAME_RULE = 8,
-                KEYFRAMES_RULE = 9,
-                DOCUMENT_RULE = 10,
-                SUPPORTS_RULE = 11,
-                FONT_FEATURE_VALUES_RULE = 12,
-                COUNTER_STYLE_RULE = 13,
-            }
-            extern "C" {
-                #[link_name = "_ZN7mozilla3css4Rule21_cycleCollectorGlobalE"]
-                pub static mut Rule__cycleCollectorGlobal:
-                           root::mozilla::css::Rule_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_Rule() {
-                assert_eq!(::std::mem::size_of::<Rule>() , 72usize , concat !
-                           ( "Size of: " , stringify ! ( Rule ) ));
-                assert_eq! (::std::mem::align_of::<Rule>() , 8usize , concat !
-                            ( "Alignment of " , stringify ! ( Rule ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct Loader {
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mSheets: root::nsAutoPtr<root::mozilla::css::Loader_Sheets>,
-                pub mParsingDatas: [u64; 10usize],
-                pub mPostedEvents: root::mozilla::css::Loader_LoadDataArray,
-                pub mObservers: [u64; 2usize],
-                pub mDocument: *mut root::nsIDocument,
-                pub mDocGroup: root::RefPtr<root::mozilla::dom::DocGroup>,
-                pub mDatasToNotifyOn: u32,
-                pub mCompatMode: root::nsCompatibility,
-                pub mPreferredSheet: ::nsstring::nsStringRepr,
-                pub mStyleBackendType: [u8; 2usize],
-                pub mEnabled: bool,
-                pub mReporter: root::nsCOMPtr<root::nsIConsoleReportCollector>,
-                pub mSyncCallback: bool,
-            }
-            pub use self::super::super::super::root::mozilla::net::ReferrerPolicy
-                    as Loader_ReferrerPolicy;
-            pub type Loader_HasThreadSafeRefCnt = root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct Loader_cycleCollection {
-                pub _base: root::nsCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_Loader_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<Loader_cycleCollection>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! ( Loader_cycleCollection
-                           ) ));
-                assert_eq! (::std::mem::align_of::<Loader_cycleCollection>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            Loader_cycleCollection ) ));
-            }
-            impl Clone for Loader_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            pub type Loader_LoadDataArray =
-                root::nsTArray<root::RefPtr<root::mozilla::css::SheetLoadData>>;
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct Loader_Sheets {
-                pub mCompleteSheets: [u64; 5usize],
-                pub mLoadingDatas: [u64; 5usize],
-                pub mPendingDatas: [u64; 5usize],
-            }
-            #[test]
-            fn bindgen_test_layout_Loader_Sheets() {
-                assert_eq!(::std::mem::size_of::<Loader_Sheets>() , 120usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( Loader_Sheets ) ));
-                assert_eq! (::std::mem::align_of::<Loader_Sheets>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( Loader_Sheets )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader_Sheets ) ) .
-                            mCompleteSheets as * const _ as usize } , 0usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            Loader_Sheets ) , "::" , stringify ! (
-                            mCompleteSheets ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader_Sheets ) ) .
-                            mLoadingDatas as * const _ as usize } , 40usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            Loader_Sheets ) , "::" , stringify ! (
-                            mLoadingDatas ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader_Sheets ) ) .
-                            mPendingDatas as * const _ as usize } , 80usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            Loader_Sheets ) , "::" , stringify ! (
-                            mPendingDatas ) ));
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3css6Loader21_cycleCollectorGlobalE"]
-                pub static mut Loader__cycleCollectorGlobal:
-                           root::mozilla::css::Loader_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_Loader() {
-                assert_eq!(::std::mem::size_of::<Loader>() , 192usize , concat
-                           ! ( "Size of: " , stringify ! ( Loader ) ));
-                assert_eq! (::std::mem::align_of::<Loader>() , 8usize , concat
-                            ! ( "Alignment of " , stringify ! ( Loader ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mRefCnt as *
-                            const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mRefCnt ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . _mOwningThread
-                            as * const _ as usize } , 8usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( _mOwningThread ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mSheets as *
-                            const _ as usize } , 16usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mSheets ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mParsingDatas as
-                            * const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mParsingDatas ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mPostedEvents as
-                            * const _ as usize } , 104usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mPostedEvents ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mObservers as *
-                            const _ as usize } , 112usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mObservers ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mDocument as *
-                            const _ as usize } , 128usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mDocument ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mDocGroup as *
-                            const _ as usize } , 136usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mDocGroup ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mDatasToNotifyOn
-                            as * const _ as usize } , 144usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mDatasToNotifyOn ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mCompatMode as *
-                            const _ as usize } , 148usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mCompatMode ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mPreferredSheet
-                            as * const _ as usize } , 152usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mPreferredSheet ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) .
-                            mStyleBackendType as * const _ as usize } ,
-                            168usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mStyleBackendType ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mEnabled as *
-                            const _ as usize } , 170usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mEnabled ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mReporter as *
-                            const _ as usize } , 176usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mReporter ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Loader ) ) . mSyncCallback as
-                            * const _ as usize } , 184usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Loader ) ,
-                            "::" , stringify ! ( mSyncCallback ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ImageLoader {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            pub struct URLValueData__bindgen_vtable(::std::os::raw::c_void);
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct URLValueData {
-                pub vtable_: *const URLValueData__bindgen_vtable,
-                pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
-                pub mURI: root::nsMainThreadPtrHandle<root::nsIURI>,
-                pub mExtraData: root::RefPtr<root::mozilla::URLExtraData>,
-                pub mURIResolved: bool,
-                pub mIsLocalRef: [u8; 2usize],
-                pub mMightHaveRef: [u8; 2usize],
-                pub mStrings: root::mozilla::css::URLValueData_RustOrGeckoString,
-                pub mUsingRustString: bool,
-                pub mLoadedImage: bool,
-            }
-            pub type URLValueData_HasThreadSafeRefCnt =
-                root::mozilla::TrueType;
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct URLValueData_RustOrGeckoString {
-                pub mString: root::__BindgenUnionField<::nsstring::nsStringRepr>,
-                pub mRustString: root::__BindgenUnionField<::gecko_bindings::structs::ServoRawOffsetArc<root::RustString>>,
-                pub bindgen_union_field: [u64; 2usize],
-            }
-            #[test]
-            fn bindgen_test_layout_URLValueData_RustOrGeckoString() {
-                assert_eq!(::std::mem::size_of::<URLValueData_RustOrGeckoString>()
-                           , 16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           URLValueData_RustOrGeckoString ) ));
-                assert_eq! (::std::mem::align_of::<URLValueData_RustOrGeckoString>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            URLValueData_RustOrGeckoString ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const URLValueData_RustOrGeckoString )
-                            ) . mString as * const _ as usize } , 0usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData_RustOrGeckoString ) , "::" ,
-                            stringify ! ( mString ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const URLValueData_RustOrGeckoString )
-                            ) . mRustString as * const _ as usize } , 0usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData_RustOrGeckoString ) , "::" ,
-                            stringify ! ( mRustString ) ));
-            }
-            #[test]
-            fn bindgen_test_layout_URLValueData() {
-                assert_eq!(::std::mem::size_of::<URLValueData>() , 64usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( URLValueData ) ));
-                assert_eq! (::std::mem::align_of::<URLValueData>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( URLValueData ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mRefCnt as
-                            * const _ as usize } , 8usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mRefCnt )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mURI as *
-                            const _ as usize } , 16usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mURI ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mExtraData
-                            as * const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mExtraData )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mURIResolved as * const _ as usize } , 32usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mURIResolved
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mIsLocalRef as * const _ as usize } , 33usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mIsLocalRef
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mMightHaveRef as * const _ as usize } , 35usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! (
-                            mMightHaveRef ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mStrings
-                            as * const _ as usize } , 40usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mStrings )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mUsingRustString as * const _ as usize } , 56usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! (
-                            mUsingRustString ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mLoadedImage as * const _ as usize } , 57usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mLoadedImage
-                            ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct URLValue {
-                pub _base: root::mozilla::css::URLValueData,
-            }
-            #[test]
-            fn bindgen_test_layout_URLValue() {
-                assert_eq!(::std::mem::size_of::<URLValue>() , 64usize ,
-                           concat ! ( "Size of: " , stringify ! ( URLValue )
-                           ));
-                assert_eq! (::std::mem::align_of::<URLValue>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( URLValue ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct ImageValue {
-                pub _base: root::mozilla::css::URLValueData,
-                pub mRequests: [u64; 5usize],
-            }
-            #[test]
-            fn bindgen_test_layout_ImageValue() {
-                assert_eq!(::std::mem::size_of::<ImageValue>() , 104usize ,
-                           concat ! ( "Size of: " , stringify ! ( ImageValue )
-                           ));
-                assert_eq! (::std::mem::align_of::<ImageValue>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( ImageValue ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ImageValue ) ) . mRequests as
-                            * const _ as usize } , 64usize , concat ! (
-                            "Alignment of field: " , stringify ! ( ImageValue
-                            ) , "::" , stringify ! ( mRequests ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct GridNamedArea {
-                pub mName: ::nsstring::nsStringRepr,
-                pub mColumnStart: u32,
-                pub mColumnEnd: u32,
-                pub mRowStart: u32,
-                pub mRowEnd: u32,
-            }
-            #[test]
-            fn bindgen_test_layout_GridNamedArea() {
-                assert_eq!(::std::mem::size_of::<GridNamedArea>() , 32usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( GridNamedArea ) ));
-                assert_eq! (::std::mem::align_of::<GridNamedArea>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( GridNamedArea )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridNamedArea ) ) . mName as
-                            * const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridNamedArea ) , "::" , stringify ! ( mName ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridNamedArea ) ) .
-                            mColumnStart as * const _ as usize } , 16usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridNamedArea ) , "::" , stringify ! (
-                            mColumnStart ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridNamedArea ) ) .
-                            mColumnEnd as * const _ as usize } , 20usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridNamedArea ) , "::" , stringify ! ( mColumnEnd
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridNamedArea ) ) . mRowStart
-                            as * const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridNamedArea ) , "::" , stringify ! ( mRowStart )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridNamedArea ) ) . mRowEnd
-                            as * const _ as usize } , 28usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridNamedArea ) , "::" , stringify ! ( mRowEnd )
-                            ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct GridTemplateAreasValue {
-                pub mNamedAreas: root::nsTArray<root::mozilla::css::GridNamedArea>,
-                pub mTemplates: root::nsTArray<::nsstring::nsStringRepr>,
-                pub mNColumns: u32,
-                pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
-            }
-            pub type GridTemplateAreasValue_HasThreadSafeRefCnt =
-                root::mozilla::TrueType;
-            #[test]
-            fn bindgen_test_layout_GridTemplateAreasValue() {
-                assert_eq!(::std::mem::size_of::<GridTemplateAreasValue>() ,
-                           32usize , concat ! (
-                           "Size of: " , stringify ! ( GridTemplateAreasValue
-                           ) ));
-                assert_eq! (::std::mem::align_of::<GridTemplateAreasValue>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            GridTemplateAreasValue ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridTemplateAreasValue ) ) .
-                            mNamedAreas as * const _ as usize } , 0usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridTemplateAreasValue ) , "::" , stringify ! (
-                            mNamedAreas ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridTemplateAreasValue ) ) .
-                            mTemplates as * const _ as usize } , 8usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridTemplateAreasValue ) , "::" , stringify ! (
-                            mTemplates ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridTemplateAreasValue ) ) .
-                            mNColumns as * const _ as usize } , 16usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GridTemplateAreasValue ) , "::" , stringify ! (
-                            mNColumns ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GridTemplateAreasValue ) ) .
-                            mRefCnt as * const _ as usize } , 24usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            GridTemplateAreasValue ) , "::" , stringify ! (
-                            mRefCnt ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct RGBAColorData {
-                pub mR: f32,
-                pub mG: f32,
-                pub mB: f32,
-                pub mA: f32,
-            }
-            #[test]
-            fn bindgen_test_layout_RGBAColorData() {
-                assert_eq!(::std::mem::size_of::<RGBAColorData>() , 16usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( RGBAColorData ) ));
-                assert_eq! (::std::mem::align_of::<RGBAColorData>() , 4usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( RGBAColorData )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const RGBAColorData ) ) . mR as *
-                            const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            RGBAColorData ) , "::" , stringify ! ( mR ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const RGBAColorData ) ) . mG as *
-                            const _ as usize } , 4usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            RGBAColorData ) , "::" , stringify ! ( mG ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const RGBAColorData ) ) . mB as *
-                            const _ as usize } , 8usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            RGBAColorData ) , "::" , stringify ! ( mB ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const RGBAColorData ) ) . mA as *
-                            const _ as usize } , 12usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            RGBAColorData ) , "::" , stringify ! ( mA ) ));
-            }
-            impl Clone for RGBAColorData {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct ComplexColorData {
-                pub mColor: root::mozilla::css::RGBAColorData,
-                pub mForegroundRatio: f32,
-            }
-            #[test]
-            fn bindgen_test_layout_ComplexColorData() {
-                assert_eq!(::std::mem::size_of::<ComplexColorData>() , 20usize
-                           , concat ! (
-                           "Size of: " , stringify ! ( ComplexColorData ) ));
-                assert_eq! (::std::mem::align_of::<ComplexColorData>() ,
-                            4usize , concat ! (
-                            "Alignment of " , stringify ! ( ComplexColorData )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ComplexColorData ) ) . mColor
-                            as * const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ComplexColorData ) , "::" , stringify ! ( mColor )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ComplexColorData ) ) .
-                            mForegroundRatio as * const _ as usize } , 16usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ComplexColorData ) , "::" , stringify ! (
-                            mForegroundRatio ) ));
-            }
-            impl Clone for ComplexColorData {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct ComplexColorValue {
-                pub _base: root::mozilla::css::ComplexColorData,
-                pub mRefCnt: root::nsAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-            }
-            pub type ComplexColorValue_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[test]
-            fn bindgen_test_layout_ComplexColorValue() {
-                assert_eq!(::std::mem::size_of::<ComplexColorValue>() ,
-                           40usize , concat ! (
-                           "Size of: " , stringify ! ( ComplexColorValue ) ));
-                assert_eq! (::std::mem::align_of::<ComplexColorValue>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! ( ComplexColorValue
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ComplexColorValue ) ) .
-                            mRefCnt as * const _ as usize } , 24usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            ComplexColorValue ) , "::" , stringify ! ( mRefCnt
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ComplexColorValue ) ) .
-                            _mOwningThread as * const _ as usize } , 32usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ComplexColorValue ) , "::" , stringify ! (
-                            _mOwningThread ) ));
-            }
-            /// Style sheet reuse *
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct LoaderReusableStyleSheets {
-                pub mReusableSheets: root::nsTArray<root::RefPtr<root::mozilla::StyleSheet>>,
-            }
-            #[test]
-            fn bindgen_test_layout_LoaderReusableStyleSheets() {
-                assert_eq!(::std::mem::size_of::<LoaderReusableStyleSheets>()
-                           , 8usize , concat ! (
-                           "Size of: " , stringify ! (
-                           LoaderReusableStyleSheets ) ));
-                assert_eq! (::std::mem::align_of::<LoaderReusableStyleSheets>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            LoaderReusableStyleSheets ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const LoaderReusableStyleSheets ) )
-                            . mReusableSheets as * const _ as usize } , 0usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            LoaderReusableStyleSheets ) , "::" , stringify ! (
-                            mReusableSheets ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct SheetLoadData {
-                _unused: [u8; 0],
-            }
-            #[repr(i32)]
-            /// Enum defining the type of URL matching function for a @-moz-document rule
-            /// condition.
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum URLMatchingFunction {
-                eURL = 0,
-                eURLPrefix = 1,
-                eDomain = 2,
-                eRegExp = 3,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DocumentRule {
-                _unused: [u8; 0],
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ThreadSafeAutoRefCnt {
-            pub mValue: u64,
-        }
-        pub const ThreadSafeAutoRefCnt_isThreadSafe: bool = true;
-        #[test]
-        fn bindgen_test_layout_ThreadSafeAutoRefCnt() {
-            assert_eq!(::std::mem::size_of::<ThreadSafeAutoRefCnt>() , 8usize
-                       , concat ! (
-                       "Size of: " , stringify ! ( ThreadSafeAutoRefCnt ) ));
-            assert_eq! (::std::mem::align_of::<ThreadSafeAutoRefCnt>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! ( ThreadSafeAutoRefCnt )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ThreadSafeAutoRefCnt ) ) . mValue
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ThreadSafeAutoRefCnt ) , "::" , stringify ! ( mValue )
-                        ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct OwningNonNull<T> {
-            pub mPtr: root::RefPtr<T>,
-            pub mInited: bool,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct StaticRefPtr<T> {
-            pub mRawPtr: *mut T,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-        }
-        pub type EnumeratedArray_ArrayType = u8;
-        pub type EnumeratedArray_iterator =
-            root::mozilla::EnumeratedArray_ArrayType;
-        pub type EnumeratedArray_const_iterator =
-            root::mozilla::EnumeratedArray_ArrayType;
-        pub type EnumeratedArray_reverse_iterator =
-            root::mozilla::EnumeratedArray_ArrayType;
-        pub type EnumeratedArray_const_reverse_iterator =
-            root::mozilla::EnumeratedArray_ArrayType;
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct LinkedListElement {
-            pub mNext: *mut root::mozilla::LinkedListElement,
-            pub mPrev: *mut root::mozilla::LinkedListElement,
-            pub mIsSentinel: bool,
-        }
-        pub type LinkedListElement_Traits =
-            root::mozilla::detail::LinkedListElementTraits;
-        pub type LinkedListElement_RawType =
-            root::mozilla::LinkedListElement_Traits;
-        pub type LinkedListElement_ConstRawType =
-            root::mozilla::LinkedListElement_Traits;
-        pub type LinkedListElement_ClientType =
-            root::mozilla::LinkedListElement_Traits;
-        pub type LinkedListElement_ConstClientType =
-            root::mozilla::LinkedListElement_Traits;
-        pub const LinkedListElement_NodeKind_Sentinel:
-                  root::mozilla::LinkedListElement_NodeKind =
-            LinkedListElement_NodeKind::Normal;
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum LinkedListElement_NodeKind { Normal = 0, }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct LinkedList {
-            pub sentinel: root::mozilla::LinkedListElement,
-        }
-        pub type LinkedList_Traits =
-            root::mozilla::detail::LinkedListElementTraits;
-        pub type LinkedList_RawType = root::mozilla::LinkedList_Traits;
-        pub type LinkedList_ConstRawType = root::mozilla::LinkedList_Traits;
-        pub type LinkedList_ClientType = root::mozilla::LinkedList_Traits;
-        pub type LinkedList_ConstClientType =
-            root::mozilla::LinkedList_Traits;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct LinkedList_Iterator {
-            pub mCurrent: root::mozilla::LinkedList_RawType,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct Maybe {
-        }
-        pub type Maybe_ValueType<T> = T;
-        pub mod gfx {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            pub type Float = f32;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct FontVariation {
-                pub mTag: u32,
-                pub mValue: f32,
-            }
-            #[test]
-            fn bindgen_test_layout_FontVariation() {
-                assert_eq!(::std::mem::size_of::<FontVariation>() , 8usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( FontVariation ) ));
-                assert_eq! (::std::mem::align_of::<FontVariation>() , 4usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( FontVariation )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const FontVariation ) ) . mTag as *
-                            const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FontVariation ) , "::" , stringify ! ( mTag ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const FontVariation ) ) . mValue as
-                            * const _ as usize } , 4usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FontVariation ) , "::" , stringify ! ( mValue )
-                            ));
-            }
-            impl Clone for FontVariation {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct SourceSurface {
-                _unused: [u8; 0],
-            }
-        }
-        pub mod layers {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct LayerManager {
-                _unused: [u8; 0],
-            }
-        }
-        pub mod dom {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(u8)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum PlaybackDirection {
-                Normal = 0,
-                Reverse = 1,
-                Alternate = 2,
-                Alternate_reverse = 3,
-                EndGuard_ = 4,
-            }
-            #[repr(u8)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum FillMode {
-                None = 0,
-                Forwards = 1,
-                Backwards = 2,
-                Both = 3,
-                Auto = 4,
-                EndGuard_ = 5,
-            }
-            pub mod binding_detail {
-                #[allow(unused_imports)]
-                use self::super::super::super::super::root;
-                #[repr(C)]
-                #[derive(Debug, Copy, Clone)]
-                pub struct RecordEntry<KeyType, ValueType> {
-                    pub mKey: KeyType,
-                    pub mValue: ValueType,
-                    pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<KeyType>>,
-                    pub _phantom_1: ::std::marker::PhantomData<::std::cell::UnsafeCell<ValueType>>,
-                }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct AllOwningUnionBase {
-                pub _address: u8,
-            }
-            #[test]
-            fn bindgen_test_layout_AllOwningUnionBase() {
-                assert_eq!(::std::mem::size_of::<AllOwningUnionBase>() ,
-                           1usize , concat ! (
-                           "Size of: " , stringify ! ( AllOwningUnionBase )
-                           ));
-                assert_eq! (::std::mem::align_of::<AllOwningUnionBase>() ,
-                            1usize , concat ! (
-                            "Alignment of " , stringify ! ( AllOwningUnionBase
-                            ) ));
-            }
-            impl Clone for AllOwningUnionBase {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(u32)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum CallerType { System = 0, NonSystem = 1, }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct GlobalObject {
-                pub mGlobalJSObject: [u64; 3usize],
-                pub mCx: *mut root::JSContext,
-                pub mGlobalObject: *mut root::nsISupports,
-            }
-            #[test]
-            fn bindgen_test_layout_GlobalObject() {
-                assert_eq!(::std::mem::size_of::<GlobalObject>() , 40usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( GlobalObject ) ));
-                assert_eq! (::std::mem::align_of::<GlobalObject>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( GlobalObject ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GlobalObject ) ) .
-                            mGlobalJSObject as * const _ as usize } , 0usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GlobalObject ) , "::" , stringify ! (
-                            mGlobalJSObject ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GlobalObject ) ) . mCx as *
-                            const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GlobalObject ) , "::" , stringify ! ( mCx ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const GlobalObject ) ) .
-                            mGlobalObject as * const _ as usize } , 32usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            GlobalObject ) , "::" , stringify ! (
-                            mGlobalObject ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Sequence {
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Nullable {
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct CSSImportRule {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct MediaList {
-                pub _base: root::nsIDOMMediaList,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mStyleSheet: *mut root::mozilla::StyleSheet,
-            }
-            pub type MediaList_HasThreadSafeRefCnt = root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct MediaList_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_MediaList_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<MediaList_cycleCollection>()
-                           , 16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           MediaList_cycleCollection ) ));
-                assert_eq! (::std::mem::align_of::<MediaList_cycleCollection>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            MediaList_cycleCollection ) ));
-            }
-            impl Clone for MediaList_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom9MediaList21_cycleCollectorGlobalE"]
-                pub static mut MediaList__cycleCollectorGlobal:
-                           root::mozilla::dom::MediaList_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_MediaList() {
-                assert_eq!(::std::mem::size_of::<MediaList>() , 56usize ,
-                           concat ! ( "Size of: " , stringify ! ( MediaList )
-                           ));
-                assert_eq! (::std::mem::align_of::<MediaList>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( MediaList ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct SRIMetadata {
-                pub mHashes: root::nsTArray<root::nsTString<::std::os::raw::c_char>>,
-                pub mIntegrityString: ::nsstring::nsStringRepr,
-                pub mAlgorithm: root::nsCString,
-                pub mAlgorithmType: i8,
-                pub mEmpty: bool,
-            }
-            pub const SRIMetadata_MAX_ALTERNATE_HASHES: u32 = 256;
-            pub const SRIMetadata_UNKNOWN_ALGORITHM: i8 = -1;
-            #[test]
-            fn bindgen_test_layout_SRIMetadata() {
-                assert_eq!(::std::mem::size_of::<SRIMetadata>() , 48usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( SRIMetadata ) ));
-                assert_eq! (::std::mem::align_of::<SRIMetadata>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( SRIMetadata ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const SRIMetadata ) ) . mHashes as
-                            * const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! ( SRIMetadata
-                            ) , "::" , stringify ! ( mHashes ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const SRIMetadata ) ) .
-                            mIntegrityString as * const _ as usize } , 8usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! ( SRIMetadata
-                            ) , "::" , stringify ! ( mIntegrityString ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const SRIMetadata ) ) . mAlgorithm
-                            as * const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! ( SRIMetadata
-                            ) , "::" , stringify ! ( mAlgorithm ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const SRIMetadata ) ) .
-                            mAlgorithmType as * const _ as usize } , 40usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! ( SRIMetadata
-                            ) , "::" , stringify ! ( mAlgorithmType ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const SRIMetadata ) ) . mEmpty as *
-                            const _ as usize } , 41usize , concat ! (
-                            "Alignment of field: " , stringify ! ( SRIMetadata
-                            ) , "::" , stringify ! ( mEmpty ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct Element {
-                pub _base: root::mozilla::dom::FragmentOrElement,
-                pub mState: root::mozilla::EventStates,
-                pub mServoData: ::gecko_bindings::structs::ServoCell<*mut ::gecko_bindings::structs::ServoNodeData>,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Element_COMTypeInfo {
-                pub _address: u8,
-            }
-            /// StyleStateLocks is used to specify which event states should be locked,
-            /// and whether they should be locked to on or off.
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct Element_StyleStateLocks {
-                pub mLocks: root::mozilla::EventStates,
-                pub mValues: root::mozilla::EventStates,
-            }
-            #[test]
-            fn bindgen_test_layout_Element_StyleStateLocks() {
-                assert_eq!(::std::mem::size_of::<Element_StyleStateLocks>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! ( Element_StyleStateLocks
-                           ) ));
-                assert_eq! (::std::mem::align_of::<Element_StyleStateLocks>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            Element_StyleStateLocks ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Element_StyleStateLocks ) ) .
-                            mLocks as * const _ as usize } , 0usize , concat !
-                            (
-                            "Alignment of field: " , stringify ! (
-                            Element_StyleStateLocks ) , "::" , stringify ! (
-                            mLocks ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Element_StyleStateLocks ) ) .
-                            mValues as * const _ as usize } , 8usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            Element_StyleStateLocks ) , "::" , stringify ! (
-                            mValues ) ));
-            }
-            impl Clone for Element_StyleStateLocks {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct Element_MappedAttributeEntry {
-                pub attribute: *mut *mut root::nsIAtom,
-            }
-            #[test]
-            fn bindgen_test_layout_Element_MappedAttributeEntry() {
-                assert_eq!(::std::mem::size_of::<Element_MappedAttributeEntry>()
-                           , 8usize , concat ! (
-                           "Size of: " , stringify ! (
-                           Element_MappedAttributeEntry ) ));
-                assert_eq! (::std::mem::align_of::<Element_MappedAttributeEntry>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            Element_MappedAttributeEntry ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const Element_MappedAttributeEntry ) )
-                            . attribute as * const _ as usize } , 0usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            Element_MappedAttributeEntry ) , "::" , stringify
-                            ! ( attribute ) ));
-            }
-            impl Clone for Element_MappedAttributeEntry {
-                fn clone(&self) -> Self { *self }
-            }
-            pub const Element_kAllServoDescendantBits: u32 = 25296896;
-            pub const Element_kFireMutationEvent: bool = true;
-            pub const Element_kDontFireMutationEvent: bool = false;
-            pub const Element_kNotifyDocumentObservers: bool = true;
-            pub const Element_kDontNotifyDocumentObservers: bool = false;
-            pub const Element_kCallAfterSetAttr: bool = true;
-            pub const Element_kDontCallAfterSetAttr: bool = false;
-            #[test]
-            fn bindgen_test_layout_Element() {
-                assert_eq!(::std::mem::size_of::<Element>() , 128usize ,
-                           concat ! ( "Size of: " , stringify ! ( Element )
-                           ));
-                assert_eq! (::std::mem::align_of::<Element>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( Element ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Element ) ) . mState as *
-                            const _ as usize } , 112usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Element ) ,
-                            "::" , stringify ! ( mState ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const Element ) ) . mServoData as *
-                            const _ as usize } , 120usize , concat ! (
-                            "Alignment of field: " , stringify ! ( Element ) ,
-                            "::" , stringify ! ( mServoData ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ShadowRoot {
-                _unused: [u8; 0],
-            }
-            /// Struct that stores info on an attribute. The name and value must either both
-            /// be null or both be non-null.
-            ///
-            /// Note that, just as the pointers returned by GetAttrNameAt, the pointers that
-            /// this struct hold are only valid until the element or its attributes are
-            /// mutated (directly or via script).
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct BorrowedAttrInfo {
-                pub mName: *const root::nsAttrName,
-                pub mValue: *const root::nsAttrValue,
-            }
-            #[test]
-            fn bindgen_test_layout_BorrowedAttrInfo() {
-                assert_eq!(::std::mem::size_of::<BorrowedAttrInfo>() , 16usize
-                           , concat ! (
-                           "Size of: " , stringify ! ( BorrowedAttrInfo ) ));
-                assert_eq! (::std::mem::align_of::<BorrowedAttrInfo>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! ( BorrowedAttrInfo )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const BorrowedAttrInfo ) ) . mName
-                            as * const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            BorrowedAttrInfo ) , "::" , stringify ! ( mName )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const BorrowedAttrInfo ) ) . mValue
-                            as * const _ as usize } , 8usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            BorrowedAttrInfo ) , "::" , stringify ! ( mValue )
-                            ));
-            }
-            impl Clone for BorrowedAttrInfo {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct NodeInfo {
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mDocument: *mut root::nsIDocument,
-                pub mInner: root::mozilla::dom::NodeInfo_NodeInfoInner,
-                pub mOwnerManager: root::RefPtr<root::nsNodeInfoManager>,
-                pub mQualifiedName: ::nsstring::nsStringRepr,
-                pub mNodeName: ::nsstring::nsStringRepr,
-                pub mLocalName: ::nsstring::nsStringRepr,
-            }
-            pub type NodeInfo_HasThreadSafeRefCnt = root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct NodeInfo_cycleCollection {
-                pub _base: root::nsCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_NodeInfo_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<NodeInfo_cycleCollection>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           NodeInfo_cycleCollection ) ));
-                assert_eq! (::std::mem::align_of::<NodeInfo_cycleCollection>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            NodeInfo_cycleCollection ) ));
-            }
-            impl Clone for NodeInfo_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct NodeInfo_NodeInfoInner {
-                pub mName: *const root::nsIAtom,
-                pub mPrefix: *mut root::nsIAtom,
-                pub mNamespaceID: i32,
-                pub mNodeType: u16,
-                pub mNameString: *const root::nsAString,
-                pub mExtraName: *mut root::nsIAtom,
-                pub mHash: root::PLHashNumber,
-                pub mHashInitialized: bool,
-            }
-            #[test]
-            fn bindgen_test_layout_NodeInfo_NodeInfoInner() {
-                assert_eq!(::std::mem::size_of::<NodeInfo_NodeInfoInner>() ,
-                           48usize , concat ! (
-                           "Size of: " , stringify ! ( NodeInfo_NodeInfoInner
-                           ) ));
-                assert_eq! (::std::mem::align_of::<NodeInfo_NodeInfoInner>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            NodeInfo_NodeInfoInner ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mName as * const _ as usize } , 0usize , concat !
-                            (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mName ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mPrefix as * const _ as usize } , 8usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mPrefix ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mNamespaceID as * const _ as usize } , 16usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mNamespaceID ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mNodeType as * const _ as usize } , 20usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mNodeType ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mNameString as * const _ as usize } , 24usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mNameString ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mExtraName as * const _ as usize } , 32usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mExtraName ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mHash as * const _ as usize } , 40usize , concat !
-                            (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mHash ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo_NodeInfoInner ) ) .
-                            mHashInitialized as * const _ as usize } , 44usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            NodeInfo_NodeInfoInner ) , "::" , stringify ! (
-                            mHashInitialized ) ));
-            }
-            impl Clone for NodeInfo_NodeInfoInner {
-                fn clone(&self) -> Self { *self }
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom8NodeInfo21_cycleCollectorGlobalE"]
-                pub static mut NodeInfo__cycleCollectorGlobal:
-                           root::mozilla::dom::NodeInfo_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_NodeInfo() {
-                assert_eq!(::std::mem::size_of::<NodeInfo>() , 128usize ,
-                           concat ! ( "Size of: " , stringify ! ( NodeInfo )
-                           ));
-                assert_eq! (::std::mem::align_of::<NodeInfo>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( NodeInfo ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mRefCnt as *
-                            const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mRefCnt ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . _mOwningThread
-                            as * const _ as usize } , 8usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( _mOwningThread ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mDocument as *
-                            const _ as usize } , 16usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mDocument ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mInner as *
-                            const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mInner ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mOwnerManager
-                            as * const _ as usize } , 72usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mOwnerManager ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mQualifiedName
-                            as * const _ as usize } , 80usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mQualifiedName ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mNodeName as *
-                            const _ as usize } , 96usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mNodeName ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const NodeInfo ) ) . mLocalName as
-                            * const _ as usize } , 112usize , concat ! (
-                            "Alignment of field: " , stringify ! ( NodeInfo )
-                            , "::" , stringify ! ( mLocalName ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct EventTarget {
-                pub _base: root::nsIDOMEventTarget,
-                pub _base_1: root::nsWrapperCache,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct EventTarget_COMTypeInfo {
-                pub _address: u8,
-            }
-            #[test]
-            fn bindgen_test_layout_EventTarget() {
-                assert_eq!(::std::mem::size_of::<EventTarget>() , 32usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( EventTarget ) ));
-                assert_eq! (::std::mem::align_of::<EventTarget>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( EventTarget ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct BoxQuadOptions {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ConvertCoordinateOptions {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DOMPoint {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DOMQuad {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct DOMRectReadOnly {
-                pub _base: root::nsISupports,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mParent: root::nsCOMPtr<root::nsISupports>,
-            }
-            pub type DOMRectReadOnly_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct DOMRectReadOnly_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_DOMRectReadOnly_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<DOMRectReadOnly_cycleCollection>()
-                           , 16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           DOMRectReadOnly_cycleCollection ) ));
-                assert_eq! (::std::mem::align_of::<DOMRectReadOnly_cycleCollection>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            DOMRectReadOnly_cycleCollection ) ));
-            }
-            impl Clone for DOMRectReadOnly_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom15DOMRectReadOnly21_cycleCollectorGlobalE"]
-                pub static mut DOMRectReadOnly__cycleCollectorGlobal:
-                           root::mozilla::dom::DOMRectReadOnly_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_DOMRectReadOnly() {
-                assert_eq!(::std::mem::size_of::<DOMRectReadOnly>() , 56usize
-                           , concat ! (
-                           "Size of: " , stringify ! ( DOMRectReadOnly ) ));
-                assert_eq! (::std::mem::align_of::<DOMRectReadOnly>() , 8usize
-                            , concat ! (
-                            "Alignment of " , stringify ! ( DOMRectReadOnly )
-                            ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct OwningNodeOrString {
-                pub mType: root::mozilla::dom::OwningNodeOrString_Type,
-                pub mValue: root::mozilla::dom::OwningNodeOrString_Value,
-            }
-            #[repr(u32)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum OwningNodeOrString_Type {
-                eUninitialized = 0,
-                eNode = 1,
-                eString = 2,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct OwningNodeOrString_Value {
-                pub _bindgen_opaque_blob: [u64; 2usize],
-            }
-            #[test]
-            fn bindgen_test_layout_OwningNodeOrString_Value() {
-                assert_eq!(::std::mem::size_of::<OwningNodeOrString_Value>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           OwningNodeOrString_Value ) ));
-                assert_eq! (::std::mem::align_of::<OwningNodeOrString_Value>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            OwningNodeOrString_Value ) ));
-            }
-            impl Clone for OwningNodeOrString_Value {
-                fn clone(&self) -> Self { *self }
-            }
-            #[test]
-            fn bindgen_test_layout_OwningNodeOrString() {
-                assert_eq!(::std::mem::size_of::<OwningNodeOrString>() ,
-                           24usize , concat ! (
-                           "Size of: " , stringify ! ( OwningNodeOrString )
-                           ));
-                assert_eq! (::std::mem::align_of::<OwningNodeOrString>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! ( OwningNodeOrString
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const OwningNodeOrString ) ) .
-                            mType as * const _ as usize } , 0usize , concat !
-                            (
-                            "Alignment of field: " , stringify ! (
-                            OwningNodeOrString ) , "::" , stringify ! ( mType
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const OwningNodeOrString ) ) .
-                            mValue as * const _ as usize } , 8usize , concat !
-                            (
-                            "Alignment of field: " , stringify ! (
-                            OwningNodeOrString ) , "::" , stringify ! ( mValue
-                            ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct TextOrElementOrDocument {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DOMPointInit {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct TabGroup {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            pub struct DispatcherTrait__bindgen_vtable(::std::os::raw::c_void);
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct DispatcherTrait {
-                pub vtable_: *const DispatcherTrait__bindgen_vtable,
-            }
-            #[test]
-            fn bindgen_test_layout_DispatcherTrait() {
-                assert_eq!(::std::mem::size_of::<DispatcherTrait>() , 8usize ,
-                           concat ! (
-                           "Size of: " , stringify ! ( DispatcherTrait ) ));
-                assert_eq! (::std::mem::align_of::<DispatcherTrait>() , 8usize
-                            , concat ! (
-                            "Alignment of " , stringify ! ( DispatcherTrait )
-                            ));
-            }
-            impl Clone for DispatcherTrait {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct AudioContext {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DocGroup {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ServiceWorkerRegistration {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct TimeoutManager {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct PrefSetting {
-                _unused: [u8; 0],
-            }
-            pub mod prototypes {
-                #[allow(unused_imports)]
-                use self::super::super::super::super::root;
-            }
-            pub mod constructors {
-                #[allow(unused_imports)]
-                use self::super::super::super::super::root;
-            }
-            pub mod namedpropertiesobjects {
-                #[allow(unused_imports)]
-                use self::super::super::super::super::root;
-            }
-            #[repr(u8)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum VisibilityState {
-                Hidden = 0,
-                Visible = 1,
-                Prerender = 2,
-                EndGuard_ = 3,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Animation {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct AnonymousContent {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct Attr {
-                pub _base: root::nsIAttribute,
-                pub _base_1: root::nsIDOMAttr,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mValue: ::nsstring::nsStringRepr,
-            }
-            pub type Attr_HasThreadSafeRefCnt = root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct Attr_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_Attr_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<Attr_cycleCollection>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! ( Attr_cycleCollection )
-                           ));
-                assert_eq! (::std::mem::align_of::<Attr_cycleCollection>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            Attr_cycleCollection ) ));
-            }
-            impl Clone for Attr_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            extern "C" {
-                #[link_name = "_ZN7mozilla3dom4Attr21_cycleCollectorGlobalE"]
-                pub static mut Attr__cycleCollectorGlobal:
-                           root::mozilla::dom::Attr_cycleCollection;
-            }
-            extern "C" {
-                #[link_name = "_ZN7mozilla3dom4Attr12sInitializedE"]
-                pub static mut Attr_sInitialized: bool;
-            }
-            #[test]
-            fn bindgen_test_layout_Attr() {
-                assert_eq!(::std::mem::size_of::<Attr>() , 136usize , concat !
-                           ( "Size of: " , stringify ! ( Attr ) ));
-                assert_eq! (::std::mem::align_of::<Attr>() , 8usize , concat !
-                            ( "Alignment of " , stringify ! ( Attr ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct DOMIntersectionObserver {
-                pub _base: root::nsISupports,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mOwner: root::nsCOMPtr<root::nsPIDOMWindowInner>,
-                pub mDocument: root::RefPtr<root::nsIDocument>,
-                pub mCallback: root::RefPtr<root::mozilla::dom::IntersectionCallback>,
-                pub mRoot: root::RefPtr<root::mozilla::dom::Element>,
-                pub mRootMargin: root::nsCSSRect,
-                pub mThresholds: root::nsTArray<f64>,
-                pub mObservationTargets: root::nsTArray<*mut root::mozilla::dom::Element>,
-                pub mQueuedEntries: root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>,
-                pub mConnected: bool,
-            }
-            pub type DOMIntersectionObserver_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct DOMIntersectionObserver_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserver_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserver_cycleCollection>()
-                           , 16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           DOMIntersectionObserver_cycleCollection ) ));
-                assert_eq! (::std::mem::align_of::<DOMIntersectionObserver_cycleCollection>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            DOMIntersectionObserver_cycleCollection ) ));
-            }
-            impl Clone for DOMIntersectionObserver_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DOMIntersectionObserver_COMTypeInfo {
-                pub _address: u8,
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom23DOMIntersectionObserver21_cycleCollectorGlobalE"]
-                pub static mut DOMIntersectionObserver__cycleCollectorGlobal:
-                           root::mozilla::dom::DOMIntersectionObserver_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserver() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserver>() ,
-                           176usize , concat ! (
-                           "Size of: " , stringify ! ( DOMIntersectionObserver
-                           ) ));
-                assert_eq! (::std::mem::align_of::<DOMIntersectionObserver>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            DOMIntersectionObserver ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct FontFaceSet {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct FrameRequestCallback {
-                pub _bindgen_opaque_blob: [u64; 7usize],
-            }
-            #[test]
-            fn bindgen_test_layout_FrameRequestCallback() {
-                assert_eq!(::std::mem::size_of::<FrameRequestCallback>() ,
-                           56usize , concat ! (
-                           "Size of: " , stringify ! ( FrameRequestCallback )
-                           ));
-                assert_eq! (::std::mem::align_of::<FrameRequestCallback>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            FrameRequestCallback ) ));
-            }
-            impl Clone for FrameRequestCallback {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct FullscreenRequest {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ImageTracker {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Link {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct MediaQueryList {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct XPathEvaluator {
-                _unused: [u8; 0],
-            }
-            pub type Record_EntryType<KeyType, ValueType> =
-                root::mozilla::dom::binding_detail::RecordEntry<KeyType,
-                                                                ValueType>;
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct URLParams {
-                pub mParams: root::nsTArray<root::mozilla::dom::URLParams_Param>,
-            }
-            #[repr(C)]
-            pub struct URLParams_ForEachIterator__bindgen_vtable(::std::os::raw::c_void);
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct URLParams_ForEachIterator {
-                pub vtable_: *const URLParams_ForEachIterator__bindgen_vtable,
-            }
-            #[test]
-            fn bindgen_test_layout_URLParams_ForEachIterator() {
-                assert_eq!(::std::mem::size_of::<URLParams_ForEachIterator>()
-                           , 8usize , concat ! (
-                           "Size of: " , stringify ! (
-                           URLParams_ForEachIterator ) ));
-                assert_eq! (::std::mem::align_of::<URLParams_ForEachIterator>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            URLParams_ForEachIterator ) ));
-            }
-            impl Clone for URLParams_ForEachIterator {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct URLParams_Param {
-                pub mKey: ::nsstring::nsStringRepr,
-                pub mValue: ::nsstring::nsStringRepr,
-            }
-            #[test]
-            fn bindgen_test_layout_URLParams_Param() {
-                assert_eq!(::std::mem::size_of::<URLParams_Param>() , 32usize
-                           , concat ! (
-                           "Size of: " , stringify ! ( URLParams_Param ) ));
-                assert_eq! (::std::mem::align_of::<URLParams_Param>() , 8usize
-                            , concat ! (
-                            "Alignment of " , stringify ! ( URLParams_Param )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLParams_Param ) ) . mKey as
-                            * const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLParams_Param ) , "::" , stringify ! ( mKey )
-                            ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLParams_Param ) ) . mValue
-                            as * const _ as usize } , 16usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLParams_Param ) , "::" , stringify ! ( mValue )
-                            ));
-            }
-            #[test]
-            fn bindgen_test_layout_URLParams() {
-                assert_eq!(::std::mem::size_of::<URLParams>() , 8usize ,
-                           concat ! ( "Size of: " , stringify ! ( URLParams )
-                           ));
-                assert_eq! (::std::mem::align_of::<URLParams>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( URLParams ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLParams ) ) . mParams as *
-                            const _ as usize } , 0usize , concat ! (
-                            "Alignment of field: " , stringify ! ( URLParams )
-                            , "::" , stringify ! ( mParams ) ));
-            }
-            /// StyleChildrenIterator traverses the children of the element from the
-            /// perspective of the style system, particularly the children we need to
-            /// traverse during restyle.
-            ///
-            /// At present, this is identical to AllChildrenIterator with
-            /// (eAllChildren | eSkipDocumentLevelNativeAnonymousContent). We used to have
-            /// detect and skip any native anonymous children that are used to implement some
-            /// special magic in here that went away, but we keep the separate class so
-            /// we can reintroduce special magic back if needed.
-            ///
-            /// Note: it assumes that no mutation of the DOM or frame tree takes place during
-            /// iteration, and will break horribly if that is not true.
-            ///
-            /// We require this to be memmovable since Rust code can create and move
-            /// StyleChildrenIterators.
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct StyleChildrenIterator {
-                pub _base: root::mozilla::dom::AllChildrenIterator,
-            }
-            #[test]
-            fn bindgen_test_layout_StyleChildrenIterator() {
-                assert_eq!(::std::mem::size_of::<StyleChildrenIterator>() ,
-                           80usize , concat ! (
-                           "Size of: " , stringify ! ( StyleChildrenIterator )
-                           ));
-                assert_eq! (::std::mem::align_of::<StyleChildrenIterator>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            StyleChildrenIterator ) ));
-            }
-            #[repr(u8)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum CompositeOperation {
-                Replace = 0,
-                Add = 1,
-                Accumulate = 2,
-                EndGuard_ = 3,
-            }
-            #[repr(u8)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum IterationCompositeOperation {
-                Replace = 0,
-                Accumulate = 1,
-                EndGuard_ = 2,
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct XBLChildrenElement {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct CustomElementData {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct FragmentOrElement {
-                pub _base: root::nsIContent,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                /// Array containing all attributes and children for this element
-                pub mAttrsAndChildren: root::nsAttrAndChildArray,
-            }
-            pub type FragmentOrElement_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct FragmentOrElement_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_FragmentOrElement_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<FragmentOrElement_cycleCollection>()
-                           , 16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           FragmentOrElement_cycleCollection ) ));
-                assert_eq! (::std::mem::align_of::<FragmentOrElement_cycleCollection>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            FragmentOrElement_cycleCollection ) ));
-            }
-            impl Clone for FragmentOrElement_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            /// There are a set of DOM- and scripting-specific instance variables
-            /// that may only be instantiated when a content object is accessed
-            /// through the DOM. Rather than burn actual slots in the content
-            /// objects for each of these instance variables, we put them off
-            /// in a side structure that's only allocated when the content is
-            /// accessed through the DOM.
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct FragmentOrElement_nsExtendedDOMSlots {
-                /// SMIL Overridde style rules (for SMIL animation of CSS properties)
-                /// @see Element::GetSMILOverrideStyle
-                pub mSMILOverrideStyle: root::nsCOMPtr<root::nsICSSDeclaration>,
-                /// Holds any SMIL override style declaration for this element.
-                pub mSMILOverrideStyleDeclaration: root::RefPtr<root::mozilla::DeclarationBlock>,
-                /// The nearest enclosing content node with a binding that created us.
-                /// @see FragmentOrElement::GetBindingParent
-                pub mBindingParent: *mut root::nsIContent,
-                /// The controllers of the XUL Element.
-                pub mControllers: root::nsCOMPtr<root::nsIControllers>,
-                /// An object implementing the .labels property for this element.
-                pub mLabelsList: root::RefPtr<root::nsLabelsNodeList>,
-                /// ShadowRoot bound to the element.
-                pub mShadowRoot: root::RefPtr<root::mozilla::dom::ShadowRoot>,
-                /// The root ShadowRoot of this element if it is in a shadow tree.
-                pub mContainingShadow: root::RefPtr<root::mozilla::dom::ShadowRoot>,
-                /// An array of web component insertion points to which this element
-                /// is distributed.
-                pub mDestInsertionPoints: root::nsTArray<*mut root::nsIContent>,
-                /// XBL binding installed on the element.
-                pub mXBLBinding: root::RefPtr<root::nsXBLBinding>,
-                /// XBL binding installed on the lement.
-                pub mXBLInsertionParent: root::nsCOMPtr<root::nsIContent>,
-                /// Web components custom element data.
-                pub mCustomElementData: root::RefPtr<root::mozilla::dom::CustomElementData>,
-                /// Registered Intersection Observers on the element.
-                pub mRegisteredIntersectionObservers: [u64; 5usize],
-                /// For XUL to hold either frameloader or opener.
-                pub mFrameLoaderOrOpener: root::nsCOMPtr<root::nsISupports>,
-            }
-            #[test]
-            fn bindgen_test_layout_FragmentOrElement_nsExtendedDOMSlots() {
-                assert_eq!(::std::mem::size_of::<FragmentOrElement_nsExtendedDOMSlots>()
-                           , 136usize , concat ! (
-                           "Size of: " , stringify ! (
-                           FragmentOrElement_nsExtendedDOMSlots ) ));
-                assert_eq! (::std::mem::align_of::<FragmentOrElement_nsExtendedDOMSlots>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mSMILOverrideStyle as * const _ as usize } ,
-                            0usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mSMILOverrideStyle ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mSMILOverrideStyleDeclaration as * const _
-                            as usize } , 8usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mSMILOverrideStyleDeclaration ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mBindingParent as * const _ as usize } ,
-                            16usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mBindingParent ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mControllers as * const _ as usize } ,
-                            24usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mControllers ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mLabelsList as * const _ as usize } ,
-                            32usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mLabelsList ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mShadowRoot as * const _ as usize } ,
-                            40usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mShadowRoot ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mContainingShadow as * const _ as usize } ,
-                            48usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mContainingShadow ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mDestInsertionPoints as * const _ as usize }
-                            , 56usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mDestInsertionPoints ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mXBLBinding as * const _ as usize } ,
-                            64usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mXBLBinding ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mXBLInsertionParent as * const _ as usize }
-                            , 72usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mXBLInsertionParent ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mCustomElementData as * const _ as usize } ,
-                            80usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mCustomElementData ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mRegisteredIntersectionObservers as * const
-                            _ as usize } , 88usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mRegisteredIntersectionObservers )
-                            ));
-                assert_eq! (unsafe {
-                            & (
-                            * (
-                            0 as * const FragmentOrElement_nsExtendedDOMSlots
-                            ) ) . mFrameLoaderOrOpener as * const _ as usize }
-                            , 128usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsExtendedDOMSlots ) , "::" ,
-                            stringify ! ( mFrameLoaderOrOpener ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct FragmentOrElement_nsDOMSlots {
-                pub _base: root::nsINode_nsSlots,
-                /// The .style attribute (an interface that forwards to the actual
-                /// style rules)
-                /// @see nsGenericHTMLElement::GetStyle
-                pub mStyle: root::nsCOMPtr<root::nsICSSDeclaration>,
-                /// The .dataset attribute.
-                /// @see nsGenericHTMLElement::GetDataset
-                pub mDataset: *mut root::nsDOMStringMap,
-                /// An object implementing nsIDOMMozNamedAttrMap for this content (attributes)
-                /// @see FragmentOrElement::GetAttributes
-                pub mAttributeMap: root::RefPtr<root::nsDOMAttributeMap>,
-                /// An object implementing the .children property for this element.
-                pub mChildrenList: root::RefPtr<root::nsContentList>,
-                /// An object implementing the .classList property for this element.
-                pub mClassList: root::RefPtr<root::nsDOMTokenList>,
-                pub mExtendedSlots: root::mozilla::UniquePtr<root::mozilla::dom::FragmentOrElement_nsExtendedDOMSlots>,
-            }
-            #[test]
-            fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
-                assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>()
-                           , 120usize , concat ! (
-                           "Size of: " , stringify ! (
-                           FragmentOrElement_nsDOMSlots ) ));
-                assert_eq! (::std::mem::align_of::<FragmentOrElement_nsDOMSlots>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const FragmentOrElement_nsDOMSlots ) )
-                            . mStyle as * const _ as usize } , 72usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) , "::" , stringify
-                            ! ( mStyle ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const FragmentOrElement_nsDOMSlots ) )
-                            . mDataset as * const _ as usize } , 80usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) , "::" , stringify
-                            ! ( mDataset ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const FragmentOrElement_nsDOMSlots ) )
-                            . mAttributeMap as * const _ as usize } , 88usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) , "::" , stringify
-                            ! ( mAttributeMap ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const FragmentOrElement_nsDOMSlots ) )
-                            . mChildrenList as * const _ as usize } , 96usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) , "::" , stringify
-                            ! ( mChildrenList ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const FragmentOrElement_nsDOMSlots ) )
-                            . mClassList as * const _ as usize } , 104usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) , "::" , stringify
-                            ! ( mClassList ) ));
-                assert_eq! (unsafe {
-                            & (
-                            * ( 0 as * const FragmentOrElement_nsDOMSlots ) )
-                            . mExtendedSlots as * const _ as usize } ,
-                            112usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement_nsDOMSlots ) , "::" , stringify
-                            ! ( mExtendedSlots ) ));
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"]
-                pub static mut FragmentOrElement__cycleCollectorGlobal:
-                           root::mozilla::dom::FragmentOrElement_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_FragmentOrElement() {
-                assert_eq!(::std::mem::size_of::<FragmentOrElement>() ,
-                           112usize , concat ! (
-                           "Size of: " , stringify ! ( FragmentOrElement ) ));
-                assert_eq! (::std::mem::align_of::<FragmentOrElement>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! ( FragmentOrElement
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const FragmentOrElement ) ) .
-                            mRefCnt as * const _ as usize } , 88usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement ) , "::" , stringify ! ( mRefCnt
-                            ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const FragmentOrElement ) ) .
-                            _mOwningThread as * const _ as usize } , 96usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement ) , "::" , stringify ! (
-                            _mOwningThread ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const FragmentOrElement ) ) .
-                            mAttrsAndChildren as * const _ as usize } ,
-                            104usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FragmentOrElement ) , "::" , stringify ! (
-                            mAttrsAndChildren ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct DOMRect {
-                pub _base: root::mozilla::dom::DOMRectReadOnly,
-                pub _base_1: root::nsIDOMClientRect,
-                pub mX: f64,
-                pub mY: f64,
-                pub mWidth: f64,
-                pub mHeight: f64,
-            }
-            #[test]
-            fn bindgen_test_layout_DOMRect() {
-                assert_eq!(::std::mem::size_of::<DOMRect>() , 96usize , concat
-                           ! ( "Size of: " , stringify ! ( DOMRect ) ));
-                assert_eq! (::std::mem::align_of::<DOMRect>() , 8usize ,
-                            concat ! (
-                            "Alignment of " , stringify ! ( DOMRect ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct DOMIntersectionObserverEntry {
-                pub _base: root::nsISupports,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mOwner: root::nsCOMPtr<root::nsISupports>,
-                pub mTime: root::DOMHighResTimeStamp,
-                pub mRootBounds: root::RefPtr<root::mozilla::dom::DOMRect>,
-                pub mBoundingClientRect: root::RefPtr<root::mozilla::dom::DOMRect>,
-                pub mIntersectionRect: root::RefPtr<root::mozilla::dom::DOMRect>,
-                pub mIsIntersecting: bool,
-                pub mTarget: root::RefPtr<root::mozilla::dom::Element>,
-                pub mIntersectionRatio: f64,
-            }
-            pub type DOMIntersectionObserverEntry_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct DOMIntersectionObserverEntry_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserverEntry_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserverEntry_cycleCollection>()
-                           , 16usize , concat ! (
-                           "Size of: " , stringify ! (
-                           DOMIntersectionObserverEntry_cycleCollection ) ));
-                assert_eq! (::std::mem::align_of::<DOMIntersectionObserverEntry_cycleCollection>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            DOMIntersectionObserverEntry_cycleCollection ) ));
-            }
-            impl Clone for DOMIntersectionObserverEntry_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom28DOMIntersectionObserverEntry21_cycleCollectorGlobalE"]
-                pub static mut
-                           DOMIntersectionObserverEntry__cycleCollectorGlobal:
-                           root::mozilla::dom::DOMIntersectionObserverEntry_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserverEntry() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserverEntry>()
-                           , 112usize , concat ! (
-                           "Size of: " , stringify ! (
-                           DOMIntersectionObserverEntry ) ));
-                assert_eq! (::std::mem::align_of::<DOMIntersectionObserverEntry>()
-                            , 8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            DOMIntersectionObserverEntry ) ));
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct IntersectionCallback {
-                pub _bindgen_opaque_blob: [u64; 7usize],
-            }
-            #[test]
-            fn bindgen_test_layout_IntersectionCallback() {
-                assert_eq!(::std::mem::size_of::<IntersectionCallback>() ,
-                           56usize , concat ! (
-                           "Size of: " , stringify ! ( IntersectionCallback )
-                           ));
-                assert_eq! (::std::mem::align_of::<IntersectionCallback>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            IntersectionCallback ) ));
-            }
-            impl Clone for IntersectionCallback {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Grid {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct ExplicitChildIterator {
-                pub mParent: *const root::nsIContent,
-                pub mChild: *mut root::nsIContent,
-                pub mDefaultChild: *mut root::nsIContent,
-                pub mIsFirst: bool,
-                pub mIndexInInserted: u32,
-            }
-            #[test]
-            fn bindgen_test_layout_ExplicitChildIterator() {
-                assert_eq!(::std::mem::size_of::<ExplicitChildIterator>() ,
-                           32usize , concat ! (
-                           "Size of: " , stringify ! ( ExplicitChildIterator )
-                           ));
-                assert_eq! (::std::mem::align_of::<ExplicitChildIterator>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            ExplicitChildIterator ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ExplicitChildIterator ) ) .
-                            mParent as * const _ as usize } , 0usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            ExplicitChildIterator ) , "::" , stringify ! (
-                            mParent ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ExplicitChildIterator ) ) .
-                            mChild as * const _ as usize } , 8usize , concat !
-                            (
-                            "Alignment of field: " , stringify ! (
-                            ExplicitChildIterator ) , "::" , stringify ! (
-                            mChild ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ExplicitChildIterator ) ) .
-                            mDefaultChild as * const _ as usize } , 16usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ExplicitChildIterator ) , "::" , stringify ! (
-                            mDefaultChild ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ExplicitChildIterator ) ) .
-                            mIsFirst as * const _ as usize } , 24usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ExplicitChildIterator ) , "::" , stringify ! (
-                            mIsFirst ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const ExplicitChildIterator ) ) .
-                            mIndexInInserted as * const _ as usize } , 28usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            ExplicitChildIterator ) , "::" , stringify ! (
-                            mIndexInInserted ) ));
-            }
-            impl Clone for ExplicitChildIterator {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct FlattenedChildIterator {
-                pub _base: root::mozilla::dom::ExplicitChildIterator,
-                pub mXBLInvolved: bool,
-            }
-            #[test]
-            fn bindgen_test_layout_FlattenedChildIterator() {
-                assert_eq!(::std::mem::size_of::<FlattenedChildIterator>() ,
-                           40usize , concat ! (
-                           "Size of: " , stringify ! ( FlattenedChildIterator
-                           ) ));
-                assert_eq! (::std::mem::align_of::<FlattenedChildIterator>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            FlattenedChildIterator ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const FlattenedChildIterator ) ) .
-                            mXBLInvolved as * const _ as usize } , 32usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            FlattenedChildIterator ) , "::" , stringify ! (
-                            mXBLInvolved ) ));
-            }
-            impl Clone for FlattenedChildIterator {
-                fn clone(&self) -> Self { *self }
-            }
-            /// AllChildrenIterator traverses the children of an element including before /
-            /// after content and optionally XBL children.  The iterator can be initialized
-            /// to start at the end by providing false for aStartAtBeginning in order to
-            /// start iterating in reverse from the last child.
-            ///
-            /// Note: it assumes that no mutation of the DOM or frame tree takes place during
-            /// iteration, and will break horribly if that is not true.
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct AllChildrenIterator {
-                pub _base: root::mozilla::dom::FlattenedChildIterator,
-                pub mOriginalContent: *const root::nsIContent,
-                pub mAnonKids: root::nsTArray<*mut root::nsIContent>,
-                pub mAnonKidsIdx: u32,
-                pub mFlags: u32,
-                pub mPhase: root::mozilla::dom::AllChildrenIterator_IteratorPhase,
-                pub mMutationGuard: root::nsMutationGuard,
-            }
-            #[repr(u32)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum AllChildrenIterator_IteratorPhase {
-                eAtBegin = 0,
-                eAtBeforeKid = 1,
-                eAtExplicitKids = 2,
-                eAtAnonKids = 3,
-                eAtAfterKid = 4,
-                eAtEnd = 5,
-            }
-            #[test]
-            fn bindgen_test_layout_AllChildrenIterator() {
-                assert_eq!(::std::mem::size_of::<AllChildrenIterator>() ,
-                           80usize , concat ! (
-                           "Size of: " , stringify ! ( AllChildrenIterator )
-                           ));
-                assert_eq! (::std::mem::align_of::<AllChildrenIterator>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            AllChildrenIterator ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const AllChildrenIterator ) ) .
-                            mOriginalContent as * const _ as usize } , 40usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            AllChildrenIterator ) , "::" , stringify ! (
-                            mOriginalContent ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const AllChildrenIterator ) ) .
-                            mAnonKids as * const _ as usize } , 48usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            AllChildrenIterator ) , "::" , stringify ! (
-                            mAnonKids ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const AllChildrenIterator ) ) .
-                            mAnonKidsIdx as * const _ as usize } , 56usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            AllChildrenIterator ) , "::" , stringify ! (
-                            mAnonKidsIdx ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const AllChildrenIterator ) ) .
-                            mFlags as * const _ as usize } , 60usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            AllChildrenIterator ) , "::" , stringify ! (
-                            mFlags ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const AllChildrenIterator ) ) .
-                            mPhase as * const _ as usize } , 64usize , concat
-                            ! (
-                            "Alignment of field: " , stringify ! (
-                            AllChildrenIterator ) , "::" , stringify ! (
-                            mPhase ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const AllChildrenIterator ) ) .
-                            mMutationGuard as * const _ as usize } , 72usize ,
-                            concat ! (
-                            "Alignment of field: " , stringify ! (
-                            AllChildrenIterator ) , "::" , stringify ! (
-                            mMutationGuard ) ));
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct CSSVariableValues {
-            /// Map of variable names to IDs.  Variable IDs are indexes into
-            /// mVariables.
-            pub mVariableIDs: [u64; 5usize],
-            /// Array of variables, indexed by variable ID.
-            pub mVariables: root::nsTArray<root::mozilla::CSSVariableValues_Variable>,
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct CSSVariableValues_Variable {
-            pub mVariableName: ::nsstring::nsStringRepr,
-            pub mValue: ::nsstring::nsStringRepr,
-            pub mFirstToken: root::nsCSSTokenSerializationType,
-            pub mLastToken: root::nsCSSTokenSerializationType,
-        }
-        #[test]
-        fn bindgen_test_layout_CSSVariableValues_Variable() {
-            assert_eq!(::std::mem::size_of::<CSSVariableValues_Variable>() ,
-                       40usize , concat ! (
-                       "Size of: " , stringify ! ( CSSVariableValues_Variable
-                       ) ));
-            assert_eq! (::std::mem::align_of::<CSSVariableValues_Variable>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        CSSVariableValues_Variable ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSVariableValues_Variable ) ) .
-                        mVariableName as * const _ as usize } , 0usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CSSVariableValues_Variable ) , "::" , stringify ! (
-                        mVariableName ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSVariableValues_Variable ) ) .
-                        mValue as * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CSSVariableValues_Variable ) , "::" , stringify ! (
-                        mValue ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSVariableValues_Variable ) ) .
-                        mFirstToken as * const _ as usize } , 32usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        CSSVariableValues_Variable ) , "::" , stringify ! (
-                        mFirstToken ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSVariableValues_Variable ) ) .
-                        mLastToken as * const _ as usize } , 36usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        CSSVariableValues_Variable ) , "::" , stringify ! (
-                        mLastToken ) ));
-        }
-        #[test]
-        fn bindgen_test_layout_CSSVariableValues() {
-            assert_eq!(::std::mem::size_of::<CSSVariableValues>() , 48usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( CSSVariableValues ) ));
-            assert_eq! (::std::mem::align_of::<CSSVariableValues>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( CSSVariableValues )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSVariableValues ) ) .
-                        mVariableIDs as * const _ as usize } , 0usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        CSSVariableValues ) , "::" , stringify ! (
-                        mVariableIDs ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSVariableValues ) ) .
-                        mVariables as * const _ as usize } , 40usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        CSSVariableValues ) , "::" , stringify ! ( mVariables
-                        ) ));
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum SheetType {
-            Agent = 0,
-            User = 1,
-            PresHint = 2,
-            Doc = 3,
-            ScopedDoc = 4,
-            StyleAttr = 5,
-            Override = 6,
-            Animation = 7,
-            Transition = 8,
-            Count = 9,
-            Unknown = 255,
-        }
-        /// This struct represents a combined color from a numeric color and
-        /// the current foreground color (currentcolor keyword).
-        /// Conceptually, the formula is "color * (1 - p) + currentcolor * p"
-        /// where p is mForegroundRatio. See mozilla::LinearBlendColors for
-        /// the actual algorithm.
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleComplexColor {
-            pub mColor: root::nscolor,
-            pub mForegroundRatio: u8,
-            pub mIsAuto: bool,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleComplexColor() {
-            assert_eq!(::std::mem::size_of::<StyleComplexColor>() , 8usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( StyleComplexColor ) ));
-            assert_eq! (::std::mem::align_of::<StyleComplexColor>() , 4usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleComplexColor )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleComplexColor ) ) . mColor as
-                        * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleComplexColor ) , "::" , stringify ! ( mColor )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleComplexColor ) ) .
-                        mForegroundRatio as * const _ as usize } , 4usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleComplexColor ) , "::" , stringify ! (
-                        mForegroundRatio ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleComplexColor ) ) . mIsAuto
-                        as * const _ as usize } , 5usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleComplexColor ) , "::" , stringify ! ( mIsAuto )
-                        ));
-        }
-        impl Clone for StyleComplexColor {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(u32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum Side {
-            eSideTop = 0,
-            eSideRight = 1,
-            eSideBottom = 2,
-            eSideLeft = 3,
-        }
-        #[repr(u32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum HalfCorner {
-            eCornerTopLeftX = 0,
-            eCornerTopLeftY = 1,
-            eCornerTopRightX = 2,
-            eCornerTopRightY = 3,
-            eCornerBottomRightX = 4,
-            eCornerBottomRightY = 5,
-            eCornerBottomLeftX = 6,
-            eCornerBottomLeftY = 7,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct NotNull<T> {
-            pub mBasePtr: T,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-        }
-        pub const FontFamilyType_eFamily_generic_first:
-                  root::mozilla::FontFamilyType =
-            FontFamilyType::eFamily_serif;
-        pub const FontFamilyType_eFamily_generic_last:
-                  root::mozilla::FontFamilyType =
-            FontFamilyType::eFamily_fantasy;
-        pub const FontFamilyType_eFamily_generic_count:
-                  root::mozilla::FontFamilyType =
-            FontFamilyType::eFamily_monospace;
-        #[repr(u32)]
-        /// type of font family name, either a name (e.g. Helvetica) or a
-        /// generic (e.g. serif, sans-serif), with the ability to distinguish
-        /// between unquoted and quoted names for serializaiton
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum FontFamilyType {
-            eFamily_none = 0,
-            eFamily_named = 1,
-            eFamily_named_quoted = 2,
-            eFamily_serif = 3,
-            eFamily_sans_serif = 4,
-            eFamily_monospace = 5,
-            eFamily_cursive = 6,
-            eFamily_fantasy = 7,
-            eFamily_moz_variable = 8,
-            eFamily_moz_fixed = 9,
-        }
-        /// font family name, a string for the name if not a generic and
-        /// a font type indicated named family or which generic family
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct FontFamilyName {
-            pub mType: root::mozilla::FontFamilyType,
-            pub mName: ::nsstring::nsStringRepr,
-        }
-        #[test]
-        fn bindgen_test_layout_FontFamilyName() {
-            assert_eq!(::std::mem::size_of::<FontFamilyName>() , 24usize ,
-                       concat ! ( "Size of: " , stringify ! ( FontFamilyName )
-                       ));
-            assert_eq! (::std::mem::align_of::<FontFamilyName>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( FontFamilyName ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const FontFamilyName ) ) . mType as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( FontFamilyName
-                        ) , "::" , stringify ! ( mType ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const FontFamilyName ) ) . mName as *
-                        const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( FontFamilyName
-                        ) , "::" , stringify ! ( mName ) ));
-        }
-        /// A refcounted array of FontFamilyNames.  We use this to store the specified
-        /// value (in Servo) and the computed value (in both Gecko and Servo) of the
-        /// font-family property.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct SharedFontList {
-            pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
-            pub mNames: root::nsTArray<root::mozilla::FontFamilyName>,
-        }
-        pub type SharedFontList_HasThreadSafeRefCnt = root::mozilla::TrueType;
-        extern "C" {
-            #[link_name = "_ZN7mozilla14SharedFontList6sEmptyE"]
-            pub static mut SharedFontList_sEmpty:
-                       root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>;
-        }
-        #[test]
-        fn bindgen_test_layout_SharedFontList() {
-            assert_eq!(::std::mem::size_of::<SharedFontList>() , 16usize ,
-                       concat ! ( "Size of: " , stringify ! ( SharedFontList )
-                       ));
-            assert_eq! (::std::mem::align_of::<SharedFontList>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( SharedFontList ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const SharedFontList ) ) . mRefCnt as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( SharedFontList
-                        ) , "::" , stringify ! ( mRefCnt ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const SharedFontList ) ) . mNames as *
-                        const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( SharedFontList
-                        ) , "::" , stringify ! ( mNames ) ));
-        }
-        #[test]
-        fn __bindgen_test_layout_StaticRefPtr_open0_SharedFontList_close0_instantiation() {
-            assert_eq!(::std::mem::size_of::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>()
-                       , 8usize , concat ! (
-                       "Size of template specialization: " , stringify ! (
-                       root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>
-                       ) ));
-            assert_eq!(::std::mem::align_of::<root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>>()
-                       , 8usize , concat ! (
-                       "Alignment of template specialization: " , stringify !
-                       (
-                       root::mozilla::StaticRefPtr<root::mozilla::SharedFontList>
-                       ) ));
-        }
-        /// font family list, array of font families and a default font type.
-        /// font family names are either named strings or generics. the default
-        /// font type is used to preserve the variable font fallback behavior
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct FontFamilyList {
-            pub mFontlist: root::mozilla::NotNull<root::RefPtr<root::mozilla::SharedFontList>>,
-            pub mDefaultFontType: root::mozilla::FontFamilyType,
-        }
-        #[test]
-        fn bindgen_test_layout_FontFamilyList() {
-            assert_eq!(::std::mem::size_of::<FontFamilyList>() , 16usize ,
-                       concat ! ( "Size of: " , stringify ! ( FontFamilyList )
-                       ));
-            assert_eq! (::std::mem::align_of::<FontFamilyList>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( FontFamilyList ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const FontFamilyList ) ) . mFontlist as
-                        * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( FontFamilyList
-                        ) , "::" , stringify ! ( mFontlist ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const FontFamilyList ) ) .
-                        mDefaultFontType as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( FontFamilyList
-                        ) , "::" , stringify ! ( mDefaultFontType ) ));
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBasicShapeType {
-            Polygon = 0,
-            Circle = 1,
-            Ellipse = 2,
-            Inset = 3,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBoxAlign {
-            Stretch = 0,
-            Start = 1,
-            Center = 2,
-            Baseline = 3,
-            End = 4,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBoxDecorationBreak { Slice = 0, Clone = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBoxDirection { Normal = 0, Reverse = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBoxOrient { Horizontal = 0, Vertical = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBoxPack { Start = 0, Center = 1, End = 2, Justify = 3, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBoxSizing { Content = 0, Border = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleClear {
-            None = 0,
-            Left = 1,
-            Right = 2,
-            InlineStart = 3,
-            InlineEnd = 4,
-            Both = 5,
-            Line = 8,
-            Max = 13,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleGeometryBox {
-            ContentBox = 0,
-            PaddingBox = 1,
-            BorderBox = 2,
-            MarginBox = 3,
-            FillBox = 4,
-            StrokeBox = 5,
-            ViewBox = 6,
-            NoClip = 7,
-            Text = 8,
-            NoBox = 9,
-            MozAlmostPadding = 127,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleFillRule { Nonzero = 0, Evenodd = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleFloat {
-            None = 0,
-            Left = 1,
-            Right = 2,
-            InlineStart = 3,
-            InlineEnd = 4,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleFloatEdge { ContentBox = 0, MarginBox = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleHyphens { None = 0, Manual = 1, Auto = 2, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleShapeRadius { ClosestSide = 0, FarthestSide = 1, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleShapeSourceType {
-            None = 0,
-            URL = 1,
-            Shape = 2,
-            Box = 3,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleStackSizing {
-            Ignore = 0,
-            StretchToFit = 1,
-            IgnoreHorizontal = 2,
-            IgnoreVertical = 3,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleTextJustify {
-            None = 0,
-            Auto = 1,
-            InterWord = 2,
-            InterCharacter = 3,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleUserFocus {
-            None = 0,
-            Ignore = 1,
-            Normal = 2,
-            SelectAll = 3,
-            SelectBefore = 4,
-            SelectAfter = 5,
-            SelectSame = 6,
-            SelectMenu = 7,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleUserSelect {
-            None = 0,
-            Text = 1,
-            Element = 2,
-            Elements = 3,
-            All = 4,
-            Toggle = 5,
-            TriState = 6,
-            Auto = 7,
-            MozAll = 8,
-            MozText = 9,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleUserInput {
-            None = 0,
-            Enabled = 1,
-            Disabled = 2,
-            Auto = 3,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleUserModify {
-            ReadOnly = 0,
-            ReadWrite = 1,
-            WriteOnly = 2,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleWindowDragging { Default = 0, Drag = 1, NoDrag = 2, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleOrient {
-            Inline = 0,
-            Block = 1,
-            Horizontal = 2,
-            Vertical = 3,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleImageLayerRepeat {
-            NoRepeat = 0,
-            RepeatX = 1,
-            RepeatY = 2,
-            Repeat = 3,
-            Space = 4,
-            Round = 5,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleDisplay {
-            None = 0,
-            Block = 1,
-            FlowRoot = 2,
-            Inline = 3,
-            InlineBlock = 4,
-            ListItem = 5,
-            Table = 6,
-            InlineTable = 7,
-            TableRowGroup = 8,
-            TableColumn = 9,
-            TableColumnGroup = 10,
-            TableHeaderGroup = 11,
-            TableFooterGroup = 12,
-            TableRow = 13,
-            TableCell = 14,
-            TableCaption = 15,
-            Flex = 16,
-            InlineFlex = 17,
-            Grid = 18,
-            InlineGrid = 19,
-            Ruby = 20,
-            RubyBase = 21,
-            RubyBaseContainer = 22,
-            RubyText = 23,
-            RubyTextContainer = 24,
-            Contents = 25,
-            WebkitBox = 26,
-            WebkitInlineBox = 27,
-            MozBox = 28,
-            MozInlineBox = 29,
-            MozGrid = 30,
-            MozInlineGrid = 31,
-            MozGridGroup = 32,
-            MozGridLine = 33,
-            MozStack = 34,
-            MozInlineStack = 35,
-            MozDeck = 36,
-            MozGroupbox = 37,
-            MozPopup = 38,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleGridTrackBreadth { MaxContent = 1, MinContent = 2, }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleWhiteSpace {
-            Normal = 0,
-            Pre = 1,
-            Nowrap = 2,
-            PreWrap = 3,
-            PreLine = 4,
-            PreSpace = 5,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct WeakPtr {
-        }
-        pub type WeakPtr_WeakReference = u8;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct SupportsWeakPtr {
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct ShortcutKeyCandidate {
-            _unused: [u8; 0],
-        }
-        /// EventStates is the class used to represent the event states of nsIContent
-        /// instances. These states are calculated by IntrinsicState() and
-        /// ContentStatesChanged() has to be called when one of them changes thus
-        /// informing the layout/style engine of the change.
-        /// Event states are associated with pseudo-classes.
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct EventStates {
-            pub mStates: root::mozilla::EventStates_InternalType,
-        }
-        pub type EventStates_InternalType = u64;
-        pub type EventStates_ServoType = u64;
-        #[test]
-        fn bindgen_test_layout_EventStates() {
-            assert_eq!(::std::mem::size_of::<EventStates>() , 8usize , concat
-                       ! ( "Size of: " , stringify ! ( EventStates ) ));
-            assert_eq! (::std::mem::align_of::<EventStates>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( EventStates ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EventStates ) ) . mStates as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( EventStates ) ,
-                        "::" , stringify ! ( mStates ) ));
-        }
-        impl Clone for EventStates {
-            fn clone(&self) -> Self { *self }
-        }
-        pub const ServoTraversalFlags_Empty:
-                  root::mozilla::ServoTraversalFlags =
-            0;
-        pub const ServoTraversalFlags_AnimationOnly:
-                  root::mozilla::ServoTraversalFlags =
-            1;
-        pub const ServoTraversalFlags_ForCSSRuleChanges:
-                  root::mozilla::ServoTraversalFlags =
-            2;
-        pub const ServoTraversalFlags_UnstyledOnly:
-                  root::mozilla::ServoTraversalFlags =
-            4;
-        pub const ServoTraversalFlags_Forgetful:
-                  root::mozilla::ServoTraversalFlags =
-            8;
-        pub const ServoTraversalFlags_ClearDirtyBits:
-                  root::mozilla::ServoTraversalFlags =
-            32;
-        pub const ServoTraversalFlags_ClearAnimationOnlyDirtyDescendants:
-                  root::mozilla::ServoTraversalFlags =
-            64;
-        pub const ServoTraversalFlags_ParallelTraversal:
-                  root::mozilla::ServoTraversalFlags =
-            128;
-        pub const ServoTraversalFlags_FlushThrottledAnimations:
-                  root::mozilla::ServoTraversalFlags =
-            256;
-        pub type ServoTraversalFlags = u32;
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleRuleInclusion { All = 0, DefaultOnly = 1, }
-        pub const UpdateAnimationsTasks_CSSAnimations:
-                  root::mozilla::UpdateAnimationsTasks =
-            1;
-        pub const UpdateAnimationsTasks_CSSTransitions:
-                  root::mozilla::UpdateAnimationsTasks =
-            2;
-        pub const UpdateAnimationsTasks_EffectProperties:
-                  root::mozilla::UpdateAnimationsTasks =
-            4;
-        pub const UpdateAnimationsTasks_CascadeResults:
-                  root::mozilla::UpdateAnimationsTasks =
-            8;
-        pub type UpdateAnimationsTasks = u8;
-        pub const ParsingMode_Default: root::mozilla::ParsingMode = 0;
-        pub const ParsingMode_AllowUnitlessLength: root::mozilla::ParsingMode
-                  =
-            1;
-        pub const ParsingMode_AllowAllNumericValues:
-                  root::mozilla::ParsingMode =
-            2;
-        pub type ParsingMode = u8;
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum InheritTarget {
-            Text = 0,
-            FirstLetterContinuation = 1,
-            PlaceholderFrame = 2,
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ServoStyleContext {
-            pub _base: root::nsStyleContext,
-            pub mPresContext: *mut root::nsPresContext,
-            pub mSource: root::ServoComputedData,
-            pub mNextInheritingAnonBoxStyle: root::RefPtr<root::mozilla::ServoStyleContext>,
-            pub mNextLazyPseudoStyle: root::RefPtr<root::mozilla::ServoStyleContext>,
-        }
-        #[test]
-        fn bindgen_test_layout_ServoStyleContext() {
-            assert_eq!(::std::mem::size_of::<ServoStyleContext>() , 256usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( ServoStyleContext ) ));
-            assert_eq! (::std::mem::align_of::<ServoStyleContext>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( ServoStyleContext )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleContext ) ) .
-                        mPresContext as * const _ as usize } , 16usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleContext ) , "::" , stringify ! (
-                        mPresContext ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleContext ) ) . mSource
-                        as * const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleContext ) , "::" , stringify ! ( mSource )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleContext ) ) .
-                        mNextInheritingAnonBoxStyle as * const _ as usize } ,
-                        240usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleContext ) , "::" , stringify ! (
-                        mNextInheritingAnonBoxStyle ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleContext ) ) .
-                        mNextLazyPseudoStyle as * const _ as usize } ,
-                        248usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleContext ) , "::" , stringify ! (
-                        mNextLazyPseudoStyle ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoFont {
-            pub gecko: root::nsStyleFont,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoFont() {
-            assert_eq!(::std::mem::size_of::<GeckoFont>() , 128usize , concat
-                       ! ( "Size of: " , stringify ! ( GeckoFont ) ));
-            assert_eq! (::std::mem::align_of::<GeckoFont>() , 8usize , concat
-                        ! ( "Alignment of " , stringify ! ( GeckoFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoFont ) ) . gecko as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoFont ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoColor {
-            pub gecko: root::nsStyleColor,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoColor() {
-            assert_eq!(::std::mem::size_of::<GeckoColor>() , 4usize , concat !
-                       ( "Size of: " , stringify ! ( GeckoColor ) ));
-            assert_eq! (::std::mem::align_of::<GeckoColor>() , 4usize , concat
-                        ! ( "Alignment of " , stringify ! ( GeckoColor ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoColor ) ) . gecko as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoColor ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoList {
-            pub gecko: root::nsStyleList,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoList() {
-            assert_eq!(::std::mem::size_of::<GeckoList>() , 48usize , concat !
-                       ( "Size of: " , stringify ! ( GeckoList ) ));
-            assert_eq! (::std::mem::align_of::<GeckoList>() , 8usize , concat
-                        ! ( "Alignment of " , stringify ! ( GeckoList ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoList ) ) . gecko as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoList ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoText {
-            pub gecko: root::nsStyleText,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoText() {
-            assert_eq!(::std::mem::size_of::<GeckoText>() , 160usize , concat
-                       ! ( "Size of: " , stringify ! ( GeckoText ) ));
-            assert_eq! (::std::mem::align_of::<GeckoText>() , 8usize , concat
-                        ! ( "Alignment of " , stringify ! ( GeckoText ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoText ) ) . gecko as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoText ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoVisibility {
-            pub gecko: root::nsStyleVisibility,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoVisibility() {
-            assert_eq!(::std::mem::size_of::<GeckoVisibility>() , 7usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( GeckoVisibility ) ));
-            assert_eq! (::std::mem::align_of::<GeckoVisibility>() , 1usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoVisibility ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoVisibility ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoVisibility
-                        ) , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoUserInterface {
-            pub gecko: root::nsStyleUserInterface,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoUserInterface() {
-            assert_eq!(::std::mem::size_of::<GeckoUserInterface>() , 32usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( GeckoUserInterface ) ));
-            assert_eq! (::std::mem::align_of::<GeckoUserInterface>() , 8usize
-                        , concat ! (
-                        "Alignment of " , stringify ! ( GeckoUserInterface )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoUserInterface ) ) . gecko as
-                        * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        GeckoUserInterface ) , "::" , stringify ! ( gecko )
-                        ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoTableBorder {
-            pub gecko: root::nsStyleTableBorder,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoTableBorder() {
-            assert_eq!(::std::mem::size_of::<GeckoTableBorder>() , 12usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( GeckoTableBorder ) ));
-            assert_eq! (::std::mem::align_of::<GeckoTableBorder>() , 4usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoTableBorder ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoTableBorder ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        GeckoTableBorder ) , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoSVG {
-            pub gecko: root::nsStyleSVG,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoSVG() {
-            assert_eq!(::std::mem::size_of::<GeckoSVG>() , 128usize , concat !
-                       ( "Size of: " , stringify ! ( GeckoSVG ) ));
-            assert_eq! (::std::mem::align_of::<GeckoSVG>() , 8usize , concat !
-                        ( "Alignment of " , stringify ! ( GeckoSVG ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoSVG ) ) . gecko as * const _
-                        as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoSVG ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoBackground {
-            pub gecko: root::nsStyleBackground,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoBackground() {
-            assert_eq!(::std::mem::size_of::<GeckoBackground>() , 160usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( GeckoBackground ) ));
-            assert_eq! (::std::mem::align_of::<GeckoBackground>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoBackground ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoBackground ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoBackground
-                        ) , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoPosition {
-            pub gecko: root::nsStylePosition,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoPosition() {
-            assert_eq!(::std::mem::size_of::<GeckoPosition>() , 440usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoPosition )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoPosition>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoPosition ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoPosition ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoPosition )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoTextReset {
-            pub gecko: root::nsStyleTextReset,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoTextReset() {
-            assert_eq!(::std::mem::size_of::<GeckoTextReset>() , 80usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoTextReset )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoTextReset>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoTextReset ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoTextReset ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoTextReset
-                        ) , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoDisplay {
-            pub gecko: root::nsStyleDisplay,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoDisplay() {
-            assert_eq!(::std::mem::size_of::<GeckoDisplay>() , 424usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoDisplay )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoDisplay>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoDisplay ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoDisplay ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoDisplay )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoContent {
-            pub gecko: root::nsStyleContent,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoContent() {
-            assert_eq!(::std::mem::size_of::<GeckoContent>() , 24usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoContent )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoContent>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoContent ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoContent ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoContent )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoUIReset {
-            pub gecko: root::nsStyleUIReset,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoUIReset() {
-            assert_eq!(::std::mem::size_of::<GeckoUIReset>() , 56usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoUIReset )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoUIReset>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoUIReset ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoUIReset ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoUIReset )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoTable {
-            pub gecko: root::nsStyleTable,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoTable() {
-            assert_eq!(::std::mem::size_of::<GeckoTable>() , 8usize , concat !
-                       ( "Size of: " , stringify ! ( GeckoTable ) ));
-            assert_eq! (::std::mem::align_of::<GeckoTable>() , 4usize , concat
-                        ! ( "Alignment of " , stringify ! ( GeckoTable ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoTable ) ) . gecko as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoTable ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoMargin {
-            pub gecko: root::nsStyleMargin,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoMargin() {
-            assert_eq!(::std::mem::size_of::<GeckoMargin>() , 40usize , concat
-                       ! ( "Size of: " , stringify ! ( GeckoMargin ) ));
-            assert_eq! (::std::mem::align_of::<GeckoMargin>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoMargin ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoMargin ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoMargin ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoPadding {
-            pub gecko: root::nsStylePadding,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoPadding() {
-            assert_eq!(::std::mem::size_of::<GeckoPadding>() , 40usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoPadding )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoPadding>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoPadding ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoPadding ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoPadding )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoBorder {
-            pub gecko: root::nsStyleBorder,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoBorder() {
-            assert_eq!(::std::mem::size_of::<GeckoBorder>() , 312usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoBorder )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoBorder>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoBorder ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoBorder ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoBorder ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoOutline {
-            pub gecko: root::nsStyleOutline,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoOutline() {
-            assert_eq!(::std::mem::size_of::<GeckoOutline>() , 104usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoOutline )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoOutline>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoOutline ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoOutline ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoOutline )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoXUL {
-            pub gecko: root::nsStyleXUL,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoXUL() {
-            assert_eq!(::std::mem::size_of::<GeckoXUL>() , 16usize , concat !
-                       ( "Size of: " , stringify ! ( GeckoXUL ) ));
-            assert_eq! (::std::mem::align_of::<GeckoXUL>() , 4usize , concat !
-                        ( "Alignment of " , stringify ! ( GeckoXUL ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoXUL ) ) . gecko as * const _
-                        as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoXUL ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoSVGReset {
-            pub gecko: root::nsStyleSVGReset,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoSVGReset() {
-            assert_eq!(::std::mem::size_of::<GeckoSVGReset>() , 200usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoSVGReset )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoSVGReset>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoSVGReset ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoSVGReset ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoSVGReset )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoColumn {
-            pub gecko: root::nsStyleColumn,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoColumn() {
-            assert_eq!(::std::mem::size_of::<GeckoColumn>() , 64usize , concat
-                       ! ( "Size of: " , stringify ! ( GeckoColumn ) ));
-            assert_eq! (::std::mem::align_of::<GeckoColumn>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoColumn ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoColumn ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoColumn ) ,
-                        "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct GeckoEffects {
-            pub gecko: root::nsStyleEffects,
-        }
-        #[test]
-        fn bindgen_test_layout_GeckoEffects() {
-            assert_eq!(::std::mem::size_of::<GeckoEffects>() , 40usize ,
-                       concat ! ( "Size of: " , stringify ! ( GeckoEffects )
-                       ));
-            assert_eq! (::std::mem::align_of::<GeckoEffects>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( GeckoEffects ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const GeckoEffects ) ) . gecko as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( GeckoEffects )
-                        , "::" , stringify ! ( gecko ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct ServoStyleSetSizes {
-            pub mRuleTree: usize,
-            pub mPrecomputedPseudos: usize,
-            pub mElementAndPseudosMaps: usize,
-            pub mInvalidationMap: usize,
-            pub mRevalidationSelectors: usize,
-            pub mOther: usize,
-        }
-        #[test]
-        fn bindgen_test_layout_ServoStyleSetSizes() {
-            assert_eq!(::std::mem::size_of::<ServoStyleSetSizes>() , 48usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( ServoStyleSetSizes ) ));
-            assert_eq! (::std::mem::align_of::<ServoStyleSetSizes>() , 8usize
-                        , concat ! (
-                        "Alignment of " , stringify ! ( ServoStyleSetSizes )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSetSizes ) ) .
-                        mRuleTree as * const _ as usize } , 0usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleSetSizes ) , "::" , stringify ! ( mRuleTree
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSetSizes ) ) .
-                        mPrecomputedPseudos as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleSetSizes ) , "::" , stringify ! (
-                        mPrecomputedPseudos ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSetSizes ) ) .
-                        mElementAndPseudosMaps as * const _ as usize } ,
-                        16usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleSetSizes ) , "::" , stringify ! (
-                        mElementAndPseudosMaps ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSetSizes ) ) .
-                        mInvalidationMap as * const _ as usize } , 24usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleSetSizes ) , "::" , stringify ! (
-                        mInvalidationMap ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSetSizes ) ) .
-                        mRevalidationSelectors as * const _ as usize } ,
-                        32usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleSetSizes ) , "::" , stringify ! (
-                        mRevalidationSelectors ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSetSizes ) ) . mOther
-                        as * const _ as usize } , 40usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoStyleSetSizes ) , "::" , stringify ! ( mOther )
-                        ));
-        }
-        impl Clone for ServoStyleSetSizes {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(u8)]
-        /// Enumeration that represents one of the two supported style system backends.
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleBackendType { None = 0, Gecko = 1, Servo = 2, }
-        pub type TimeStampValue = u64;
-        /// Instances of this class represent moments in time, or a special
-        /// "null" moment. We do not use the non-monotonic system clock or
-        /// local time, since they can be reset, causing apparent backward
-        /// travel in time, which can confuse algorithms. Instead we measure
-        /// elapsed time according to the system.  This time can never go
-        /// backwards (i.e. it never wraps around, at least not in less than
-        /// five million years of system elapsed time). It might not advance
-        /// while the system is sleeping. If TimeStamp::SetNow() is not called
-        /// at all for hours or days, we might not notice the passage of some
-        /// of that time.
-        ///
-        /// We deliberately do not expose a way to convert TimeStamps to some
-        /// particular unit. All you can do is compute a difference between two
-        /// TimeStamps to get a TimeDuration. You can also add a TimeDuration
-        /// to a TimeStamp to get a new TimeStamp. You can't do something
-        /// meaningless like add two TimeStamps.
-        ///
-        /// Internally this is implemented as either a wrapper around
-        /// - high-resolution, monotonic, system clocks if they exist on this
-        /// platform
-        /// - PRIntervalTime otherwise.  We detect wraparounds of
-        /// PRIntervalTime and work around them.
-        ///
-        /// This class is similar to C++11's time_point, however it is
-        /// explicitly nullable and provides an IsNull() method. time_point
-        /// is initialized to the clock's epoch and provides a
-        /// time_since_epoch() method that functions similiarly. i.e.
-        /// t.IsNull() is equivalent to t.time_since_epoch() == decltype(t)::duration::zero();
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct TimeStamp {
-            /// When built with PRIntervalTime, a value of 0 means this instance
-            /// is "null". Otherwise, the low 32 bits represent a PRIntervalTime,
-            /// and the high 32 bits represent a counter of the number of
-            /// rollovers of PRIntervalTime that we've seen. This counter starts
-            /// at 1 to avoid a real time colliding with the "null" value.
-            ///
-            /// PR_INTERVAL_MAX is set at 100,000 ticks per second. So the minimum
-            /// time to wrap around is about 2^64/100000 seconds, i.e. about
-            /// 5,849,424 years.
-            ///
-            /// When using a system clock, a value is system dependent.
-            pub mValue: root::mozilla::TimeStampValue,
-        }
-        #[test]
-        fn bindgen_test_layout_TimeStamp() {
-            assert_eq!(::std::mem::size_of::<TimeStamp>() , 8usize , concat !
-                       ( "Size of: " , stringify ! ( TimeStamp ) ));
-            assert_eq! (::std::mem::align_of::<TimeStamp>() , 8usize , concat
-                        ! ( "Alignment of " , stringify ! ( TimeStamp ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const TimeStamp ) ) . mValue as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( TimeStamp ) ,
-                        "::" , stringify ! ( mValue ) ));
-        }
-        impl Clone for TimeStamp {
-            fn clone(&self) -> Self { *self }
-        }
-        /// Instances of this class represent the length of an interval of time.
-        /// Negative durations are allowed, meaning the end is before the start.
-        ///
-        /// Internally the duration is stored as a int64_t in units of
-        /// PR_TicksPerSecond() when building with NSPR interval timers, or a
-        /// system-dependent unit when building with system clocks.  The
-        /// system-dependent unit must be constant, otherwise the semantics of
-        /// this class would be broken.
-        ///
-        /// The ValueCalculator template parameter determines how arithmetic
-        /// operations are performed on the integer count of ticks (mValue).
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct BaseTimeDuration {
-            pub mValue: i64,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct BaseTimeDuration__SomethingVeryRandomHere {
-            pub _address: u8,
-        }
-        pub type Vector_Impl = u8;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct Vector_CapacityAndReserved {
-            pub mCapacity: usize,
-            pub mReserved: usize,
-        }
-        pub type Vector_ElementType<T> = T;
-        pub const Vector_InlineLength: root::mozilla::Vector__bindgen_ty_1 =
-            Vector__bindgen_ty_1::InlineLength;
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum Vector__bindgen_ty_1 { InlineLength = 0, }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct Vector_Range<T> {
-            pub mCur: *mut T,
-            pub mEnd: *mut T,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct Vector_ConstRange<T> {
-            pub mCur: *mut T,
-            pub mEnd: *mut T,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-        }
-        pub mod binding_danger {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct AssertAndSuppressCleanupPolicy {
-                pub _address: u8,
-            }
-            pub const AssertAndSuppressCleanupPolicy_assertHandled: bool =
-                true;
-            pub const AssertAndSuppressCleanupPolicy_suppress: bool = true;
-            #[test]
-            fn bindgen_test_layout_AssertAndSuppressCleanupPolicy() {
-                assert_eq!(::std::mem::size_of::<AssertAndSuppressCleanupPolicy>()
-                           , 1usize , concat ! (
-                           "Size of: " , stringify ! (
-                           AssertAndSuppressCleanupPolicy ) ));
-                assert_eq! (::std::mem::align_of::<AssertAndSuppressCleanupPolicy>()
-                            , 1usize , concat ! (
-                            "Alignment of " , stringify ! (
-                            AssertAndSuppressCleanupPolicy ) ));
-            }
-            impl Clone for AssertAndSuppressCleanupPolicy {
-                fn clone(&self) -> Self { *self }
-            }
-        }
-        /// Superclass for data common to CSSStyleSheet and ServoStyleSheet.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StyleSheet {
-            pub _base: root::nsIDOMCSSStyleSheet,
-            pub _base_1: root::nsICSSLoaderObserver,
-            pub _base_2: root::nsWrapperCache,
-            pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-            pub _mOwningThread: root::nsAutoOwningThread,
-            pub mParent: *mut root::mozilla::StyleSheet,
-            pub mTitle: ::nsstring::nsStringRepr,
-            pub mDocument: *mut root::nsIDocument,
-            pub mOwningNode: *mut root::nsINode,
-            pub mOwnerRule: *mut root::mozilla::dom::CSSImportRule,
-            pub mMedia: root::RefPtr<root::mozilla::dom::MediaList>,
-            pub mNext: root::RefPtr<root::mozilla::StyleSheet>,
-            pub mParsingMode: root::mozilla::css::SheetParsingMode,
-            pub mType: root::mozilla::StyleBackendType,
-            pub mDisabled: bool,
-            pub mDirty: bool,
-            pub mDocumentAssociationMode: root::mozilla::StyleSheet_DocumentAssociationMode,
-            pub mInner: *mut root::mozilla::StyleSheetInfo,
-            pub mStyleSets: root::nsTArray<root::mozilla::StyleSetHandle>,
-        }
-        pub type StyleSheet_HasThreadSafeRefCnt = root::mozilla::FalseType;
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleSheet_cycleCollection {
-            pub _base: root::nsXPCOMCycleCollectionParticipant,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleSheet_cycleCollection() {
-            assert_eq!(::std::mem::size_of::<StyleSheet_cycleCollection>() ,
-                       16usize , concat ! (
-                       "Size of: " , stringify ! ( StyleSheet_cycleCollection
-                       ) ));
-            assert_eq! (::std::mem::align_of::<StyleSheet_cycleCollection>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        StyleSheet_cycleCollection ) ));
-        }
-        impl Clone for StyleSheet_cycleCollection {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(i32)]
-        /// The different changes that a stylesheet may go through.
-        ///
-        /// Used by the StyleSets in order to handle more efficiently some kinds of
-        /// changes.
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleSheet_ChangeType {
-            Added = 0,
-            Removed = 1,
-            ApplicableStateChanged = 2,
-            RuleAdded = 3,
-            RuleRemoved = 4,
-            RuleChanged = 5,
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleSheet_DocumentAssociationMode {
-            OwnedByDocument = 0,
-            NotOwnedByDocument = 1,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleSheet_ChildSheetListBuilder {
-            pub sheetSlot: *mut root::RefPtr<root::mozilla::StyleSheet>,
-            pub parent: *mut root::mozilla::StyleSheet,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleSheet_ChildSheetListBuilder() {
-            assert_eq!(::std::mem::size_of::<StyleSheet_ChildSheetListBuilder>()
-                       , 16usize , concat ! (
-                       "Size of: " , stringify ! (
-                       StyleSheet_ChildSheetListBuilder ) ));
-            assert_eq! (::std::mem::align_of::<StyleSheet_ChildSheetListBuilder>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        StyleSheet_ChildSheetListBuilder ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * ( 0 as * const StyleSheet_ChildSheetListBuilder ) )
-                        . sheetSlot as * const _ as usize } , 0usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleSheet_ChildSheetListBuilder ) , "::" , stringify
-                        ! ( sheetSlot ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * ( 0 as * const StyleSheet_ChildSheetListBuilder ) )
-                        . parent as * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleSheet_ChildSheetListBuilder ) , "::" , stringify
-                        ! ( parent ) ));
-        }
-        impl Clone for StyleSheet_ChildSheetListBuilder {
-            fn clone(&self) -> Self { *self }
-        }
-        extern "C" {
-            #[link_name = "_ZN7mozilla10StyleSheet21_cycleCollectorGlobalE"]
-            pub static mut StyleSheet__cycleCollectorGlobal:
-                       root::mozilla::StyleSheet_cycleCollection;
-        }
-        #[test]
-        fn bindgen_test_layout_StyleSheet() {
-            assert_eq!(::std::mem::size_of::<StyleSheet>() , 144usize , concat
-                       ! ( "Size of: " , stringify ! ( StyleSheet ) ));
-            assert_eq! (::std::mem::align_of::<StyleSheet>() , 8usize , concat
-                        ! ( "Alignment of " , stringify ! ( StyleSheet ) ));
-        }
-        pub mod net {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(u32)]
-            #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-            pub enum ReferrerPolicy {
-                RP_No_Referrer = 2,
-                RP_Origin = 3,
-                RP_No_Referrer_When_Downgrade = 1,
-                RP_Origin_When_Crossorigin = 4,
-                RP_Unsafe_URL = 5,
-                RP_Same_Origin = 6,
-                RP_Strict_Origin = 7,
-                RP_Strict_Origin_When_Cross_Origin = 8,
-                RP_Unset = 0,
-            }
-        }
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum CORSMode {
-            CORS_NONE = 0,
-            CORS_ANONYMOUS = 1,
-            CORS_USE_CREDENTIALS = 2,
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct CSSStyleSheet {
-            pub _base: root::mozilla::StyleSheet,
-            pub mRuleCollection: root::RefPtr<root::CSSRuleListImpl>,
-            pub mInRuleProcessorCache: bool,
-            pub mScopeElement: root::RefPtr<root::mozilla::dom::Element>,
-            pub mRuleProcessors: *mut u8,
-        }
-        pub use self::super::super::root::mozilla::net::ReferrerPolicy as
-                CSSStyleSheet_ReferrerPolicy;
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct CSSStyleSheet_cycleCollection {
-            pub _base: root::mozilla::StyleSheet_cycleCollection,
-        }
-        #[test]
-        fn bindgen_test_layout_CSSStyleSheet_cycleCollection() {
-            assert_eq!(::std::mem::size_of::<CSSStyleSheet_cycleCollection>()
-                       , 16usize , concat ! (
-                       "Size of: " , stringify ! (
-                       CSSStyleSheet_cycleCollection ) ));
-            assert_eq! (::std::mem::align_of::<CSSStyleSheet_cycleCollection>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        CSSStyleSheet_cycleCollection ) ));
-        }
-        impl Clone for CSSStyleSheet_cycleCollection {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct CSSStyleSheet_COMTypeInfo {
-            pub _address: u8,
-        }
-        extern "C" {
-            #[link_name =
-                  "_ZN7mozilla13CSSStyleSheet21_cycleCollectorGlobalE"]
-            pub static mut CSSStyleSheet__cycleCollectorGlobal:
-                       root::mozilla::CSSStyleSheet_cycleCollection;
-        }
-        #[test]
-        fn bindgen_test_layout_CSSStyleSheet() {
-            assert_eq!(::std::mem::size_of::<CSSStyleSheet>() , 176usize ,
-                       concat ! ( "Size of: " , stringify ! ( CSSStyleSheet )
-                       ));
-            assert_eq! (::std::mem::align_of::<CSSStyleSheet>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( CSSStyleSheet ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSStyleSheet ) ) .
-                        mRuleCollection as * const _ as usize } , 144usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( CSSStyleSheet )
-                        , "::" , stringify ! ( mRuleCollection ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSStyleSheet ) ) .
-                        mInRuleProcessorCache as * const _ as usize } ,
-                        152usize , concat ! (
-                        "Alignment of field: " , stringify ! ( CSSStyleSheet )
-                        , "::" , stringify ! ( mInRuleProcessorCache ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSStyleSheet ) ) . mScopeElement
-                        as * const _ as usize } , 160usize , concat ! (
-                        "Alignment of field: " , stringify ! ( CSSStyleSheet )
-                        , "::" , stringify ! ( mScopeElement ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CSSStyleSheet ) ) .
-                        mRuleProcessors as * const _ as usize } , 168usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( CSSStyleSheet )
-                        , "::" , stringify ! ( mRuleProcessors ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ServoStyleSheet {
-            pub _base: root::mozilla::StyleSheet,
-            pub mRuleList: root::RefPtr<root::mozilla::ServoCSSRuleList>,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct ServoStyleSheet_cycleCollection {
-            pub _base: root::mozilla::StyleSheet_cycleCollection,
-        }
-        #[test]
-        fn bindgen_test_layout_ServoStyleSheet_cycleCollection() {
-            assert_eq!(::std::mem::size_of::<ServoStyleSheet_cycleCollection>()
-                       , 16usize , concat ! (
-                       "Size of: " , stringify ! (
-                       ServoStyleSheet_cycleCollection ) ));
-            assert_eq! (::std::mem::align_of::<ServoStyleSheet_cycleCollection>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        ServoStyleSheet_cycleCollection ) ));
-        }
-        impl Clone for ServoStyleSheet_cycleCollection {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct ServoStyleSheet_COMTypeInfo {
-            pub _address: u8,
-        }
-        extern "C" {
-            #[link_name =
-                  "_ZN7mozilla15ServoStyleSheet21_cycleCollectorGlobalE"]
-            pub static mut ServoStyleSheet__cycleCollectorGlobal:
-                       root::mozilla::ServoStyleSheet_cycleCollection;
-        }
-        #[test]
-        fn bindgen_test_layout_ServoStyleSheet() {
-            assert_eq!(::std::mem::size_of::<ServoStyleSheet>() , 152usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( ServoStyleSheet ) ));
-            assert_eq! (::std::mem::align_of::<ServoStyleSheet>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( ServoStyleSheet ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSheet ) ) . mRuleList
-                        as * const _ as usize } , 144usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSheet
-                        ) , "::" , stringify ! ( mRuleList ) ));
-        }
-        /// Smart pointer class that can hold a pointer to either an nsStyleSet
-        /// or a ServoStyleSet.
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleSetHandle {
-            pub mPtr: root::mozilla::StyleSetHandle_Ptr,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleSetHandle_Ptr {
-            pub mValue: usize,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleSetHandle_Ptr() {
-            assert_eq!(::std::mem::size_of::<StyleSetHandle_Ptr>() , 8usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( StyleSetHandle_Ptr ) ));
-            assert_eq! (::std::mem::align_of::<StyleSetHandle_Ptr>() , 8usize
-                        , concat ! (
-                        "Alignment of " , stringify ! ( StyleSetHandle_Ptr )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSetHandle_Ptr ) ) . mValue
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleSetHandle_Ptr ) , "::" , stringify ! ( mValue )
-                        ));
-        }
-        impl Clone for StyleSetHandle_Ptr {
-            fn clone(&self) -> Self { *self }
-        }
-        #[test]
-        fn bindgen_test_layout_StyleSetHandle() {
-            assert_eq!(::std::mem::size_of::<StyleSetHandle>() , 8usize ,
-                       concat ! ( "Size of: " , stringify ! ( StyleSetHandle )
-                       ));
-            assert_eq! (::std::mem::align_of::<StyleSetHandle>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleSetHandle ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSetHandle ) ) . mPtr as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSetHandle
-                        ) , "::" , stringify ! ( mPtr ) ));
-        }
-        impl Clone for StyleSetHandle {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        pub struct StyleSheetInfo__bindgen_vtable(::std::os::raw::c_void);
-        /// Struct for data common to CSSStyleSheetInner and ServoStyleSheet.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StyleSheetInfo {
-            pub vtable_: *const StyleSheetInfo__bindgen_vtable,
-            pub mSheetURI: root::nsCOMPtr<root::nsIURI>,
-            pub mOriginalSheetURI: root::nsCOMPtr<root::nsIURI>,
-            pub mBaseURI: root::nsCOMPtr<root::nsIURI>,
-            pub mPrincipal: root::nsCOMPtr<root::nsIPrincipal>,
-            pub mCORSMode: root::mozilla::CORSMode,
-            pub mReferrerPolicy: root::mozilla::StyleSheetInfo_ReferrerPolicy,
-            pub mIntegrity: root::mozilla::dom::SRIMetadata,
-            pub mComplete: bool,
-            pub mFirstChild: root::RefPtr<root::mozilla::StyleSheet>,
-            pub mSheets: [u64; 10usize],
-            pub mSourceMapURL: ::nsstring::nsStringRepr,
-            pub mSourceMapURLFromComment: ::nsstring::nsStringRepr,
-            pub mSourceURL: ::nsstring::nsStringRepr,
-            pub mPrincipalSet: bool,
-        }
-        pub use self::super::super::root::mozilla::net::ReferrerPolicy as
-                StyleSheetInfo_ReferrerPolicy;
-        #[test]
-        fn bindgen_test_layout_StyleSheetInfo() {
-            assert_eq!(::std::mem::size_of::<StyleSheetInfo>() , 248usize ,
-                       concat ! ( "Size of: " , stringify ! ( StyleSheetInfo )
-                       ));
-            assert_eq! (::std::mem::align_of::<StyleSheetInfo>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleSheetInfo ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mSheetURI as
-                        * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mSheetURI ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) .
-                        mOriginalSheetURI as * const _ as usize } , 16usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mOriginalSheetURI ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mBaseURI as
-                        * const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mBaseURI ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mPrincipal
-                        as * const _ as usize } , 32usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mPrincipal ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mCORSMode as
-                        * const _ as usize } , 40usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mCORSMode ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) .
-                        mReferrerPolicy as * const _ as usize } , 44usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mReferrerPolicy ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mIntegrity
-                        as * const _ as usize } , 48usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mIntegrity ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mComplete as
-                        * const _ as usize } , 96usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mComplete ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mFirstChild
-                        as * const _ as usize } , 104usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mFirstChild ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mSheets as *
-                        const _ as usize } , 112usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mSheets ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) .
-                        mSourceMapURL as * const _ as usize } , 192usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mSourceMapURL ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) .
-                        mSourceMapURLFromComment as * const _ as usize } ,
-                        208usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mSourceMapURLFromComment )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) . mSourceURL
-                        as * const _ as usize } , 224usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mSourceURL ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleSheetInfo ) ) .
-                        mPrincipalSet as * const _ as usize } , 240usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleSheetInfo
-                        ) , "::" , stringify ! ( mPrincipalSet ) ));
-        }
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum CSSEnabledState {
-            eForAllContent = 0,
-            eInUASheets = 1,
-            eInChrome = 2,
-            eIgnoreEnabledState = 255,
-        }
-        pub type CSSPseudoElementTypeBase = u8;
-        pub const CSSPseudoElementType_InheritingAnonBox:
-                  root::mozilla::CSSPseudoElementType =
-            CSSPseudoElementType::Count;
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum CSSPseudoElementType {
-            after = 0,
-            before = 1,
-            backdrop = 2,
-            cue = 3,
-            firstLetter = 4,
-            firstLine = 5,
-            mozSelection = 6,
-            mozFocusInner = 7,
-            mozFocusOuter = 8,
-            mozListBullet = 9,
-            mozListNumber = 10,
-            mozMathAnonymous = 11,
-            mozNumberWrapper = 12,
-            mozNumberText = 13,
-            mozNumberSpinBox = 14,
-            mozNumberSpinUp = 15,
-            mozNumberSpinDown = 16,
-            mozProgressBar = 17,
-            mozRangeTrack = 18,
-            mozRangeProgress = 19,
-            mozRangeThumb = 20,
-            mozMeterBar = 21,
-            mozPlaceholder = 22,
-            placeholder = 23,
-            mozColorSwatch = 24,
-            Count = 25,
-            NonInheritingAnonBox = 26,
-            XULTree = 27,
-            NotPseudo = 28,
-            MAX = 29,
-        }
-        /// The set of style sheets that apply to a document, backed by a Servo
-        /// Stylist.  A ServoStyleSet contains ServoStyleSheets.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ServoStyleSet {
-            pub mKind: root::mozilla::ServoStyleSet_Kind,
-            pub mPresContext: *mut root::nsPresContext,
-            pub mLastPresContextUsesXBLStyleSet: *mut ::std::os::raw::c_void,
-            pub mRawSet: root::mozilla::UniquePtr<root::RawServoStyleSet>,
-            pub mSheets: [u64; 9usize],
-            pub mAuthorStyleDisabled: bool,
-            pub mStylistState: root::mozilla::StylistState,
-            pub mUserFontSetUpdateGeneration: u64,
-            pub mUserFontCacheUpdateGeneration: u32,
-            pub mNeedsRestyleAfterEnsureUniqueInner: bool,
-            pub mNonInheritingStyleContexts: [u64; 7usize],
-            pub mPostTraversalTasks: root::nsTArray<root::mozilla::PostTraversalTask>,
-            pub mStyleRuleMap: root::RefPtr<root::mozilla::ServoStyleRuleMap>,
-            pub mBindingManager: root::RefPtr<root::nsBindingManager>,
-        }
-        pub type ServoStyleSet_SnapshotTable =
-            root::mozilla::ServoElementSnapshotTable;
-        #[repr(u8)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum ServoStyleSet_Kind { Master = 0, ForXBL = 1, }
-        extern "C" {
-            #[link_name = "_ZN7mozilla13ServoStyleSet17sInServoTraversalE"]
-            pub static mut ServoStyleSet_sInServoTraversal:
-                       *mut root::mozilla::ServoStyleSet;
-        }
-        #[test]
-        fn bindgen_test_layout_ServoStyleSet() {
-            assert_eq!(::std::mem::size_of::<ServoStyleSet>() , 208usize ,
-                       concat ! ( "Size of: " , stringify ! ( ServoStyleSet )
-                       ));
-            assert_eq! (::std::mem::align_of::<ServoStyleSet>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( ServoStyleSet ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) . mKind as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mKind ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) . mPresContext
-                        as * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mPresContext ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mLastPresContextUsesXBLStyleSet as * const _ as usize
-                        } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mLastPresContextUsesXBLStyleSet
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) . mRawSet as *
-                        const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mRawSet ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) . mSheets as *
-                        const _ as usize } , 32usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mSheets ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mAuthorStyleDisabled as * const _ as usize } ,
-                        104usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mAuthorStyleDisabled ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) . mStylistState
-                        as * const _ as usize } , 105usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mStylistState ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mUserFontSetUpdateGeneration as * const _ as usize } ,
-                        112usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mUserFontSetUpdateGeneration )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mUserFontCacheUpdateGeneration as * const _ as usize }
-                        , 120usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mUserFontCacheUpdateGeneration
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mNeedsRestyleAfterEnsureUniqueInner as * const _ as
-                        usize } , 124usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! (
-                        mNeedsRestyleAfterEnsureUniqueInner ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mNonInheritingStyleContexts as * const _ as usize } ,
-                        128usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mNonInheritingStyleContexts )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mPostTraversalTasks as * const _ as usize } , 184usize
-                        , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mPostTraversalTasks ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) . mStyleRuleMap
-                        as * const _ as usize } , 192usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mStyleRuleMap ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoStyleSet ) ) .
-                        mBindingManager as * const _ as usize } , 200usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ServoStyleSet )
-                        , "::" , stringify ! ( mBindingManager ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct SeenPtrs {
-            pub _bindgen_opaque_blob: [u64; 5usize],
-        }
-        #[test]
-        fn bindgen_test_layout_SeenPtrs() {
-            assert_eq!(::std::mem::size_of::<SeenPtrs>() , 40usize , concat !
-                       ( "Size of: " , stringify ! ( SeenPtrs ) ));
-            assert_eq! (::std::mem::align_of::<SeenPtrs>() , 8usize , concat !
-                        ( "Alignment of " , stringify ! ( SeenPtrs ) ));
-        }
-        impl Clone for SeenPtrs {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct URLExtraData {
-            pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
-            pub mBaseURI: root::nsCOMPtr<root::nsIURI>,
-            pub mReferrer: root::nsCOMPtr<root::nsIURI>,
-            pub mPrincipal: root::nsCOMPtr<root::nsIPrincipal>,
-            pub mIsChrome: bool,
-        }
-        pub type URLExtraData_HasThreadSafeRefCnt = root::mozilla::TrueType;
-        extern "C" {
-            #[link_name = "_ZN7mozilla12URLExtraData6sDummyE"]
-            pub static mut URLExtraData_sDummy:
-                       root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>;
-        }
-        #[test]
-        fn bindgen_test_layout_URLExtraData() {
-            assert_eq!(::std::mem::size_of::<URLExtraData>() , 40usize ,
-                       concat ! ( "Size of: " , stringify ! ( URLExtraData )
-                       ));
-            assert_eq! (::std::mem::align_of::<URLExtraData>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( URLExtraData ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const URLExtraData ) ) . mRefCnt as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( URLExtraData )
-                        , "::" , stringify ! ( mRefCnt ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const URLExtraData ) ) . mBaseURI as *
-                        const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( URLExtraData )
-                        , "::" , stringify ! ( mBaseURI ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const URLExtraData ) ) . mReferrer as *
-                        const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! ( URLExtraData )
-                        , "::" , stringify ! ( mReferrer ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const URLExtraData ) ) . mPrincipal as
-                        * const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( URLExtraData )
-                        , "::" , stringify ! ( mPrincipal ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const URLExtraData ) ) . mIsChrome as *
-                        const _ as usize } , 32usize , concat ! (
-                        "Alignment of field: " , stringify ! ( URLExtraData )
-                        , "::" , stringify ! ( mIsChrome ) ));
-        }
-        #[test]
-        fn __bindgen_test_layout_StaticRefPtr_open0_URLExtraData_close0_instantiation() {
-            assert_eq!(::std::mem::size_of::<root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>>()
-                       , 8usize , concat ! (
-                       "Size of template specialization: " , stringify ! (
-                       root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>
-                       ) ));
-            assert_eq!(::std::mem::align_of::<root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>>()
-                       , 8usize , concat ! (
-                       "Alignment of template specialization: " , stringify !
-                       (
-                       root::mozilla::StaticRefPtr<root::mozilla::URLExtraData>
-                       ) ));
-        }
-        pub mod widget {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct IMEState {
-                _unused: [u8; 0],
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct ArenaAllocator_ArenaHeader {
-            /// The location in memory of the data portion of the arena.
-            pub offset: usize,
-            /// The location in memory of the end of the data portion of the arena.
-            pub tail: usize,
-        }
-        impl Clone for ArenaAllocator_ArenaHeader {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct ArenaAllocator_ArenaChunk {
-            pub header: root::mozilla::ArenaAllocator_ArenaHeader,
-            pub next: *mut root::mozilla::ArenaAllocator_ArenaChunk,
-        }
-        impl Clone for ArenaAllocator_ArenaChunk {
-            fn clone(&self) -> Self { *self }
-        }
-        pub mod a11y {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DocAccessible {
-                _unused: [u8; 0],
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct Encoding {
-            _unused: [u8; 0],
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct Runnable {
-            pub _base: root::nsIRunnable,
-            pub _base_1: root::nsINamed,
-            pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
-            pub _mOwningThread: root::nsAutoOwningThread,
-            pub mName: *const ::std::os::raw::c_char,
-        }
-        pub type Runnable_HasThreadSafeRefCnt = root::mozilla::TrueType;
-        #[test]
-        fn bindgen_test_layout_Runnable() {
-            assert_eq!(::std::mem::size_of::<Runnable>() , 40usize , concat !
-                       ( "Size of: " , stringify ! ( Runnable ) ));
-            assert_eq! (::std::mem::align_of::<Runnable>() , 8usize , concat !
-                        ( "Alignment of " , stringify ! ( Runnable ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct CycleCollectedJSContext_RunInMetastableStateData {
-            pub mRunnable: root::nsCOMPtr<root::nsIRunnable>,
-            pub mRecursionDepth: u32,
-        }
-        #[test]
-        fn bindgen_test_layout_CycleCollectedJSContext_RunInMetastableStateData() {
-            assert_eq!(::std::mem::size_of::<CycleCollectedJSContext_RunInMetastableStateData>()
-                       , 16usize , concat ! (
-                       "Size of: " , stringify ! (
-                       CycleCollectedJSContext_RunInMetastableStateData ) ));
-            assert_eq! (::std::mem::align_of::<CycleCollectedJSContext_RunInMetastableStateData>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        CycleCollectedJSContext_RunInMetastableStateData ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * (
-                        0 as * const
-                        CycleCollectedJSContext_RunInMetastableStateData ) ) .
-                        mRunnable as * const _ as usize } , 0usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        CycleCollectedJSContext_RunInMetastableStateData ) ,
-                        "::" , stringify ! ( mRunnable ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * (
-                        0 as * const
-                        CycleCollectedJSContext_RunInMetastableStateData ) ) .
-                        mRecursionDepth as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CycleCollectedJSContext_RunInMetastableStateData ) ,
-                        "::" , stringify ! ( mRecursionDepth ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct SegmentedVector_SegmentImpl_Storage {
-            pub mBuf: root::__BindgenUnionField<*mut ::std::os::raw::c_char>,
-            pub mAlign: root::__BindgenUnionField<u8>,
-            pub bindgen_union_field: u64,
-        }
-        pub type SegmentedVector_Segment = u8;
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct SegmentedVector_IterImpl {
-            pub mSegment: *mut root::mozilla::SegmentedVector_Segment,
-            pub mIndex: usize,
-        }
-        #[repr(i16)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum UseCounter {
-            eUseCounter_UNKNOWN = -1,
-            eUseCounter_SVGSVGElement_getElementById = 0,
-            eUseCounter_SVGSVGElement_currentScale_getter = 1,
-            eUseCounter_SVGSVGElement_currentScale_setter = 2,
-            eUseCounter_property_Fill = 3,
-            eUseCounter_property_FillOpacity = 4,
-            eUseCounter_XMLDocument_async_getter = 5,
-            eUseCounter_XMLDocument_async_setter = 6,
-            eUseCounter_DOMError_name_getter = 7,
-            eUseCounter_DOMError_name_setter = 8,
-            eUseCounter_DOMError_message_getter = 9,
-            eUseCounter_DOMError_message_setter = 10,
-            eUseCounter_custom_DOMErrorConstructor = 11,
-            eUseCounter_PushManager_subscribe = 12,
-            eUseCounter_PushSubscription_unsubscribe = 13,
-            eUseCounter_Window_sidebar_getter = 14,
-            eUseCounter_Window_sidebar_setter = 15,
-            eUseCounter_External_addSearchEngine = 16,
-            eUseCounter_OfflineResourceList_swapCache = 17,
-            eUseCounter_OfflineResourceList_update = 18,
-            eUseCounter_OfflineResourceList_status_getter = 19,
-            eUseCounter_OfflineResourceList_status_setter = 20,
-            eUseCounter_OfflineResourceList_onchecking_getter = 21,
-            eUseCounter_OfflineResourceList_onchecking_setter = 22,
-            eUseCounter_OfflineResourceList_onerror_getter = 23,
-            eUseCounter_OfflineResourceList_onerror_setter = 24,
-            eUseCounter_OfflineResourceList_onnoupdate_getter = 25,
-            eUseCounter_OfflineResourceList_onnoupdate_setter = 26,
-            eUseCounter_OfflineResourceList_ondownloading_getter = 27,
-            eUseCounter_OfflineResourceList_ondownloading_setter = 28,
-            eUseCounter_OfflineResourceList_onprogress_getter = 29,
-            eUseCounter_OfflineResourceList_onprogress_setter = 30,
-            eUseCounter_OfflineResourceList_onupdateready_getter = 31,
-            eUseCounter_OfflineResourceList_onupdateready_setter = 32,
-            eUseCounter_OfflineResourceList_oncached_getter = 33,
-            eUseCounter_OfflineResourceList_oncached_setter = 34,
-            eUseCounter_OfflineResourceList_onobsolete_getter = 35,
-            eUseCounter_OfflineResourceList_onobsolete_setter = 36,
-            eUseCounter_IDBDatabase_createMutableFile = 37,
-            eUseCounter_IDBDatabase_mozCreateFileHandle = 38,
-            eUseCounter_IDBMutableFile_open = 39,
-            eUseCounter_IDBMutableFile_getFile = 40,
-            eUseCounter_DataTransfer_addElement = 41,
-            eUseCounter_DataTransfer_mozItemCount_getter = 42,
-            eUseCounter_DataTransfer_mozItemCount_setter = 43,
-            eUseCounter_DataTransfer_mozCursor_getter = 44,
-            eUseCounter_DataTransfer_mozCursor_setter = 45,
-            eUseCounter_DataTransfer_mozTypesAt = 46,
-            eUseCounter_DataTransfer_mozClearDataAt = 47,
-            eUseCounter_DataTransfer_mozSetDataAt = 48,
-            eUseCounter_DataTransfer_mozGetDataAt = 49,
-            eUseCounter_DataTransfer_mozUserCancelled_getter = 50,
-            eUseCounter_DataTransfer_mozUserCancelled_setter = 51,
-            eUseCounter_DataTransfer_mozSourceNode_getter = 52,
-            eUseCounter_DataTransfer_mozSourceNode_setter = 53,
-            eUseCounter_custom_JS_asmjs = 54,
-            eUseCounter_custom_JS_wasm = 55,
-            eUseCounter_GetAttributeNode = 56,
-            eUseCounter_SetAttributeNode = 57,
-            eUseCounter_GetAttributeNodeNS = 58,
-            eUseCounter_SetAttributeNodeNS = 59,
-            eUseCounter_RemoveAttributeNode = 60,
-            eUseCounter_CreateAttribute = 61,
-            eUseCounter_CreateAttributeNS = 62,
-            eUseCounter_NodeValue = 63,
-            eUseCounter_TextContent = 64,
-            eUseCounter_EnablePrivilege = 65,
-            eUseCounter_DOMExceptionCode = 66,
-            eUseCounter_MutationEvent = 67,
-            eUseCounter_Components = 68,
-            eUseCounter_PrefixedVisibilityAPI = 69,
-            eUseCounter_NodeIteratorDetach = 70,
-            eUseCounter_LenientThis = 71,
-            eUseCounter_GetPreventDefault = 72,
-            eUseCounter_GetSetUserData = 73,
-            eUseCounter_MozGetAsFile = 74,
-            eUseCounter_UseOfCaptureEvents = 75,
-            eUseCounter_UseOfReleaseEvents = 76,
-            eUseCounter_UseOfDOM3LoadMethod = 77,
-            eUseCounter_ChromeUseOfDOM3LoadMethod = 78,
-            eUseCounter_ShowModalDialog = 79,
-            eUseCounter_SyncXMLHttpRequest = 80,
-            eUseCounter_Window_Cc_ontrollers = 81,
-            eUseCounter_ImportXULIntoContent = 82,
-            eUseCounter_PannerNodeDoppler = 83,
-            eUseCounter_NavigatorGetUserMedia = 84,
-            eUseCounter_WebrtcDeprecatedPrefix = 85,
-            eUseCounter_RTCPeerConnectionGetStreams = 86,
-            eUseCounter_AppCache = 87,
-            eUseCounter_PrefixedImageSmoothingEnabled = 88,
-            eUseCounter_PrefixedFullscreenAPI = 89,
-            eUseCounter_LenientSetter = 90,
-            eUseCounter_FileLastModifiedDate = 91,
-            eUseCounter_ImageBitmapRenderingContext_TransferImageBitmap = 92,
-            eUseCounter_URLCreateObjectURL_MediaStream = 93,
-            eUseCounter_XMLBaseAttribute = 94,
-            eUseCounter_XMLBaseAttributeForStyleAttr = 95,
-            eUseCounter_WindowContentUntrusted = 96,
-            eUseCounter_Count = 97,
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ScrollbarStyles {
-            pub mHorizontal: u8,
-            pub mVertical: u8,
-            pub mScrollBehavior: u8,
-            pub mScrollSnapTypeX: u8,
-            pub mScrollSnapTypeY: u8,
-            pub mScrollSnapPointsX: root::nsStyleCoord,
-            pub mScrollSnapPointsY: root::nsStyleCoord,
-            pub mScrollSnapDestinationX: root::nsStyleCoord_CalcValue,
-            pub mScrollSnapDestinationY: root::nsStyleCoord_CalcValue,
-        }
-        #[test]
-        fn bindgen_test_layout_ScrollbarStyles() {
-            assert_eq!(::std::mem::size_of::<ScrollbarStyles>() , 64usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( ScrollbarStyles ) ));
-            assert_eq! (::std::mem::align_of::<ScrollbarStyles>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( ScrollbarStyles ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) . mHorizontal
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mHorizontal ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) . mVertical
-                        as * const _ as usize } , 1usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mVertical ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollBehavior as * const _ as usize } , 2usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollBehavior ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollSnapTypeX as * const _ as usize } , 3usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollSnapTypeX ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollSnapTypeY as * const _ as usize } , 4usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollSnapTypeY ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollSnapPointsX as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollSnapPointsX ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollSnapPointsY as * const _ as usize } , 24usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollSnapPointsY ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollSnapDestinationX as * const _ as usize } ,
-                        40usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollSnapDestinationX ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ScrollbarStyles ) ) .
-                        mScrollSnapDestinationY as * const _ as usize } ,
-                        52usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ScrollbarStyles
-                        ) , "::" , stringify ! ( mScrollSnapDestinationY ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct LangGroupFontPrefs {
-            pub mLangGroup: root::RefPtr<root::nsIAtom>,
-            pub mMinimumFontSize: root::nscoord,
-            pub mDefaultVariableFont: root::nsFont,
-            pub mDefaultFixedFont: root::nsFont,
-            pub mDefaultSerifFont: root::nsFont,
-            pub mDefaultSansSerifFont: root::nsFont,
-            pub mDefaultMonospaceFont: root::nsFont,
-            pub mDefaultCursiveFont: root::nsFont,
-            pub mDefaultFantasyFont: root::nsFont,
-            pub mNext: root::nsAutoPtr<root::mozilla::LangGroupFontPrefs>,
-        }
-        #[test]
-        fn bindgen_test_layout_LangGroupFontPrefs() {
-            assert_eq!(::std::mem::size_of::<LangGroupFontPrefs>() , 640usize
-                       , concat ! (
-                       "Size of: " , stringify ! ( LangGroupFontPrefs ) ));
-            assert_eq! (::std::mem::align_of::<LangGroupFontPrefs>() , 8usize
-                        , concat ! (
-                        "Alignment of " , stringify ! ( LangGroupFontPrefs )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mLangGroup as * const _ as usize } , 0usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! ( mLangGroup
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mMinimumFontSize as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mMinimumFontSize ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultVariableFont as * const _ as usize } , 16usize
-                        , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultVariableFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultFixedFont as * const _ as usize } , 104usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultFixedFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultSerifFont as * const _ as usize } , 192usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultSerifFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultSansSerifFont as * const _ as usize } ,
-                        280usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultSansSerifFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultMonospaceFont as * const _ as usize } ,
-                        368usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultMonospaceFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultCursiveFont as * const _ as usize } , 456usize
-                        , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultCursiveFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) .
-                        mDefaultFantasyFont as * const _ as usize } , 544usize
-                        , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! (
-                        mDefaultFantasyFont ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const LangGroupFontPrefs ) ) . mNext as
-                        * const _ as usize } , 632usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        LangGroupFontPrefs ) , "::" , stringify ! ( mNext )
-                        ));
-        }
-        /// Some functionality that has historically lived on nsPresContext does not
-        /// actually need to be per-document. This singleton class serves as a host
-        /// for that functionality. We delegate to it from nsPresContext where
-        /// appropriate, and use it standalone in some cases as well.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StaticPresData {
-            pub mLangService: *mut root::nsLanguageAtomService,
-            pub mBorderWidthTable: [root::nscoord; 3usize],
-            pub mStaticLangGroupFontPrefs: root::mozilla::LangGroupFontPrefs,
-        }
-        #[test]
-        fn bindgen_test_layout_StaticPresData() {
-            assert_eq!(::std::mem::size_of::<StaticPresData>() , 664usize ,
-                       concat ! ( "Size of: " , stringify ! ( StaticPresData )
-                       ));
-            assert_eq! (::std::mem::align_of::<StaticPresData>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StaticPresData ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StaticPresData ) ) . mLangService
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StaticPresData
-                        ) , "::" , stringify ! ( mLangService ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StaticPresData ) ) .
-                        mBorderWidthTable as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StaticPresData
-                        ) , "::" , stringify ! ( mBorderWidthTable ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StaticPresData ) ) .
-                        mStaticLangGroupFontPrefs as * const _ as usize } ,
-                        24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StaticPresData
-                        ) , "::" , stringify ! ( mStaticLangGroupFontPrefs )
-                        ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct EffectCompositor {
-            pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-            pub _mOwningThread: root::nsAutoOwningThread,
-            pub mPresContext: *mut root::nsPresContext,
-            pub mElementsToRestyle: [u64; 10usize],
-            pub mIsInPreTraverse: bool,
-            pub mRuleProcessors: [u64; 4usize],
-        }
-        pub type EffectCompositor_HasThreadSafeRefCnt =
-            root::mozilla::FalseType;
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct EffectCompositor_cycleCollection {
-            pub _base: root::nsCycleCollectionParticipant,
-        }
-        #[test]
-        fn bindgen_test_layout_EffectCompositor_cycleCollection() {
-            assert_eq!(::std::mem::size_of::<EffectCompositor_cycleCollection>()
-                       , 16usize , concat ! (
-                       "Size of: " , stringify ! (
-                       EffectCompositor_cycleCollection ) ));
-            assert_eq! (::std::mem::align_of::<EffectCompositor_cycleCollection>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        EffectCompositor_cycleCollection ) ));
-        }
-        impl Clone for EffectCompositor_cycleCollection {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(u32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum EffectCompositor_CascadeLevel {
-            Animations = 0,
-            Transitions = 1,
-        }
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum EffectCompositor_RestyleType {
-            Throttled = 0,
-            Standard = 1,
-            Layer = 2,
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct EffectCompositor_AnimationStyleRuleProcessor {
-            pub _base: root::nsIStyleRuleProcessor,
-            pub mRefCnt: root::nsAutoRefCnt,
-            pub _mOwningThread: root::nsAutoOwningThread,
-            pub mCompositor: *mut root::mozilla::EffectCompositor,
-            pub mCascadeLevel: root::mozilla::EffectCompositor_CascadeLevel,
-        }
-        pub type EffectCompositor_AnimationStyleRuleProcessor_HasThreadSafeRefCnt
-            = root::mozilla::FalseType;
-        #[test]
-        fn bindgen_test_layout_EffectCompositor_AnimationStyleRuleProcessor() {
-            assert_eq!(::std::mem::size_of::<EffectCompositor_AnimationStyleRuleProcessor>()
-                       , 40usize , concat ! (
-                       "Size of: " , stringify ! (
-                       EffectCompositor_AnimationStyleRuleProcessor ) ));
-            assert_eq! (::std::mem::align_of::<EffectCompositor_AnimationStyleRuleProcessor>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        EffectCompositor_AnimationStyleRuleProcessor ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * (
-                        0 as * const
-                        EffectCompositor_AnimationStyleRuleProcessor ) ) .
-                        mRefCnt as * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor_AnimationStyleRuleProcessor ) , "::"
-                        , stringify ! ( mRefCnt ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * (
-                        0 as * const
-                        EffectCompositor_AnimationStyleRuleProcessor ) ) .
-                        _mOwningThread as * const _ as usize } , 16usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor_AnimationStyleRuleProcessor ) , "::"
-                        , stringify ! ( _mOwningThread ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * (
-                        0 as * const
-                        EffectCompositor_AnimationStyleRuleProcessor ) ) .
-                        mCompositor as * const _ as usize } , 24usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor_AnimationStyleRuleProcessor ) , "::"
-                        , stringify ! ( mCompositor ) ));
-            assert_eq! (unsafe {
-                        & (
-                        * (
-                        0 as * const
-                        EffectCompositor_AnimationStyleRuleProcessor ) ) .
-                        mCascadeLevel as * const _ as usize } , 32usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor_AnimationStyleRuleProcessor ) , "::"
-                        , stringify ! ( mCascadeLevel ) ));
-        }
-        extern "C" {
-            #[link_name =
-                  "_ZN7mozilla16EffectCompositor21_cycleCollectorGlobalE"]
-            pub static mut EffectCompositor__cycleCollectorGlobal:
-                       root::mozilla::EffectCompositor_cycleCollection;
-        }
-        pub const EffectCompositor_kCascadeLevelCount: usize = 2;
-        #[test]
-        fn bindgen_test_layout_EffectCompositor() {
-            assert_eq!(::std::mem::size_of::<EffectCompositor>() , 144usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( EffectCompositor ) ));
-            assert_eq! (::std::mem::align_of::<EffectCompositor>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( EffectCompositor ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EffectCompositor ) ) . mRefCnt as
-                        * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor ) , "::" , stringify ! ( mRefCnt )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EffectCompositor ) ) .
-                        _mOwningThread as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor ) , "::" , stringify ! (
-                        _mOwningThread ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EffectCompositor ) ) .
-                        mPresContext as * const _ as usize } , 16usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor ) , "::" , stringify ! ( mPresContext
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EffectCompositor ) ) .
-                        mElementsToRestyle as * const _ as usize } , 24usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor ) , "::" , stringify ! (
-                        mElementsToRestyle ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EffectCompositor ) ) .
-                        mIsInPreTraverse as * const _ as usize } , 104usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor ) , "::" , stringify ! (
-                        mIsInPreTraverse ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const EffectCompositor ) ) .
-                        mRuleProcessors as * const _ as usize } , 112usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        EffectCompositor ) , "::" , stringify ! (
-                        mRuleProcessors ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct EventStateManager {
-            _unused: [u8; 0],
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct CounterStyleManager {
-            pub mRefCnt: root::nsAutoRefCnt,
-            pub _mOwningThread: root::nsAutoOwningThread,
-            pub mPresContext: *mut root::nsPresContext,
-            pub mStyles: [u64; 5usize],
-            pub mRetiredStyles: root::nsTArray<*mut root::mozilla::CounterStyle>,
-        }
-        pub type CounterStyleManager_HasThreadSafeRefCnt =
-            root::mozilla::FalseType;
-        #[test]
-        fn bindgen_test_layout_CounterStyleManager() {
-            assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 72usize
-                       , concat ! (
-                       "Size of: " , stringify ! ( CounterStyleManager ) ));
-            assert_eq! (::std::mem::align_of::<CounterStyleManager>() , 8usize
-                        , concat ! (
-                        "Alignment of " , stringify ! ( CounterStyleManager )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStyleManager ) ) . mRefCnt
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CounterStyleManager ) , "::" , stringify ! ( mRefCnt )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStyleManager ) ) .
-                        _mOwningThread as * const _ as usize } , 8usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CounterStyleManager ) , "::" , stringify ! (
-                        _mOwningThread ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStyleManager ) ) .
-                        mPresContext as * const _ as usize } , 16usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CounterStyleManager ) , "::" , stringify ! (
-                        mPresContext ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStyleManager ) ) . mStyles
-                        as * const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CounterStyleManager ) , "::" , stringify ! ( mStyles )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStyleManager ) ) .
-                        mRetiredStyles as * const _ as usize } , 64usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        CounterStyleManager ) , "::" , stringify ! (
-                        mRetiredStyles ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct RestyleManager {
-            _unused: [u8; 0],
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct XREAppData_NSFreePolicy {
-            pub _address: u8,
-        }
-        #[test]
-        fn bindgen_test_layout_XREAppData_NSFreePolicy() {
-            assert_eq!(::std::mem::size_of::<XREAppData_NSFreePolicy>() ,
-                       1usize , concat ! (
-                       "Size of: " , stringify ! ( XREAppData_NSFreePolicy )
-                       ));
-            assert_eq! (::std::mem::align_of::<XREAppData_NSFreePolicy>() ,
-                        1usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        XREAppData_NSFreePolicy ) ));
-        }
-        impl Clone for XREAppData_NSFreePolicy {
-            fn clone(&self) -> Self { *self }
-        }
-        pub mod image {
-            #[allow(unused_imports)]
-            use self::super::super::super::root;
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ImageURL {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct Image {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct ProgressTracker {
-                _unused: [u8; 0],
-            }
-            #[repr(C)]
-            pub struct IProgressObserver__bindgen_vtable(::std::os::raw::c_void);
-            /// An interface for observing changes to image state, as reported by
-            /// ProgressTracker.
-            ///
-            /// This is the ImageLib-internal version of imgINotificationObserver,
-            /// essentially, with implementation details that code outside of ImageLib
-            /// shouldn't see.
-            ///
-            /// XXX(seth): It's preferable to avoid adding anything to this interface if
-            /// possible.  In the long term, it would be ideal to get to a place where we can
-            /// just use the imgINotificationObserver interface internally as well.
-            #[repr(C)]
-            #[derive(Debug)]
-            pub struct IProgressObserver {
-                pub vtable_: *const IProgressObserver__bindgen_vtable,
-                pub _base: u64,
-            }
-            #[test]
-            fn bindgen_test_layout_IProgressObserver() {
-                assert_eq!(::std::mem::size_of::<IProgressObserver>() ,
-                           16usize , concat ! (
-                           "Size of: " , stringify ! ( IProgressObserver ) ));
-                assert_eq! (::std::mem::align_of::<IProgressObserver>() ,
-                            8usize , concat ! (
-                            "Alignment of " , stringify ! ( IProgressObserver
-                            ) ));
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct AnonymousCounterStyle {
-            pub _base: root::mozilla::CounterStyle,
-            pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
-            pub mSingleString: bool,
-            pub mSystem: u8,
-            pub mSymbols: root::nsTArray<::nsstring::nsStringRepr>,
-        }
-        pub type AnonymousCounterStyle_HasThreadSafeRefCnt =
-            root::mozilla::TrueType;
-        #[test]
-        fn bindgen_test_layout_AnonymousCounterStyle() {
-            assert_eq!(::std::mem::size_of::<AnonymousCounterStyle>() ,
-                       40usize , concat ! (
-                       "Size of: " , stringify ! ( AnonymousCounterStyle ) ));
-            assert_eq! (::std::mem::align_of::<AnonymousCounterStyle>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! ( AnonymousCounterStyle
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnonymousCounterStyle ) ) .
-                        mRefCnt as * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnonymousCounterStyle ) , "::" , stringify ! ( mRefCnt
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnonymousCounterStyle ) ) .
-                        mSingleString as * const _ as usize } , 24usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnonymousCounterStyle ) , "::" , stringify ! (
-                        mSingleString ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnonymousCounterStyle ) ) .
-                        mSystem as * const _ as usize } , 25usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnonymousCounterStyle ) , "::" , stringify ! ( mSystem
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnonymousCounterStyle ) ) .
-                        mSymbols as * const _ as usize } , 32usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        AnonymousCounterStyle ) , "::" , stringify ! (
-                        mSymbols ) ));
-        }
-        #[repr(C)]
-        pub struct CounterStyle__bindgen_vtable(::std::os::raw::c_void);
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct CounterStyle {
-            pub vtable_: *const CounterStyle__bindgen_vtable,
-            pub mStyle: i32,
-        }
-        #[test]
-        fn bindgen_test_layout_CounterStyle() {
-            assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize ,
-                       concat ! ( "Size of: " , stringify ! ( CounterStyle )
-                       ));
-            assert_eq! (::std::mem::align_of::<CounterStyle>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( CounterStyle ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStyle ) ) . mStyle as *
-                        const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( CounterStyle )
-                        , "::" , stringify ! ( mStyle ) ));
-        }
-        impl Clone for CounterStyle {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct CounterStylePtr {
-            pub mRaw: usize,
-        }
-        #[repr(u64)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum CounterStylePtr_Type {
-            eCounterStyle = 0,
-            eAnonymousCounterStyle = 1,
-            eUnresolvedAtom = 2,
-            eMask = 3,
-        }
-        #[test]
-        fn bindgen_test_layout_CounterStylePtr() {
-            assert_eq!(::std::mem::size_of::<CounterStylePtr>() , 8usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( CounterStylePtr ) ));
-            assert_eq! (::std::mem::align_of::<CounterStylePtr>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( CounterStylePtr ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const CounterStylePtr ) ) . mRaw as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( CounterStylePtr
-                        ) , "::" , stringify ! ( mRaw ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct Position {
-            pub mXPosition: root::mozilla::Position_Coord,
-            pub mYPosition: root::mozilla::Position_Coord,
-        }
-        pub type Position_Coord = root::nsStyleCoord_CalcValue;
-        #[test]
-        fn bindgen_test_layout_Position() {
-            assert_eq!(::std::mem::size_of::<Position>() , 24usize , concat !
-                       ( "Size of: " , stringify ! ( Position ) ));
-            assert_eq! (::std::mem::align_of::<Position>() , 4usize , concat !
-                        ( "Alignment of " , stringify ! ( Position ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Position ) ) . mXPosition as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Position ) ,
-                        "::" , stringify ! ( mXPosition ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Position ) ) . mYPosition as *
-                        const _ as usize } , 12usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Position ) ,
-                        "::" , stringify ! ( mYPosition ) ));
-        }
-        impl Clone for Position {
-            fn clone(&self) -> Self { *self }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StyleTransition {
-            pub mTimingFunction: root::nsTimingFunction,
-            pub mDuration: f32,
-            pub mDelay: f32,
-            pub mProperty: root::nsCSSPropertyID,
-            pub mUnknownProperty: root::RefPtr<root::nsIAtom>,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleTransition() {
-            assert_eq!(::std::mem::size_of::<StyleTransition>() , 40usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( StyleTransition ) ));
-            assert_eq! (::std::mem::align_of::<StyleTransition>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleTransition ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleTransition ) ) .
-                        mTimingFunction as * const _ as usize } , 0usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleTransition
-                        ) , "::" , stringify ! ( mTimingFunction ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleTransition ) ) . mDuration
-                        as * const _ as usize } , 20usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleTransition
-                        ) , "::" , stringify ! ( mDuration ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleTransition ) ) . mDelay as *
-                        const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleTransition
-                        ) , "::" , stringify ! ( mDelay ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleTransition ) ) . mProperty
-                        as * const _ as usize } , 28usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleTransition
-                        ) , "::" , stringify ! ( mProperty ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleTransition ) ) .
-                        mUnknownProperty as * const _ as usize } , 32usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleTransition
-                        ) , "::" , stringify ! ( mUnknownProperty ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StyleAnimation {
-            pub mTimingFunction: root::nsTimingFunction,
-            pub mDuration: f32,
-            pub mDelay: f32,
-            pub mName: ::nsstring::nsStringRepr,
-            pub mDirection: root::mozilla::dom::PlaybackDirection,
-            pub mFillMode: root::mozilla::dom::FillMode,
-            pub mPlayState: u8,
-            pub mIterationCount: f32,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleAnimation() {
-            assert_eq!(::std::mem::size_of::<StyleAnimation>() , 56usize ,
-                       concat ! ( "Size of: " , stringify ! ( StyleAnimation )
-                       ));
-            assert_eq! (::std::mem::align_of::<StyleAnimation>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleAnimation ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) .
-                        mTimingFunction as * const _ as usize } , 0usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mTimingFunction ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mDuration as
-                        * const _ as usize } , 20usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mDuration ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mDelay as *
-                        const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mDelay ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mName as *
-                        const _ as usize } , 32usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mName ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mDirection
-                        as * const _ as usize } , 48usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mDirection ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mFillMode as
-                        * const _ as usize } , 49usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mFillMode ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) . mPlayState
-                        as * const _ as usize } , 50usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mPlayState ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleAnimation ) ) .
-                        mIterationCount as * const _ as usize } , 52usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( StyleAnimation
-                        ) , "::" , stringify ! ( mIterationCount ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StyleBasicShape {
-            pub mType: root::mozilla::StyleBasicShapeType,
-            pub mFillRule: root::mozilla::StyleFillRule,
-            pub mCoordinates: root::nsTArray<root::nsStyleCoord>,
-            pub mPosition: root::mozilla::Position,
-            pub mRadius: root::nsStyleCorners,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleBasicShape() {
-            assert_eq!(::std::mem::size_of::<StyleBasicShape>() , 112usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( StyleBasicShape ) ));
-            assert_eq! (::std::mem::align_of::<StyleBasicShape>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleBasicShape ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleBasicShape ) ) . mType as *
-                        const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleBasicShape
-                        ) , "::" , stringify ! ( mType ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleBasicShape ) ) . mFillRule
-                        as * const _ as usize } , 1usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleBasicShape
-                        ) , "::" , stringify ! ( mFillRule ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleBasicShape ) ) .
-                        mCoordinates as * const _ as usize } , 8usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! ( StyleBasicShape
-                        ) , "::" , stringify ! ( mCoordinates ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleBasicShape ) ) . mPosition
-                        as * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleBasicShape
-                        ) , "::" , stringify ! ( mPosition ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleBasicShape ) ) . mRadius as
-                        * const _ as usize } , 40usize , concat ! (
-                        "Alignment of field: " , stringify ! ( StyleBasicShape
-                        ) , "::" , stringify ! ( mRadius ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct StyleShapeSource {
-            pub mBasicShape: root::mozilla::UniquePtr<root::mozilla::StyleBasicShape>,
-            pub mShapeImage: root::mozilla::UniquePtr<root::nsStyleImage>,
-            pub mType: root::mozilla::StyleShapeSourceType,
-            pub mReferenceBox: root::mozilla::StyleGeometryBox,
-        }
-        #[test]
-        fn bindgen_test_layout_StyleShapeSource() {
-            assert_eq!(::std::mem::size_of::<StyleShapeSource>() , 24usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( StyleShapeSource ) ));
-            assert_eq! (::std::mem::align_of::<StyleShapeSource>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( StyleShapeSource ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleShapeSource ) ) .
-                        mBasicShape as * const _ as usize } , 0usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleShapeSource ) , "::" , stringify ! ( mBasicShape
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleShapeSource ) ) .
-                        mShapeImage as * const _ as usize } , 8usize , concat
-                        ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleShapeSource ) , "::" , stringify ! ( mShapeImage
-                        ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleShapeSource ) ) . mType as *
-                        const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleShapeSource ) , "::" , stringify ! ( mType ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const StyleShapeSource ) ) .
-                        mReferenceBox as * const _ as usize } , 17usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        StyleShapeSource ) , "::" , stringify ! (
-                        mReferenceBox ) ));
-        }
-        /// <div rustbindgen="true" replaces="mozilla::UniquePtr">
-        ///
-        /// TODO(Emilio): This is a workaround and we should be able to get rid of this
-        /// one.
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone)]
-        pub struct UniquePtr<T> {
-            pub mPtr: *mut T,
-            pub _phantom_0: ::std::marker::PhantomData<::std::cell::UnsafeCell<T>>,
-        }
-        pub const SERVO_PREF_ENABLED_align_content: bool = false;
-        pub const SERVO_PREF_ENABLED_align_items: bool = false;
-        pub const SERVO_PREF_ENABLED_align_self: bool = false;
-        pub const SERVO_PREF_ENABLED_all: bool = true;
-        pub const SERVO_PREF_ENABLED_animation: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_delay: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_direction: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_duration: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_fill_mode: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_iteration_count: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_name: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_play_state: bool = false;
-        pub const SERVO_PREF_ENABLED_animation_timing_function: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_appearance: bool = false;
-        pub const SERVO_PREF_ENABLED_backface_visibility: bool = false;
-        pub const SERVO_PREF_ENABLED_background: bool = false;
-        pub const SERVO_PREF_ENABLED_background_attachment: bool = false;
-        pub const SERVO_PREF_ENABLED_background_blend_mode: bool = true;
-        pub const SERVO_PREF_ENABLED_background_clip: bool = false;
-        pub const SERVO_PREF_ENABLED_background_color: bool = false;
-        pub const SERVO_PREF_ENABLED_background_image: bool = false;
-        pub const SERVO_PREF_ENABLED_background_origin: bool = false;
-        pub const SERVO_PREF_ENABLED_background_position: bool = false;
-        pub const SERVO_PREF_ENABLED_background_position_x: bool = false;
-        pub const SERVO_PREF_ENABLED_background_position_y: bool = false;
-        pub const SERVO_PREF_ENABLED_background_repeat: bool = false;
-        pub const SERVO_PREF_ENABLED_background_size: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_binding: bool = false;
-        pub const SERVO_PREF_ENABLED_block_size: bool = false;
-        pub const SERVO_PREF_ENABLED_border: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_end: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_end_color: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_end_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_end_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_start: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_start_color: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_start_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_block_start_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_bottom: bool = false;
-        pub const SERVO_PREF_ENABLED_border_bottom_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_bottom_colors: bool = false;
-        pub const SERVO_PREF_ENABLED_border_bottom_left_radius: bool = false;
-        pub const SERVO_PREF_ENABLED_border_bottom_right_radius: bool = false;
-        pub const SERVO_PREF_ENABLED_border_bottom_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_bottom_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_collapse: bool = false;
-        pub const SERVO_PREF_ENABLED_border_color: bool = false;
-        pub const SERVO_PREF_ENABLED_border_image: bool = false;
-        pub const SERVO_PREF_ENABLED_border_image_outset: bool = false;
-        pub const SERVO_PREF_ENABLED_border_image_repeat: bool = false;
-        pub const SERVO_PREF_ENABLED_border_image_slice: bool = false;
-        pub const SERVO_PREF_ENABLED_border_image_source: bool = false;
-        pub const SERVO_PREF_ENABLED_border_image_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_end: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_end_color: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_end_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_end_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_start: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_start_color: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_start_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_inline_start_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_left: bool = false;
-        pub const SERVO_PREF_ENABLED_border_left_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_left_colors: bool = false;
-        pub const SERVO_PREF_ENABLED_border_left_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_left_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_radius: bool = false;
-        pub const SERVO_PREF_ENABLED_border_right: bool = false;
-        pub const SERVO_PREF_ENABLED_border_right_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_right_colors: bool = false;
-        pub const SERVO_PREF_ENABLED_border_right_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_right_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_spacing: bool = false;
-        pub const SERVO_PREF_ENABLED_border_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_top: bool = false;
-        pub const SERVO_PREF_ENABLED_border_top_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_top_colors: bool = false;
-        pub const SERVO_PREF_ENABLED_border_top_left_radius: bool = false;
-        pub const SERVO_PREF_ENABLED_border_top_right_radius: bool = false;
-        pub const SERVO_PREF_ENABLED_border_top_style: bool = false;
-        pub const SERVO_PREF_ENABLED_border_top_width: bool = false;
-        pub const SERVO_PREF_ENABLED_border_width: bool = false;
-        pub const SERVO_PREF_ENABLED_bottom: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_box_align: bool = false;
-        pub const SERVO_PREF_ENABLED_box_decoration_break: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_box_direction: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_box_flex: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_box_ordinal_group: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_box_orient: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_box_pack: bool = false;
-        pub const SERVO_PREF_ENABLED_box_shadow: bool = false;
-        pub const SERVO_PREF_ENABLED_box_sizing: bool = false;
-        pub const SERVO_PREF_ENABLED_caption_side: bool = false;
-        pub const SERVO_PREF_ENABLED_caret_color: bool = false;
-        pub const SERVO_PREF_ENABLED_clear: bool = false;
-        pub const SERVO_PREF_ENABLED_clip: bool = false;
-        pub const SERVO_PREF_ENABLED_clip_path: bool = false;
-        pub const SERVO_PREF_ENABLED_clip_rule: bool = false;
-        pub const SERVO_PREF_ENABLED_color: bool = false;
-        pub const SERVO_PREF_ENABLED_color_adjust: bool = true;
-        pub const SERVO_PREF_ENABLED_color_interpolation: bool = false;
-        pub const SERVO_PREF_ENABLED_color_interpolation_filters: bool =
-            false;
-        pub const SERVO_PREF_ENABLED_column_count: bool = false;
-        pub const SERVO_PREF_ENABLED_column_fill: bool = false;
-        pub const SERVO_PREF_ENABLED_column_gap: bool = false;
-        pub const SERVO_PREF_ENABLED_column_rule: bool = false;
-        pub const SERVO_PREF_ENABLED_column_rule_color: bool = false;
-        pub const SERVO_PREF_ENABLED_column_rule_style: bool = false;
-        pub const SERVO_PREF_ENABLED_column_rule_width: bool = false;
-        pub const SERVO_PREF_ENABLED_column_span: bool = true;
-        pub const SERVO_PREF_ENABLED_column_width: bool = false;
-        pub const SERVO_PREF_ENABLED_columns: bool = false;
-        pub const SERVO_PREF_ENABLED_contain: bool = true;
-        pub const SERVO_PREF_ENABLED_content: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_context_properties: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_control_character_visibility: bool =
-            false;
-        pub const SERVO_PREF_ENABLED_counter_increment: bool = false;
-        pub const SERVO_PREF_ENABLED_counter_reset: bool = false;
-        pub const SERVO_PREF_ENABLED_cursor: bool = false;
-        pub const SERVO_PREF_ENABLED_direction: bool = false;
-        pub const SERVO_PREF_ENABLED_display: bool = false;
-        pub const SERVO_PREF_ENABLED_dominant_baseline: bool = false;
-        pub const SERVO_PREF_ENABLED_empty_cells: bool = false;
-        pub const SERVO_PREF_ENABLED_fill: bool = false;
-        pub const SERVO_PREF_ENABLED_fill_opacity: bool = false;
-        pub const SERVO_PREF_ENABLED_fill_rule: bool = false;
-        pub const SERVO_PREF_ENABLED_filter: bool = false;
-        pub const SERVO_PREF_ENABLED_flex: bool = false;
-        pub const SERVO_PREF_ENABLED_flex_basis: bool = false;
-        pub const SERVO_PREF_ENABLED_flex_direction: bool = false;
-        pub const SERVO_PREF_ENABLED_flex_flow: bool = false;
-        pub const SERVO_PREF_ENABLED_flex_grow: bool = false;
-        pub const SERVO_PREF_ENABLED_flex_shrink: bool = false;
-        pub const SERVO_PREF_ENABLED_flex_wrap: bool = false;
-        pub const SERVO_PREF_ENABLED_float_: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_float_edge: bool = false;
-        pub const SERVO_PREF_ENABLED_flood_color: bool = false;
-        pub const SERVO_PREF_ENABLED_flood_opacity: bool = false;
-        pub const SERVO_PREF_ENABLED_font: bool = false;
-        pub const SERVO_PREF_ENABLED_font_family: bool = false;
-        pub const SERVO_PREF_ENABLED_font_feature_settings: bool = false;
-        pub const SERVO_PREF_ENABLED_font_kerning: bool = false;
-        pub const SERVO_PREF_ENABLED_font_language_override: bool = false;
-        pub const SERVO_PREF_ENABLED_font_size: bool = false;
-        pub const SERVO_PREF_ENABLED_font_size_adjust: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_font_smoothing_background_color:
-                  bool =
-            false;
-        pub const SERVO_PREF_ENABLED_font_stretch: bool = false;
-        pub const SERVO_PREF_ENABLED_font_style: bool = false;
-        pub const SERVO_PREF_ENABLED_font_synthesis: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant_alternates: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant_caps: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant_east_asian: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant_ligatures: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant_numeric: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variant_position: bool = false;
-        pub const SERVO_PREF_ENABLED_font_variation_settings: bool = true;
-        pub const SERVO_PREF_ENABLED_font_weight: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_force_broken_image_icon: bool =
-            false;
-        pub const SERVO_PREF_ENABLED_grid: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_area: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_auto_columns: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_auto_flow: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_auto_rows: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_column: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_column_end: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_column_gap: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_column_start: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_gap: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_row: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_row_end: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_row_gap: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_row_start: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_template: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_template_areas: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_template_columns: bool = true;
-        pub const SERVO_PREF_ENABLED_grid_template_rows: bool = true;
-        pub const SERVO_PREF_ENABLED_height: bool = false;
-        pub const SERVO_PREF_ENABLED_hyphens: bool = false;
-        pub const SERVO_PREF_ENABLED_initial_letter: bool = true;
-        pub const SERVO_PREF_ENABLED_image_orientation: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_image_region: bool = false;
-        pub const SERVO_PREF_ENABLED_image_rendering: bool = false;
-        pub const SERVO_PREF_ENABLED_ime_mode: bool = false;
-        pub const SERVO_PREF_ENABLED_inline_size: bool = false;
-        pub const SERVO_PREF_ENABLED_isolation: bool = true;
-        pub const SERVO_PREF_ENABLED_justify_content: bool = false;
-        pub const SERVO_PREF_ENABLED_justify_items: bool = false;
-        pub const SERVO_PREF_ENABLED_justify_self: bool = false;
-        pub const SERVO_PREF_ENABLED__x_lang: bool = false;
-        pub const SERVO_PREF_ENABLED_left: bool = false;
-        pub const SERVO_PREF_ENABLED_letter_spacing: bool = false;
-        pub const SERVO_PREF_ENABLED_lighting_color: bool = false;
-        pub const SERVO_PREF_ENABLED_line_height: bool = false;
-        pub const SERVO_PREF_ENABLED_list_style: bool = false;
-        pub const SERVO_PREF_ENABLED_list_style_image: bool = false;
-        pub const SERVO_PREF_ENABLED_list_style_position: bool = false;
-        pub const SERVO_PREF_ENABLED_list_style_type: bool = false;
-        pub const SERVO_PREF_ENABLED_margin: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_block_end: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_block_start: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_bottom: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_inline_end: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_inline_start: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_left: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_right: bool = false;
-        pub const SERVO_PREF_ENABLED_margin_top: bool = false;
-        pub const SERVO_PREF_ENABLED_marker: bool = false;
-        pub const SERVO_PREF_ENABLED_marker_end: bool = false;
-        pub const SERVO_PREF_ENABLED_marker_mid: bool = false;
-        pub const SERVO_PREF_ENABLED_marker_start: bool = false;
-        pub const SERVO_PREF_ENABLED_mask: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_clip: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_composite: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_image: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_mode: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_origin: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_position: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_position_x: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_position_y: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_repeat: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_size: bool = false;
-        pub const SERVO_PREF_ENABLED_mask_type: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_math_display: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_math_variant: bool = false;
-        pub const SERVO_PREF_ENABLED_max_block_size: bool = false;
-        pub const SERVO_PREF_ENABLED_max_height: bool = false;
-        pub const SERVO_PREF_ENABLED_max_inline_size: bool = false;
-        pub const SERVO_PREF_ENABLED_max_width: bool = false;
-        pub const SERVO_PREF_ENABLED_min_block_size: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_min_font_size_ratio: bool = false;
-        pub const SERVO_PREF_ENABLED_min_height: bool = false;
-        pub const SERVO_PREF_ENABLED_min_inline_size: bool = false;
-        pub const SERVO_PREF_ENABLED_min_width: bool = false;
-        pub const SERVO_PREF_ENABLED_mix_blend_mode: bool = true;
-        pub const SERVO_PREF_ENABLED_object_fit: bool = false;
-        pub const SERVO_PREF_ENABLED_object_position: bool = false;
-        pub const SERVO_PREF_ENABLED_offset_block_end: bool = false;
-        pub const SERVO_PREF_ENABLED_offset_block_start: bool = false;
-        pub const SERVO_PREF_ENABLED_offset_inline_end: bool = false;
-        pub const SERVO_PREF_ENABLED_offset_inline_start: bool = false;
-        pub const SERVO_PREF_ENABLED_opacity: bool = false;
-        pub const SERVO_PREF_ENABLED_order: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_orient: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_osx_font_smoothing: bool = true;
-        pub const SERVO_PREF_ENABLED_outline: bool = false;
-        pub const SERVO_PREF_ENABLED_outline_color: bool = false;
-        pub const SERVO_PREF_ENABLED_outline_offset: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_outline_radius: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_outline_radius_bottomleft: bool =
-            false;
-        pub const SERVO_PREF_ENABLED__moz_outline_radius_bottomright: bool =
-            false;
-        pub const SERVO_PREF_ENABLED__moz_outline_radius_topleft: bool =
-            false;
-        pub const SERVO_PREF_ENABLED__moz_outline_radius_topright: bool =
-            false;
-        pub const SERVO_PREF_ENABLED_outline_style: bool = false;
-        pub const SERVO_PREF_ENABLED_outline_width: bool = false;
-        pub const SERVO_PREF_ENABLED_overflow: bool = false;
-        pub const SERVO_PREF_ENABLED_overflow_clip_box: bool = true;
-        pub const SERVO_PREF_ENABLED_overflow_x: bool = false;
-        pub const SERVO_PREF_ENABLED_overflow_y: bool = false;
-        pub const SERVO_PREF_ENABLED_padding: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_block_end: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_block_start: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_bottom: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_inline_end: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_inline_start: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_left: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_right: bool = false;
-        pub const SERVO_PREF_ENABLED_padding_top: bool = false;
-        pub const SERVO_PREF_ENABLED_page_break_after: bool = false;
-        pub const SERVO_PREF_ENABLED_page_break_before: bool = false;
-        pub const SERVO_PREF_ENABLED_page_break_inside: bool = false;
-        pub const SERVO_PREF_ENABLED_paint_order: bool = true;
-        pub const SERVO_PREF_ENABLED_perspective: bool = false;
-        pub const SERVO_PREF_ENABLED_perspective_origin: bool = false;
-        pub const SERVO_PREF_ENABLED_place_content: bool = false;
-        pub const SERVO_PREF_ENABLED_place_items: bool = false;
-        pub const SERVO_PREF_ENABLED_place_self: bool = false;
-        pub const SERVO_PREF_ENABLED_pointer_events: bool = false;
-        pub const SERVO_PREF_ENABLED_position: bool = false;
-        pub const SERVO_PREF_ENABLED_quotes: bool = false;
-        pub const SERVO_PREF_ENABLED_resize: bool = false;
-        pub const SERVO_PREF_ENABLED_right: bool = false;
-        pub const SERVO_PREF_ENABLED_ruby_align: bool = false;
-        pub const SERVO_PREF_ENABLED_ruby_position: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_script_level: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_script_min_size: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_script_size_multiplier: bool =
-            false;
-        pub const SERVO_PREF_ENABLED_scroll_behavior: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_coordinate: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_destination: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_points_x: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_points_y: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_type: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_type_x: bool = true;
-        pub const SERVO_PREF_ENABLED_scroll_snap_type_y: bool = true;
-        pub const SERVO_PREF_ENABLED_shape_outside: bool = true;
-        pub const SERVO_PREF_ENABLED_shape_rendering: bool = false;
-        pub const SERVO_PREF_ENABLED__x_span: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_stack_sizing: bool = false;
-        pub const SERVO_PREF_ENABLED_stop_color: bool = false;
-        pub const SERVO_PREF_ENABLED_stop_opacity: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_dasharray: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_dashoffset: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_linecap: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_linejoin: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_miterlimit: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_opacity: bool = false;
-        pub const SERVO_PREF_ENABLED_stroke_width: bool = false;
-        pub const SERVO_PREF_ENABLED__x_system_font: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_tab_size: bool = false;
-        pub const SERVO_PREF_ENABLED_table_layout: bool = false;
-        pub const SERVO_PREF_ENABLED_text_align: bool = false;
-        pub const SERVO_PREF_ENABLED_text_align_last: bool = false;
-        pub const SERVO_PREF_ENABLED_text_anchor: bool = false;
-        pub const SERVO_PREF_ENABLED_text_combine_upright: bool = true;
-        pub const SERVO_PREF_ENABLED_text_decoration: bool = false;
-        pub const SERVO_PREF_ENABLED_text_decoration_color: bool = false;
-        pub const SERVO_PREF_ENABLED_text_decoration_line: bool = false;
-        pub const SERVO_PREF_ENABLED_text_decoration_style: bool = false;
-        pub const SERVO_PREF_ENABLED_text_emphasis: bool = false;
-        pub const SERVO_PREF_ENABLED_text_emphasis_color: bool = false;
-        pub const SERVO_PREF_ENABLED_text_emphasis_position: bool = false;
-        pub const SERVO_PREF_ENABLED_text_emphasis_style: bool = false;
-        pub const SERVO_PREF_ENABLED__webkit_text_fill_color: bool = true;
-        pub const SERVO_PREF_ENABLED_text_indent: bool = false;
-        pub const SERVO_PREF_ENABLED_text_justify: bool = true;
-        pub const SERVO_PREF_ENABLED_text_orientation: bool = false;
-        pub const SERVO_PREF_ENABLED_text_overflow: bool = false;
-        pub const SERVO_PREF_ENABLED_text_rendering: bool = false;
-        pub const SERVO_PREF_ENABLED_text_shadow: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_text_size_adjust: bool = false;
-        pub const SERVO_PREF_ENABLED__webkit_text_stroke: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_text_stroke_color: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_text_stroke_width: bool = true;
-        pub const SERVO_PREF_ENABLED_text_transform: bool = false;
-        pub const SERVO_PREF_ENABLED__x_text_zoom: bool = false;
-        pub const SERVO_PREF_ENABLED_top: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_top_layer: bool = false;
-        pub const SERVO_PREF_ENABLED_touch_action: bool = true;
-        pub const SERVO_PREF_ENABLED_transform: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_transform: bool = true;
-        pub const SERVO_PREF_ENABLED_transform_box: bool = true;
-        pub const SERVO_PREF_ENABLED_transform_origin: bool = false;
-        pub const SERVO_PREF_ENABLED_transform_style: bool = false;
-        pub const SERVO_PREF_ENABLED_transition: bool = false;
-        pub const SERVO_PREF_ENABLED_transition_delay: bool = false;
-        pub const SERVO_PREF_ENABLED_transition_duration: bool = false;
-        pub const SERVO_PREF_ENABLED_transition_property: bool = false;
-        pub const SERVO_PREF_ENABLED_transition_timing_function: bool = false;
-        pub const SERVO_PREF_ENABLED_unicode_bidi: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_user_focus: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_user_input: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_user_modify: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_user_select: bool = false;
-        pub const SERVO_PREF_ENABLED_vector_effect: bool = false;
-        pub const SERVO_PREF_ENABLED_vertical_align: bool = false;
-        pub const SERVO_PREF_ENABLED_visibility: bool = false;
-        pub const SERVO_PREF_ENABLED_white_space: bool = false;
-        pub const SERVO_PREF_ENABLED_width: bool = false;
-        pub const SERVO_PREF_ENABLED_will_change: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_window_dragging: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_window_shadow: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_window_opacity: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_window_transform: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_window_transform_origin: bool =
-            false;
-        pub const SERVO_PREF_ENABLED_word_break: bool = false;
-        pub const SERVO_PREF_ENABLED_word_spacing: bool = false;
-        pub const SERVO_PREF_ENABLED_overflow_wrap: bool = false;
-        pub const SERVO_PREF_ENABLED_writing_mode: bool = false;
-        pub const SERVO_PREF_ENABLED_z_index: bool = false;
-        pub const SERVO_PREF_ENABLED_word_wrap: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_transform_origin: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_perspective_origin: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_perspective: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_transform_style: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_backface_visibility: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_border_image: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_transition: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_transition_delay: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_transition_duration: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_transition_property: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_transition_timing_function: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__moz_animation: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_delay: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_direction: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_duration: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_fill_mode: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_iteration_count: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__moz_animation_name: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_play_state: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_animation_timing_function: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__moz_box_sizing: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_font_feature_settings: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_font_language_override: bool = true;
-        pub const SERVO_PREF_ENABLED__moz_padding_end: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_padding_start: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_margin_end: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_margin_start: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_end: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_end_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_end_style: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_end_width: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_start: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_start_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_start_style: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_border_start_width: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_hyphens: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_count: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_fill: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_gap: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_rule: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_rule_color: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_rule_style: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_rule_width: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_column_width: bool = false;
-        pub const SERVO_PREF_ENABLED__moz_columns: bool = false;
-        pub const SERVO_PREF_ENABLED__webkit_animation: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_delay: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_direction: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_duration: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_fill_mode: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_iteration_count: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_name: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_play_state: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_animation_timing_function: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_filter: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_text_size_adjust: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transform: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transform_origin: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transform_style: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_backface_visibility: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_perspective: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_perspective_origin: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transition: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transition_delay: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transition_duration: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transition_property: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_transition_timing_function: bool
-                  =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_border_radius: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_border_top_left_radius: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_border_top_right_radius: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_border_bottom_left_radius: bool =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_border_bottom_right_radius: bool
-                  =
-            true;
-        pub const SERVO_PREF_ENABLED__webkit_background_clip: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_background_origin: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_background_size: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_border_image: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_shadow: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_sizing: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_flex: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_ordinal_group: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_orient: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_direction: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_align: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_box_pack: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex_direction: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex_wrap: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex_flow: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_order: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex_grow: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex_shrink: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_flex_basis: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_justify_content: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_align_items: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_align_self: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_align_content: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_user_select: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_clip: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_composite: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_image: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_origin: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_position: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_position_x: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_position_y: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_repeat: bool = true;
-        pub const SERVO_PREF_ENABLED__webkit_mask_size: bool = true;
-        /// This class holds all non-tree-structural state of an element that might be
-        /// used for selector matching eventually.
-        ///
-        /// This means the attributes, and the element state, such as :hover, :active,
-        /// etc...
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ServoElementSnapshot {
-            pub mAttrs: root::nsTArray<root::mozilla::ServoAttrSnapshot>,
-            pub mClass: root::nsAttrValue,
-            pub mState: root::mozilla::ServoElementSnapshot_ServoStateType,
-            pub mContains: root::mozilla::ServoElementSnapshot_Flags,
-            pub _bitfield_1: u8,
-            pub __bindgen_padding_0: [u16; 3usize],
-        }
-        pub type ServoElementSnapshot_BorrowedAttrInfo =
-            root::mozilla::dom::BorrowedAttrInfo;
-        pub type ServoElementSnapshot_Element = root::mozilla::dom::Element;
-        pub type ServoElementSnapshot_ServoStateType =
-            root::mozilla::EventStates_ServoType;
-        pub use self::super::super::root::mozilla::ServoElementSnapshotFlags
-                as ServoElementSnapshot_Flags;
-        #[test]
-        fn bindgen_test_layout_ServoElementSnapshot() {
-            assert_eq!(::std::mem::size_of::<ServoElementSnapshot>() , 32usize
-                       , concat ! (
-                       "Size of: " , stringify ! ( ServoElementSnapshot ) ));
-            assert_eq! (::std::mem::align_of::<ServoElementSnapshot>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! ( ServoElementSnapshot )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mAttrs
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! ( mAttrs )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mClass
-                        as * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! ( mClass )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) . mState
-                        as * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! ( mState )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ServoElementSnapshot ) ) .
-                        mContains as * const _ as usize } , 24usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        ServoElementSnapshot ) , "::" , stringify ! (
-                        mContains ) ));
-        }
-        impl ServoElementSnapshot {
-            #[inline]
-            pub fn mIsHTMLElementInHTMLDocument(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 1u64 as u8;
-                let val = (unit_field_val & mask) >> 0usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIsHTMLElementInHTMLDocument(&mut self, val: bool) {
-                let mask = 1u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 0usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mIsInChromeDocument(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 2u64 as u8;
-                let val = (unit_field_val & mask) >> 1usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIsInChromeDocument(&mut self, val: bool) {
-                let mask = 2u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 1usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mSupportsLangAttr(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 4u64 as u8;
-                let val = (unit_field_val & mask) >> 2usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mSupportsLangAttr(&mut self, val: bool) {
-                let mask = 4u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 2usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mIsTableBorderNonzero(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 8u64 as u8;
-                let val = (unit_field_val & mask) >> 3usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIsTableBorderNonzero(&mut self, val: bool) {
-                let mask = 8u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 3usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mIsMozBrowserFrame(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 16u64 as u8;
-                let val = (unit_field_val & mask) >> 4usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIsMozBrowserFrame(&mut self, val: bool) {
-                let mask = 16u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 4usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mClassAttributeChanged(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 32u64 as u8;
-                let val = (unit_field_val & mask) >> 5usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mClassAttributeChanged(&mut self, val: bool) {
-                let mask = 32u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 5usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mIdAttributeChanged(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 64u64 as u8;
-                let val = (unit_field_val & mask) >> 6usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mIdAttributeChanged(&mut self, val: bool) {
-                let mask = 64u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 6usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn mOtherAttributeChanged(&self) -> bool {
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                let mask = 128u64 as u8;
-                let val = (unit_field_val & mask) >> 7usize;
-                unsafe { ::std::mem::transmute(val as u8) }
-            }
-            #[inline]
-            pub fn set_mOtherAttributeChanged(&mut self, val: bool) {
-                let mask = 128u64 as u8;
-                let val = val as u8 as u8;
-                let mut unit_field_val: u8 =
-                    unsafe { ::std::mem::uninitialized() };
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&self._bitfield_1 as
-                                                        *const _ as *const u8,
-                                                    &mut unit_field_val as
-                                                        *mut u8 as *mut u8,
-                                                    ::std::mem::size_of::<u8>())
-                };
-                unit_field_val &= !mask;
-                unit_field_val |= (val << 7usize) & mask;
-                unsafe {
-                    ::std::ptr::copy_nonoverlapping(&unit_field_val as
-                                                        *const _ as *const u8,
-                                                    &mut self._bitfield_1 as
-                                                        *mut _ as *mut u8,
-                                                    ::std::mem::size_of::<u8>());
-                }
-            }
-            #[inline]
-            pub fn new_bitfield_1(mIsHTMLElementInHTMLDocument: bool,
-                                  mIsInChromeDocument: bool,
-                                  mSupportsLangAttr: bool,
-                                  mIsTableBorderNonzero: bool,
-                                  mIsMozBrowserFrame: bool,
-                                  mClassAttributeChanged: bool,
-                                  mIdAttributeChanged: bool,
-                                  mOtherAttributeChanged: bool) -> u8 {
-                ({
-                     ({
-                          ({
-                               ({
-                                    ({
-                                         ({
-                                              ({
-                                                   ({ 0 } |
-                                                        ((mIsHTMLElementInHTMLDocument
-                                                              as u8 as u8) <<
-                                                             0usize) &
-                                                            (1u64 as u8))
-                                               } |
-                                                   ((mIsInChromeDocument as u8
-                                                         as u8) << 1usize) &
-                                                       (2u64 as u8))
-                                          } |
-                                              ((mSupportsLangAttr as u8 as u8)
-                                                   << 2usize) & (4u64 as u8))
-                                     } |
-                                         ((mIsTableBorderNonzero as u8 as u8)
-                                              << 3usize) & (8u64 as u8))
-                                } |
-                                    ((mIsMozBrowserFrame as u8 as u8) <<
-                                         4usize) & (16u64 as u8))
-                           } |
-                               ((mClassAttributeChanged as u8 as u8) <<
-                                    5usize) & (32u64 as u8))
-                      } |
-                          ((mIdAttributeChanged as u8 as u8) << 6usize) &
-                              (64u64 as u8))
-                 } |
-                     ((mOtherAttributeChanged as u8 as u8) << 7usize) &
-                         (128u64 as u8))
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct AnimationPropertySegment {
-            pub mFromKey: f32,
-            pub mToKey: f32,
-            pub mFromValue: root::mozilla::AnimationValue,
-            pub mToValue: root::mozilla::AnimationValue,
-            pub mTimingFunction: [u64; 18usize],
-            pub mFromComposite: root::mozilla::dom::CompositeOperation,
-            pub mToComposite: root::mozilla::dom::CompositeOperation,
-        }
-        #[test]
-        fn bindgen_test_layout_AnimationPropertySegment() {
-            assert_eq!(::std::mem::size_of::<AnimationPropertySegment>() ,
-                       208usize , concat ! (
-                       "Size of: " , stringify ! ( AnimationPropertySegment )
-                       ));
-            assert_eq! (::std::mem::align_of::<AnimationPropertySegment>() ,
-                        8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        AnimationPropertySegment ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mFromKey as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mFromKey ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mToKey as * const _ as usize } , 4usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mToKey ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mFromValue as * const _ as usize } , 8usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mFromValue ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mToValue as * const _ as usize } , 32usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mToValue ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mTimingFunction as * const _ as usize } , 56usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mTimingFunction ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mFromComposite as * const _ as usize } , 200usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mFromComposite ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const AnimationPropertySegment ) ) .
-                        mToComposite as * const _ as usize } , 201usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        AnimationPropertySegment ) , "::" , stringify ! (
-                        mToComposite ) ));
-        }
-        /// Stores the results of calculating the timing properties of an animation
-        /// at a given sample time.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct ComputedTiming {
-            pub mActiveDuration: root::mozilla::StickyTimeDuration,
-            pub mActiveTime: root::mozilla::StickyTimeDuration,
-            pub mEndTime: root::mozilla::StickyTimeDuration,
-            pub mProgress: [u64; 2usize],
-            pub mCurrentIteration: u64,
-            pub mIterations: f64,
-            pub mIterationStart: f64,
-            pub mDuration: root::mozilla::StickyTimeDuration,
-            pub mFill: root::mozilla::dom::FillMode,
-            pub mPhase: root::mozilla::ComputedTiming_AnimationPhase,
-            pub mBeforeFlag: root::mozilla::ComputedTimingFunction_BeforeFlag,
-        }
-        #[repr(i32)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum ComputedTiming_AnimationPhase {
-            Idle = 0,
-            Before = 1,
-            Active = 2,
-            After = 3,
-        }
-        #[test]
-        fn bindgen_test_layout_ComputedTiming() {
-            assert_eq!(::std::mem::size_of::<ComputedTiming>() , 88usize ,
-                       concat ! ( "Size of: " , stringify ! ( ComputedTiming )
-                       ));
-            assert_eq! (::std::mem::align_of::<ComputedTiming>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( ComputedTiming ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) .
-                        mActiveDuration as * const _ as usize } , 0usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mActiveDuration ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mActiveTime
-                        as * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mActiveTime ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mEndTime as
-                        * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mEndTime ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mProgress as
-                        * const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mProgress ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) .
-                        mCurrentIteration as * const _ as usize } , 40usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mCurrentIteration ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mIterations
-                        as * const _ as usize } , 48usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mIterations ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) .
-                        mIterationStart as * const _ as usize } , 56usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mIterationStart ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mDuration as
-                        * const _ as usize } , 64usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mDuration ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mFill as *
-                        const _ as usize } , 72usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mFill ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mPhase as *
-                        const _ as usize } , 76usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mPhase ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const ComputedTiming ) ) . mBeforeFlag
-                        as * const _ as usize } , 80usize , concat ! (
-                        "Alignment of field: " , stringify ! ( ComputedTiming
-                        ) , "::" , stringify ! ( mBeforeFlag ) ));
-        }
-        /// A single keyframe.
-        ///
-        /// This is the canonical form in which keyframe effects are stored and
-        /// corresponds closely to the type of objects returned via the getKeyframes()
-        /// API.
-        ///
-        /// Before computing an output animation value, however, we flatten these frames
-        /// down to a series of per-property value arrays where we also resolve any
-        /// overlapping shorthands/longhands, convert specified CSS values to computed
-        /// values, etc.
-        ///
-        /// When the target element or style context changes, however, we rebuild these
-        /// per-property arrays from the original list of keyframes objects. As a result,
-        /// these objects represent the master definition of the effect's values.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct Keyframe {
-            pub mOffset: [u64; 2usize],
-            pub mComputedOffset: f64,
-            pub mTimingFunction: [u64; 18usize],
-            pub mComposite: [u8; 2usize],
-            pub mPropertyValues: root::nsTArray<root::mozilla::PropertyValuePair>,
-        }
-        pub const Keyframe_kComputedOffsetNotSet: f64 = -1.;
-        #[test]
-        fn bindgen_test_layout_Keyframe() {
-            assert_eq!(::std::mem::size_of::<Keyframe>() , 184usize , concat !
-                       ( "Size of: " , stringify ! ( Keyframe ) ));
-            assert_eq! (::std::mem::align_of::<Keyframe>() , 8usize , concat !
-                        ( "Alignment of " , stringify ! ( Keyframe ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Keyframe ) ) . mOffset as * const
-                        _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Keyframe ) ,
-                        "::" , stringify ! ( mOffset ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Keyframe ) ) . mComputedOffset as
-                        * const _ as usize } , 16usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Keyframe ) ,
-                        "::" , stringify ! ( mComputedOffset ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Keyframe ) ) . mTimingFunction as
-                        * const _ as usize } , 24usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Keyframe ) ,
-                        "::" , stringify ! ( mTimingFunction ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Keyframe ) ) . mComposite as *
-                        const _ as usize } , 168usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Keyframe ) ,
-                        "::" , stringify ! ( mComposite ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const Keyframe ) ) . mPropertyValues as
-                        * const _ as usize } , 176usize , concat ! (
-                        "Alignment of field: " , stringify ! ( Keyframe ) ,
-                        "::" , stringify ! ( mPropertyValues ) ));
-        }
-        /// A property-value pair specified on a keyframe.
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct PropertyValuePair {
-            pub mProperty: root::nsCSSPropertyID,
-            pub mValue: root::nsCSSValue,
-            pub mServoDeclarationBlock: root::RefPtr<root::RawServoDeclarationBlock>,
-            pub mSimulateComputeValuesFailure: bool,
-        }
-        #[test]
-        fn bindgen_test_layout_PropertyValuePair() {
-            assert_eq!(::std::mem::size_of::<PropertyValuePair>() , 40usize ,
-                       concat ! (
-                       "Size of: " , stringify ! ( PropertyValuePair ) ));
-            assert_eq! (::std::mem::align_of::<PropertyValuePair>() , 8usize ,
-                        concat ! (
-                        "Alignment of " , stringify ! ( PropertyValuePair )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const PropertyValuePair ) ) . mProperty
-                        as * const _ as usize } , 0usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        PropertyValuePair ) , "::" , stringify ! ( mProperty )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const PropertyValuePair ) ) . mValue as
-                        * const _ as usize } , 8usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        PropertyValuePair ) , "::" , stringify ! ( mValue )
-                        ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const PropertyValuePair ) ) .
-                        mServoDeclarationBlock as * const _ as usize } ,
-                        24usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        PropertyValuePair ) , "::" , stringify ! (
-                        mServoDeclarationBlock ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const PropertyValuePair ) ) .
-                        mSimulateComputeValuesFailure as * const _ as usize }
-                        , 32usize , concat ! (
-                        "Alignment of field: " , stringify ! (
-                        PropertyValuePair ) , "::" , stringify ! (
-                        mSimulateComputeValuesFailure ) ));
-        }
-        #[repr(C)]
-        #[derive(Debug)]
-        pub struct PropertyStyleAnimationValuePair {
-            pub mProperty: root::nsCSSPropertyID,
-            pub mValue: root::mozilla::AnimationValue,
-        }
-        #[test]
-        fn bindgen_test_layout_PropertyStyleAnimationValuePair() {
-            assert_eq!(::std::mem::size_of::<PropertyStyleAnimationValuePair>()
-                       , 32usize , concat ! (
-                       "Size of: " , stringify ! (
-                       PropertyStyleAnimationValuePair ) ));
-            assert_eq! (::std::mem::align_of::<PropertyStyleAnimationValuePair>()
-                        , 8usize , concat ! (
-                        "Alignment of " , stringify ! (
-                        PropertyStyleAnimationValuePair ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const PropertyStyleAnimationValuePair )
-                        ) . mProperty as * const _ as usize } , 0usize ,
-                        concat ! (
-                        "Alignment of field: " , stringify ! (
-                        PropertyStyleAnimationValuePair ) , "::" , stringify !
-                        ( mProperty ) ));
-            assert_eq! (unsafe {
-                        & ( * ( 0 as * const PropertyStyleAnimationValuePair )
-                        ) . mValue as * const _ as usize } , 8usize , concat !
-                        (
-                        "Alignment of field: " , stringify ! (
-                        PropertyStyleAnimationValuePair ) , "::" , stringify !
-                        ( mValue ) ));
-        }
-        pub const OriginFlags_UserAgent: root::mozilla::OriginFlags =
-            OriginFlags(1);
-        pub const OriginFlags_User: root::mozilla::OriginFlags =
-            OriginFlags(2);
-        pub const OriginFlags_Author: root::mozilla::OriginFlags =
-            OriginFlags(4);
-        pub const OriginFlags_All: root::mozilla::OriginFlags =
-            OriginFlags(7);
-        impl ::std::ops::BitOr<root::mozilla::OriginFlags> for
-         root::mozilla::OriginFlags {
-            type
-            Output
-            =
-            Self;
-            #[inline]
-            fn bitor(self, other: Self) -> Self {
-                OriginFlags(self.0 | other.0)
-            }
-        }
-        impl ::std::ops::BitOrAssign for root::mozilla::OriginFlags {
-            #[inline]
-            fn bitor_assign(&mut self, rhs: root::mozilla::OriginFlags) {
-                self.0 |= rhs.0;
-            }
-        }
-        impl ::std::ops::BitAnd<root::mozilla::OriginFlags> for
-         root::mozilla::OriginFlags {
-            type
-            Output
-            =
-            Self;
-            #[inline]
-            fn bitand(self, other: Self) -> Self {
-                OriginFlags(self.0 & other.0)
-            }
-        }
-        impl ::std::ops::BitAndAssign for root::mozilla::OriginFlags {
-            #[inline]
-            fn bitand_assign(&mut self, rhs: root::mozilla::OriginFlags) {
-                self.0 &= rhs.0;
-            }
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub struct OriginFlags(pub u8);
-        #[test]
-        fn __bindgen_test_layout_DefaultDelete_open0_RawServoStyleSet_close0_instantiation() {
-            assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete>() ,
-                       1usize , concat ! (
-                       "Size of template specialization: " , stringify ! (
-                       root::mozilla::DefaultDelete ) ));
-            assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete>()
-                       , 1usize , concat ! (
-                       "Alignment of template specialization: " , stringify !
-                       ( root::mozilla::DefaultDelete ) ));
-        }
-        /// Utility class to handle animated style values
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleAnimationValue {
-            pub _bindgen_opaque_blob: [u64; 2usize],
-        }
-        #[repr(u32)]
-        /// The types and values for the values that we extract and animate.
-        #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum StyleAnimationValue_Unit {
-            eUnit_Null = 0,
-            eUnit_Normal = 1,
-            eUnit_Auto = 2,
-            eUnit_None = 3,
-            eUnit_Enumerated = 4,
-            eUnit_Visibility = 5,
-            eUnit_Integer = 6,
-            eUnit_Coord = 7,
-            eUnit_Percent = 8,
-            eUnit_Float = 9,
-            eUnit_Color = 10,
-            eUnit_CurrentColor = 11,
-            eUnit_ComplexColor = 12,
-            eUnit_Calc = 13,
-            eUnit_ObjectPosition = 14,
-            eUnit_URL = 15,
-            eUnit_DiscreteCSSValue = 16,
-            eUnit_CSSValuePair = 17,
-            eUnit_CSSValueTriplet = 18,
-            eUnit_CSSRect = 19,
-            eUnit_Dasharray = 20,
-            eUnit_Shadow = 21,
-            eUnit_Shape = 22,
-            eUnit_Filter = 23,
-            eUnit_Transform = 24,
-            eUnit_BackgroundPositionCoord = 25,
-            eUnit_CSSValuePairList = 26,
-            eUnit_UnparsedString = 27,
-        }
-        #[repr(C)]
-        #[derive(Debug, Copy)]
-        pub struct StyleAnimationValue__bindgen_ty_1 {
-            pub mInt: root::__BindgenUnionField<i32>,
-            pub mCoord: root::__BindgenUnionField<root::nscoord>,
-            pub mFloat: root::__BindgenUnionField<f32>,
-            pub mCSSValue: root::__BindgenUnionField<*mut root::nsCSSValue>,
-            pub mCSSValuePair: root::__BindgenUnionField<*mut root::nsCSSValuePair>,
-            pub mCSSValueTriplet: root::__BindgenUnionField<*mut root::nsCSSValueTriplet>,
-            pub mCSSRect: root::__BindgenUnionField<*mut root::nsCSSRect>,
-            pub mCSSValueArray: root::__BindgenUnionField<*mut root::nsCSSValue_Array>,
-            pub mCSSValueList: root::__BindgenUnionField<*mut root::nsCSSValueList>,
-            pub mCSSValueSharedList: root::__BindgenUnionField<*mut root::nsCSSValueSharedList>,
-            pub mCSSValuePairList: root::__BindgenUnionField<*mut root::nsCSSValuePairList>,