Regenerate bindings. draft
authorCameron McCormack <cam@mcc.id.au>
Mon, 10 Oct 2016 14:54:42 +0800
changeset 426809 8f608a643704c7ff3220221b4d276a20f2d5b8e6
parent 426808 50526e56affdf8f210913945c1bb2114b9ba2807
child 426810 ddec05aaaa00dc266f1b1b591cc6d5922ad155a7
push id32806
push userbmo:cam@mcc.id.au
push dateWed, 19 Oct 2016 05:46:23 +0000
milestone52.0a1
Regenerate bindings. MozReview-Commit-ID: LTpO8Kt3ALk
servo/components/style/binding_tools/regen.py
servo/components/style/gecko_bindings/bindings.rs
servo/components/style/gecko_bindings/structs_debug.rs
servo/components/style/gecko_bindings/structs_release.rs
--- a/servo/components/style/binding_tools/regen.py
+++ b/servo/components/style/binding_tools/regen.py
@@ -282,16 +282,17 @@ COMPILATION_TARGETS = {
             "nsStyleEffects",
             "nsStyleFont",
             "nsStyleGradient",
             "nsStyleGradientStop",
             "nsStyleImage",
             "nsStyleImageLayers",
             "nsStyleImageLayers_Layer",
             "nsStyleImageLayers_LayerType",
+            "nsStyleImageRequest",
             "nsStyleList",
             "nsStyleMargin",
             "nsStyleOutline",
             "nsStylePadding",
             "nsStylePosition",
             "nsStyleQuoteValues",
             "nsStyleSVG",
             "nsStyleSVGReset",
--- a/servo/components/style/gecko_bindings/bindings.rs
+++ b/servo/components/style/gecko_bindings/bindings.rs
@@ -105,16 +105,19 @@ use gecko_bindings::structs::nsStyleImag
 unsafe impl Send for nsStyleImageLayers {}
 unsafe impl Sync for nsStyleImageLayers {}
 use gecko_bindings::structs::nsStyleImageLayers_Layer;
 unsafe impl Send for nsStyleImageLayers_Layer {}
 unsafe impl Sync for nsStyleImageLayers_Layer {}
 use gecko_bindings::structs::nsStyleImageLayers_LayerType;
 unsafe impl Send for nsStyleImageLayers_LayerType {}
 unsafe impl Sync for nsStyleImageLayers_LayerType {}
+use gecko_bindings::structs::nsStyleImageRequest;
+unsafe impl Send for nsStyleImageRequest {}
+unsafe impl Sync for nsStyleImageRequest {}
 use gecko_bindings::structs::nsStyleList;
 unsafe impl Send for nsStyleList {}
 unsafe impl Sync for nsStyleList {}
 use gecko_bindings::structs::nsStyleMargin;
 unsafe impl Send for nsStyleMargin {}
 unsafe impl Sync for nsStyleMargin {}
 use gecko_bindings::structs::nsStyleOutline;
 unsafe impl Send for nsStyleOutline {}
@@ -179,16 +182,32 @@ extern "C" {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsHTMLCSSStyleSheet {
     pub _address: u8,
 }
 impl Clone for nsHTMLCSSStyleSheet {
     fn clone(&self) -> Self { *self }
 }
+pub type ThreadSafePrincipalHolder = nsMainThreadPtrHolder<nsIPrincipal>;
+extern "C" {
+    pub fn Gecko_AddRefPrincipalArbitraryThread(aPtr:
+                                                    *mut ThreadSafePrincipalHolder);
+}
+extern "C" {
+    pub fn Gecko_ReleasePrincipalArbitraryThread(aPtr:
+                                                     *mut ThreadSafePrincipalHolder);
+}
+pub type ThreadSafeURIHolder = nsMainThreadPtrHolder<nsIURI>;
+extern "C" {
+    pub fn Gecko_AddRefURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder);
+}
+extern "C" {
+    pub fn Gecko_ReleaseURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder);
+}
 extern "C" {
     pub fn Gecko_ChildrenCount(node: RawGeckoNodeBorrowed) -> u32;
 }
 extern "C" {
     pub fn Gecko_NodeIsElement(node: RawGeckoNodeBorrowed) -> bool;
 }
 extern "C" {
     pub fn Gecko_GetParentNode(node: RawGeckoNodeBorrowed)
@@ -425,40 +444,31 @@ extern "C" {
 extern "C" {
     pub fn Gecko_SetNullImageValue(image: *mut nsStyleImage);
 }
 extern "C" {
     pub fn Gecko_SetGradientImageValue(image: *mut nsStyleImage,
                                        gradient: *mut nsStyleGradient);
 }
 extern "C" {
+    pub fn Gecko_SetUrlImageValue(image: *mut nsStyleImage,
+                                  url_bytes: *const u8, url_length: u32,
+                                  base_uri: *mut ThreadSafeURIHolder,
+                                  referrer: *mut ThreadSafeURIHolder,
+                                  principal: *mut ThreadSafePrincipalHolder);
+}
+extern "C" {
     pub fn Gecko_CopyImageValueFrom(image: *mut nsStyleImage,
                                     other: *const nsStyleImage);
 }
 extern "C" {
     pub fn Gecko_CreateGradient(shape: u8, size: u8, repeating: bool,
                                 legacy_syntax: bool, stops: u32)
      -> *mut nsStyleGradient;
 }
-pub type ThreadSafePrincipalHolder = nsMainThreadPtrHolder<nsIPrincipal>;
-extern "C" {
-    pub fn Gecko_AddRefPrincipalArbitraryThread(aPtr:
-                                                    *mut ThreadSafePrincipalHolder);
-}
-extern "C" {
-    pub fn Gecko_ReleasePrincipalArbitraryThread(aPtr:
-                                                     *mut ThreadSafePrincipalHolder);
-}
-pub type ThreadSafeURIHolder = nsMainThreadPtrHolder<nsIURI>;
-extern "C" {
-    pub fn Gecko_AddRefURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder);
-}
-extern "C" {
-    pub fn Gecko_ReleaseURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder);
-}
 extern "C" {
     pub fn Gecko_SetMozBinding(style_struct: *mut nsStyleDisplay,
                                string_bytes: *const u8, string_length: u32,
                                base_uri: *mut ThreadSafeURIHolder,
                                referrer: *mut ThreadSafeURIHolder,
                                principal: *mut ThreadSafePrincipalHolder);
 }
 extern "C" {
--- a/servo/components/style/gecko_bindings/structs_debug.rs
+++ b/servo/components/style/gecko_bindings/structs_debug.rs
@@ -1621,40 +1621,40 @@ pub enum JSWhyMagic {
     JS_UNINITIALIZED_LEXICAL = 15,
     JS_GENERIC_MAGIC = 16,
     JS_WHY_MAGIC_COUNT = 17,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct jsval_layout {
     pub asBits: __BindgenUnionField<u64>,
-    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67840>,
-    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67847>,
+    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67846>,
+    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67853>,
     pub asDouble: __BindgenUnionField<f64>,
     pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>,
     pub asWord: __BindgenUnionField<usize>,
     pub asUIntPtr: __BindgenUnionField<usize>,
     pub bindgen_union_field: u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_67840 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_67846 {
     pub _bitfield_1: u64,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67840() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67840>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67846() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67846>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67840>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67846>()
                , 8usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_67840 {
-    fn clone(&self) -> Self { *self }
-}
-impl jsval_layout__bindgen_ty_bindgen_id_67840 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_67846 {
+    fn clone(&self) -> Self { *self }
+}
+impl jsval_layout__bindgen_ty_bindgen_id_67846 {
     #[inline]
     pub fn payload47(&self) -> u64 {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (140737488355327usize as u64)) >>
                                        0u32) as u64)
         }
     }
@@ -1677,46 +1677,46 @@ impl jsval_layout__bindgen_ty_bindgen_id
         self._bitfield_1 &= !(18446603336221196288usize as u64);
         self._bitfield_1 |=
             ((val as u32 as u64) << 47u32) &
                 (18446603336221196288usize as u64);
     }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_67847 {
-    pub payload: jsval_layout__bindgen_ty_bindgen_id_67847__bindgen_ty_bindgen_id_67848,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_67847__bindgen_ty_bindgen_id_67848 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_67853 {
+    pub payload: jsval_layout__bindgen_ty_bindgen_id_67853__bindgen_ty_bindgen_id_67854,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct jsval_layout__bindgen_ty_bindgen_id_67853__bindgen_ty_bindgen_id_67854 {
     pub i32: __BindgenUnionField<i32>,
     pub u32: __BindgenUnionField<u32>,
     pub why: __BindgenUnionField<JSWhyMagic>,
     pub bindgen_union_field: u32,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67847__bindgen_ty_bindgen_id_67848() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67847__bindgen_ty_bindgen_id_67848>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67853__bindgen_ty_bindgen_id_67854() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67853__bindgen_ty_bindgen_id_67854>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67847__bindgen_ty_bindgen_id_67848>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67853__bindgen_ty_bindgen_id_67854>()
                , 4usize);
 }
 impl Clone for
- jsval_layout__bindgen_ty_bindgen_id_67847__bindgen_ty_bindgen_id_67848 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67847() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67847>()
+ jsval_layout__bindgen_ty_bindgen_id_67853__bindgen_ty_bindgen_id_67854 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67853() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67853>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67847>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67853>()
                , 4usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_67847 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_67853 {
     fn clone(&self) -> Self { *self }
 }
 impl Clone for jsval_layout {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsAString_internal {
@@ -1740,17 +1740,17 @@ pub type nsAString_internal_iterator = n
 pub type nsAString_internal_comparator_type = nsStringComparator;
 pub type nsAString_internal_char_iterator = *mut nsAString_internal_char_type;
 pub type nsAString_internal_const_char_iterator =
     *const nsAString_internal_char_type;
 pub type nsAString_internal_size_type = u32;
 pub type nsAString_internal_index_type = u32;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsAString_internal__bindgen_ty_bindgen_id_69717 {
+pub enum nsAString_internal__bindgen_ty_bindgen_id_69723 {
     F_NONE = 0,
     F_TERMINATED = 1,
     F_VOIDED = 2,
     F_SHARED = 4,
     F_OWNED = 8,
     F_FIXED = 16,
     F_LITERAL = 32,
     F_CLASS_FIXED = 65536,
@@ -1777,22 +1777,22 @@ pub type nsSubstringTuple_size_type = u3
 fn bindgen_test_layout_nsSubstringTuple() {
     assert_eq!(::std::mem::size_of::<nsSubstringTuple>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsSubstringTuple>() , 8usize);
 }
 impl Clone for nsSubstringTuple {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_70327 {
+pub struct bindgen_vtable__bindgen_id_70333 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_70327,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70333,
 }
 pub type nsStringComparator_char_type = u16;
 #[test]
 fn bindgen_test_layout_nsStringComparator() {
     assert_eq!(::std::mem::size_of::<nsStringComparator>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsStringComparator>() , 8usize);
 }
 impl Clone for nsStringComparator {
@@ -1824,17 +1824,17 @@ pub type nsACString_internal_comparator_
 pub type nsACString_internal_char_iterator =
     *mut nsACString_internal_char_type;
 pub type nsACString_internal_const_char_iterator =
     *const nsACString_internal_char_type;
 pub type nsACString_internal_size_type = u32;
 pub type nsACString_internal_index_type = u32;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsACString_internal__bindgen_ty_bindgen_id_71557 {
+pub enum nsACString_internal__bindgen_ty_bindgen_id_71563 {
     F_NONE = 0,
     F_TERMINATED = 1,
     F_VOIDED = 2,
     F_SHARED = 4,
     F_OWNED = 8,
     F_FIXED = 16,
     F_LITERAL = 32,
     F_CLASS_FIXED = 65536,
@@ -1886,45 +1886,45 @@ impl Clone for nsCString_Segment {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsCString() {
     assert_eq!(::std::mem::size_of::<nsCString>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsCString>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_72109 {
+pub struct bindgen_vtable__bindgen_id_72115 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_72109,
+    pub vtable_: *const bindgen_vtable__bindgen_id_72115,
 }
 pub type nsCStringComparator_char_type = ::std::os::raw::c_char;
 #[test]
 fn bindgen_test_layout_nsCStringComparator() {
     assert_eq!(::std::mem::size_of::<nsCStringComparator>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsCStringComparator>() , 8usize);
 }
 impl Clone for nsCStringComparator {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_72413 {
+pub struct bindgen_vtable__bindgen_id_72419 {
 }
 /**
  * Basic component object model interface. Objects which implement
  * this interface support runtime interface discovery (QueryInterface)
  * and a reference counted memory model (AddRef/Release). This is
  * modelled after the win32 IUnknown API.
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsISupports {
-    pub vtable_: *const bindgen_vtable__bindgen_id_72413,
+    pub vtable_: *const bindgen_vtable__bindgen_id_72419,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct nsISupports_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
@@ -1932,25 +1932,25 @@ pub struct nsISupports_COMTypeInfo<T, U>
 fn bindgen_test_layout_nsISupports() {
     assert_eq!(::std::mem::size_of::<nsISupports>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsISupports>() , 8usize);
 }
 impl Clone for nsISupports {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_72697 {
+pub struct bindgen_vtable__bindgen_id_72703 {
 }
 /**
  * Participant implementation classes
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCycleCollectionParticipant {
-    pub vtable_: *const bindgen_vtable__bindgen_id_72697,
+    pub vtable_: *const bindgen_vtable__bindgen_id_72703,
     pub mMightSkip: bool,
 }
 #[test]
 fn bindgen_test_layout_nsCycleCollectionParticipant() {
     assert_eq!(::std::mem::size_of::<nsCycleCollectionParticipant>() ,
                16usize);
     assert_eq!(::std::mem::align_of::<nsCycleCollectionParticipant>() ,
                8usize);
@@ -2251,17 +2251,17 @@ fn bindgen_test_layout_ErrorResult() {
  * A cleanup policy consists of two booleans: whether to assert that we've been
  * reported or suppressed, and whether to then go ahead and suppress the
  * exception.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct TErrorResult<CleanupPolicy> {
     pub mResult: nsresult,
-    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_80568<CleanupPolicy>,
+    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_80574<CleanupPolicy>,
     pub mMightHaveUnreportedJSException: bool,
     pub mUnionState: TErrorResult_UnionState,
     pub _mOwningThread: nsAutoOwningThread,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 pub const TErrorResult_UnionState_HasDOMExceptionInfo: TErrorResult_UnionState
           =
     TErrorResult_UnionState::HasMessage;
@@ -2281,17 +2281,17 @@ pub struct TErrorResult_Message<CleanupP
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct TErrorResult_DOMExceptionInfo<CleanupPolicy> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct TErrorResult__bindgen_ty_bindgen_id_80568<CleanupPolicy> {
+pub struct TErrorResult__bindgen_ty_bindgen_id_80574<CleanupPolicy> {
     pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>,
     pub mJSException: __BindgenUnionField<Value>,
     pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>,
     pub bindgen_union_field: u64,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
@@ -2441,17 +2441,17 @@ pub struct nsIPrincipal {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIPrincipal_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPrincipal__bindgen_ty_bindgen_id_81807 {
+pub enum nsIPrincipal__bindgen_ty_bindgen_id_81813 {
     APP_STATUS_NOT_INSTALLED = 0,
     APP_STATUS_INSTALLED = 1,
     APP_STATUS_PRIVILEGED = 2,
     APP_STATUS_CERTIFIED = 3,
 }
 #[test]
 fn bindgen_test_layout_nsIPrincipal() {
     assert_eq!(::std::mem::size_of::<nsIPrincipal>() , 8usize);
@@ -2476,17 +2476,17 @@ pub struct nsISerializable_COMTypeInfo<T
 fn bindgen_test_layout_nsISerializable() {
     assert_eq!(::std::mem::size_of::<nsISerializable>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsISerializable>() , 8usize);
 }
 impl Clone for nsISerializable {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_81975 {
+pub struct bindgen_vtable__bindgen_id_81981 {
 }
 /**
  * Class to store the wrapper for an object. This can only be used with objects
  * that only have one non-security wrapper at a time (for an XPCWrappedNative
  * this is usually ensured by setting an explicit parent in the PreCreate hook
  * for the class).
  *
  * An instance of nsWrapperCache can be gotten from an object that implements
@@ -2518,17 +2518,17 @@ pub struct bindgen_vtable__bindgen_id_81
  *
  * A number of the methods are implemented in nsWrapperCacheInlines.h because we
  * have to include some JS headers that don't play nicely with the rest of the
  * codebase. Include nsWrapperCacheInlines.h if you need to call those methods.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsWrapperCache {
-    pub vtable_: *const bindgen_vtable__bindgen_id_81975,
+    pub vtable_: *const bindgen_vtable__bindgen_id_81981,
     pub mWrapper: *mut JSObject,
     pub mFlags: nsWrapperCache_FlagsType,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct nsWrapperCache_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
@@ -2543,31 +2543,31 @@ pub type nsWrapperCache_FlagsType = u32;
    * causes between the native object and the JS object, so it is important that
    * any native object that supports preserving of its wrapper
    * traces/traverses/unlinks the cached JS object (see
    * NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER,
    * NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS and
    * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER).
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_82182 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_82188 {
     WRAPPER_BIT_PRESERVED = 1,
 }
 #[repr(u32)]
 /**
    * If this bit is set then the wrapper for the native object is not a DOM
    * binding.
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_82185 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_82191 {
     WRAPPER_IS_NOT_DOM_BINDING = 2,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_82188 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_82194 {
     kWrapperFlagsMask = 3,
 }
 #[test]
 fn bindgen_test_layout_nsWrapperCache() {
     assert_eq!(::std::mem::size_of::<nsWrapperCache>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsWrapperCache>() , 8usize);
 }
 #[repr(C)]
@@ -2634,33 +2634,33 @@ impl Clone for nsXPCOMCycleCollectionPar
 #[derive(Debug, Copy, Clone)]
 pub struct pair<_T1, _T2> {
     pub first: _T1,
     pub second: _T2,
 }
 pub type pair_first_type<_T1> = _T1;
 pub type pair_second_type<_T2> = _T2;
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_130750 {
+pub struct bindgen_vtable__bindgen_id_130756 {
 }
 /**
  * A class of objects that return source code on demand.
  *
  * When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't
  * retain the source code (and doesn't do lazy bytecode generation). If we ever
  * need the source code, say, in response to a call to Function.prototype.
  * toSource or Debugger.Source.prototype.text, then we call the 'load' member
  * function of the instance of this class that has hopefully been registered
  * with the runtime, passing the code's URL, and hope that it will be able to
  * find the source.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct SourceHook {
-    pub vtable_: *const bindgen_vtable__bindgen_id_130750,
+    pub vtable_: *const bindgen_vtable__bindgen_id_130756,
 }
 #[test]
 fn bindgen_test_layout_SourceHook() {
     assert_eq!(::std::mem::size_of::<SourceHook>() , 8usize);
     assert_eq!(::std::mem::align_of::<SourceHook>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
@@ -3638,17 +3638,17 @@ impl nsIDocument {
 pub struct nsINode {
     pub _base: EventTarget,
     pub mNodeInfo: RefPtr<NodeInfo>,
     pub mParent: *mut nsINode,
     pub mBoolFlags: u32,
     pub mNextSibling: *mut nsIContent,
     pub mPreviousSibling: *mut nsIContent,
     pub mFirstChild: *mut nsIContent,
-    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_141246,
+    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_141252,
     pub mSlots: *mut nsINode_nsSlots,
     pub mServoData: ServoCell<*mut ServoNodeData>,
 }
 pub type nsINode_BoxQuadOptions = BoxQuadOptions;
 pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions;
 pub type nsINode_DOMPoint = DOMPoint;
 pub type nsINode_DOMPointInit = DOMPointInit;
 pub type nsINode_DOMQuad = DOMQuad;
@@ -3663,37 +3663,37 @@ pub struct nsINode_COMTypeInfo<T, U> {
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 /**
    * Bit-flags to pass (or'ed together) to IsNodeOfType()
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsINode__bindgen_ty_bindgen_id_137371 {
+pub enum nsINode__bindgen_ty_bindgen_id_137377 {
     eCONTENT = 1,
     eDOCUMENT = 2,
     eATTRIBUTE = 4,
     eTEXT = 8,
     ePROCESSING_INSTRUCTION = 16,
     eCOMMENT = 32,
     eHTML_FORM_CONTROL = 64,
     eDOCUMENT_FRAGMENT = 128,
     eDATA_NODE = 256,
     eMEDIA = 512,
     eANIMATION = 1024,
     eFILTER = 2048,
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_138140 {
+pub struct bindgen_vtable__bindgen_id_138146 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsINode_nsSlots {
-    pub vtable_: *const bindgen_vtable__bindgen_id_138140,
+    pub vtable_: *const bindgen_vtable__bindgen_id_138146,
     /**
      * A list of mutation observers
      */
     pub mMutationObservers: [u64; 2usize],
     /**
      * An object implementing nsIDOMNodeList for this content (childNodes)
      * @see nsIDOMNodeList
      * @see nsGenericHTMLElement::GetChildNodes
@@ -3752,29 +3752,29 @@ pub enum nsINode_BooleanFlag {
     NodeHasRelevantHoverRules = 28,
     ElementHasWeirdParserInsertionMode = 29,
     ParserHasNotified = 30,
     MayBeApzAware = 31,
     BooleanFlagCount = 32,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsINode__bindgen_ty_bindgen_id_141246 {
+pub struct nsINode__bindgen_ty_bindgen_id_141252 {
     pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>,
     pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_141246() {
-    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_141246>()
+fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_141252() {
+    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_141252>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_141246>()
+    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_141252>()
                , 8usize);
 }
-impl Clone for nsINode__bindgen_ty_bindgen_id_141246 {
+impl Clone for nsINode__bindgen_ty_bindgen_id_141252 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsINode() {
     assert_eq!(::std::mem::size_of::<nsINode>() , 104usize);
     assert_eq!(::std::mem::align_of::<nsINode>() , 8usize);
 }
 #[repr(C)]
@@ -4127,33 +4127,33 @@ pub struct nsIDOMNode {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIDOMNode_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIDOMNode__bindgen_ty_bindgen_id_149218 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_149224 {
     ELEMENT_NODE = 1,
     ATTRIBUTE_NODE = 2,
     TEXT_NODE = 3,
     CDATA_SECTION_NODE = 4,
     ENTITY_REFERENCE_NODE = 5,
     ENTITY_NODE = 6,
     PROCESSING_INSTRUCTION_NODE = 7,
     COMMENT_NODE = 8,
     DOCUMENT_NODE = 9,
     DOCUMENT_TYPE_NODE = 10,
     DOCUMENT_FRAGMENT_NODE = 11,
     NOTATION_NODE = 12,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIDOMNode__bindgen_ty_bindgen_id_149437 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_149443 {
     DOCUMENT_POSITION_DISCONNECTED = 1,
     DOCUMENT_POSITION_PRECEDING = 2,
     DOCUMENT_POSITION_FOLLOWING = 4,
     DOCUMENT_POSITION_CONTAINS = 8,
     DOCUMENT_POSITION_CONTAINED_BY = 16,
     DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32,
 }
 #[test]
@@ -5306,17 +5306,17 @@ pub type PLDHashInitEntry =
 pub struct nsPtrHashKey<T> {
     pub _base: PLDHashEntryHdr,
     pub mKey: *mut T,
 }
 pub type nsPtrHashKey_KeyType<T> = *mut T;
 pub type nsPtrHashKey_KeyTypePointer<T> = *mut T;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsPtrHashKey__bindgen_ty_bindgen_id_154102 { ALLOW_MEMMOVE = 0, }
+pub enum nsPtrHashKey__bindgen_ty_bindgen_id_154108 { ALLOW_MEMMOVE = 0, }
 /**
  * A node of content in a document's content model. This interface
  * is supported by all content objects.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIContent {
     pub _base: nsINode,
@@ -5326,24 +5326,24 @@ pub type nsIContent_IMEState = IMEState;
 #[derive(Debug, Copy, Clone)]
 pub struct nsIContent_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIContent__bindgen_ty_bindgen_id_155442 {
+pub enum nsIContent__bindgen_ty_bindgen_id_155448 {
     eAllChildren = 0,
     eAllButXBL = 1,
     eSkipPlaceholderContent = 2,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIContent__bindgen_ty_bindgen_id_155678 {
+pub enum nsIContent__bindgen_ty_bindgen_id_155684 {
     ATTR_MISSING = -1,
     ATTR_VALUE_NO_MATCH = -2,
 }
 /**
    * Check whether this content node's given attribute has one of a given
    * list of values. If there is a match, we return the index in the list
    * of the first matching value. If there was no attribute at all, then
    * we return ATTR_MISSING. If there was an attribute but it didn't
@@ -5535,17 +5535,17 @@ pub struct FragmentOrElement_nsDOMSlots 
      * Holds any SMIL override style declaration for this element.
      */
     pub mSMILOverrideStyleDeclaration: RefPtr<Declaration>,
     /**
      * An object implementing nsIDOMMozNamedAttrMap for this content (attributes)
      * @see FragmentOrElement::GetAttributes
      */
     pub mAttributeMap: RefPtr<nsDOMAttributeMap>,
-    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156810,
+    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156816,
     /**
      * An object implementing the .children property for this element.
      */
     pub mChildrenList: RefPtr<nsContentList>,
     /**
      * An object implementing the .classList property for this element.
      */
     pub mClassList: RefPtr<nsDOMTokenList>,
@@ -5572,36 +5572,36 @@ pub struct FragmentOrElement_nsDOMSlots 
     pub mXBLInsertionParent: nsCOMPtr<nsIContent>,
     /**
      * Web components custom element data.
      */
     pub mCustomElementData: RefPtr<CustomElementData>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156810 {
+pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156816 {
     /**
       * The nearest enclosing content node with a binding that created us.
       * @see FragmentOrElement::GetBindingParent
       */
     pub mBindingParent: __BindgenUnionField<*mut nsIContent>,
     /**
       * The controllers of the XUL Element.
       */
     pub mControllers: __BindgenUnionField<*mut nsIControllers>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156810() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156810>()
+fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156816() {
+    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156816>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156810>()
+    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156816>()
                , 8usize);
 }
-impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156810 {
+impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156816 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
     assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>() ,
                160usize);
     assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>() ,
                8usize);
@@ -5670,31 +5670,31 @@ pub struct nsIChannel {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIChannel_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIChannel__bindgen_ty_bindgen_id_170545 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_170551 {
     LOAD_DOCUMENT_URI = 65536,
     LOAD_RETARGETED_DOCUMENT_URI = 131072,
     LOAD_REPLACE = 262144,
     LOAD_INITIAL_DOCUMENT_URI = 524288,
     LOAD_TARGETED = 1048576,
     LOAD_CALL_CONTENT_SNIFFERS = 2097152,
     LOAD_CLASSIFY_URI = 4194304,
     LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE = 8388608,
     LOAD_EXPLICIT_CREDENTIALS = 16777216,
     LOAD_BYPASS_SERVICE_WORKER = 33554432,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIChannel__bindgen_ty_bindgen_id_170565 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_170571 {
     DISPOSITION_INLINE = 0,
     DISPOSITION_ATTACHMENT = 1,
 }
 #[test]
 fn bindgen_test_layout_nsIChannel() {
     assert_eq!(::std::mem::size_of::<nsIChannel>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsIChannel>() , 8usize);
 }
@@ -5710,17 +5710,17 @@ pub struct nsIRequest {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIRequest_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIRequest__bindgen_ty_bindgen_id_170383 {
+pub enum nsIRequest__bindgen_ty_bindgen_id_170389 {
     LOAD_REQUESTMASK = 65535,
     LOAD_NORMAL = 0,
     LOAD_BACKGROUND = 1,
     INHIBIT_PIPELINE = 64,
     INHIBIT_CACHING = 128,
     INHIBIT_PERSISTENT_CACHING = 256,
     LOAD_BYPASS_CACHE = 512,
     LOAD_FROM_CACHE = 1024,
@@ -6294,23 +6294,23 @@ pub enum nsIPresShell_IntrinsicDirty {
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsIPresShell_ReflowRootHandling {
     ePositionOrSizeChange = 0,
     eNoPositionOrSizeChange = 1,
     eInferFromBitToAdd = 2,
 }
-pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_189162 =
-    nsIPresShell__bindgen_ty_bindgen_id_189162::SCROLL_TOP;
-pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_189162 =
-    nsIPresShell__bindgen_ty_bindgen_id_189162::SCROLL_BOTTOM;
+pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_189168 =
+    nsIPresShell__bindgen_ty_bindgen_id_189168::SCROLL_TOP;
+pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_189168 =
+    nsIPresShell__bindgen_ty_bindgen_id_189168::SCROLL_BOTTOM;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_189162 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189168 {
     SCROLL_TOP = 0,
     SCROLL_BOTTOM = 100,
     SCROLL_CENTER = 50,
     SCROLL_MINIMUM = -1,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsIPresShell_WhenToScroll {
@@ -6328,17 +6328,17 @@ fn bindgen_test_layout_nsIPresShell_Scro
     assert_eq!(::std::mem::size_of::<nsIPresShell_ScrollAxis>() , 4usize);
     assert_eq!(::std::mem::align_of::<nsIPresShell_ScrollAxis>() , 4usize);
 }
 impl Clone for nsIPresShell_ScrollAxis {
     fn clone(&self) -> Self { *self }
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_189193 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189199 {
     SCROLL_FIRST_ANCESTOR_ONLY = 1,
     SCROLL_OVERFLOW_HIDDEN = 2,
     SCROLL_NO_PARENT_FRAMES = 4,
     SCROLL_SMOOTH = 8,
     SCROLL_SMOOTH_AUTO = 16,
 }
 #[repr(u32)]
 /**
@@ -6375,41 +6375,41 @@ pub enum nsIPresShell__bindgen_ty_bindge
    * or the document is in ignore viewport scrolling mode
    * (nsIPresShell::SetIgnoreViewportScrolling/IgnoringViewportScrolling).
    * @param aBackgroundColor a background color to render onto
    * @param aRenderedContext the gfxContext to render to. We render so that
    * one CSS pixel in the source document is rendered to one unit in the current
    * transform.
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_189648 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189654 {
     RENDER_IS_UNTRUSTED = 1,
     RENDER_IGNORE_VIEWPORT_SCROLLING = 2,
     RENDER_CARET = 4,
     RENDER_USE_WIDGET_LAYERS = 8,
     RENDER_ASYNC_DECODE_IMAGES = 16,
     RENDER_DOCUMENT_RELATIVE = 32,
     RENDER_DRAWWINDOW_NOT_FLUSHING = 64,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_189666 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189672 {
     RENDER_IS_IMAGE = 256,
     RENDER_AUTO_SCALE = 128,
 }
 #[repr(u32)]
 /**
    * Add a solid color item to the bottom of aList with frame aFrame and bounds
    * aBounds. Checks first if this needs to be done by checking if aFrame is a
    * canvas frame (if the FORCE_DRAW flag is passed then this check is skipped).
    * aBackstopColor is composed behind the background color of the canvas, it is
    * transparent by default.
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_189789 { FORCE_DRAW = 1, }
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189795 { FORCE_DRAW = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIPresShell_PointerCaptureInfo {
     pub mPendingContent: nsCOMPtr<nsIContent>,
     pub mOverrideContent: nsCOMPtr<nsIContent>,
 }
 #[test]
 fn bindgen_test_layout_nsIPresShell_PointerCaptureInfo() {
@@ -6777,77 +6777,77 @@ impl Clone for TextOrElementOrDocument {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct DOMPointInit {
     pub _address: u8,
 }
 impl Clone for DOMPointInit {
     fn clone(&self) -> Self { *self }
 }
-pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_LISTENERMANAGER;
-pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_PROPERTIES;
-pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_IS_ANONYMOUS_ROOT;
-pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_FORCE_XBL_BINDINGS;
-pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_MAY_BE_IN_BINDING_MNGR;
-pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_IS_EDITABLE;
-pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_MAY_HAVE_CLASS;
-pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_IS_IN_SHADOW_TREE;
-pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_EMPTY_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_SLOW_SELECTOR;
-pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_EDGE_CHILD_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_191201
+pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_LISTENERMANAGER;
+pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_PROPERTIES;
+pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_IS_ANONYMOUS_ROOT;
+pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_FORCE_XBL_BINDINGS;
+pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_MAY_BE_IN_BINDING_MNGR;
+pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_IS_EDITABLE;
+pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_MAY_HAVE_CLASS;
+pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_IS_IN_SHADOW_TREE;
+pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_EMPTY_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_SLOW_SELECTOR;
+pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_EDGE_CHILD_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_191207
           =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_ALL_SELECTOR_FLAGS;
-pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_NEEDS_FRAME;
-pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_DESCENDANTS_NEED_FRAMES;
-pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_ACCESSKEY;
-pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_DIRECTION_RTL;
-pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_HAS_DIRECTION_LTR;
-pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_ALL_DIRECTION_FLAGS;
-pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_CHROME_ONLY_ACCESS;
-pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_191201
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_ALL_SELECTOR_FLAGS;
+pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_NEEDS_FRAME;
+pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_DESCENDANTS_NEED_FRAMES;
+pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_ACCESSKEY;
+pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_DIRECTION_RTL;
+pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_HAS_DIRECTION_LTR;
+pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_ALL_DIRECTION_FLAGS;
+pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_CHROME_ONLY_ACCESS;
+pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_191207
           =
-    _bindgen_ty_bindgen_id_191201::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_191201 =
-    _bindgen_ty_bindgen_id_191201::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    _bindgen_ty_bindgen_id_191207::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_191207 =
+    _bindgen_ty_bindgen_id_191207::NODE_TYPE_SPECIFIC_BITS_OFFSET;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum _bindgen_ty_bindgen_id_191201 {
+pub enum _bindgen_ty_bindgen_id_191207 {
     NODE_HAS_LISTENERMANAGER = 4,
     NODE_HAS_PROPERTIES = 8,
     NODE_IS_ANONYMOUS_ROOT = 16,
     NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE = 32,
     NODE_IS_NATIVE_ANONYMOUS_ROOT = 64,
     NODE_FORCE_XBL_BINDINGS = 128,
     NODE_MAY_BE_IN_BINDING_MNGR = 256,
     NODE_IS_EDITABLE = 512,
@@ -6895,17 +6895,17 @@ pub struct nsITimer {
 #[derive(Debug, Copy, Clone)]
 pub struct nsITimer_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsITimer__bindgen_ty_bindgen_id_203654 {
+pub enum nsITimer__bindgen_ty_bindgen_id_203660 {
     TYPE_ONE_SHOT = 0,
     TYPE_REPEATING_SLACK = 1,
     TYPE_REPEATING_PRECISE = 2,
     TYPE_REPEATING_PRECISE_CAN_SKIP = 3,
 }
 #[test]
 fn bindgen_test_layout_nsITimer() {
     assert_eq!(::std::mem::size_of::<nsITimer>() , 8usize);
@@ -6921,17 +6921,17 @@ impl Clone for nsITimer {
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsExpirationState {
     pub _bitfield_1: u32,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsExpirationState__bindgen_ty_bindgen_id_204130 {
+pub enum nsExpirationState__bindgen_ty_bindgen_id_204136 {
     NOT_TRACKED = 15,
     MAX_INDEX_IN_GENERATION = 268435455,
 }
 #[test]
 fn bindgen_test_layout_nsExpirationState() {
     assert_eq!(::std::mem::size_of::<nsExpirationState>() , 4usize);
     assert_eq!(::std::mem::align_of::<nsExpirationState>() , 4usize);
 }
@@ -6996,29 +6996,29 @@ pub struct imgIRequest {
 #[derive(Debug, Copy, Clone)]
 pub struct imgIRequest_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum imgIRequest__bindgen_ty_bindgen_id_205640 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_205646 {
     STATUS_NONE = 0,
     STATUS_SIZE_AVAILABLE = 1,
     STATUS_LOAD_COMPLETE = 2,
     STATUS_ERROR = 4,
     STATUS_FRAME_COMPLETE = 8,
     STATUS_DECODE_COMPLETE = 16,
     STATUS_IS_ANIMATED = 32,
     STATUS_HAS_TRANSPARENCY = 64,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum imgIRequest__bindgen_ty_bindgen_id_205720 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_205726 {
     CORS_NONE = 1,
     CORS_ANONYMOUS = 2,
     CORS_USE_CREDENTIALS = 3,
 }
 #[test]
 fn bindgen_test_layout_imgIRequest() {
     assert_eq!(::std::mem::size_of::<imgIRequest>() , 8usize);
     assert_eq!(::std::mem::align_of::<imgIRequest>() , 8usize);
@@ -7292,22 +7292,22 @@ pub struct URLValue {
     pub _base: URLValueData,
 }
 #[test]
 fn bindgen_test_layout_URLValue() {
     assert_eq!(::std::mem::size_of::<URLValue>() , 64usize);
     assert_eq!(::std::mem::align_of::<URLValue>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_224109 {
+pub struct bindgen_vtable__bindgen_id_224115 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct URLValueData {
-    pub vtable_: *const bindgen_vtable__bindgen_id_224109,
+    pub vtable_: *const bindgen_vtable__bindgen_id_224115,
     pub mRefCnt: ThreadSafeAutoRefCnt,
     pub mURI: nsMainThreadPtrHandle<nsIURI>,
     pub mBaseURI: nsMainThreadPtrHandle<nsIURI>,
     pub mString: RefPtr<nsStringBuffer>,
     pub mReferrer: nsMainThreadPtrHandle<nsIURI>,
     pub mOriginPrincipal: nsMainThreadPtrHandle<nsIPrincipal>,
     pub mURIResolved: bool,
     pub mIsLocalRef: bool,
@@ -7318,20 +7318,21 @@ fn bindgen_test_layout_URLValueData() {
     assert_eq!(::std::mem::size_of::<URLValueData>() , 64usize);
     assert_eq!(::std::mem::align_of::<URLValueData>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct ImageValue {
     pub _base: URLValueData,
     pub mRequests: [u64; 6usize],
+    pub mInitialized: bool,
 }
 #[test]
 fn bindgen_test_layout_ImageValue() {
-    assert_eq!(::std::mem::size_of::<ImageValue>() , 112usize);
+    assert_eq!(::std::mem::size_of::<ImageValue>() , 120usize);
     assert_eq!(::std::mem::align_of::<ImageValue>() , 8usize);
 }
 /**
  * A structure representing a single attribute name and value.
  *
  * This is pretty similar to the private nsAttrAndChildArray::InternalAttr.
  */
 #[repr(C)]
@@ -7508,17 +7509,17 @@ pub struct nsPresArena_FreeList {
     pub mEntrySize: usize,
     pub mEntriesEverAllocated: usize,
     pub mKey: nsPresArena_FreeList_KeyTypePointer,
 }
 pub type nsPresArena_FreeList_KeyType = u32;
 pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_226261 {
+pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_226278 {
     ALLOW_MEMMOVE = 0,
 }
 #[test]
 fn bindgen_test_layout_nsPresArena_FreeList() {
     assert_eq!(::std::mem::size_of::<nsPresArena_FreeList>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsPresArena_FreeList>() , 8usize);
 }
 #[test]
@@ -7535,17 +7536,17 @@ pub struct imgINotificationObserver {
 #[derive(Debug, Copy, Clone)]
 pub struct imgINotificationObserver_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum imgINotificationObserver__bindgen_ty_bindgen_id_226408 {
+pub enum imgINotificationObserver__bindgen_ty_bindgen_id_226425 {
     SIZE_AVAILABLE = 1,
     FRAME_UPDATE = 2,
     FRAME_COMPLETE = 3,
     LOAD_COMPLETE = 4,
     DECODE_COMPLETE = 5,
     DISCARD = 6,
     UNLOCKED_DRAW = 7,
     IS_ANIMATED = 8,
@@ -7784,17 +7785,17 @@ pub struct gfxFontFeatureValueSet_Featur
     pub mValues: nsTArray<::std::os::raw::c_uint>,
 }
 pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType =
     *const gfxFontFeatureValueSet_FeatureValueHashKey;
 pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer =
     *const gfxFontFeatureValueSet_FeatureValueHashKey;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_227668
+pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_227685
          {
     ALLOW_MEMMOVE = 1,
 }
 #[test]
 fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashEntry() {
     assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>()
                , 56usize);
     assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>()
@@ -8123,33 +8124,33 @@ pub enum nsStyleUnit {
     eStyleUnit_FlexFraction = 16,
     eStyleUnit_Coord = 20,
     eStyleUnit_Integer = 30,
     eStyleUnit_Enumerated = 32,
     eStyleUnit_Calc = 40,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct _bindgen_ty_bindgen_id_228273 {
+pub struct _bindgen_ty_bindgen_id_228290 {
     pub mInt: __BindgenUnionField<i32>,
     pub mFloat: __BindgenUnionField<f32>,
     pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout__bindgen_ty_bindgen_id_228273() {
-    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_228273>() ,
+fn bindgen_test_layout__bindgen_ty_bindgen_id_228290() {
+    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_228290>() ,
                8usize);
-    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_228273>() ,
+    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_228290>() ,
                8usize);
 }
-impl Clone for _bindgen_ty_bindgen_id_228273 {
-    fn clone(&self) -> Self { *self }
-}
-pub type nsStyleUnion = _bindgen_ty_bindgen_id_228273;
+impl Clone for _bindgen_ty_bindgen_id_228290 {
+    fn clone(&self) -> Self { *self }
+}
+pub type nsStyleUnion = _bindgen_ty_bindgen_id_228290;
 /**
  * Class that hold a single size specification used by the style
  * system.  The size specification consists of two parts -- a number
  * and a unit.  The number is an integer, a floating point value, an
  * nscoord, or undefined, and the unit is an nsStyleUnit.  Checking
  * the unit is a must before asking for the value in any particular
  * form.
  */
@@ -9206,34 +9207,34 @@ fn bindgen_test_layout_imgRequestProxy_i
                8usize);
 }
 #[test]
 fn bindgen_test_layout_imgRequestProxy() {
     assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize);
     assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_237213 {
+pub struct bindgen_vtable__bindgen_id_237239 {
 }
 /**
  * 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 bindgen_vtable__bindgen_id_237213,
+    pub vtable_: *const bindgen_vtable__bindgen_id_237239,
     pub _base: u64,
 }
 #[test]
 fn bindgen_test_layout_IProgressObserver() {
     assert_eq!(::std::mem::size_of::<IProgressObserver>() , 16usize);
     assert_eq!(::std::mem::align_of::<IProgressObserver>() , 8usize);
 }
 #[repr(C)]
@@ -9245,17 +9246,17 @@ pub struct nsISupportsPriority {
 #[derive(Debug, Copy, Clone)]
 pub struct nsISupportsPriority_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsISupportsPriority__bindgen_ty_bindgen_id_237294 {
+pub enum nsISupportsPriority__bindgen_ty_bindgen_id_237320 {
     PRIORITY_HIGHEST = -20,
     PRIORITY_HIGH = -10,
     PRIORITY_NORMAL = 0,
     PRIORITY_LOW = 10,
     PRIORITY_LOWEST = 20,
 }
 #[test]
 fn bindgen_test_layout_nsISupportsPriority() {
@@ -9680,33 +9681,33 @@ pub type nsCSSValueFloatColor_HasThreadS
 fn bindgen_test_layout_nsCSSValueFloatColor() {
     assert_eq!(::std::mem::size_of::<nsCSSValueFloatColor>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueFloatColor>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValue {
     pub mUnit: nsCSSUnit,
-    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_240297,
+    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_240323,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValue_Array {
     pub mRefCnt: usize,
     pub mCount: usize,
     pub mArray: [nsCSSValue; 1usize],
 }
 #[test]
 fn bindgen_test_layout_nsCSSValue_Array() {
     assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsCSSValue_Array>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsCSSValue__bindgen_ty_bindgen_id_240297 {
+pub struct nsCSSValue__bindgen_ty_bindgen_id_240323 {
     pub mInt: __BindgenUnionField<i32>,
     pub mFloat: __BindgenUnionField<f32>,
     pub mString: __BindgenUnionField<*mut nsStringBuffer>,
     pub mColor: __BindgenUnionField<nscolor>,
     pub mArray: __BindgenUnionField<*mut nsCSSValue_Array>,
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub mImage: __BindgenUnionField<*mut ImageValue>,
     pub mGridTemplateAreas: __BindgenUnionField<*mut GridTemplateAreasValue>,
@@ -9721,23 +9722,23 @@ pub struct nsCSSValue__bindgen_ty_bindge
     pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>,
     pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>,
     pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>,
     pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
     pub mComplexColor: __BindgenUnionField<*mut ComplexColorValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_240297() {
-    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_240297>()
+fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_240323() {
+    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_240323>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_240297>()
+    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_240323>()
                , 8usize);
 }
-impl Clone for nsCSSValue__bindgen_ty_bindgen_id_240297 {
+impl Clone for nsCSSValue__bindgen_ty_bindgen_id_240323 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsCSSValue() {
     assert_eq!(::std::mem::size_of::<nsCSSValue>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsCSSValue>() , 8usize);
 }
 #[repr(C)]
@@ -9748,22 +9749,22 @@ pub struct nsCSSValueGradientStop {
     pub mIsInterpolationHint: bool,
 }
 #[test]
 fn bindgen_test_layout_nsCSSValueGradientStop() {
     assert_eq!(::std::mem::size_of::<nsCSSValueGradientStop>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_240505 {
+pub struct bindgen_vtable__bindgen_id_240531 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct CounterStyle {
-    pub vtable_: *const bindgen_vtable__bindgen_id_240505,
+    pub vtable_: *const bindgen_vtable__bindgen_id_240531,
     pub mStyle: i32,
 }
 #[test]
 fn bindgen_test_layout_CounterStyle() {
     assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize);
     assert_eq!(::std::mem::align_of::<CounterStyle>() , 8usize);
 }
 impl Clone for CounterStyle {
@@ -9907,16 +9908,64 @@ pub struct nsStyleGradient {
     pub mRefCnt: ThreadSafeAutoRefCnt,
 }
 pub type nsStyleGradient_HasThreadSafeRefCnt = TrueType;
 #[test]
 fn bindgen_test_layout_nsStyleGradient() {
     assert_eq!(::std::mem::size_of::<nsStyleGradient>() , 104usize);
     assert_eq!(::std::mem::align_of::<nsStyleGradient>() , 8usize);
 }
+/**
+ * A wrapper for an imgRequestProxy that supports off-main-thread creation
+ * and equality comparison.
+ *
+ * An nsStyleImageRequest can be created in two ways:
+ *
+ * 1. Using the constructor that takes an imgRequestProxy.  This must
+ *    be called from the main thread.  The nsStyleImageRequest is
+ *    immediately considered "resolved", and the get() method that
+ *    returns the imgRequestProxy can be called.
+ *
+ * 2. Using the constructor that takes the URL, base URI, referrer
+ *    and principal that can be used to inititiate an image load and
+ *    produce an imgRequestProxy later.  This can be called from
+ *    any thread.  The nsStyleImageRequest is not considered "resolved"
+ *    at this point, and the Resolve() method must be called later
+ *    to initiate the image load and make calls to get() valid.
+ *
+ * Calls to TrackImage(), UntrackImage(), LockImage(), UnlockImage() and
+ * RequestDiscard() are made to the imgRequestProxy as appropriate, according
+ * to the mode flags passed in to the constructor.
+ *
+ * The main thread constructor takes a pointer to the css::ImageValue that
+ * is the specified url() value, while the off-main-thread constructor
+ * creates a new css::ImageValue to represent the url() information passed
+ * to the constructor.  This ImageValue is held on to for the comparisons done
+ * in DefinitelyEquals(), so that we don't need to call into the non-OMT-safe
+ * imgRequestProxy::Equals().
+ */
+#[repr(C)]
+#[derive(Debug)]
+pub struct nsStyleImageRequest {
+    pub mRefCnt: ThreadSafeAutoRefCnt,
+    pub mRequestProxy: RefPtr<imgRequestProxy>,
+    pub mImageValue: RefPtr<ImageValue>,
+    pub mImageTracker: RefPtr<ImageTracker>,
+    pub mModeFlags: nsStyleImageRequest_Mode,
+    pub mResolved: bool,
+}
+#[repr(u8)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum nsStyleImageRequest_Mode { Track = 1, Lock = 2, Discard = 4, }
+pub type nsStyleImageRequest_HasThreadSafeRefCnt = TrueType;
+#[test]
+fn bindgen_test_layout_nsStyleImageRequest() {
+    assert_eq!(::std::mem::size_of::<nsStyleImageRequest>() , 40usize);
+    assert_eq!(::std::mem::align_of::<nsStyleImageRequest>() , 8usize);
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsStyleImageType {
     eStyleImageType_Null = 0,
     eStyleImageType_Image = 1,
     eStyleImageType_Gradient = 2,
     eStyleImageType_Element = 3,
 }
@@ -9942,41 +9991,40 @@ fn bindgen_test_layout_CachedBorderImage
  * image of type (1)).
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleImage {
     pub mCachedBIData: UniquePtr<CachedBorderImageData,
                                  DefaultDelete<CachedBorderImageData>>,
     pub mType: nsStyleImageType,
-    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_242405,
+    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_242532,
     pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
-    pub mImageTracked: bool,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleImage__bindgen_ty_bindgen_id_242405 {
-    pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleImage__bindgen_ty_bindgen_id_242532 {
+    pub mImage: __BindgenUnionField<*mut nsStyleImageRequest>,
     pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
     pub mElementId: __BindgenUnionField<*mut u16>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_242405() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_242405>()
+fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_242532() {
+    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_242532>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_242405>()
+    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_242532>()
                , 8usize);
 }
-impl Clone for nsStyleImage__bindgen_ty_bindgen_id_242405 {
+impl Clone for nsStyleImage__bindgen_ty_bindgen_id_242532 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleImage() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage>() , 40usize);
+    assert_eq!(::std::mem::size_of::<nsStyleImage>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsStyleImage>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleColor {
     pub mColor: nscolor,
 }
 #[test]
@@ -10012,17 +10060,17 @@ pub struct nsStyleImageLayers {
     pub mSizeCount: u32,
     pub mMaskModeCount: u32,
     pub mBlendModeCount: u32,
     pub mCompositeCount: u32,
     pub mLayers: nsStyleAutoArray<nsStyleImageLayers_Layer>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_242460 {
+pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_242594 {
     shorthand = 0,
     color = 1,
     image = 2,
     repeat = 3,
     positionX = 4,
     positionY = 5,
     clip = 6,
     origin = 7,
@@ -10100,42 +10148,42 @@ pub struct nsStyleImageLayers_Layer {
     pub mAttachment: u8,
     pub mBlendMode: u8,
     pub mComposite: u8,
     pub mMaskMode: u8,
     pub mRepeat: nsStyleImageLayers_Repeat,
 }
 #[test]
 fn bindgen_test_layout_nsStyleImageLayers_Layer() {
-    assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Layer>() , 112usize);
+    assert_eq!(::std::mem::size_of::<nsStyleImageLayers_Layer>() , 104usize);
     assert_eq!(::std::mem::align_of::<nsStyleImageLayers_Layer>() , 8usize);
 }
 extern "C" {
     #[link_name = "_ZN18nsStyleImageLayers21kBackgroundLayerTableE"]
     pub static mut nsStyleImageLayers_kBackgroundLayerTable:
                *const nsCSSPropertyID;
 }
 extern "C" {
     #[link_name = "_ZN18nsStyleImageLayers15kMaskLayerTableE"]
     pub static mut nsStyleImageLayers_kMaskLayerTable: *const nsCSSPropertyID;
 }
 #[test]
 fn bindgen_test_layout_nsStyleImageLayers() {
-    assert_eq!(::std::mem::size_of::<nsStyleImageLayers>() , 168usize);
+    assert_eq!(::std::mem::size_of::<nsStyleImageLayers>() , 160usize);
     assert_eq!(::std::mem::align_of::<nsStyleImageLayers>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleBackground {
     pub mImage: nsStyleImageLayers,
     pub mBackgroundColor: nscolor,
 }
 #[test]
 fn bindgen_test_layout_nsStyleBackground() {
-    assert_eq!(::std::mem::size_of::<nsStyleBackground>() , 176usize);
+    assert_eq!(::std::mem::size_of::<nsStyleBackground>() , 168usize);
     assert_eq!(::std::mem::align_of::<nsStyleBackground>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleMargin {
     pub mMargin: nsStyleSides,
 }
 #[test]
@@ -10203,60 +10251,60 @@ pub struct nsStyleBorder {
     pub mBorderImageWidth: nsStyleSides,
     pub mBorderImageOutset: nsStyleSides,
     pub mBorderImageFill: u8,
     pub mBorderImageRepeatH: u8,
     pub mBorderImageRepeatV: u8,
     pub mFloatEdge: StyleFloatEdge,
     pub mBoxDecorationBreak: StyleBoxDecorationBreak,
     pub mBorderStyle: [u8; 4usize],
-    pub __bindgen_anon_1: nsStyleBorder__bindgen_ty_bindgen_id_243131,
+    pub __bindgen_anon_1: nsStyleBorder__bindgen_ty_bindgen_id_243274,
     pub mComputedBorder: nsMargin,
     pub mBorder: nsMargin,
     pub mTwipsPerPixel: nscoord,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_243131 {
-    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_243131__bindgen_ty_bindgen_id_243132>,
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_243274 {
+    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_243274__bindgen_ty_bindgen_id_243275>,
     pub mBorderColor: __BindgenUnionField<[StyleComplexColor; 4usize]>,
     pub bindgen_union_field: [u32; 8usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_243131__bindgen_ty_bindgen_id_243132 {
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_243274__bindgen_ty_bindgen_id_243275 {
     pub mBorderTopColor: StyleComplexColor,
     pub mBorderRightColor: StyleComplexColor,
     pub mBorderBottomColor: StyleComplexColor,
     pub mBorderLeftColor: StyleComplexColor,
 }
 #[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_243131__bindgen_ty_bindgen_id_243132() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_243131__bindgen_ty_bindgen_id_243132>()
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_243274__bindgen_ty_bindgen_id_243275() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_243274__bindgen_ty_bindgen_id_243275>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_243131__bindgen_ty_bindgen_id_243132>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_243274__bindgen_ty_bindgen_id_243275>()
                , 4usize);
 }
 impl Clone for
- nsStyleBorder__bindgen_ty_bindgen_id_243131__bindgen_ty_bindgen_id_243132 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_243131() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_243131>()
+ nsStyleBorder__bindgen_ty_bindgen_id_243274__bindgen_ty_bindgen_id_243275 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_243274() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_243274>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_243131>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_243274>()
                , 4usize);
 }
-impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_243131 {
+impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_243274 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleBorder() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder>() , 320usize);
+    assert_eq!(::std::mem::size_of::<nsStyleBorder>() , 312usize);
     assert_eq!(::std::mem::align_of::<nsStyleBorder>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleOutline {
     pub mOutlineRadius: nsStyleCorners,
     pub mOutlineWidth: nsStyleCoord,
     pub mOutlineOffset: nscoord,
@@ -10548,17 +10596,17 @@ fn bindgen_test_layout_nsStyleImageOrien
 }
 impl Clone for nsStyleImageOrientation {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsTimingFunction {
     pub mType: nsTimingFunction_Type,
-    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_244091,
+    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_244279,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Type {
     Ease = 0,
     Linear = 1,
     EaseIn = 2,
     EaseOut = 3,
@@ -10567,66 +10615,66 @@ pub enum nsTimingFunction_Type {
     StepEnd = 6,
     CubicBezier = 7,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_244091 {
-    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244092>,
-    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244103>,
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_244279 {
+    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244280>,
+    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244291>,
     pub bindgen_union_field: [u32; 4usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244092 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244280 {
     pub mX1: f32,
     pub mY1: f32,
     pub mX2: f32,
     pub mY2: f32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244092() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244092>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244280() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244280>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244092>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244280>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244092
+ nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244280
  {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244103 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244291 {
     pub mSteps: u32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244103() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244103>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244291() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244291>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244103>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244291>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_244091__bindgen_ty_bindgen_id_244103
+ nsTimingFunction__bindgen_ty_bindgen_id_244279__bindgen_ty_bindgen_id_244291
  {
     fn clone(&self) -> Self { *self }
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_244091() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_244091>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_244279() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_244279>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_244091>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_244279>()
                , 4usize);
 }
-impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_244091 {
+impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_244279 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsTimingFunction() {
     assert_eq!(::std::mem::size_of::<nsTimingFunction>() , 20usize);
     assert_eq!(::std::mem::align_of::<nsTimingFunction>() , 4usize);
 }
 impl Clone for nsTimingFunction {
@@ -10677,23 +10725,23 @@ pub type StyleBasicShape_HasThreadSafeRe
 #[test]
 fn bindgen_test_layout_StyleBasicShape() {
     assert_eq!(::std::mem::size_of::<StyleBasicShape>() , 120usize);
     assert_eq!(::std::mem::align_of::<StyleBasicShape>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct StyleShapeSource<ReferenceBox> {
-    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_244474<ReferenceBox>,
+    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_244662<ReferenceBox>,
     pub mType: StyleShapeSourceType,
     pub mReferenceBox: ReferenceBox,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct StyleShapeSource__bindgen_ty_bindgen_id_244474<ReferenceBox> {
+pub struct StyleShapeSource__bindgen_ty_bindgen_id_244662<ReferenceBox> {
     pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>,
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
     pub _phantom_0: ::std::marker::PhantomData<ReferenceBox>,
 }
 pub type StyleClipPath = StyleShapeSource<StyleClipPathGeometryBox>;
 pub type StyleShapeOutside = StyleShapeSource<StyleShapeOutsideShapeBox>;
 #[repr(C)]
@@ -10735,35 +10783,35 @@ pub enum nsStyleContentType {
     eStyleContentType_NoCloseQuote = 43,
     eStyleContentType_AltContent = 50,
     eStyleContentType_Uninitialized = 51,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleContentData {
     pub mType: nsStyleContentType,
-    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_244558,
+    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_244764,
     pub mImageTracked: bool,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleContentData__bindgen_ty_bindgen_id_244558 {
+pub struct nsStyleContentData__bindgen_ty_bindgen_id_244764 {
     pub mString: __BindgenUnionField<*mut u16>,
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_244558() {
-    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_244558>()
+fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_244764() {
+    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_244764>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_244558>()
+    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_244764>()
                , 8usize);
 }
-impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_244558 {
+impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_244764 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleContentData() {
     assert_eq!(::std::mem::size_of::<nsStyleContentData>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsStyleContentData>() , 8usize);
 }
 #[repr(C)]
@@ -10876,35 +10924,35 @@ pub enum nsStyleSVGPaintType {
     eStyleSVGPaintType_Color = 2,
     eStyleSVGPaintType_Server = 3,
     eStyleSVGPaintType_ContextFill = 4,
     eStyleSVGPaintType_ContextStroke = 5,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleSVGPaint {
-    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_245005,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_245256,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_245005 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_245256 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_245005() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245005>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_245256() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245256>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245005>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_245256>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_245005 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_245256 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGPaint() {
     assert_eq!(::std::mem::size_of::<nsStyleSVGPaint>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGPaint>() , 8usize);
 }
 #[repr(C)]
@@ -10929,17 +10977,17 @@ pub struct nsStyleSVG {
     pub mShapeRendering: u8,
     pub mStrokeLinecap: u8,
     pub mStrokeLinejoin: u8,
     pub mTextAnchor: u8,
     pub mContextFlags: u8,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleSVG__bindgen_ty_bindgen_id_245165 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_245425 {
     FILL_OPACITY_SOURCE_MASK = 3,
     STROKE_OPACITY_SOURCE_MASK = 12,
     STROKE_DASHARRAY_CONTEXT = 16,
     STROKE_DASHOFFSET_CONTEXT = 32,
     STROKE_WIDTH_CONTEXT = 64,
     FILL_OPACITY_SOURCE_SHIFT = 0,
     STROKE_OPACITY_SOURCE_SHIFT = 2,
 }
@@ -10948,33 +10996,33 @@ fn bindgen_test_layout_nsStyleSVG() {
     assert_eq!(::std::mem::size_of::<nsStyleSVG>() , 120usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVG>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleFilter {
     pub mType: i32,
     pub mFilterParameter: nsStyleCoord,
-    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_245231,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_245231 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_245500,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_245500 {
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_245231() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_245231>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_245500() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_245500>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_245231>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_245500>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_245231 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_245500 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleFilter() {
     assert_eq!(::std::mem::size_of::<nsStyleFilter>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsStyleFilter>() , 8usize);
 }
 #[repr(C)]
@@ -10988,17 +11036,17 @@ pub struct nsStyleSVGReset {
     pub mStopOpacity: f32,
     pub mFloodOpacity: f32,
     pub mDominantBaseline: u8,
     pub mVectorEffect: u8,
     pub mMaskType: u8,
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGReset() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGReset>() , 208usize);
+    assert_eq!(::std::mem::size_of::<nsStyleSVGReset>() , 200usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGReset>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleVariables {
     pub mVariables: CSSVariableValues,
 }
 #[test]
--- a/servo/components/style/gecko_bindings/structs_release.rs
+++ b/servo/components/style/gecko_bindings/structs_release.rs
@@ -1621,40 +1621,40 @@ pub enum JSWhyMagic {
     JS_UNINITIALIZED_LEXICAL = 15,
     JS_GENERIC_MAGIC = 16,
     JS_WHY_MAGIC_COUNT = 17,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct jsval_layout {
     pub asBits: __BindgenUnionField<u64>,
-    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65767>,
-    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65774>,
+    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65773>,
+    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65780>,
     pub asDouble: __BindgenUnionField<f64>,
     pub asPtr: __BindgenUnionField<*mut ::std::os::raw::c_void>,
     pub asWord: __BindgenUnionField<usize>,
     pub asUIntPtr: __BindgenUnionField<usize>,
     pub bindgen_union_field: u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_65767 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_65773 {
     pub _bitfield_1: u64,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65767() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65767>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65773() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65773>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65767>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65773>()
                , 8usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_65767 {
-    fn clone(&self) -> Self { *self }
-}
-impl jsval_layout__bindgen_ty_bindgen_id_65767 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_65773 {
+    fn clone(&self) -> Self { *self }
+}
+impl jsval_layout__bindgen_ty_bindgen_id_65773 {
     #[inline]
     pub fn payload47(&self) -> u64 {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (140737488355327usize as u64)) >>
                                        0u32) as u64)
         }
     }
@@ -1677,46 +1677,46 @@ impl jsval_layout__bindgen_ty_bindgen_id
         self._bitfield_1 &= !(18446603336221196288usize as u64);
         self._bitfield_1 |=
             ((val as u32 as u64) << 47u32) &
                 (18446603336221196288usize as u64);
     }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_65774 {
-    pub payload: jsval_layout__bindgen_ty_bindgen_id_65774__bindgen_ty_bindgen_id_65775,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_65774__bindgen_ty_bindgen_id_65775 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_65780 {
+    pub payload: jsval_layout__bindgen_ty_bindgen_id_65780__bindgen_ty_bindgen_id_65781,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct jsval_layout__bindgen_ty_bindgen_id_65780__bindgen_ty_bindgen_id_65781 {
     pub i32: __BindgenUnionField<i32>,
     pub u32: __BindgenUnionField<u32>,
     pub why: __BindgenUnionField<JSWhyMagic>,
     pub bindgen_union_field: u32,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65774__bindgen_ty_bindgen_id_65775() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65774__bindgen_ty_bindgen_id_65775>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65780__bindgen_ty_bindgen_id_65781() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65780__bindgen_ty_bindgen_id_65781>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65774__bindgen_ty_bindgen_id_65775>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65780__bindgen_ty_bindgen_id_65781>()
                , 4usize);
 }
 impl Clone for
- jsval_layout__bindgen_ty_bindgen_id_65774__bindgen_ty_bindgen_id_65775 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65774() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65774>()
+ jsval_layout__bindgen_ty_bindgen_id_65780__bindgen_ty_bindgen_id_65781 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65780() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65780>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65774>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65780>()
                , 4usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_65774 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_65780 {
     fn clone(&self) -> Self { *self }
 }
 impl Clone for jsval_layout {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsAString_internal {
@@ -1740,17 +1740,17 @@ pub type nsAString_internal_iterator = n
 pub type nsAString_internal_comparator_type = nsStringComparator;
 pub type nsAString_internal_char_iterator = *mut nsAString_internal_char_type;
 pub type nsAString_internal_const_char_iterator =
     *const nsAString_internal_char_type;
 pub type nsAString_internal_size_type = u32;
 pub type nsAString_internal_index_type = u32;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsAString_internal__bindgen_ty_bindgen_id_67644 {
+pub enum nsAString_internal__bindgen_ty_bindgen_id_67650 {
     F_NONE = 0,
     F_TERMINATED = 1,
     F_VOIDED = 2,
     F_SHARED = 4,
     F_OWNED = 8,
     F_FIXED = 16,
     F_LITERAL = 32,
     F_CLASS_FIXED = 65536,
@@ -1777,22 +1777,22 @@ pub type nsSubstringTuple_size_type = u3
 fn bindgen_test_layout_nsSubstringTuple() {
     assert_eq!(::std::mem::size_of::<nsSubstringTuple>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsSubstringTuple>() , 8usize);
 }
 impl Clone for nsSubstringTuple {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_68254 {
+pub struct bindgen_vtable__bindgen_id_68260 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_68254,
+    pub vtable_: *const bindgen_vtable__bindgen_id_68260,
 }
 pub type nsStringComparator_char_type = u16;
 #[test]
 fn bindgen_test_layout_nsStringComparator() {
     assert_eq!(::std::mem::size_of::<nsStringComparator>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsStringComparator>() , 8usize);
 }
 impl Clone for nsStringComparator {
@@ -1824,17 +1824,17 @@ pub type nsACString_internal_comparator_
 pub type nsACString_internal_char_iterator =
     *mut nsACString_internal_char_type;
 pub type nsACString_internal_const_char_iterator =
     *const nsACString_internal_char_type;
 pub type nsACString_internal_size_type = u32;
 pub type nsACString_internal_index_type = u32;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsACString_internal__bindgen_ty_bindgen_id_69484 {
+pub enum nsACString_internal__bindgen_ty_bindgen_id_69490 {
     F_NONE = 0,
     F_TERMINATED = 1,
     F_VOIDED = 2,
     F_SHARED = 4,
     F_OWNED = 8,
     F_FIXED = 16,
     F_LITERAL = 32,
     F_CLASS_FIXED = 65536,
@@ -1886,45 +1886,45 @@ impl Clone for nsCString_Segment {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsCString() {
     assert_eq!(::std::mem::size_of::<nsCString>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsCString>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_70036 {
+pub struct bindgen_vtable__bindgen_id_70042 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_70036,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70042,
 }
 pub type nsCStringComparator_char_type = ::std::os::raw::c_char;
 #[test]
 fn bindgen_test_layout_nsCStringComparator() {
     assert_eq!(::std::mem::size_of::<nsCStringComparator>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsCStringComparator>() , 8usize);
 }
 impl Clone for nsCStringComparator {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_70340 {
+pub struct bindgen_vtable__bindgen_id_70346 {
 }
 /**
  * Basic component object model interface. Objects which implement
  * this interface support runtime interface discovery (QueryInterface)
  * and a reference counted memory model (AddRef/Release). This is
  * modelled after the win32 IUnknown API.
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsISupports {
-    pub vtable_: *const bindgen_vtable__bindgen_id_70340,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70346,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct nsISupports_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
@@ -1932,25 +1932,25 @@ pub struct nsISupports_COMTypeInfo<T, U>
 fn bindgen_test_layout_nsISupports() {
     assert_eq!(::std::mem::size_of::<nsISupports>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsISupports>() , 8usize);
 }
 impl Clone for nsISupports {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_70624 {
+pub struct bindgen_vtable__bindgen_id_70630 {
 }
 /**
  * Participant implementation classes
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCycleCollectionParticipant {
-    pub vtable_: *const bindgen_vtable__bindgen_id_70624,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70630,
     pub mMightSkip: bool,
 }
 #[test]
 fn bindgen_test_layout_nsCycleCollectionParticipant() {
     assert_eq!(::std::mem::size_of::<nsCycleCollectionParticipant>() ,
                16usize);
     assert_eq!(::std::mem::align_of::<nsCycleCollectionParticipant>() ,
                8usize);
@@ -2265,34 +2265,34 @@ fn bindgen_test_layout_ErrorResult() {
  * A cleanup policy consists of two booleans: whether to assert that we've been
  * reported or suppressed, and whether to then go ahead and suppress the
  * exception.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct TErrorResult<CleanupPolicy> {
     pub mResult: nsresult,
-    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_75258<CleanupPolicy>,
+    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_75264<CleanupPolicy>,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct TErrorResult_Message<CleanupPolicy> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct TErrorResult_DOMExceptionInfo<CleanupPolicy> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct TErrorResult__bindgen_ty_bindgen_id_75258<CleanupPolicy> {
+pub struct TErrorResult__bindgen_ty_bindgen_id_75264<CleanupPolicy> {
     pub mMessage: __BindgenUnionField<*mut TErrorResult_Message<CleanupPolicy>>,
     pub mJSException: __BindgenUnionField<Value>,
     pub mDOMExceptionInfo: __BindgenUnionField<*mut TErrorResult_DOMExceptionInfo<CleanupPolicy>>,
     pub bindgen_union_field: u64,
     pub _phantom_0: ::std::marker::PhantomData<CleanupPolicy>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
@@ -2428,17 +2428,17 @@ pub struct nsIPrincipal {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIPrincipal_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPrincipal__bindgen_ty_bindgen_id_76281 {
+pub enum nsIPrincipal__bindgen_ty_bindgen_id_76287 {
     APP_STATUS_NOT_INSTALLED = 0,
     APP_STATUS_INSTALLED = 1,
     APP_STATUS_PRIVILEGED = 2,
     APP_STATUS_CERTIFIED = 3,
 }
 #[test]
 fn bindgen_test_layout_nsIPrincipal() {
     assert_eq!(::std::mem::size_of::<nsIPrincipal>() , 8usize);
@@ -2463,17 +2463,17 @@ pub struct nsISerializable_COMTypeInfo<T
 fn bindgen_test_layout_nsISerializable() {
     assert_eq!(::std::mem::size_of::<nsISerializable>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsISerializable>() , 8usize);
 }
 impl Clone for nsISerializable {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_76449 {
+pub struct bindgen_vtable__bindgen_id_76455 {
 }
 /**
  * Class to store the wrapper for an object. This can only be used with objects
  * that only have one non-security wrapper at a time (for an XPCWrappedNative
  * this is usually ensured by setting an explicit parent in the PreCreate hook
  * for the class).
  *
  * An instance of nsWrapperCache can be gotten from an object that implements
@@ -2505,17 +2505,17 @@ pub struct bindgen_vtable__bindgen_id_76
  *
  * A number of the methods are implemented in nsWrapperCacheInlines.h because we
  * have to include some JS headers that don't play nicely with the rest of the
  * codebase. Include nsWrapperCacheInlines.h if you need to call those methods.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsWrapperCache {
-    pub vtable_: *const bindgen_vtable__bindgen_id_76449,
+    pub vtable_: *const bindgen_vtable__bindgen_id_76455,
     pub mWrapper: *mut JSObject,
     pub mFlags: nsWrapperCache_FlagsType,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct nsWrapperCache_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
@@ -2530,31 +2530,31 @@ pub type nsWrapperCache_FlagsType = u32;
    * causes between the native object and the JS object, so it is important that
    * any native object that supports preserving of its wrapper
    * traces/traverses/unlinks the cached JS object (see
    * NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER,
    * NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS and
    * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER).
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_76645 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_76651 {
     WRAPPER_BIT_PRESERVED = 1,
 }
 #[repr(u32)]
 /**
    * If this bit is set then the wrapper for the native object is not a DOM
    * binding.
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_76648 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_76654 {
     WRAPPER_IS_NOT_DOM_BINDING = 2,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_76651 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_76657 {
     kWrapperFlagsMask = 3,
 }
 #[test]
 fn bindgen_test_layout_nsWrapperCache() {
     assert_eq!(::std::mem::size_of::<nsWrapperCache>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsWrapperCache>() , 8usize);
 }
 #[repr(C)]
@@ -2621,33 +2621,33 @@ impl Clone for nsXPCOMCycleCollectionPar
 #[derive(Debug, Copy, Clone)]
 pub struct pair<_T1, _T2> {
     pub first: _T1,
     pub second: _T2,
 }
 pub type pair_first_type<_T1> = _T1;
 pub type pair_second_type<_T2> = _T2;
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_125158 {
+pub struct bindgen_vtable__bindgen_id_125164 {
 }
 /**
  * A class of objects that return source code on demand.
  *
  * When code is compiled with setSourceIsLazy(true), SpiderMonkey doesn't
  * retain the source code (and doesn't do lazy bytecode generation). If we ever
  * need the source code, say, in response to a call to Function.prototype.
  * toSource or Debugger.Source.prototype.text, then we call the 'load' member
  * function of the instance of this class that has hopefully been registered
  * with the runtime, passing the code's URL, and hope that it will be able to
  * find the source.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct SourceHook {
-    pub vtable_: *const bindgen_vtable__bindgen_id_125158,
+    pub vtable_: *const bindgen_vtable__bindgen_id_125164,
 }
 #[test]
 fn bindgen_test_layout_SourceHook() {
     assert_eq!(::std::mem::size_of::<SourceHook>() , 8usize);
     assert_eq!(::std::mem::align_of::<SourceHook>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
@@ -3620,17 +3620,17 @@ impl nsIDocument {
 pub struct nsINode {
     pub _base: EventTarget,
     pub mNodeInfo: RefPtr<NodeInfo>,
     pub mParent: *mut nsINode,
     pub mBoolFlags: u32,
     pub mNextSibling: *mut nsIContent,
     pub mPreviousSibling: *mut nsIContent,
     pub mFirstChild: *mut nsIContent,
-    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_135632,
+    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_135638,
     pub mSlots: *mut nsINode_nsSlots,
     pub mServoData: ServoCell<*mut ServoNodeData>,
 }
 pub type nsINode_BoxQuadOptions = BoxQuadOptions;
 pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions;
 pub type nsINode_DOMPoint = DOMPoint;
 pub type nsINode_DOMPointInit = DOMPointInit;
 pub type nsINode_DOMQuad = DOMQuad;
@@ -3645,37 +3645,37 @@ pub struct nsINode_COMTypeInfo<T, U> {
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 /**
    * Bit-flags to pass (or'ed together) to IsNodeOfType()
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsINode__bindgen_ty_bindgen_id_131770 {
+pub enum nsINode__bindgen_ty_bindgen_id_131776 {
     eCONTENT = 1,
     eDOCUMENT = 2,
     eATTRIBUTE = 4,
     eTEXT = 8,
     ePROCESSING_INSTRUCTION = 16,
     eCOMMENT = 32,
     eHTML_FORM_CONTROL = 64,
     eDOCUMENT_FRAGMENT = 128,
     eDATA_NODE = 256,
     eMEDIA = 512,
     eANIMATION = 1024,
     eFILTER = 2048,
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_132539 {
+pub struct bindgen_vtable__bindgen_id_132545 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsINode_nsSlots {
-    pub vtable_: *const bindgen_vtable__bindgen_id_132539,
+    pub vtable_: *const bindgen_vtable__bindgen_id_132545,
     /**
      * A list of mutation observers
      */
     pub mMutationObservers: [u64; 2usize],
     /**
      * An object implementing nsIDOMNodeList for this content (childNodes)
      * @see nsIDOMNodeList
      * @see nsGenericHTMLElement::GetChildNodes
@@ -3734,29 +3734,29 @@ pub enum nsINode_BooleanFlag {
     NodeHasRelevantHoverRules = 28,
     ElementHasWeirdParserInsertionMode = 29,
     ParserHasNotified = 30,
     MayBeApzAware = 31,
     BooleanFlagCount = 32,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsINode__bindgen_ty_bindgen_id_135632 {
+pub struct nsINode__bindgen_ty_bindgen_id_135638 {
     pub mPrimaryFrame: __BindgenUnionField<*mut nsIFrame>,
     pub mSubtreeRoot: __BindgenUnionField<*mut nsINode>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_135632() {
-    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_135632>()
+fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_135638() {
+    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_135638>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_135632>()
+    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_135638>()
                , 8usize);
 }
-impl Clone for nsINode__bindgen_ty_bindgen_id_135632 {
+impl Clone for nsINode__bindgen_ty_bindgen_id_135638 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsINode() {
     assert_eq!(::std::mem::size_of::<nsINode>() , 104usize);
     assert_eq!(::std::mem::align_of::<nsINode>() , 8usize);
 }
 #[repr(C)]
@@ -4109,33 +4109,33 @@ pub struct nsIDOMNode {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIDOMNode_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIDOMNode__bindgen_ty_bindgen_id_143750 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_143756 {
     ELEMENT_NODE = 1,
     ATTRIBUTE_NODE = 2,
     TEXT_NODE = 3,
     CDATA_SECTION_NODE = 4,
     ENTITY_REFERENCE_NODE = 5,
     ENTITY_NODE = 6,
     PROCESSING_INSTRUCTION_NODE = 7,
     COMMENT_NODE = 8,
     DOCUMENT_NODE = 9,
     DOCUMENT_TYPE_NODE = 10,
     DOCUMENT_FRAGMENT_NODE = 11,
     NOTATION_NODE = 12,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIDOMNode__bindgen_ty_bindgen_id_143969 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_143975 {
     DOCUMENT_POSITION_DISCONNECTED = 1,
     DOCUMENT_POSITION_PRECEDING = 2,
     DOCUMENT_POSITION_FOLLOWING = 4,
     DOCUMENT_POSITION_CONTAINS = 8,
     DOCUMENT_POSITION_CONTAINED_BY = 16,
     DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32,
 }
 #[test]
@@ -5254,17 +5254,17 @@ pub type PLDHashInitEntry =
 pub struct nsPtrHashKey<T> {
     pub _base: PLDHashEntryHdr,
     pub mKey: *mut T,
 }
 pub type nsPtrHashKey_KeyType<T> = *mut T;
 pub type nsPtrHashKey_KeyTypePointer<T> = *mut T;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsPtrHashKey__bindgen_ty_bindgen_id_148461 { ALLOW_MEMMOVE = 0, }
+pub enum nsPtrHashKey__bindgen_ty_bindgen_id_148467 { ALLOW_MEMMOVE = 0, }
 /**
  * A node of content in a document's content model. This interface
  * is supported by all content objects.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIContent {
     pub _base: nsINode,
@@ -5274,24 +5274,24 @@ pub type nsIContent_IMEState = IMEState;
 #[derive(Debug, Copy, Clone)]
 pub struct nsIContent_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIContent__bindgen_ty_bindgen_id_149801 {
+pub enum nsIContent__bindgen_ty_bindgen_id_149807 {
     eAllChildren = 0,
     eAllButXBL = 1,
     eSkipPlaceholderContent = 2,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIContent__bindgen_ty_bindgen_id_150037 {
+pub enum nsIContent__bindgen_ty_bindgen_id_150043 {
     ATTR_MISSING = -1,
     ATTR_VALUE_NO_MATCH = -2,
 }
 /**
    * Check whether this content node's given attribute has one of a given
    * list of values. If there is a match, we return the index in the list
    * of the first matching value. If there was no attribute at all, then
    * we return ATTR_MISSING. If there was an attribute but it didn't
@@ -5483,17 +5483,17 @@ pub struct FragmentOrElement_nsDOMSlots 
      * Holds any SMIL override style declaration for this element.
      */
     pub mSMILOverrideStyleDeclaration: RefPtr<Declaration>,
     /**
      * An object implementing nsIDOMMozNamedAttrMap for this content (attributes)
      * @see FragmentOrElement::GetAttributes
      */
     pub mAttributeMap: RefPtr<nsDOMAttributeMap>,
-    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151133,
+    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151139,
     /**
      * An object implementing the .children property for this element.
      */
     pub mChildrenList: RefPtr<nsContentList>,
     /**
      * An object implementing the .classList property for this element.
      */
     pub mClassList: RefPtr<nsDOMTokenList>,
@@ -5520,36 +5520,36 @@ pub struct FragmentOrElement_nsDOMSlots 
     pub mXBLInsertionParent: nsCOMPtr<nsIContent>,
     /**
      * Web components custom element data.
      */
     pub mCustomElementData: RefPtr<CustomElementData>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151133 {
+pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151139 {
     /**
       * The nearest enclosing content node with a binding that created us.
       * @see FragmentOrElement::GetBindingParent
       */
     pub mBindingParent: __BindgenUnionField<*mut nsIContent>,
     /**
       * The controllers of the XUL Element.
       */
     pub mControllers: __BindgenUnionField<*mut nsIControllers>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151133() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151133>()
+fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151139() {
+    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151139>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151133>()
+    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151139>()
                , 8usize);
 }
-impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151133 {
+impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_151139 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
     assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>() ,
                160usize);
     assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>() ,
                8usize);
@@ -5618,31 +5618,31 @@ pub struct nsIChannel {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIChannel_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIChannel__bindgen_ty_bindgen_id_164549 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_164555 {
     LOAD_DOCUMENT_URI = 65536,
     LOAD_RETARGETED_DOCUMENT_URI = 131072,
     LOAD_REPLACE = 262144,
     LOAD_INITIAL_DOCUMENT_URI = 524288,
     LOAD_TARGETED = 1048576,
     LOAD_CALL_CONTENT_SNIFFERS = 2097152,
     LOAD_CLASSIFY_URI = 4194304,
     LOAD_MEDIA_SNIFFER_OVERRIDES_CONTENT_TYPE = 8388608,
     LOAD_EXPLICIT_CREDENTIALS = 16777216,
     LOAD_BYPASS_SERVICE_WORKER = 33554432,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIChannel__bindgen_ty_bindgen_id_164569 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_164575 {
     DISPOSITION_INLINE = 0,
     DISPOSITION_ATTACHMENT = 1,
 }
 #[test]
 fn bindgen_test_layout_nsIChannel() {
     assert_eq!(::std::mem::size_of::<nsIChannel>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsIChannel>() , 8usize);
 }
@@ -5658,17 +5658,17 @@ pub struct nsIRequest {
 #[derive(Debug, Copy, Clone)]
 pub struct nsIRequest_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIRequest__bindgen_ty_bindgen_id_164387 {
+pub enum nsIRequest__bindgen_ty_bindgen_id_164393 {
     LOAD_REQUESTMASK = 65535,
     LOAD_NORMAL = 0,
     LOAD_BACKGROUND = 1,
     INHIBIT_PIPELINE = 64,
     INHIBIT_CACHING = 128,
     INHIBIT_PERSISTENT_CACHING = 256,
     LOAD_BYPASS_CACHE = 512,
     LOAD_FROM_CACHE = 1024,
@@ -6240,23 +6240,23 @@ pub enum nsIPresShell_IntrinsicDirty {
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsIPresShell_ReflowRootHandling {
     ePositionOrSizeChange = 0,
     eNoPositionOrSizeChange = 1,
     eInferFromBitToAdd = 2,
 }
-pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_183131 =
-    nsIPresShell__bindgen_ty_bindgen_id_183131::SCROLL_TOP;
-pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_183131 =
-    nsIPresShell__bindgen_ty_bindgen_id_183131::SCROLL_BOTTOM;
+pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_183137 =
+    nsIPresShell__bindgen_ty_bindgen_id_183137::SCROLL_TOP;
+pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_183137 =
+    nsIPresShell__bindgen_ty_bindgen_id_183137::SCROLL_BOTTOM;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_183131 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183137 {
     SCROLL_TOP = 0,
     SCROLL_BOTTOM = 100,
     SCROLL_CENTER = 50,
     SCROLL_MINIMUM = -1,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsIPresShell_WhenToScroll {
@@ -6274,17 +6274,17 @@ fn bindgen_test_layout_nsIPresShell_Scro
     assert_eq!(::std::mem::size_of::<nsIPresShell_ScrollAxis>() , 4usize);
     assert_eq!(::std::mem::align_of::<nsIPresShell_ScrollAxis>() , 4usize);
 }
 impl Clone for nsIPresShell_ScrollAxis {
     fn clone(&self) -> Self { *self }
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_183162 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183168 {
     SCROLL_FIRST_ANCESTOR_ONLY = 1,
     SCROLL_OVERFLOW_HIDDEN = 2,
     SCROLL_NO_PARENT_FRAMES = 4,
     SCROLL_SMOOTH = 8,
     SCROLL_SMOOTH_AUTO = 16,
 }
 #[repr(u32)]
 /**
@@ -6321,41 +6321,41 @@ pub enum nsIPresShell__bindgen_ty_bindge
    * or the document is in ignore viewport scrolling mode
    * (nsIPresShell::SetIgnoreViewportScrolling/IgnoringViewportScrolling).
    * @param aBackgroundColor a background color to render onto
    * @param aRenderedContext the gfxContext to render to. We render so that
    * one CSS pixel in the source document is rendered to one unit in the current
    * transform.
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_183586 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183592 {
     RENDER_IS_UNTRUSTED = 1,
     RENDER_IGNORE_VIEWPORT_SCROLLING = 2,
     RENDER_CARET = 4,
     RENDER_USE_WIDGET_LAYERS = 8,
     RENDER_ASYNC_DECODE_IMAGES = 16,
     RENDER_DOCUMENT_RELATIVE = 32,
     RENDER_DRAWWINDOW_NOT_FLUSHING = 64,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_183604 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183610 {
     RENDER_IS_IMAGE = 256,
     RENDER_AUTO_SCALE = 128,
 }
 #[repr(u32)]
 /**
    * Add a solid color item to the bottom of aList with frame aFrame and bounds
    * aBounds. Checks first if this needs to be done by checking if aFrame is a
    * canvas frame (if the FORCE_DRAW flag is passed then this check is skipped).
    * aBackstopColor is composed behind the background color of the canvas, it is
    * transparent by default.
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_183720 { FORCE_DRAW = 1, }
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183726 { FORCE_DRAW = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIPresShell_PointerCaptureInfo {
     pub mPendingContent: nsCOMPtr<nsIContent>,
     pub mOverrideContent: nsCOMPtr<nsIContent>,
 }
 #[test]
 fn bindgen_test_layout_nsIPresShell_PointerCaptureInfo() {
@@ -6723,77 +6723,77 @@ impl Clone for TextOrElementOrDocument {
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct DOMPointInit {
     pub _address: u8,
 }
 impl Clone for DOMPointInit {
     fn clone(&self) -> Self { *self }
 }
-pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_LISTENERMANAGER;
-pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_PROPERTIES;
-pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_IS_ANONYMOUS_ROOT;
-pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_FORCE_XBL_BINDINGS;
-pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_MAY_BE_IN_BINDING_MNGR;
-pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_IS_EDITABLE;
-pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_MAY_HAVE_CLASS;
-pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_IS_IN_SHADOW_TREE;
-pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_EMPTY_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_SLOW_SELECTOR;
-pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_EDGE_CHILD_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_185106
+pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_LISTENERMANAGER;
+pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_PROPERTIES;
+pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_IS_ANONYMOUS_ROOT;
+pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_FORCE_XBL_BINDINGS;
+pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_MAY_BE_IN_BINDING_MNGR;
+pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_IS_EDITABLE;
+pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_MAY_HAVE_CLASS;
+pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_IS_IN_SHADOW_TREE;
+pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_EMPTY_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_SLOW_SELECTOR;
+pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_EDGE_CHILD_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_185112
           =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_ALL_SELECTOR_FLAGS;
-pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_NEEDS_FRAME;
-pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_DESCENDANTS_NEED_FRAMES;
-pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_ACCESSKEY;
-pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_DIRECTION_RTL;
-pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_HAS_DIRECTION_LTR;
-pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_ALL_DIRECTION_FLAGS;
-pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_CHROME_ONLY_ACCESS;
-pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_185106
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_ALL_SELECTOR_FLAGS;
+pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_NEEDS_FRAME;
+pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_DESCENDANTS_NEED_FRAMES;
+pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_ACCESSKEY;
+pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_DIRECTION_RTL;
+pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_HAS_DIRECTION_LTR;
+pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_ALL_DIRECTION_FLAGS;
+pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_CHROME_ONLY_ACCESS;
+pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_185112
           =
-    _bindgen_ty_bindgen_id_185106::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_185106 =
-    _bindgen_ty_bindgen_id_185106::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    _bindgen_ty_bindgen_id_185112::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_185112 =
+    _bindgen_ty_bindgen_id_185112::NODE_TYPE_SPECIFIC_BITS_OFFSET;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum _bindgen_ty_bindgen_id_185106 {
+pub enum _bindgen_ty_bindgen_id_185112 {
     NODE_HAS_LISTENERMANAGER = 4,
     NODE_HAS_PROPERTIES = 8,
     NODE_IS_ANONYMOUS_ROOT = 16,
     NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE = 32,
     NODE_IS_NATIVE_ANONYMOUS_ROOT = 64,
     NODE_FORCE_XBL_BINDINGS = 128,
     NODE_MAY_BE_IN_BINDING_MNGR = 256,
     NODE_IS_EDITABLE = 512,
@@ -6841,17 +6841,17 @@ pub struct nsITimer {
 #[derive(Debug, Copy, Clone)]
 pub struct nsITimer_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsITimer__bindgen_ty_bindgen_id_197557 {
+pub enum nsITimer__bindgen_ty_bindgen_id_197563 {
     TYPE_ONE_SHOT = 0,
     TYPE_REPEATING_SLACK = 1,
     TYPE_REPEATING_PRECISE = 2,
     TYPE_REPEATING_PRECISE_CAN_SKIP = 3,
 }
 #[test]
 fn bindgen_test_layout_nsITimer() {
     assert_eq!(::std::mem::size_of::<nsITimer>() , 8usize);
@@ -6867,17 +6867,17 @@ impl Clone for nsITimer {
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsExpirationState {
     pub _bitfield_1: u32,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsExpirationState__bindgen_ty_bindgen_id_198033 {
+pub enum nsExpirationState__bindgen_ty_bindgen_id_198039 {
     NOT_TRACKED = 15,
     MAX_INDEX_IN_GENERATION = 268435455,
 }
 #[test]
 fn bindgen_test_layout_nsExpirationState() {
     assert_eq!(::std::mem::size_of::<nsExpirationState>() , 4usize);
     assert_eq!(::std::mem::align_of::<nsExpirationState>() , 4usize);
 }
@@ -6942,29 +6942,29 @@ pub struct imgIRequest {
 #[derive(Debug, Copy, Clone)]
 pub struct imgIRequest_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum imgIRequest__bindgen_ty_bindgen_id_199543 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_199549 {
     STATUS_NONE = 0,
     STATUS_SIZE_AVAILABLE = 1,
     STATUS_LOAD_COMPLETE = 2,
     STATUS_ERROR = 4,
     STATUS_FRAME_COMPLETE = 8,
     STATUS_DECODE_COMPLETE = 16,
     STATUS_IS_ANIMATED = 32,
     STATUS_HAS_TRANSPARENCY = 64,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum imgIRequest__bindgen_ty_bindgen_id_199623 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_199629 {
     CORS_NONE = 1,
     CORS_ANONYMOUS = 2,
     CORS_USE_CREDENTIALS = 3,
 }
 #[test]
 fn bindgen_test_layout_imgIRequest() {
     assert_eq!(::std::mem::size_of::<imgIRequest>() , 8usize);
     assert_eq!(::std::mem::align_of::<imgIRequest>() , 8usize);
@@ -7238,22 +7238,22 @@ pub struct URLValue {
     pub _base: URLValueData,
 }
 #[test]
 fn bindgen_test_layout_URLValue() {
     assert_eq!(::std::mem::size_of::<URLValue>() , 64usize);
     assert_eq!(::std::mem::align_of::<URLValue>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_217922 {
+pub struct bindgen_vtable__bindgen_id_217928 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct URLValueData {
-    pub vtable_: *const bindgen_vtable__bindgen_id_217922,
+    pub vtable_: *const bindgen_vtable__bindgen_id_217928,
     pub mRefCnt: ThreadSafeAutoRefCnt,
     pub mURI: nsMainThreadPtrHandle<nsIURI>,
     pub mBaseURI: nsMainThreadPtrHandle<nsIURI>,
     pub mString: RefPtr<nsStringBuffer>,
     pub mReferrer: nsMainThreadPtrHandle<nsIURI>,
     pub mOriginPrincipal: nsMainThreadPtrHandle<nsIPrincipal>,
     pub mURIResolved: bool,
     pub mIsLocalRef: bool,
@@ -7454,17 +7454,17 @@ pub struct nsPresArena_FreeList {
     pub mEntrySize: usize,
     pub mEntriesEverAllocated: usize,
     pub mKey: nsPresArena_FreeList_KeyTypePointer,
 }
 pub type nsPresArena_FreeList_KeyType = u32;
 pub type nsPresArena_FreeList_KeyTypePointer = *const ::std::os::raw::c_void;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_220074 {
+pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_220089 {
     ALLOW_MEMMOVE = 0,
 }
 #[test]
 fn bindgen_test_layout_nsPresArena_FreeList() {
     assert_eq!(::std::mem::size_of::<nsPresArena_FreeList>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsPresArena_FreeList>() , 8usize);
 }
 #[test]
@@ -7481,17 +7481,17 @@ pub struct imgINotificationObserver {
 #[derive(Debug, Copy, Clone)]
 pub struct imgINotificationObserver_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum imgINotificationObserver__bindgen_ty_bindgen_id_220221 {
+pub enum imgINotificationObserver__bindgen_ty_bindgen_id_220236 {
     SIZE_AVAILABLE = 1,
     FRAME_UPDATE = 2,
     FRAME_COMPLETE = 3,
     LOAD_COMPLETE = 4,
     DECODE_COMPLETE = 5,
     DISCARD = 6,
     UNLOCKED_DRAW = 7,
     IS_ANIMATED = 8,
@@ -7730,17 +7730,17 @@ pub struct gfxFontFeatureValueSet_Featur
     pub mValues: nsTArray<::std::os::raw::c_uint>,
 }
 pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyType =
     *const gfxFontFeatureValueSet_FeatureValueHashKey;
 pub type gfxFontFeatureValueSet_FeatureValueHashEntry_KeyTypePointer =
     *const gfxFontFeatureValueSet_FeatureValueHashKey;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_221465
+pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_221480
          {
     ALLOW_MEMMOVE = 1,
 }
 #[test]
 fn bindgen_test_layout_gfxFontFeatureValueSet_FeatureValueHashEntry() {
     assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>()
                , 56usize);
     assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet_FeatureValueHashEntry>()
@@ -8069,33 +8069,33 @@ pub enum nsStyleUnit {
     eStyleUnit_FlexFraction = 16,
     eStyleUnit_Coord = 20,
     eStyleUnit_Integer = 30,
     eStyleUnit_Enumerated = 32,
     eStyleUnit_Calc = 40,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct _bindgen_ty_bindgen_id_222070 {
+pub struct _bindgen_ty_bindgen_id_222085 {
     pub mInt: __BindgenUnionField<i32>,
     pub mFloat: __BindgenUnionField<f32>,
     pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout__bindgen_ty_bindgen_id_222070() {
-    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_222070>() ,
+fn bindgen_test_layout__bindgen_ty_bindgen_id_222085() {
+    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_222085>() ,
                8usize);
-    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_222070>() ,
+    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_222085>() ,
                8usize);
 }
-impl Clone for _bindgen_ty_bindgen_id_222070 {
-    fn clone(&self) -> Self { *self }
-}
-pub type nsStyleUnion = _bindgen_ty_bindgen_id_222070;
+impl Clone for _bindgen_ty_bindgen_id_222085 {
+    fn clone(&self) -> Self { *self }
+}
+pub type nsStyleUnion = _bindgen_ty_bindgen_id_222085;
 /**
  * Class that hold a single size specification used by the style
  * system.  The size specification consists of two parts -- a number
  * and a unit.  The number is an integer, a floating point value, an
  * nscoord, or undefined, and the unit is an nsStyleUnit.  Checking
  * the unit is a must before asking for the value in any particular
  * form.
  */
@@ -9152,34 +9152,34 @@ fn bindgen_test_layout_imgRequestProxy_i
                8usize);
 }
 #[test]
 fn bindgen_test_layout_imgRequestProxy() {
     assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize);
     assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_230955 {
+pub struct bindgen_vtable__bindgen_id_230979 {
 }
 /**
  * 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 bindgen_vtable__bindgen_id_230955,
+    pub vtable_: *const bindgen_vtable__bindgen_id_230979,
     pub _base: u64,
 }
 #[test]
 fn bindgen_test_layout_IProgressObserver() {
     assert_eq!(::std::mem::size_of::<IProgressObserver>() , 16usize);
     assert_eq!(::std::mem::align_of::<IProgressObserver>() , 8usize);
 }
 #[repr(C)]
@@ -9191,17 +9191,17 @@ pub struct nsISupportsPriority {
 #[derive(Debug, Copy, Clone)]
 pub struct nsISupportsPriority_COMTypeInfo<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsISupportsPriority__bindgen_ty_bindgen_id_231031 {
+pub enum nsISupportsPriority__bindgen_ty_bindgen_id_231055 {
     PRIORITY_HIGHEST = -20,
     PRIORITY_HIGH = -10,
     PRIORITY_NORMAL = 0,
     PRIORITY_LOW = 10,
     PRIORITY_LOWEST = 20,
 }
 #[test]
 fn bindgen_test_layout_nsISupportsPriority() {
@@ -9626,33 +9626,33 @@ pub type nsCSSValueFloatColor_HasThreadS
 fn bindgen_test_layout_nsCSSValueFloatColor() {
     assert_eq!(::std::mem::size_of::<nsCSSValueFloatColor>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueFloatColor>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValue {
     pub mUnit: nsCSSUnit,
-    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_234034,
+    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_234058,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValue_Array {
     pub mRefCnt: usize,
     pub mCount: usize,
     pub mArray: [nsCSSValue; 1usize],
 }
 #[test]
 fn bindgen_test_layout_nsCSSValue_Array() {
     assert_eq!(::std::mem::size_of::<nsCSSValue_Array>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsCSSValue_Array>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsCSSValue__bindgen_ty_bindgen_id_234034 {
+pub struct nsCSSValue__bindgen_ty_bindgen_id_234058 {
     pub mInt: __BindgenUnionField<i32>,
     pub mFloat: __BindgenUnionField<f32>,
     pub mString: __BindgenUnionField<*mut nsStringBuffer>,
     pub mColor: __BindgenUnionField<nscolor>,
     pub mArray: __BindgenUnionField<*mut nsCSSValue_Array>,
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub mImage: __BindgenUnionField<*mut ImageValue>,
     pub mGridTemplateAreas: __BindgenUnionField<*mut GridTemplateAreasValue>,
@@ -9667,23 +9667,23 @@ pub struct nsCSSValue__bindgen_ty_bindge
     pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>,
     pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>,
     pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>,
     pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
     pub mComplexColor: __BindgenUnionField<*mut ComplexColorValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_234034() {
-    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_234034>()
+fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_234058() {
+    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_234058>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_234034>()
+    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_234058>()
                , 8usize);
 }
-impl Clone for nsCSSValue__bindgen_ty_bindgen_id_234034 {
+impl Clone for nsCSSValue__bindgen_ty_bindgen_id_234058 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsCSSValue() {
     assert_eq!(::std::mem::size_of::<nsCSSValue>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsCSSValue>() , 8usize);
 }
 #[repr(C)]
@@ -9694,22 +9694,22 @@ pub struct nsCSSValueGradientStop {
     pub mIsInterpolationHint: bool,
 }
 #[test]
 fn bindgen_test_layout_nsCSSValueGradientStop() {
     assert_eq!(::std::mem::size_of::<nsCSSValueGradientStop>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueGradientStop>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_234242 {
+pub struct bindgen_vtable__bindgen_id_234266 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct CounterStyle {
-    pub vtable_: *const bindgen_vtable__bindgen_id_234242,
+    pub vtable_: *const bindgen_vtable__bindgen_id_234266,
     pub mStyle: i32,
 }
 #[test]
 fn bindgen_test_layout_CounterStyle() {
     assert_eq!(::std::mem::size_of::<CounterStyle>() , 16usize);
     assert_eq!(::std::mem::align_of::<CounterStyle>() , 8usize);
 }
 impl Clone for CounterStyle {
@@ -9853,16 +9853,64 @@ pub struct nsStyleGradient {
     pub mRefCnt: ThreadSafeAutoRefCnt,
 }
 pub type nsStyleGradient_HasThreadSafeRefCnt = TrueType;
 #[test]
 fn bindgen_test_layout_nsStyleGradient() {
     assert_eq!(::std::mem::size_of::<nsStyleGradient>() , 104usize);
     assert_eq!(::std::mem::align_of::<nsStyleGradient>() , 8usize);
 }
+/**
+ * A wrapper for an imgRequestProxy that supports off-main-thread creation
+ * and equality comparison.
+ *
+ * An nsStyleImageRequest can be created in two ways:
+ *
+ * 1. Using the constructor that takes an imgRequestProxy.  This must
+ *    be called from the main thread.  The nsStyleImageRequest is
+ *    immediately considered "resolved", and the get() method that
+ *    returns the imgRequestProxy can be called.
+ *
+ * 2. Using the constructor that takes the URL, base URI, referrer
+ *    and principal that can be used to inititiate an image load and
+ *    produce an imgRequestProxy later.  This can be called from
+ *    any thread.  The nsStyleImageRequest is not considered "resolved"
+ *    at this point, and the Resolve() method must be called later
+ *    to initiate the image load and make calls to get() valid.
+ *
+ * Calls to TrackImage(), UntrackImage(), LockImage(), UnlockImage() and
+ * RequestDiscard() are made to the imgRequestProxy as appropriate, according
+ * to the mode flags passed in to the constructor.
+ *
+ * The main thread constructor takes a pointer to the css::ImageValue that
+ * is the specified url() value, while the off-main-thread constructor
+ * creates a new css::ImageValue to represent the url() information passed
+ * to the constructor.  This ImageValue is held on to for the comparisons done
+ * in DefinitelyEquals(), so that we don't need to call into the non-OMT-safe
+ * imgRequestProxy::Equals().
+ */
+#[repr(C)]
+#[derive(Debug)]
+pub struct nsStyleImageRequest {
+    pub mRefCnt: ThreadSafeAutoRefCnt,
+    pub mRequestProxy: RefPtr<imgRequestProxy>,
+    pub mImageValue: RefPtr<ImageValue>,
+    pub mImageTracker: RefPtr<ImageTracker>,
+    pub mModeFlags: nsStyleImageRequest_Mode,
+    pub mResolved: bool,
+}
+#[repr(u8)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum nsStyleImageRequest_Mode { Track = 1, Lock = 2, Discard = 4, }
+pub type nsStyleImageRequest_HasThreadSafeRefCnt = TrueType;
+#[test]
+fn bindgen_test_layout_nsStyleImageRequest() {
+    assert_eq!(::std::mem::size_of::<nsStyleImageRequest>() , 40usize);
+    assert_eq!(::std::mem::align_of::<nsStyleImageRequest>() , 8usize);
+}
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsStyleImageType {
     eStyleImageType_Null = 0,
     eStyleImageType_Image = 1,
     eStyleImageType_Gradient = 2,
     eStyleImageType_Element = 3,
 }
@@ -9888,35 +9936,35 @@ fn bindgen_test_layout_CachedBorderImage
  * image of type (1)).
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleImage {
     pub mCachedBIData: UniquePtr<CachedBorderImageData,
                                  DefaultDelete<CachedBorderImageData>>,
     pub mType: nsStyleImageType,
-    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_236142,
+    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_236267,
     pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleImage__bindgen_ty_bindgen_id_236142 {
-    pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
+pub struct nsStyleImage__bindgen_ty_bindgen_id_236267 {
+    pub mImage: __BindgenUnionField<*mut nsStyleImageRequest>,
     pub mGradient: __BindgenUnionField<*mut nsStyleGradient>,
     pub mElementId: __BindgenUnionField<*mut u16>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_236142() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_236142>()
+fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_236267() {
+    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_236267>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_236142>()
+    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_236267>()
                , 8usize);
 }
-impl Clone for nsStyleImage__bindgen_ty_bindgen_id_236142 {
+impl Clone for nsStyleImage__bindgen_ty_bindgen_id_236267 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleImage() {
     assert_eq!(::std::mem::size_of::<nsStyleImage>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsStyleImage>() , 8usize);
 }
 #[repr(C)]
@@ -9957,17 +10005,17 @@ pub struct nsStyleImageLayers {
     pub mSizeCount: u32,
     pub mMaskModeCount: u32,
     pub mBlendModeCount: u32,
     pub mCompositeCount: u32,
     pub mLayers: nsStyleAutoArray<nsStyleImageLayers_Layer>,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_236195 {
+pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_236329 {
     shorthand = 0,
     color = 1,
     image = 2,
     repeat = 3,
     positionX = 4,
     positionY = 5,
     clip = 6,
     origin = 7,
@@ -10148,55 +10196,55 @@ pub struct nsStyleBorder {
     pub mBorderImageWidth: nsStyleSides,
     pub mBorderImageOutset: nsStyleSides,
     pub mBorderImageFill: u8,
     pub mBorderImageRepeatH: u8,
     pub mBorderImageRepeatV: u8,
     pub mFloatEdge: StyleFloatEdge,
     pub mBoxDecorationBreak: StyleBoxDecorationBreak,
     pub mBorderStyle: [u8; 4usize],
-    pub __bindgen_anon_1: nsStyleBorder__bindgen_ty_bindgen_id_236866,
+    pub __bindgen_anon_1: nsStyleBorder__bindgen_ty_bindgen_id_237009,
     pub mComputedBorder: nsMargin,
     pub mBorder: nsMargin,
     pub mTwipsPerPixel: nscoord,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_236866 {
-    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_236866__bindgen_ty_bindgen_id_236867>,
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_237009 {
+    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_237009__bindgen_ty_bindgen_id_237010>,
     pub mBorderColor: __BindgenUnionField<[StyleComplexColor; 4usize]>,
     pub bindgen_union_field: [u32; 8usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_236866__bindgen_ty_bindgen_id_236867 {
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_237009__bindgen_ty_bindgen_id_237010 {
     pub mBorderTopColor: StyleComplexColor,
     pub mBorderRightColor: StyleComplexColor,
     pub mBorderBottomColor: StyleComplexColor,
     pub mBorderLeftColor: StyleComplexColor,
 }
 #[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_236866__bindgen_ty_bindgen_id_236867() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_236866__bindgen_ty_bindgen_id_236867>()
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_237009__bindgen_ty_bindgen_id_237010() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_237009__bindgen_ty_bindgen_id_237010>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_236866__bindgen_ty_bindgen_id_236867>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_237009__bindgen_ty_bindgen_id_237010>()
                , 4usize);
 }
 impl Clone for
- nsStyleBorder__bindgen_ty_bindgen_id_236866__bindgen_ty_bindgen_id_236867 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_236866() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_236866>()
+ nsStyleBorder__bindgen_ty_bindgen_id_237009__bindgen_ty_bindgen_id_237010 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_237009() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_237009>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_236866>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_237009>()
                , 4usize);
 }
-impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_236866 {
+impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_237009 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleBorder() {
     assert_eq!(::std::mem::size_of::<nsStyleBorder>() , 312usize);
     assert_eq!(::std::mem::align_of::<nsStyleBorder>() , 8usize);
 }
 #[repr(C)]
@@ -10493,17 +10541,17 @@ fn bindgen_test_layout_nsStyleImageOrien
 }
 impl Clone for nsStyleImageOrientation {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsTimingFunction {
     pub mType: nsTimingFunction_Type,
-    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_237826,
+    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_238014,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Type {
     Ease = 0,
     Linear = 1,
     EaseIn = 2,
     EaseOut = 3,
@@ -10512,66 +10560,66 @@ pub enum nsTimingFunction_Type {
     StepEnd = 6,
     CubicBezier = 7,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_237826 {
-    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237827>,
-    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237838>,
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_238014 {
+    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238015>,
+    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238026>,
     pub bindgen_union_field: [u32; 4usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237827 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238015 {
     pub mX1: f32,
     pub mY1: f32,
     pub mX2: f32,
     pub mY2: f32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237827() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237827>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238015() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238015>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237827>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238015>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237827
+ nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238015
  {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237838 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238026 {
     pub mSteps: u32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237838() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237838>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238026() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238026>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237838>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238026>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_237826__bindgen_ty_bindgen_id_237838
+ nsTimingFunction__bindgen_ty_bindgen_id_238014__bindgen_ty_bindgen_id_238026
  {
     fn clone(&self) -> Self { *self }
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_237826() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_237826>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_238014() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_238014>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_237826>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_238014>()
                , 4usize);
 }
-impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_237826 {
+impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_238014 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsTimingFunction() {
     assert_eq!(::std::mem::size_of::<nsTimingFunction>() , 20usize);
     assert_eq!(::std::mem::align_of::<nsTimingFunction>() , 4usize);
 }
 impl Clone for nsTimingFunction {
@@ -10622,23 +10670,23 @@ pub type StyleBasicShape_HasThreadSafeRe
 #[test]
 fn bindgen_test_layout_StyleBasicShape() {
     assert_eq!(::std::mem::size_of::<StyleBasicShape>() , 120usize);
     assert_eq!(::std::mem::align_of::<StyleBasicShape>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct StyleShapeSource<ReferenceBox> {
-    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_238209<ReferenceBox>,
+    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_238397<ReferenceBox>,
     pub mType: StyleShapeSourceType,
     pub mReferenceBox: ReferenceBox,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct StyleShapeSource__bindgen_ty_bindgen_id_238209<ReferenceBox> {
+pub struct StyleShapeSource__bindgen_ty_bindgen_id_238397<ReferenceBox> {
     pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>,
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
     pub _phantom_0: ::std::marker::PhantomData<ReferenceBox>,
 }
 pub type StyleClipPath = StyleShapeSource<StyleClipPathGeometryBox>;
 pub type StyleShapeOutside = StyleShapeSource<StyleShapeOutsideShapeBox>;
 #[repr(C)]
@@ -10680,34 +10728,34 @@ pub enum nsStyleContentType {
     eStyleContentType_NoCloseQuote = 43,
     eStyleContentType_AltContent = 50,
     eStyleContentType_Uninitialized = 51,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleContentData {
     pub mType: nsStyleContentType,
-    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_238293,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleContentData__bindgen_ty_bindgen_id_238293 {
+    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_238499,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleContentData__bindgen_ty_bindgen_id_238499 {
     pub mString: __BindgenUnionField<*mut u16>,
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     pub mCounters: __BindgenUnionField<*mut nsCSSValue_Array>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_238293() {
-    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_238293>()
+fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_238499() {
+    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_238499>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_238293>()
+    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_238499>()
                , 8usize);
 }
-impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_238293 {
+impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_238499 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleContentData() {
     assert_eq!(::std::mem::size_of::<nsStyleContentData>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleContentData>() , 8usize);
 }
 #[repr(C)]
@@ -10820,35 +10868,35 @@ pub enum nsStyleSVGPaintType {
     eStyleSVGPaintType_Color = 2,
     eStyleSVGPaintType_Server = 3,
     eStyleSVGPaintType_ContextFill = 4,
     eStyleSVGPaintType_ContextStroke = 5,
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleSVGPaint {
-    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_238738,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_238989,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_238738 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_238989 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_238738() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238738>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_238989() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238989>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238738>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238989>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_238738 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_238989 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleSVGPaint() {
     assert_eq!(::std::mem::size_of::<nsStyleSVGPaint>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVGPaint>() , 8usize);
 }
 #[repr(C)]
@@ -10873,17 +10921,17 @@ pub struct nsStyleSVG {
     pub mShapeRendering: u8,
     pub mStrokeLinecap: u8,
     pub mStrokeLinejoin: u8,
     pub mTextAnchor: u8,
     pub mContextFlags: u8,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleSVG__bindgen_ty_bindgen_id_238898 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_239158 {
     FILL_OPACITY_SOURCE_MASK = 3,
     STROKE_OPACITY_SOURCE_MASK = 12,
     STROKE_DASHARRAY_CONTEXT = 16,
     STROKE_DASHOFFSET_CONTEXT = 32,
     STROKE_WIDTH_CONTEXT = 64,
     FILL_OPACITY_SOURCE_SHIFT = 0,
     STROKE_OPACITY_SOURCE_SHIFT = 2,
 }
@@ -10892,33 +10940,33 @@ fn bindgen_test_layout_nsStyleSVG() {
     assert_eq!(::std::mem::size_of::<nsStyleSVG>() , 120usize);
     assert_eq!(::std::mem::align_of::<nsStyleSVG>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleFilter {
     pub mType: i32,
     pub mFilterParameter: nsStyleCoord,
-    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_238964,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_238964 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_239233,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_239233 {
     pub mURL: __BindgenUnionField<*mut URLValue>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_238964() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_238964>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_239233() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_239233>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_238964>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_239233>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_238964 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_239233 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleFilter() {
     assert_eq!(::std::mem::size_of::<nsStyleFilter>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsStyleFilter>() , 8usize);
 }
 #[repr(C)]