Regenerate bindings. draft
authorCameron McCormack <cam@mcc.id.au>
Sun, 16 Oct 2016 11:03:43 +0800
changeset 425807 1ac6af7a64b26bed2506ce204821c92e19844917
parent 425806 5787d0c9abc29f0647a3bb1082ed6eaaab5305a8
child 425808 1e9c6e1751dcc581270a3eef051f1fdcba7c1bf1
push id32513
push userbmo:cam@mcc.id.au
push dateMon, 17 Oct 2016 05:26:21 +0000
milestone52.0a1
Regenerate bindings. MozReview-Commit-ID: JqgkZ4zjQER
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/gecko_bindings/bindings.rs
+++ b/servo/components/style/gecko_bindings/bindings.rs
@@ -457,16 +457,31 @@ extern "C" {
                                     other: *const nsStyleImage);
 }
 extern "C" {
     pub fn Gecko_CreateGradient(shape: u8, size: u8, repeating: bool,
                                 legacy_syntax: bool, stops: u32)
      -> *mut nsStyleGradient;
 }
 extern "C" {
+    pub fn Gecko_SetListStyleImageNone(style_struct: *mut nsStyleList);
+}
+extern "C" {
+    pub fn Gecko_SetListStyleImage(style_struct: *mut nsStyleList,
+                                   string_bytes: *const u8,
+                                   string_length: u32,
+                                   base_uri: *mut ThreadSafeURIHolder,
+                                   referrer: *mut ThreadSafeURIHolder,
+                                   principal: *mut ThreadSafePrincipalHolder);
+}
+extern "C" {
+    pub fn Gecko_CopyListStyleImageFrom(dest: *mut nsStyleList,
+                                        src: *const nsStyleList);
+}
+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" {
     pub fn Gecko_CopyMozBindingFrom(des: *mut nsStyleDisplay,
--- a/servo/components/style/gecko_bindings/structs_debug.rs
+++ b/servo/components/style/gecko_bindings/structs_debug.rs
@@ -1618,40 +1618,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_67765>,
-    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67772>,
+    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67760>,
+    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_67767>,
     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_67765 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_67760 {
     pub _bitfield_1: u64,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67765() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67765>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67760() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67760>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67765>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67760>()
                , 8usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_67765 {
-    fn clone(&self) -> Self { *self }
-}
-impl jsval_layout__bindgen_ty_bindgen_id_67765 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_67760 {
+    fn clone(&self) -> Self { *self }
+}
+impl jsval_layout__bindgen_ty_bindgen_id_67760 {
     #[inline]
     pub fn payload47(&self) -> u64 {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (140737488355327usize as u64)) >>
                                        0u32) as u64)
         }
     }
@@ -1674,46 +1674,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_67772 {
-    pub payload: jsval_layout__bindgen_ty_bindgen_id_67772__bindgen_ty_bindgen_id_67773,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_67772__bindgen_ty_bindgen_id_67773 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_67767 {
+    pub payload: jsval_layout__bindgen_ty_bindgen_id_67767__bindgen_ty_bindgen_id_67768,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct jsval_layout__bindgen_ty_bindgen_id_67767__bindgen_ty_bindgen_id_67768 {
     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_67772__bindgen_ty_bindgen_id_67773() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67772__bindgen_ty_bindgen_id_67773>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67767__bindgen_ty_bindgen_id_67768() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67767__bindgen_ty_bindgen_id_67768>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67772__bindgen_ty_bindgen_id_67773>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67767__bindgen_ty_bindgen_id_67768>()
                , 4usize);
 }
 impl Clone for
- jsval_layout__bindgen_ty_bindgen_id_67772__bindgen_ty_bindgen_id_67773 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67772() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67772>()
+ jsval_layout__bindgen_ty_bindgen_id_67767__bindgen_ty_bindgen_id_67768 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_67767() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_67767>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67772>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_67767>()
                , 4usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_67772 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_67767 {
     fn clone(&self) -> Self { *self }
 }
 impl Clone for jsval_layout {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsAString_internal {
@@ -1737,17 +1737,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_69642 {
+pub enum nsAString_internal__bindgen_ty_bindgen_id_69637 {
     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,
@@ -1774,22 +1774,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_70252 {
+pub struct bindgen_vtable__bindgen_id_70247 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_70252,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70247,
 }
 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 {
@@ -1821,17 +1821,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_71482 {
+pub enum nsACString_internal__bindgen_ty_bindgen_id_71477 {
     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,
@@ -1883,45 +1883,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_72034 {
+pub struct bindgen_vtable__bindgen_id_72029 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_72034,
+    pub vtable_: *const bindgen_vtable__bindgen_id_72029,
 }
 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_72338 {
+pub struct bindgen_vtable__bindgen_id_72333 {
 }
 /**
  * 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_72338,
+    pub vtable_: *const bindgen_vtable__bindgen_id_72333,
 }
 #[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>,
 }
@@ -1929,25 +1929,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_72622 {
+pub struct bindgen_vtable__bindgen_id_72617 {
 }
 /**
  * Participant implementation classes
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCycleCollectionParticipant {
-    pub vtable_: *const bindgen_vtable__bindgen_id_72622,
+    pub vtable_: *const bindgen_vtable__bindgen_id_72617,
     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);
@@ -2248,17 +2248,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_80493<CleanupPolicy>,
+    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_80488<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;
@@ -2278,17 +2278,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_80493<CleanupPolicy> {
+pub struct TErrorResult__bindgen_ty_bindgen_id_80488<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)]
@@ -2438,17 +2438,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_81732 {
+pub enum nsIPrincipal__bindgen_ty_bindgen_id_81727 {
     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);
@@ -2473,17 +2473,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_81900 {
+pub struct bindgen_vtable__bindgen_id_81895 {
 }
 /**
  * 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
@@ -2515,17 +2515,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_81900,
+    pub vtable_: *const bindgen_vtable__bindgen_id_81895,
     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>,
@@ -2540,31 +2540,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_82107 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_82102 {
     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_82110 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_82105 {
     WRAPPER_IS_NOT_DOM_BINDING = 2,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_82113 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_82108 {
     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)]
@@ -2631,33 +2631,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_130668 {
+pub struct bindgen_vtable__bindgen_id_130663 {
 }
 /**
  * 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_130668,
+    pub vtable_: *const bindgen_vtable__bindgen_id_130663,
 }
 #[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_141144,
+    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_141139,
     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_137269 {
+pub enum nsINode__bindgen_ty_bindgen_id_137264 {
     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_138038 {
+pub struct bindgen_vtable__bindgen_id_138033 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsINode_nsSlots {
-    pub vtable_: *const bindgen_vtable__bindgen_id_138038,
+    pub vtable_: *const bindgen_vtable__bindgen_id_138033,
     /**
      * 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_141144 {
+pub struct nsINode__bindgen_ty_bindgen_id_141139 {
     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_141144() {
-    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_141144>()
+fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_141139() {
+    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_141139>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_141144>()
+    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_141139>()
                , 8usize);
 }
-impl Clone for nsINode__bindgen_ty_bindgen_id_141144 {
+impl Clone for nsINode__bindgen_ty_bindgen_id_141139 {
     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)]
@@ -4053,33 +4053,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_149069 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_149064 {
     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_149288 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_149283 {
     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]
@@ -5191,17 +5191,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_153818 { ALLOW_MEMMOVE = 0, }
+pub enum nsPtrHashKey__bindgen_ty_bindgen_id_153813 { 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,
@@ -5211,24 +5211,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_155158 {
+pub enum nsIContent__bindgen_ty_bindgen_id_155153 {
     eAllChildren = 0,
     eAllButXBL = 1,
     eSkipPlaceholderContent = 2,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIContent__bindgen_ty_bindgen_id_155394 {
+pub enum nsIContent__bindgen_ty_bindgen_id_155389 {
     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
@@ -5425,17 +5425,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_156527,
+    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156522,
     /**
      * 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>,
@@ -5462,36 +5462,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_156527 {
+pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156522 {
     /**
       * 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_156527() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156527>()
+fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156522() {
+    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156522>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156527>()
+    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156522>()
                , 8usize);
 }
-impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156527 {
+impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_156522 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
     assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>() ,
                168usize);
     assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>() ,
                8usize);
@@ -5560,31 +5560,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_170455 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_170450 {
     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_170475 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_170470 {
     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);
 }
@@ -5600,17 +5600,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_170293 {
+pub enum nsIRequest__bindgen_ty_bindgen_id_170288 {
     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,
@@ -6163,23 +6163,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_188747 =
-    nsIPresShell__bindgen_ty_bindgen_id_188747::SCROLL_TOP;
-pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_188747 =
-    nsIPresShell__bindgen_ty_bindgen_id_188747::SCROLL_BOTTOM;
+pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_188742 =
+    nsIPresShell__bindgen_ty_bindgen_id_188742::SCROLL_TOP;
+pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_188742 =
+    nsIPresShell__bindgen_ty_bindgen_id_188742::SCROLL_BOTTOM;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_188747 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_188742 {
     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 {
@@ -6197,17 +6197,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_188778 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_188773 {
     SCROLL_FIRST_ANCESTOR_ONLY = 1,
     SCROLL_OVERFLOW_HIDDEN = 2,
     SCROLL_NO_PARENT_FRAMES = 4,
     SCROLL_SMOOTH = 8,
     SCROLL_SMOOTH_AUTO = 16,
 }
 #[repr(u32)]
 /**
@@ -6244,41 +6244,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_189233 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189228 {
     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_189251 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189246 {
     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_189374 { FORCE_DRAW = 1, }
+pub enum nsIPresShell__bindgen_ty_bindgen_id_189369 { FORCE_DRAW = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIPresShell_PointerCaptureInfo {
     pub mPendingContent: nsCOMPtr<nsIContent>,
     pub mOverrideContent: nsCOMPtr<nsIContent>,
     pub mPrimaryState: bool,
 }
 #[test]
@@ -6655,77 +6655,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_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_LISTENERMANAGER;
-pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_PROPERTIES;
-pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_IS_ANONYMOUS_ROOT;
-pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_FORCE_XBL_BINDINGS;
-pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_MAY_BE_IN_BINDING_MNGR;
-pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_IS_EDITABLE;
-pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_MAY_HAVE_CLASS;
-pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_IS_IN_SHADOW_TREE;
-pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_EMPTY_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_SLOW_SELECTOR;
-pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_EDGE_CHILD_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_190787
+pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_LISTENERMANAGER;
+pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_PROPERTIES;
+pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_IS_ANONYMOUS_ROOT;
+pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_FORCE_XBL_BINDINGS;
+pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_MAY_BE_IN_BINDING_MNGR;
+pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_IS_EDITABLE;
+pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_MAY_HAVE_CLASS;
+pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_IS_IN_SHADOW_TREE;
+pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_EMPTY_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_SLOW_SELECTOR;
+pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_EDGE_CHILD_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_190782
           =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_ALL_SELECTOR_FLAGS;
-pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_NEEDS_FRAME;
-pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_DESCENDANTS_NEED_FRAMES;
-pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_ACCESSKEY;
-pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_DIRECTION_RTL;
-pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_HAS_DIRECTION_LTR;
-pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_ALL_DIRECTION_FLAGS;
-pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_CHROME_ONLY_ACCESS;
-pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_190787
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_ALL_SELECTOR_FLAGS;
+pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_NEEDS_FRAME;
+pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_DESCENDANTS_NEED_FRAMES;
+pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_ACCESSKEY;
+pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_DIRECTION_RTL;
+pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_HAS_DIRECTION_LTR;
+pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_ALL_DIRECTION_FLAGS;
+pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_CHROME_ONLY_ACCESS;
+pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_190782
           =
-    _bindgen_ty_bindgen_id_190787::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_190787 =
-    _bindgen_ty_bindgen_id_190787::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    _bindgen_ty_bindgen_id_190782::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_190782 =
+    _bindgen_ty_bindgen_id_190782::NODE_TYPE_SPECIFIC_BITS_OFFSET;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum _bindgen_ty_bindgen_id_190787 {
+pub enum _bindgen_ty_bindgen_id_190782 {
     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,
@@ -6773,17 +6773,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_203244 {
+pub enum nsITimer__bindgen_ty_bindgen_id_203239 {
     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);
@@ -6799,17 +6799,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_203720 {
+pub enum nsExpirationState__bindgen_ty_bindgen_id_203715 {
     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);
 }
@@ -6873,29 +6873,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_205139 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_205134 {
     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_205219 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_205214 {
     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);
@@ -7177,22 +7177,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_223599 {
+pub struct bindgen_vtable__bindgen_id_223594 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct URLValueData {
-    pub vtable_: *const bindgen_vtable__bindgen_id_223599,
+    pub vtable_: *const bindgen_vtable__bindgen_id_223594,
     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,
@@ -7394,17 +7394,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_225764 {
+pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_225759 {
     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]
@@ -7421,17 +7421,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_225911 {
+pub enum imgINotificationObserver__bindgen_ty_bindgen_id_225906 {
     SIZE_AVAILABLE = 1,
     FRAME_UPDATE = 2,
     FRAME_COMPLETE = 3,
     LOAD_COMPLETE = 4,
     DECODE_COMPLETE = 5,
     DISCARD = 6,
     UNLOCKED_DRAW = 7,
     IS_ANIMATED = 8,
@@ -7670,17 +7670,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_227165
+pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_227160
          {
     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>()
@@ -8066,33 +8066,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_227892 {
+pub struct _bindgen_ty_bindgen_id_227887 {
     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_227892() {
-    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_227892>() ,
+fn bindgen_test_layout__bindgen_ty_bindgen_id_227887() {
+    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_227887>() ,
                8usize);
-    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_227892>() ,
+    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_227887>() ,
                8usize);
 }
-impl Clone for _bindgen_ty_bindgen_id_227892 {
-    fn clone(&self) -> Self { *self }
-}
-pub type nsStyleUnion = _bindgen_ty_bindgen_id_227892;
+impl Clone for _bindgen_ty_bindgen_id_227887 {
+    fn clone(&self) -> Self { *self }
+}
+pub type nsStyleUnion = _bindgen_ty_bindgen_id_227887;
 /**
  * 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.
  */
@@ -9149,34 +9149,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_236843 {
+pub struct bindgen_vtable__bindgen_id_236838 {
 }
 /**
  * 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_236843,
+    pub vtable_: *const bindgen_vtable__bindgen_id_236838,
     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)]
@@ -9188,17 +9188,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_236924 {
+pub enum nsISupportsPriority__bindgen_ty_bindgen_id_236919 {
     PRIORITY_HIGHEST = -20,
     PRIORITY_HIGH = -10,
     PRIORITY_NORMAL = 0,
     PRIORITY_LOW = 10,
     PRIORITY_LOWEST = 20,
 }
 #[test]
 fn bindgen_test_layout_nsISupportsPriority() {
@@ -9623,33 +9623,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_239921,
+    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_239916,
 }
 #[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_239921 {
+pub struct nsCSSValue__bindgen_ty_bindgen_id_239916 {
     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>,
@@ -9664,23 +9664,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_239921() {
-    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_239921>()
+fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_239916() {
+    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_239916>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_239921>()
+    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_239916>()
                , 8usize);
 }
-impl Clone for nsCSSValue__bindgen_ty_bindgen_id_239921 {
+impl Clone for nsCSSValue__bindgen_ty_bindgen_id_239916 {
     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)]
@@ -9691,22 +9691,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_240129 {
+pub struct bindgen_vtable__bindgen_id_240124 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct CounterStyle {
-    pub vtable_: *const bindgen_vtable__bindgen_id_240129,
+    pub vtable_: *const bindgen_vtable__bindgen_id_240124,
     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 {
@@ -9870,42 +9870,38 @@ fn bindgen_test_layout_nsStyleGradient()
  *    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 locking mode value passed in to the constructor.
+ * 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 mLockingMode: nsStyleImageRequest_Mode,
+    pub mModeFlags: nsStyleImageRequest_Mode,
     pub mResolved: bool,
 }
 #[repr(u8)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleImageRequest_Mode {
-    Locking = 0,
-    LockingAndDiscarding = 1,
-    NonLocking = 2,
-}
+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)]
@@ -9937,35 +9933,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_242114,
+    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_242125,
     pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleImage__bindgen_ty_bindgen_id_242114 {
+pub struct nsStyleImage__bindgen_ty_bindgen_id_242125 {
     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_242114() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_242114>()
+fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_242125() {
+    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_242125>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_242114>()
+    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_242125>()
                , 8usize);
 }
-impl Clone for nsStyleImage__bindgen_ty_bindgen_id_242114 {
+impl Clone for nsStyleImage__bindgen_ty_bindgen_id_242125 {
     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)]
@@ -10006,17 +10002,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_242176 {
+pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_242187 {
     shorthand = 0,
     color = 1,
     image = 2,
     repeat = 3,
     positionX = 4,
     positionY = 5,
     clip = 6,
     origin = 7,
@@ -10197,55 +10193,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_242858,
+    pub __bindgen_anon_1: nsStyleBorder__bindgen_ty_bindgen_id_242869,
     pub mComputedBorder: nsMargin,
     pub mBorder: nsMargin,
     pub mTwipsPerPixel: nscoord,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_242858 {
-    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_242858__bindgen_ty_bindgen_id_242859>,
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_242869 {
+    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_242869__bindgen_ty_bindgen_id_242870>,
     pub mBorderColor: __BindgenUnionField<[StyleComplexColor; 4usize]>,
     pub bindgen_union_field: [u32; 8usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_242858__bindgen_ty_bindgen_id_242859 {
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_242869__bindgen_ty_bindgen_id_242870 {
     pub mBorderTopColor: StyleComplexColor,
     pub mBorderRightColor: StyleComplexColor,
     pub mBorderBottomColor: StyleComplexColor,
     pub mBorderLeftColor: StyleComplexColor,
 }
 #[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_242858__bindgen_ty_bindgen_id_242859() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_242858__bindgen_ty_bindgen_id_242859>()
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_242869__bindgen_ty_bindgen_id_242870() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_242869__bindgen_ty_bindgen_id_242870>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_242858__bindgen_ty_bindgen_id_242859>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_242869__bindgen_ty_bindgen_id_242870>()
                , 4usize);
 }
 impl Clone for
- nsStyleBorder__bindgen_ty_bindgen_id_242858__bindgen_ty_bindgen_id_242859 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_242858() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_242858>()
+ nsStyleBorder__bindgen_ty_bindgen_id_242869__bindgen_ty_bindgen_id_242870 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_242869() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_242869>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_242858>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_242869>()
                , 4usize);
 }
-impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_242858 {
+impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_242869 {
     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)]
@@ -10282,18 +10278,18 @@ pub type nsStyleQuoteValues_HasThreadSaf
 fn bindgen_test_layout_nsStyleQuoteValues() {
     assert_eq!(::std::mem::size_of::<nsStyleQuoteValues>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleQuoteValues>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleList {
     pub mListStylePosition: u8,
+    pub mListStyleImage: RefPtr<nsStyleImageRequest>,
     pub mCounterStyle: RefPtr<CounterStyle>,
-    pub mListStyleImage: RefPtr<imgRequestProxy>,
     pub mQuotes: RefPtr<nsStyleQuoteValues>,
     pub mImageRegion: nsRect,
 }
 extern "C" {
     #[link_name = "_ZN11nsStyleList14sInitialQuotesE"]
     pub static mut nsStyleList_sInitialQuotes:
                StaticRefPtr<nsStyleQuoteValues>;
 }
@@ -10542,17 +10538,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_243863,
+    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_243865,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Type {
     Ease = 0,
     Linear = 1,
     EaseIn = 2,
     EaseOut = 3,
@@ -10561,66 +10557,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_243863 {
-    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243864>,
-    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243875>,
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_243865 {
+    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243866>,
+    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243877>,
     pub bindgen_union_field: [u32; 4usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243864 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243866 {
     pub mX1: f32,
     pub mY1: f32,
     pub mX2: f32,
     pub mY2: f32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243864() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243864>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243866() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243866>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243864>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243866>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243864
+ nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243866
  {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243875 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243877 {
     pub mSteps: u32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243875() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243875>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243877() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243877>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243875>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243877>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_243863__bindgen_ty_bindgen_id_243875
+ nsTimingFunction__bindgen_ty_bindgen_id_243865__bindgen_ty_bindgen_id_243877
  {
     fn clone(&self) -> Self { *self }
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_243863() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_243863>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_243865() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_243865>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_243863>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_243865>()
                , 4usize);
 }
-impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_243863 {
+impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_243865 {
     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 {
@@ -10671,23 +10667,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_244246<ReferenceBox>,
+    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_244248<ReferenceBox>,
     pub mType: StyleShapeSourceType,
     pub mReferenceBox: ReferenceBox,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct StyleShapeSource__bindgen_ty_bindgen_id_244246<ReferenceBox> {
+pub struct StyleShapeSource__bindgen_ty_bindgen_id_244248<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)]
@@ -10729,35 +10725,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_244348,
+    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_244350,
     pub mImageTracked: bool,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleContentData__bindgen_ty_bindgen_id_244348 {
+pub struct nsStyleContentData__bindgen_ty_bindgen_id_244350 {
     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_244348() {
-    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_244348>()
+fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_244350() {
+    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_244350>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_244348>()
+    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_244350>()
                , 8usize);
 }
-impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_244348 {
+impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_244350 {
     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)]
@@ -10870,35 +10866,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_244840,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_244842,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_244840 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_244842 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_244840() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_244840>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_244842() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_244842>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_244840>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_244842>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_244840 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_244842 {
     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)]
@@ -10923,17 +10919,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_245009 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_245011 {
     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,
 }
@@ -10942,33 +10938,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_245084,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_245084 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_245086,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_245086 {
     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_245084() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_245084>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_245086() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_245086>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_245084>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_245086>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_245084 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_245086 {
     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)]
--- a/servo/components/style/gecko_bindings/structs_release.rs
+++ b/servo/components/style/gecko_bindings/structs_release.rs
@@ -1618,40 +1618,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_65263>,
-    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65270>,
+    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65687>,
+    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_65694>,
     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_65263 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_65687 {
     pub _bitfield_1: u64,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65263() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65263>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65687() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65687>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65263>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65687>()
                , 8usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_65263 {
-    fn clone(&self) -> Self { *self }
-}
-impl jsval_layout__bindgen_ty_bindgen_id_65263 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_65687 {
+    fn clone(&self) -> Self { *self }
+}
+impl jsval_layout__bindgen_ty_bindgen_id_65687 {
     #[inline]
     pub fn payload47(&self) -> u64 {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (140737488355327usize as u64)) >>
                                        0u32) as u64)
         }
     }
@@ -1674,46 +1674,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_65270 {
-    pub payload: jsval_layout__bindgen_ty_bindgen_id_65270__bindgen_ty_bindgen_id_65271,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_65270__bindgen_ty_bindgen_id_65271 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_65694 {
+    pub payload: jsval_layout__bindgen_ty_bindgen_id_65694__bindgen_ty_bindgen_id_65695,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct jsval_layout__bindgen_ty_bindgen_id_65694__bindgen_ty_bindgen_id_65695 {
     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_65270__bindgen_ty_bindgen_id_65271() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65270__bindgen_ty_bindgen_id_65271>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65694__bindgen_ty_bindgen_id_65695() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65694__bindgen_ty_bindgen_id_65695>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65270__bindgen_ty_bindgen_id_65271>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65694__bindgen_ty_bindgen_id_65695>()
                , 4usize);
 }
 impl Clone for
- jsval_layout__bindgen_ty_bindgen_id_65270__bindgen_ty_bindgen_id_65271 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65270() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65270>()
+ jsval_layout__bindgen_ty_bindgen_id_65694__bindgen_ty_bindgen_id_65695 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_65694() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_65694>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65270>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_65694>()
                , 4usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_65270 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_65694 {
     fn clone(&self) -> Self { *self }
 }
 impl Clone for jsval_layout {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsAString_internal {
@@ -1737,17 +1737,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_67140 {
+pub enum nsAString_internal__bindgen_ty_bindgen_id_67564 {
     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,
@@ -1774,22 +1774,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_67750 {
+pub struct bindgen_vtable__bindgen_id_68174 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_67750,
+    pub vtable_: *const bindgen_vtable__bindgen_id_68174,
 }
 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 {
@@ -1821,17 +1821,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_68980 {
+pub enum nsACString_internal__bindgen_ty_bindgen_id_69404 {
     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,
@@ -1883,45 +1883,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_69532 {
+pub struct bindgen_vtable__bindgen_id_69956 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_69532,
+    pub vtable_: *const bindgen_vtable__bindgen_id_69956,
 }
 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_69836 {
+pub struct bindgen_vtable__bindgen_id_70260 {
 }
 /**
  * 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_69836,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70260,
 }
 #[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>,
 }
@@ -1929,25 +1929,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_70120 {
+pub struct bindgen_vtable__bindgen_id_70544 {
 }
 /**
  * Participant implementation classes
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCycleCollectionParticipant {
-    pub vtable_: *const bindgen_vtable__bindgen_id_70120,
+    pub vtable_: *const bindgen_vtable__bindgen_id_70544,
     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);
@@ -2120,16 +2120,29 @@ pub type RefPtr_Proxy_member_function = 
 #[derive(Debug, Copy, Clone)]
 pub struct RefPtr_ConstRemovingRefPtrTraits<T, U> {
     pub _address: u8,
     pub _phantom_0: ::std::marker::PhantomData<T>,
     pub _phantom_1: ::std::marker::PhantomData<U>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
+pub struct nsAutoOwningThread {
+    pub mThread: *mut ::std::os::raw::c_void,
+}
+#[test]
+fn bindgen_test_layout_nsAutoOwningThread() {
+    assert_eq!(::std::mem::size_of::<nsAutoOwningThread>() , 8usize);
+    assert_eq!(::std::mem::align_of::<nsAutoOwningThread>() , 8usize);
+}
+impl Clone for nsAutoOwningThread {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
 pub struct nsAutoRefCnt {
     pub mValue: nsrefcnt,
 }
 extern "C" {
     #[link_name = "_ZN12nsAutoRefCnt12isThreadSafeE"]
     pub static nsAutoRefCnt_isThreadSafe: bool;
 }
 #[test]
@@ -2249,34 +2262,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_74745<CleanupPolicy>,
+    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_75178<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_74745<CleanupPolicy> {
+pub struct TErrorResult__bindgen_ty_bindgen_id_75178<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)]
@@ -2412,17 +2425,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_75768 {
+pub enum nsIPrincipal__bindgen_ty_bindgen_id_76201 {
     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);
@@ -2447,17 +2460,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_75936 {
+pub struct bindgen_vtable__bindgen_id_76369 {
 }
 /**
  * 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
@@ -2489,17 +2502,17 @@ pub struct bindgen_vtable__bindgen_id_75
  *
  * 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_75936,
+    pub vtable_: *const bindgen_vtable__bindgen_id_76369,
     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>,
@@ -2514,31 +2527,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_76132 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_76565 {
     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_76135 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_76568 {
     WRAPPER_IS_NOT_DOM_BINDING = 2,
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_76138 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_76571 {
     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)]
@@ -2605,33 +2618,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_124633 {
+pub struct bindgen_vtable__bindgen_id_125071 {
 }
 /**
  * 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_124633,
+    pub vtable_: *const bindgen_vtable__bindgen_id_125071,
 }
 #[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)]
@@ -3589,17 +3602,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_135087,
+    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_135525,
     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;
@@ -3614,37 +3627,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_131225 {
+pub enum nsINode__bindgen_ty_bindgen_id_131663 {
     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_131994 {
+pub struct bindgen_vtable__bindgen_id_132432 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsINode_nsSlots {
-    pub vtable_: *const bindgen_vtable__bindgen_id_131994,
+    pub vtable_: *const bindgen_vtable__bindgen_id_132432,
     /**
      * A list of mutation observers
      */
     pub mMutationObservers: [u64; 2usize],
     /**
      * An object implementing nsIDOMNodeList for this content (childNodes)
      * @see nsIDOMNodeList
      * @see nsGenericHTMLElement::GetChildNodes
@@ -3703,29 +3716,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_135087 {
+pub struct nsINode__bindgen_ty_bindgen_id_135525 {
     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_135087() {
-    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_135087>()
+fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_135525() {
+    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_135525>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_135087>()
+    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_135525>()
                , 8usize);
 }
-impl Clone for nsINode__bindgen_ty_bindgen_id_135087 {
+impl Clone for nsINode__bindgen_ty_bindgen_id_135525 {
     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)]
@@ -3980,21 +3993,22 @@ fn bindgen_test_layout_nsIRunnable() {
 impl Clone for nsIRunnable {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct Runnable {
     pub _base: nsIRunnable,
     pub mRefCnt: ThreadSafeAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type Runnable_HasThreadSafeRefCnt = TrueType;
 #[test]
 fn bindgen_test_layout_Runnable() {
-    assert_eq!(::std::mem::size_of::<Runnable>() , 16usize);
+    assert_eq!(::std::mem::size_of::<Runnable>() , 24usize);
     assert_eq!(::std::mem::align_of::<Runnable>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsIDOMAttr {
     pub _base: nsIDOMNode,
 }
 #[repr(C)]
@@ -4021,33 +4035,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_143154 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_143596 {
     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_143373 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_143815 {
     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]
@@ -4086,16 +4100,17 @@ pub struct nsIControllers {
 impl Clone for nsIControllers {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsPresContext {
     pub _base: nsIObserver,
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mType: nsPresContext_nsPresContextType,
     pub mShell: *mut nsIPresShell,
     pub mDocument: nsCOMPtr<nsIDocument>,
     pub mDeviceContext: RefPtr<nsDeviceContext>,
     pub mEventManager: RefPtr<EventStateManager>,
     pub mRefreshDriver: RefPtr<nsRefreshDriver>,
     pub mEffectCompositor: RefPtr<EffectCompositor>,
     pub mTransitionManager: RefPtr<nsTransitionManager>,
@@ -4198,17 +4213,17 @@ fn bindgen_test_layout_nsPresContext_Int
 }
 extern "C" {
     #[link_name = "_ZN13nsPresContext21_cycleCollectorGlobalE"]
     pub static mut nsPresContext__cycleCollectorGlobal:
                nsPresContext_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_nsPresContext() {
-    assert_eq!(::std::mem::size_of::<nsPresContext>() , 1152usize);
+    assert_eq!(::std::mem::size_of::<nsPresContext>() , 1160usize);
     assert_eq!(::std::mem::align_of::<nsPresContext>() , 8usize);
 }
 impl nsPresContext {
     #[inline]
     pub fn mHasPendingInterrupt(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 & (1usize as u64)) >>
                                        0u32) as u32)
@@ -4896,24 +4911,25 @@ pub enum Side {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct CallbackFunction {
     pub _base: CallbackObject,
 }
 #[test]
 fn bindgen_test_layout_CallbackFunction() {
-    assert_eq!(::std::mem::size_of::<CallbackFunction>() , 48usize);
+    assert_eq!(::std::mem::size_of::<CallbackFunction>() , 56usize);
     assert_eq!(::std::mem::align_of::<CallbackFunction>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct CallbackObject {
     pub _base: nsISupports,
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mCallback: u64,
     pub mCreationStack: u64,
     pub mIncumbentGlobal: nsCOMPtr<nsIGlobalObject>,
     pub mIncumbentJSGlobal: u64,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
 pub struct CallbackObject_COMTypeInfo<T, U> {
@@ -4981,17 +4997,17 @@ fn bindgen_test_layout_CallbackObject_Ca
 }
 extern "C" {
     #[link_name = "_ZN7mozilla3dom14CallbackObject21_cycleCollectorGlobalE"]
     pub static mut CallbackObject__cycleCollectorGlobal:
                CallbackObject_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_CallbackObject() {
-    assert_eq!(::std::mem::size_of::<CallbackObject>() , 48usize);
+    assert_eq!(::std::mem::size_of::<CallbackObject>() , 56usize);
     assert_eq!(::std::mem::align_of::<CallbackObject>() , 8usize);
 }
 pub type PLDHashNumber = u32;
 #[repr(C)]
 #[derive(Debug)]
 pub struct PLDHashTable {
     pub mOps: *const PLDHashTableOps,
     pub mHashShift: i16,
@@ -5123,17 +5139,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_147731 { ALLOW_MEMMOVE = 0, }
+pub enum nsPtrHashKey__bindgen_ty_bindgen_id_148177 { 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,
@@ -5143,24 +5159,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_149071 {
+pub enum nsIContent__bindgen_ty_bindgen_id_149517 {
     eAllChildren = 0,
     eAllButXBL = 1,
     eSkipPlaceholderContent = 2,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIContent__bindgen_ty_bindgen_id_149307 {
+pub enum nsIContent__bindgen_ty_bindgen_id_149753 {
     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
@@ -5285,24 +5301,25 @@ extern "C" {
     pub static Element_kCallAfterSetAttr: bool;
 }
 extern "C" {
     #[link_name = "_ZN7mozilla3dom7Element21kDontCallAfterSetAttrE"]
     pub static Element_kDontCallAfterSetAttr: bool;
 }
 #[test]
 fn bindgen_test_layout_Element() {
-    assert_eq!(::std::mem::size_of::<Element>() , 128usize);
+    assert_eq!(::std::mem::size_of::<Element>() , 136usize);
     assert_eq!(::std::mem::align_of::<Element>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct FragmentOrElement {
     pub _base: nsIContent,
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     /**
    * Array containing all attributes and children for this element
    */
     pub mAttrsAndChildren: nsAttrAndChildArray,
 }
 pub type FragmentOrElement_HasThreadSafeRefCnt = FalseType;
 #[repr(C)]
 #[derive(Debug, Copy)]
@@ -5356,17 +5373,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_150402,
+    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150850,
     /**
      * 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>,
@@ -5393,36 +5410,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_150402 {
+pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150850 {
     /**
       * 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_150402() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150402>()
+fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150850() {
+    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150850>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150402>()
+    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150850>()
                , 8usize);
 }
-impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150402 {
+impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_150850 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
     assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>() ,
                168usize);
     assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>() ,
                8usize);
@@ -5430,17 +5447,17 @@ fn bindgen_test_layout_FragmentOrElement
 extern "C" {
     #[link_name =
           "_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"]
     pub static mut FragmentOrElement__cycleCollectorGlobal:
                FragmentOrElement_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_FragmentOrElement() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement>() , 120usize);
+    assert_eq!(::std::mem::size_of::<FragmentOrElement>() , 128usize);
     assert_eq!(::std::mem::align_of::<FragmentOrElement>() , 8usize);
 }
 pub const ReferrerPolicy_RP_Default: ReferrerPolicy =
     ReferrerPolicy::RP_No_Referrer_When_Downgrade;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum ReferrerPolicy {
     RP_No_Referrer = 1,
@@ -5491,31 +5508,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_164007 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_164459 {
     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_164027 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_164479 {
     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);
 }
@@ -5531,17 +5548,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_163845 {
+pub enum nsIRequest__bindgen_ty_bindgen_id_164297 {
     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,
@@ -5765,16 +5782,17 @@ extern "C" {
 fn bindgen_test_layout_nsAttrValue() {
     assert_eq!(::std::mem::size_of::<nsAttrValue>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsAttrValue>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsNodeInfoManager {
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mNodeInfoHash: *mut PLHashTable,
     pub mDocument: *mut nsIDocument,
     pub mNonDocumentNodeInfos: u32,
     pub mPrincipal: nsCOMPtr<nsIPrincipal>,
     pub mDefaultPrincipal: nsCOMPtr<nsIPrincipal>,
     pub mTextNodeInfo: *mut NodeInfo,
     pub mCommentNodeInfo: *mut NodeInfo,
     pub mDocumentNodeInfo: *mut NodeInfo,
@@ -5798,23 +5816,24 @@ impl Clone for nsNodeInfoManager_cycleCo
 pub type nsNodeInfoManager_HasThreadSafeRefCnt = FalseType;
 extern "C" {
     #[link_name = "_ZN17nsNodeInfoManager21_cycleCollectorGlobalE"]
     pub static mut nsNodeInfoManager__cycleCollectorGlobal:
                nsNodeInfoManager_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_nsNodeInfoManager() {
-    assert_eq!(::std::mem::size_of::<nsNodeInfoManager>() , 80usize);
+    assert_eq!(::std::mem::size_of::<nsNodeInfoManager>() , 88usize);
     assert_eq!(::std::mem::align_of::<nsNodeInfoManager>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct NodeInfo {
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mDocument: *mut nsIDocument,
     pub mInner: NodeInfo_NodeInfoInner,
     pub mOwnerManager: RefPtr<nsNodeInfoManager>,
     pub mQualifiedName: nsString,
     pub mNodeName: nsString,
     pub mLocalName: nsString,
 }
 pub type NodeInfo_HasThreadSafeRefCnt = FalseType;
@@ -5847,17 +5866,17 @@ fn bindgen_test_layout_NodeInfo_NodeInfo
     assert_eq!(::std::mem::align_of::<NodeInfo_NodeInfoInner>() , 8usize);
 }
 extern "C" {
     #[link_name = "_ZN7mozilla3dom8NodeInfo21_cycleCollectorGlobalE"]
     pub static mut NodeInfo__cycleCollectorGlobal: NodeInfo_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_NodeInfo() {
-    assert_eq!(::std::mem::size_of::<NodeInfo>() , 112usize);
+    assert_eq!(::std::mem::size_of::<NodeInfo>() , 120usize);
     assert_eq!(::std::mem::align_of::<NodeInfo>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsBindingManager {
     pub _address: u8,
 }
 impl Clone for nsBindingManager {
@@ -5938,16 +5957,17 @@ impl Clone for nsChildContentList {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsDOMAttributeMap {
     pub _base: nsIDOMMozNamedAttrMap,
     pub _base_1: nsWrapperCache,
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mContent: nsCOMPtr<Element>,
     /**
    * Cache of Attrs.
    */
     pub mAttributeCache: nsDOMAttributeMap_AttrCache,
 }
 pub type nsDOMAttributeMap_Attr = Attr;
 pub type nsDOMAttributeMap_Element = Element;
@@ -5971,17 +5991,17 @@ impl Clone for nsDOMAttributeMap_cycleCo
 pub type nsDOMAttributeMap_AttrCache = [u64; 5usize];
 extern "C" {
     #[link_name = "_ZN17nsDOMAttributeMap21_cycleCollectorGlobalE"]
     pub static mut nsDOMAttributeMap__cycleCollectorGlobal:
                nsDOMAttributeMap_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_nsDOMAttributeMap() {
-    assert_eq!(::std::mem::size_of::<nsDOMAttributeMap>() , 88usize);
+    assert_eq!(::std::mem::size_of::<nsDOMAttributeMap>() , 96usize);
     assert_eq!(::std::mem::align_of::<nsDOMAttributeMap>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsIDOMMozNamedAttrMap {
     pub _base: nsISupports,
 }
 #[repr(C)]
@@ -6089,23 +6109,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_182268 =
-    nsIPresShell__bindgen_ty_bindgen_id_182268::SCROLL_TOP;
-pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_182268 =
-    nsIPresShell__bindgen_ty_bindgen_id_182268::SCROLL_BOTTOM;
+pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_182728 =
+    nsIPresShell__bindgen_ty_bindgen_id_182728::SCROLL_TOP;
+pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_182728 =
+    nsIPresShell__bindgen_ty_bindgen_id_182728::SCROLL_BOTTOM;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_182268 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_182728 {
     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 {
@@ -6123,17 +6143,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_182299 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_182759 {
     SCROLL_FIRST_ANCESTOR_ONLY = 1,
     SCROLL_OVERFLOW_HIDDEN = 2,
     SCROLL_NO_PARENT_FRAMES = 4,
     SCROLL_SMOOTH = 8,
     SCROLL_SMOOTH_AUTO = 16,
 }
 #[repr(u32)]
 /**
@@ -6170,41 +6190,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_182723 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183183 {
     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_182741 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183201 {
     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_182857 { FORCE_DRAW = 1, }
+pub enum nsIPresShell__bindgen_ty_bindgen_id_183317 { FORCE_DRAW = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIPresShell_PointerCaptureInfo {
     pub mPendingContent: nsCOMPtr<nsIContent>,
     pub mOverrideContent: nsCOMPtr<nsIContent>,
     pub mPrimaryState: bool,
 }
 #[test]
@@ -6448,22 +6468,23 @@ impl nsIPresShell {
 /**
  * A class that implements nsIWeakReference
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsNodeWeakReference {
     pub _base: nsIWeakReference,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mNode: *mut nsINode,
 }
 pub type nsNodeWeakReference_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsNodeWeakReference() {
-    assert_eq!(::std::mem::size_of::<nsNodeWeakReference>() , 24usize);
+    assert_eq!(::std::mem::size_of::<nsNodeWeakReference>() , 32usize);
     assert_eq!(::std::mem::align_of::<nsNodeWeakReference>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsDOMMutationObserver {
     pub _address: u8,
 }
 impl Clone for nsDOMMutationObserver {
@@ -6502,16 +6523,17 @@ impl Clone for DOMQuad {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct DOMRectReadOnly {
     pub _base: nsISupports,
     pub _base_1: nsWrapperCache,
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mParent: nsCOMPtr<nsISupports>,
 }
 pub type DOMRectReadOnly_HasThreadSafeRefCnt = FalseType;
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct DOMRectReadOnly_cycleCollection {
     pub _base: nsXPCOMCycleCollectionParticipant,
 }
@@ -6527,17 +6549,17 @@ impl Clone for DOMRectReadOnly_cycleColl
 }
 extern "C" {
     #[link_name = "_ZN7mozilla3dom15DOMRectReadOnly21_cycleCollectorGlobalE"]
     pub static mut DOMRectReadOnly__cycleCollectorGlobal:
                DOMRectReadOnly_cycleCollection;
 }
 #[test]
 fn bindgen_test_layout_DOMRectReadOnly() {
-    assert_eq!(::std::mem::size_of::<DOMRectReadOnly>() , 48usize);
+    assert_eq!(::std::mem::size_of::<DOMRectReadOnly>() , 56usize);
     assert_eq!(::std::mem::align_of::<DOMRectReadOnly>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct OwningNodeOrString {
     pub mType: OwningNodeOrString_Type,
     pub mValue: OwningNodeOrString_Value,
 }
@@ -6579,77 +6601,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_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_LISTENERMANAGER;
-pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_PROPERTIES;
-pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_IS_ANONYMOUS_ROOT;
-pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_FORCE_XBL_BINDINGS;
-pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_MAY_BE_IN_BINDING_MNGR;
-pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_IS_EDITABLE;
-pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_MAY_HAVE_CLASS;
-pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_IS_IN_SHADOW_TREE;
-pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_EMPTY_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_SLOW_SELECTOR;
-pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_EDGE_CHILD_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_184238
+pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_LISTENERMANAGER;
+pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_PROPERTIES;
+pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_IS_ANONYMOUS_ROOT;
+pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_FORCE_XBL_BINDINGS;
+pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_MAY_BE_IN_BINDING_MNGR;
+pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_IS_EDITABLE;
+pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_MAY_HAVE_CLASS;
+pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_IS_IN_SHADOW_TREE;
+pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_EMPTY_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_SLOW_SELECTOR;
+pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_EDGE_CHILD_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_184704
           =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_ALL_SELECTOR_FLAGS;
-pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_NEEDS_FRAME;
-pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_DESCENDANTS_NEED_FRAMES;
-pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_ACCESSKEY;
-pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_DIRECTION_RTL;
-pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_HAS_DIRECTION_LTR;
-pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_ALL_DIRECTION_FLAGS;
-pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_CHROME_ONLY_ACCESS;
-pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_184238
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_ALL_SELECTOR_FLAGS;
+pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_NEEDS_FRAME;
+pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_DESCENDANTS_NEED_FRAMES;
+pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_ACCESSKEY;
+pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_DIRECTION_RTL;
+pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_HAS_DIRECTION_LTR;
+pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_ALL_DIRECTION_FLAGS;
+pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_CHROME_ONLY_ACCESS;
+pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_184704
           =
-    _bindgen_ty_bindgen_id_184238::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_184238 =
-    _bindgen_ty_bindgen_id_184238::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    _bindgen_ty_bindgen_id_184704::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_184704 =
+    _bindgen_ty_bindgen_id_184704::NODE_TYPE_SPECIFIC_BITS_OFFSET;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum _bindgen_ty_bindgen_id_184238 {
+pub enum _bindgen_ty_bindgen_id_184704 {
     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,
@@ -6697,17 +6719,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_192058 {
+pub enum nsITimer__bindgen_ty_bindgen_id_197159 {
     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);
@@ -6723,17 +6745,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_192534 {
+pub enum nsExpirationState__bindgen_ty_bindgen_id_197635 {
     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);
 }
@@ -6797,29 +6819,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_193953 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_199054 {
     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_194033 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_199134 {
     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);
@@ -6955,16 +6977,17 @@ impl Clone for AnonymousContent {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct Attr {
     pub _base: nsIAttribute,
     pub _base_1: nsIDOMAttr,
     pub mRefCnt: nsCycleCollectingAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mValue: nsString,
 }
 pub type Attr_HasThreadSafeRefCnt = FalseType;
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct Attr_cycleCollection {
     pub _base: nsXPCOMCycleCollectionParticipant,
 }
@@ -6981,17 +7004,17 @@ extern "C" {
     pub static mut Attr__cycleCollectorGlobal: Attr_cycleCollection;
 }
 extern "C" {
     #[link_name = "_ZN7mozilla3dom4Attr12sInitializedE"]
     pub static mut Attr_sInitialized: bool;
 }
 #[test]
 fn bindgen_test_layout_Attr() {
-    assert_eq!(::std::mem::size_of::<Attr>() , 144usize);
+    assert_eq!(::std::mem::size_of::<Attr>() , 152usize);
     assert_eq!(::std::mem::align_of::<Attr>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIAttribute {
     pub _base: nsINode,
     pub mAttrMap: RefPtr<nsDOMAttributeMap>,
 }
@@ -7017,17 +7040,17 @@ impl Clone for FontFaceSet {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct FrameRequestCallback {
     pub _base: CallbackFunction,
 }
 #[test]
 fn bindgen_test_layout_FrameRequestCallback() {
-    assert_eq!(::std::mem::size_of::<FrameRequestCallback>() , 48usize);
+    assert_eq!(::std::mem::size_of::<FrameRequestCallback>() , 56usize);
     assert_eq!(::std::mem::align_of::<FrameRequestCallback>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct FullscreenRequest {
     pub _address: u8,
 }
 impl Clone for FullscreenRequest {
@@ -7100,22 +7123,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_212319 {
+pub struct bindgen_vtable__bindgen_id_217424 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct URLValueData {
-    pub vtable_: *const bindgen_vtable__bindgen_id_212319,
+    pub vtable_: *const bindgen_vtable__bindgen_id_217424,
     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,
@@ -7316,17 +7339,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_214482 {
+pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_219587 {
     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]
@@ -7343,17 +7366,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_214629 {
+pub enum imgINotificationObserver__bindgen_ty_bindgen_id_219734 {
     SIZE_AVAILABLE = 1,
     FRAME_UPDATE = 2,
     FRAME_COMPLETE = 3,
     LOAD_COMPLETE = 4,
     DECODE_COMPLETE = 5,
     DISCARD = 6,
     UNLOCKED_DRAW = 7,
     IS_ANIMATED = 8,
@@ -7535,16 +7558,17 @@ pub struct gfxAlternateValue {
 fn bindgen_test_layout_gfxAlternateValue() {
     assert_eq!(::std::mem::size_of::<gfxAlternateValue>() , 24usize);
     assert_eq!(::std::mem::align_of::<gfxAlternateValue>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct gfxFontFeatureValueSet {
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mFontFeatureValues: [u64; 5usize],
 }
 pub type gfxFontFeatureValueSet_HasThreadSafeRefCnt = FalseType;
 #[repr(C)]
 #[derive(Debug)]
 pub struct gfxFontFeatureValueSet_ValueList {
     pub name: nsString,
     pub featureSelectors: nsTArray<::std::os::raw::c_uint>,
@@ -7591,30 +7615,30 @@ 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_215865
+pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_220972
          {
     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>()
                , 8usize);
 }
 #[test]
 fn bindgen_test_layout_gfxFontFeatureValueSet() {
-    assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet>() , 48usize);
+    assert_eq!(::std::mem::size_of::<gfxFontFeatureValueSet>() , 56usize);
     assert_eq!(::std::mem::align_of::<gfxFontFeatureValueSet>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsFont {
     pub fontlist: FontFamilyList,
     pub style: u8,
     pub systemFont: bool,
@@ -7987,33 +8011,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_216592 {
+pub struct _bindgen_ty_bindgen_id_221699 {
     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_216592() {
-    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_216592>() ,
+fn bindgen_test_layout__bindgen_ty_bindgen_id_221699() {
+    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_221699>() ,
                8usize);
-    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_216592>() ,
+    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_221699>() ,
                8usize);
 }
-impl Clone for _bindgen_ty_bindgen_id_216592 {
-    fn clone(&self) -> Self { *self }
-}
-pub type nsStyleUnion = _bindgen_ty_bindgen_id_216592;
+impl Clone for _bindgen_ty_bindgen_id_221699 {
+    fn clone(&self) -> Self { *self }
+}
+pub type nsStyleUnion = _bindgen_ty_bindgen_id_221699;
 /**
  * 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.
  */
@@ -8340,23 +8364,24 @@ pub struct EventStateManager {
 }
 impl Clone for EventStateManager {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct CounterStyleManager {
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mPresContext: *mut nsPresContext,
     pub mCacheTable: [u64; 5usize],
 }
 pub type CounterStyleManager_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_CounterStyleManager() {
-    assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 56usize);
+    assert_eq!(::std::mem::size_of::<CounterStyleManager>() , 64usize);
     assert_eq!(::std::mem::align_of::<CounterStyleManager>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsInvalidateRequestList {
     pub mRequests: nsTArray<nsInvalidateRequestList_Request>,
 }
 #[repr(C)]
@@ -9031,16 +9056,17 @@ pub struct nsMainThreadPtrHandle<T> {
 #[derive(Debug)]
 pub struct imgRequestProxy {
     pub _base: imgIRequest,
     pub _base_1: IProgressObserver,
     pub _base_2: nsISupportsPriority,
     pub _base_3: nsISecurityInfoProvider,
     pub _base_4: nsITimedChannel,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mBehaviour: UniquePtr<ProxyBehaviour, DefaultDelete<ProxyBehaviour>>,
     pub mURI: RefPtr<ImageURL>,
     pub mListener: *mut imgINotificationObserver,
     pub mLoadGroup: nsCOMPtr<nsILoadGroup>,
     pub mLoadFlags: nsLoadFlags,
     pub mLockCount: u32,
     pub mAnimationConsumers: u32,
     pub mCanceled: bool,
@@ -9058,44 +9084,44 @@ pub type imgRequestProxy_HasThreadSafeRe
 pub struct imgRequestProxy_imgCancelRunnable {
     pub _base: Runnable,
     pub mOwner: RefPtr<imgRequestProxy>,
     pub mStatus: nsresult,
 }
 #[test]
 fn bindgen_test_layout_imgRequestProxy_imgCancelRunnable() {
     assert_eq!(::std::mem::size_of::<imgRequestProxy_imgCancelRunnable>() ,
-               32usize);
+               40usize);
     assert_eq!(::std::mem::align_of::<imgRequestProxy_imgCancelRunnable>() ,
                8usize);
 }
 #[test]
 fn bindgen_test_layout_imgRequestProxy() {
-    assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 112usize);
+    assert_eq!(::std::mem::size_of::<imgRequestProxy>() , 120usize);
     assert_eq!(::std::mem::align_of::<imgRequestProxy>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_225482 {
+pub struct bindgen_vtable__bindgen_id_230595 {
 }
 /**
  * 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_225482,
+    pub vtable_: *const bindgen_vtable__bindgen_id_230595,
     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)]
@@ -9107,17 +9133,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_225558 {
+pub enum nsISupportsPriority__bindgen_ty_bindgen_id_230671 {
     PRIORITY_HIGHEST = -20,
     PRIORITY_HIGH = -10,
     PRIORITY_NORMAL = 0,
     PRIORITY_LOW = 10,
     PRIORITY_LOWEST = 20,
 }
 #[test]
 fn bindgen_test_layout_nsISupportsPriority() {
@@ -9183,33 +9209,35 @@ fn bindgen_test_layout_GridNamedArea() {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct GridTemplateAreasValue {
     pub mNamedAreas: nsTArray<GridNamedArea>,
     pub mTemplates: nsTArray<nsString>,
     pub mNColumns: u32,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type GridTemplateAreasValue_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_GridTemplateAreasValue() {
-    assert_eq!(::std::mem::size_of::<GridTemplateAreasValue>() , 32usize);
+    assert_eq!(::std::mem::size_of::<GridTemplateAreasValue>() , 40usize);
     assert_eq!(::std::mem::align_of::<GridTemplateAreasValue>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct FontFamilyListRefCnt {
     pub _base: FontFamilyList,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type FontFamilyListRefCnt_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_FontFamilyListRefCnt() {
-    assert_eq!(::std::mem::size_of::<FontFamilyListRefCnt>() , 24usize);
+    assert_eq!(::std::mem::size_of::<FontFamilyListRefCnt>() , 32usize);
     assert_eq!(::std::mem::align_of::<FontFamilyListRefCnt>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct RGBAColorData {
     pub mR: f32,
     pub mG: f32,
     pub mB: f32,
@@ -9237,21 +9265,22 @@ fn bindgen_test_layout_ComplexColorData(
 impl Clone for ComplexColorData {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct ComplexColorValue {
     pub _base: ComplexColorData,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type ComplexColorValue_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_ComplexColorValue() {
-    assert_eq!(::std::mem::size_of::<ComplexColorValue>() , 32usize);
+    assert_eq!(::std::mem::size_of::<ComplexColorValue>() , 40usize);
     assert_eq!(::std::mem::align_of::<ComplexColorValue>() , 8usize);
 }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsCSSUnit {
     eCSSUnit_Null = 0,
     eCSSUnit_Auto = 1,
     eCSSUnit_Inherit = 2,
@@ -9345,21 +9374,22 @@ pub struct nsCSSValueGradient {
     pub mIsRepeating: bool,
     pub mIsLegacySyntax: bool,
     pub mIsExplicitSize: bool,
     pub mBgPos: nsCSSValuePair,
     pub mAngle: nsCSSValue,
     pub mRadialValues: [nsCSSValue; 2usize],
     pub mStops: nsTArray<nsCSSValueGradientStop>,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type nsCSSValueGradient_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValueGradient() {
-    assert_eq!(::std::mem::size_of::<nsCSSValueGradient>() , 104usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValueGradient>() , 112usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueGradient>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValuePair {
     pub mXValue: nsCSSValue,
     pub mYValue: nsCSSValue,
 }
@@ -9371,41 +9401,43 @@ fn bindgen_test_layout_nsCSSValuePair() 
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum Serialization { eNormalized = 0, eAuthorSpecified = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValuePair_heap {
     pub _base: nsCSSValuePair,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type nsCSSValuePair_heap_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValuePair_heap() {
-    assert_eq!(::std::mem::size_of::<nsCSSValuePair_heap>() , 40usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValuePair_heap>() , 48usize);
     assert_eq!(::std::mem::align_of::<nsCSSValuePair_heap>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueTokenStream {
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mPropertyID: nsCSSPropertyID,
     pub mShorthandPropertyID: nsCSSPropertyID,
     pub mTokenStream: nsString,
     pub mBaseURI: nsCOMPtr<nsIURI>,
     pub mSheetURI: nsCOMPtr<nsIURI>,
     pub mSheetPrincipal: nsCOMPtr<nsIPrincipal>,
     pub mLineNumber: u32,
     pub mLineOffset: u32,
     pub mLevel: SheetType,
 }
 pub type nsCSSValueTokenStream_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValueTokenStream() {
-    assert_eq!(::std::mem::size_of::<nsCSSValueTokenStream>() , 72usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValueTokenStream>() , 80usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueTokenStream>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSRect {
     pub mTop: nsCSSValue,
     pub mRight: nsCSSValue,
     pub mBottom: nsCSSValue,
@@ -9421,21 +9453,22 @@ fn bindgen_test_layout_nsCSSRect() {
     assert_eq!(::std::mem::size_of::<nsCSSRect>() , 64usize);
     assert_eq!(::std::mem::align_of::<nsCSSRect>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSRect_heap {
     pub _base: nsCSSRect,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type nsCSSRect_heap_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSRect_heap() {
-    assert_eq!(::std::mem::size_of::<nsCSSRect_heap>() , 72usize);
+    assert_eq!(::std::mem::size_of::<nsCSSRect_heap>() , 80usize);
     assert_eq!(::std::mem::align_of::<nsCSSRect_heap>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueList {
     pub mValue: nsCSSValue,
     pub mNext: *mut nsCSSValueList,
 }
@@ -9444,33 +9477,35 @@ fn bindgen_test_layout_nsCSSValueList() 
     assert_eq!(::std::mem::size_of::<nsCSSValueList>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueList>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueList_heap {
     pub _base: nsCSSValueList,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type nsCSSValueList_heap_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValueList_heap() {
-    assert_eq!(::std::mem::size_of::<nsCSSValueList_heap>() , 32usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValueList_heap>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueList_heap>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueSharedList {
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mHead: *mut nsCSSValueList,
 }
 pub type nsCSSValueSharedList_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValueSharedList() {
-    assert_eq!(::std::mem::size_of::<nsCSSValueSharedList>() , 16usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValueSharedList>() , 24usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueSharedList>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValuePairList {
     pub mXValue: nsCSSValue,
     pub mYValue: nsCSSValue,
     pub mNext: *mut nsCSSValuePairList,
@@ -9480,21 +9515,22 @@ fn bindgen_test_layout_nsCSSValuePairLis
     assert_eq!(::std::mem::size_of::<nsCSSValuePairList>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsCSSValuePairList>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValuePairList_heap {
     pub _base: nsCSSValuePairList,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type nsCSSValuePairList_heap_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValuePairList_heap() {
-    assert_eq!(::std::mem::size_of::<nsCSSValuePairList_heap>() , 48usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValuePairList_heap>() , 56usize);
     assert_eq!(::std::mem::align_of::<nsCSSValuePairList_heap>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueTriplet {
     pub mXValue: nsCSSValue,
     pub mYValue: nsCSSValue,
     pub mZValue: nsCSSValue,
@@ -9504,59 +9540,61 @@ fn bindgen_test_layout_nsCSSValueTriplet
     assert_eq!(::std::mem::size_of::<nsCSSValueTriplet>() , 48usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueTriplet>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueTriplet_heap {
     pub _base: nsCSSValueTriplet,
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
 }
 pub type nsCSSValueTriplet_heap_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValueTriplet_heap() {
-    assert_eq!(::std::mem::size_of::<nsCSSValueTriplet_heap>() , 56usize);
+    assert_eq!(::std::mem::size_of::<nsCSSValueTriplet_heap>() , 64usize);
     assert_eq!(::std::mem::align_of::<nsCSSValueTriplet_heap>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsCSSValueFloatColor {
     pub mRefCnt: nsAutoRefCnt,
+    pub _mOwningThread: nsAutoOwningThread,
     pub mComponent1: f32,
     pub mComponent2: f32,
     pub mComponent3: f32,
     pub mAlpha: f32,
 }
 pub type nsCSSValueFloatColor_HasThreadSafeRefCnt = FalseType;
 #[test]
 fn bindgen_test_layout_nsCSSValueFloatColor() {
-    assert_eq!(::std::mem::size_of::<nsCSSValueFloatColor>() , 24usize);
+    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_228529,
+    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_233668,
 }
 #[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_228529 {
+pub struct nsCSSValue__bindgen_ty_bindgen_id_233668 {
     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>,
@@ -9571,23 +9609,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_228529() {
-    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_228529>()
+fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_233668() {
+    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_233668>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_228529>()
+    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_233668>()
                , 8usize);
 }
-impl Clone for nsCSSValue__bindgen_ty_bindgen_id_228529 {
+impl Clone for nsCSSValue__bindgen_ty_bindgen_id_233668 {
     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)]
@@ -9598,22 +9636,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_228737 {
+pub struct bindgen_vtable__bindgen_id_233876 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct CounterStyle {
-    pub vtable_: *const bindgen_vtable__bindgen_id_228737,
+    pub vtable_: *const bindgen_vtable__bindgen_id_233876,
     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 {
@@ -9777,42 +9815,38 @@ fn bindgen_test_layout_nsStyleGradient()
  *    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 locking mode value passed in to the constructor.
+ * 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 mLockingMode: nsStyleImageRequest_Mode,
+    pub mModeFlags: nsStyleImageRequest_Mode,
     pub mResolved: bool,
 }
 #[repr(u8)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsStyleImageRequest_Mode {
-    Locking = 0,
-    LockingAndDiscarding = 1,
-    NonLocking = 2,
-}
+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)]
@@ -9844,35 +9878,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_230718,
+    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_235877,
     pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleImage__bindgen_ty_bindgen_id_230718 {
+pub struct nsStyleImage__bindgen_ty_bindgen_id_235877 {
     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_230718() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_230718>()
+fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_235877() {
+    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_235877>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_230718>()
+    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_235877>()
                , 8usize);
 }
-impl Clone for nsStyleImage__bindgen_ty_bindgen_id_230718 {
+impl Clone for nsStyleImage__bindgen_ty_bindgen_id_235877 {
     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)]
@@ -9913,17 +9947,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_230780 {
+pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_235939 {
     shorthand = 0,
     color = 1,
     image = 2,
     repeat = 3,
     positionX = 4,
     positionY = 5,
     clip = 6,
     origin = 7,
@@ -10104,55 +10138,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_231462,
+    pub __bindgen_anon_1: nsStyleBorder__bindgen_ty_bindgen_id_236621,
     pub mComputedBorder: nsMargin,
     pub mBorder: nsMargin,
     pub mTwipsPerPixel: nscoord,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_231462 {
-    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_231462__bindgen_ty_bindgen_id_231463>,
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_236621 {
+    pub __bindgen_anon_1: __BindgenUnionField<nsStyleBorder__bindgen_ty_bindgen_id_236621__bindgen_ty_bindgen_id_236622>,
     pub mBorderColor: __BindgenUnionField<[StyleComplexColor; 4usize]>,
     pub bindgen_union_field: [u32; 8usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleBorder__bindgen_ty_bindgen_id_231462__bindgen_ty_bindgen_id_231463 {
+pub struct nsStyleBorder__bindgen_ty_bindgen_id_236621__bindgen_ty_bindgen_id_236622 {
     pub mBorderTopColor: StyleComplexColor,
     pub mBorderRightColor: StyleComplexColor,
     pub mBorderBottomColor: StyleComplexColor,
     pub mBorderLeftColor: StyleComplexColor,
 }
 #[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_231462__bindgen_ty_bindgen_id_231463() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_231462__bindgen_ty_bindgen_id_231463>()
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_236621__bindgen_ty_bindgen_id_236622() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_236621__bindgen_ty_bindgen_id_236622>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_231462__bindgen_ty_bindgen_id_231463>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_236621__bindgen_ty_bindgen_id_236622>()
                , 4usize);
 }
 impl Clone for
- nsStyleBorder__bindgen_ty_bindgen_id_231462__bindgen_ty_bindgen_id_231463 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_231462() {
-    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_231462>()
+ nsStyleBorder__bindgen_ty_bindgen_id_236621__bindgen_ty_bindgen_id_236622 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_nsStyleBorder__bindgen_ty_bindgen_id_236621() {
+    assert_eq!(::std::mem::size_of::<nsStyleBorder__bindgen_ty_bindgen_id_236621>()
                , 32usize);
-    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_231462>()
+    assert_eq!(::std::mem::align_of::<nsStyleBorder__bindgen_ty_bindgen_id_236621>()
                , 4usize);
 }
-impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_231462 {
+impl Clone for nsStyleBorder__bindgen_ty_bindgen_id_236621 {
     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)]
@@ -10189,18 +10223,18 @@ pub type nsStyleQuoteValues_HasThreadSaf
 fn bindgen_test_layout_nsStyleQuoteValues() {
     assert_eq!(::std::mem::size_of::<nsStyleQuoteValues>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsStyleQuoteValues>() , 8usize);
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsStyleList {
     pub mListStylePosition: u8,
+    pub mListStyleImage: RefPtr<nsStyleImageRequest>,
     pub mCounterStyle: RefPtr<CounterStyle>,
-    pub mListStyleImage: RefPtr<imgRequestProxy>,
     pub mQuotes: RefPtr<nsStyleQuoteValues>,
     pub mImageRegion: nsRect,
 }
 extern "C" {
     #[link_name = "_ZN11nsStyleList14sInitialQuotesE"]
     pub static mut nsStyleList_sInitialQuotes:
                StaticRefPtr<nsStyleQuoteValues>;
 }
@@ -10449,17 +10483,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_232467,
+    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_237617,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Type {
     Ease = 0,
     Linear = 1,
     EaseIn = 2,
     EaseOut = 3,
@@ -10468,66 +10502,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_232467 {
-    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232468>,
-    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232479>,
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_237617 {
+    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237618>,
+    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237629>,
     pub bindgen_union_field: [u32; 4usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232468 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237618 {
     pub mX1: f32,
     pub mY1: f32,
     pub mX2: f32,
     pub mY2: f32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232468() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232468>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237618() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237618>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232468>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237618>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232468
+ nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237618
  {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232479 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237629 {
     pub mSteps: u32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232479() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232479>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237629() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237629>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232479>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237629>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_232467__bindgen_ty_bindgen_id_232479
+ nsTimingFunction__bindgen_ty_bindgen_id_237617__bindgen_ty_bindgen_id_237629
  {
     fn clone(&self) -> Self { *self }
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_232467() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_232467>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_237617() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_237617>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_232467>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_237617>()
                , 4usize);
 }
-impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_232467 {
+impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_237617 {
     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 {
@@ -10578,23 +10612,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_232850<ReferenceBox>,
+    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_238000<ReferenceBox>,
     pub mType: StyleShapeSourceType,
     pub mReferenceBox: ReferenceBox,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct StyleShapeSource__bindgen_ty_bindgen_id_232850<ReferenceBox> {
+pub struct StyleShapeSource__bindgen_ty_bindgen_id_238000<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)]
@@ -10636,34 +10670,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_232952,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleContentData__bindgen_ty_bindgen_id_232952 {
+    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_238102,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleContentData__bindgen_ty_bindgen_id_238102 {
     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_232952() {
-    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_232952>()
+fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_238102() {
+    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_238102>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_232952>()
+    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_238102>()
                , 8usize);
 }
-impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_232952 {
+impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_238102 {
     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)]
@@ -10776,35 +10810,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_233442,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_238592,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_233442 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_238592 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut URLValue>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_233442() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_233442>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_238592() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238592>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_233442>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_238592>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_233442 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_238592 {
     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)]
@@ -10829,17 +10863,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_233611 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_238761 {
     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,
 }
@@ -10848,33 +10882,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_233686,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_233686 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_238836,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_238836 {
     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_233686() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_233686>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_238836() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_238836>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_233686>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_238836>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_233686 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_238836 {
     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)]