Regenerate bindings. draft
authorBobby Holley <bobbyholley@gmail.com>
Wed, 21 Sep 2016 14:39:05 -0700
changeset 416736 89a1df92f3fd6605dc9d6f8df0fc252b2aa49fb3
parent 416735 e8b317f1da85c9558f038132022e1c0c16d3829e
child 416737 52c026862d8ee30ed73c56a8ea6d5b55e8e2213f
push id30240
push userbmo:bobbyholley@gmail.com
push dateFri, 23 Sep 2016 00:05:34 +0000
milestone51.0a1
Regenerate bindings.
servo/ports/geckolib/gecko_bindings/structs_debug.rs
servo/ports/geckolib/gecko_bindings/structs_release.rs
servo/ports/geckolib/string_cache/atom_macro.rs
--- a/servo/ports/geckolib/gecko_bindings/structs_debug.rs
+++ b/servo/ports/geckolib/gecko_bindings/structs_debug.rs
@@ -1432,20 +1432,22 @@ impl Clone for Value {
 #[derive(Debug, Copy)]
 pub struct JSCompartment {
     pub _address: u8,
 }
 impl Clone for JSCompartment {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-#[derive(Debug)]
+#[derive(Debug, Copy, Clone)]
 pub struct atomic<_Tp> {
-    pub _M_i: _Tp,
-}
+    pub _base: (),
+    pub _phantom_0: ::std::marker::PhantomData<_Tp>,
+}
+pub type atomic___base = [u8; 0usize];
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct FreePolicy {
     pub _address: u8,
 }
 #[test]
 fn bindgen_test_layout_FreePolicy() {
     assert_eq!(::std::mem::size_of::<FreePolicy>() , 1usize);
@@ -1489,40 +1491,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_62758>,
-    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_62765>,
+    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_61680>,
+    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_61687>,
     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_62758 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_61680 {
     pub _bitfield_1: u64,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_62758() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_62758>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61680() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61680>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_62758>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61680>()
                , 8usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_62758 {
-    fn clone(&self) -> Self { *self }
-}
-impl jsval_layout__bindgen_ty_bindgen_id_62758 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_61680 {
+    fn clone(&self) -> Self { *self }
+}
+impl jsval_layout__bindgen_ty_bindgen_id_61680 {
     #[inline]
     pub fn payload47(&self) -> u64 {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (140737488355327usize as u64)) >>
                                        0u32) as u64)
         }
     }
@@ -1545,46 +1547,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_62765 {
-    pub payload: jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_61687 {
+    pub payload: jsval_layout__bindgen_ty_bindgen_id_61687__bindgen_ty_bindgen_id_61688,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct jsval_layout__bindgen_ty_bindgen_id_61687__bindgen_ty_bindgen_id_61688 {
     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_62765__bindgen_ty_bindgen_id_62766() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61687__bindgen_ty_bindgen_id_61688() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61687__bindgen_ty_bindgen_id_61688>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61687__bindgen_ty_bindgen_id_61688>()
                , 4usize);
 }
 impl Clone for
- jsval_layout__bindgen_ty_bindgen_id_62765__bindgen_ty_bindgen_id_62766 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_62765() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_62765>()
+ jsval_layout__bindgen_ty_bindgen_id_61687__bindgen_ty_bindgen_id_61688 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_61687() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_61687>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_62765>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_61687>()
                , 4usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_62765 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_61687 {
     fn clone(&self) -> Self { *self }
 }
 impl Clone for jsval_layout {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsAString_internal {
@@ -1608,17 +1610,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_64603 {
+pub enum nsAString_internal__bindgen_ty_bindgen_id_63525 {
     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,
@@ -1670,22 +1672,22 @@ impl Clone for nsString_Segment {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsString() {
     assert_eq!(::std::mem::size_of::<nsString>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsString>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_65213 {
+pub struct bindgen_vtable__bindgen_id_64135 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_65213,
+    pub vtable_: *const bindgen_vtable__bindgen_id_64135,
 }
 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 {
@@ -1717,17 +1719,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_66443 {
+pub enum nsACString_internal__bindgen_ty_bindgen_id_65365 {
     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,
@@ -1779,45 +1781,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_66995 {
+pub struct bindgen_vtable__bindgen_id_65917 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_66995,
+    pub vtable_: *const bindgen_vtable__bindgen_id_65917,
 }
 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_67298 {
+pub struct bindgen_vtable__bindgen_id_65961 {
 }
 /**
  * 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_67298,
+    pub vtable_: *const bindgen_vtable__bindgen_id_65961,
 }
 #[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>,
 }
@@ -1825,25 +1827,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_67581 {
+pub struct bindgen_vtable__bindgen_id_66244 {
 }
 /**
  * Participant implementation classes
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCycleCollectionParticipant {
-    pub vtable_: *const bindgen_vtable__bindgen_id_67581,
+    pub vtable_: *const bindgen_vtable__bindgen_id_66244,
     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);
@@ -2142,17 +2144,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_75451<CleanupPolicy>,
+    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_73746<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;
@@ -2172,17 +2174,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_75451<CleanupPolicy> {
+pub struct TErrorResult__bindgen_ty_bindgen_id_73746<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)]
@@ -2319,17 +2321,17 @@ impl nsIAtom {
     #[inline]
     pub fn set_mIsStatic(&mut self, val: u32) {
         self._bitfield_1 &= !(2147483648usize as u32);
         self._bitfield_1 |=
             ((val as u32 as u32) << 31u32) & (2147483648usize as u32);
     }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_76438 {
+pub struct bindgen_vtable__bindgen_id_74733 {
 }
 /**
  * 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
@@ -2361,17 +2363,17 @@ pub struct bindgen_vtable__bindgen_id_76
  *
  * A number of the methods are implemented in nsWrapperCacheInlines.h because we
  * have to include some JS headers that don't play nicely with the rest of the
  * codebase. Include nsWrapperCacheInlines.h if you need to call those methods.
  */
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsWrapperCache {
-    pub vtable_: *const bindgen_vtable__bindgen_id_76438,
+    pub vtable_: *const bindgen_vtable__bindgen_id_74733,
     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>,
@@ -2386,19 +2388,33 @@ pub type nsWrapperCache_FlagsType = u32;
    * causes between the native object and the JS object, so it is important that
    * any native object that supports preserving of its wrapper
    * traces/traverses/unlinks the cached JS object (see
    * NS_IMPL_CYCLE_COLLECTION_TRACE_PRESERVED_WRAPPER,
    * NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS and
    * NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER).
    */
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsWrapperCache__bindgen_ty_bindgen_id_76645 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_74940 {
     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_74943 {
+    WRAPPER_IS_NOT_DOM_BINDING = 2,
+}
+#[repr(u32)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_74946 {
+    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)]
 #[derive(Debug, Copy)]
 pub struct AllOwningUnionBase {
@@ -2463,33 +2479,65 @@ 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_93519 {
+#[derive(Debug, Copy)]
+pub struct input_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for input_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct forward_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for forward_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct bidirectional_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for bidirectional_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct random_access_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for random_access_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+pub struct bindgen_vtable__bindgen_id_94562 {
 }
 /**
  * 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_93519,
+    pub vtable_: *const bindgen_vtable__bindgen_id_94562,
 }
 #[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, Copy)]
@@ -2500,17 +2548,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_98969 {
+pub enum nsIPrincipal__bindgen_ty_bindgen_id_100010 {
     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);
@@ -2823,17 +2871,17 @@ pub enum nsIDocument_DocumentTheme {
     Doc_Theme_Neutral = 2,
     Doc_Theme_Dark = 3,
     Doc_Theme_Bright = 4,
 }
 pub type nsIDocument_FrameRequestCallbackList =
     nsTArray<RefPtr<FrameRequestCallback>>;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIDocument__bindgen_ty_bindgen_id_107679 { REQUEST_DISCARD = 1, }
+pub enum nsIDocument__bindgen_ty_bindgen_id_108720 { REQUEST_DISCARD = 1, }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsIDocument_DeprecatedOperations {
     eGetAttributeNode = 0,
     eSetAttributeNode = 1,
     eGetAttributeNodeNS = 2,
     eSetAttributeNodeNS = 3,
     eRemoveAttributeNode = 4,
@@ -3514,17 +3562,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_104382,
+    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_105423,
     pub mSlots: *mut nsINode_nsSlots,
     pub mServoNodeData: UniquePtr<ServoNodeData,
                                   DefaultDelete<ServoNodeData>>,
 }
 pub type nsINode_BoxQuadOptions = BoxQuadOptions;
 pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions;
 pub type nsINode_DOMPoint = DOMPoint;
 pub type nsINode_DOMPointInit = DOMPointInit;
@@ -3540,37 +3588,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_100513 {
+pub enum nsINode__bindgen_ty_bindgen_id_101554 {
     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_101282 {
+pub struct bindgen_vtable__bindgen_id_102323 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsINode_nsSlots {
-    pub vtable_: *const bindgen_vtable__bindgen_id_101282,
+    pub vtable_: *const bindgen_vtable__bindgen_id_102323,
     /**
      * A list of mutation observers
      */
     pub mMutationObservers: [u64; 2usize],
     /**
      * An object implementing nsIDOMNodeList for this content (childNodes)
      * @see nsIDOMNodeList
      * @see nsGenericHTMLElement::GetChildNodes
@@ -3629,29 +3677,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_104382 {
+pub struct nsINode__bindgen_ty_bindgen_id_105423 {
     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_104382() {
-    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_104382>()
+fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_105423() {
+    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_105423>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_104382>()
+    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_105423>()
                , 8usize);
 }
-impl Clone for nsINode__bindgen_ty_bindgen_id_104382 {
+impl Clone for nsINode__bindgen_ty_bindgen_id_105423 {
     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)]
@@ -3991,30 +4039,40 @@ 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_112514 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_113557 {
     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_113776 {
+    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]
 fn bindgen_test_layout_nsIDOMNode() {
     assert_eq!(::std::mem::size_of::<nsIDOMNode>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsIDOMNode>() , 8usize);
 }
 impl Clone for nsIDOMNode {
     fn clone(&self) -> Self { *self }
 }
@@ -4505,289 +4563,275 @@ impl nsPresContext {
     }
     #[inline]
     pub fn set_mIsEmulatingMedia(&mut self, val: ::std::os::raw::c_uint) {
         self._bitfield_1 &= !(67108864usize as u64);
         self._bitfield_1 |=
             ((val as u32 as u64) << 26u32) & (67108864usize as u64);
     }
     #[inline]
-    pub fn mAllInvalidated(&self) -> ::std::os::raw::c_uint {
+    pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (134217728usize as u64)) >> 27u32) as
                                       u32)
         }
     }
     #[inline]
-    pub fn set_mAllInvalidated(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(134217728usize as u64);
-        self._bitfield_1 |=
-            ((val as u32 as u64) << 27u32) & (134217728usize as u64);
-    }
-    #[inline]
-    pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint {
-        unsafe {
-            ::std::mem::transmute(((self._bitfield_1 &
-                                        (268435456usize as u64)) >> 28u32) as
-                                      u32)
-        }
-    }
-    #[inline]
     pub fn set_mIsGlyph(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(268435456usize as u64);
+        self._bitfield_1 &= !(134217728usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 28u32) & (268435456usize as u64);
+            ((val as u32 as u64) << 27u32) & (134217728usize as u64);
     }
     #[inline]
     pub fn mUsesRootEMUnits(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (536870912usize as u64)) >> 29u32) as
+                                        (268435456usize as u64)) >> 28u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mUsesRootEMUnits(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(536870912usize as u64);
+        self._bitfield_1 &= !(268435456usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 29u32) & (536870912usize as u64);
+            ((val as u32 as u64) << 28u32) & (268435456usize as u64);
     }
     #[inline]
     pub fn mUsesExChUnits(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (1073741824usize as u64)) >> 30u32) as
+                                        (536870912usize as u64)) >> 29u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mUsesExChUnits(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(1073741824usize as u64);
+        self._bitfield_1 &= !(536870912usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 30u32) & (1073741824usize as u64);
+            ((val as u32 as u64) << 29u32) & (536870912usize as u64);
     }
     #[inline]
     pub fn mUsesViewportUnits(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (2147483648usize as u64)) >> 31u32) as
+                                        (1073741824usize as u64)) >> 30u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mUsesViewportUnits(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(2147483648usize as u64);
+        self._bitfield_1 &= !(1073741824usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 31u32) & (2147483648usize as u64);
+            ((val as u32 as u64) << 30u32) & (1073741824usize as u64);
     }
     #[inline]
     pub fn mPendingViewportChange(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (4294967296usize as u64)) >> 32u32) as
+                                        (2147483648usize as u64)) >> 31u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mPendingViewportChange(&mut self,
                                       val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(4294967296usize as u64);
+        self._bitfield_1 &= !(2147483648usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 32u32) & (4294967296usize as u64);
+            ((val as u32 as u64) << 31u32) & (2147483648usize as u64);
     }
     #[inline]
     pub fn mCounterStylesDirty(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (8589934592usize as u64)) >> 33u32) as
+                                        (4294967296usize as u64)) >> 32u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mCounterStylesDirty(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(8589934592usize as u64);
+        self._bitfield_1 &= !(4294967296usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 33u32) & (8589934592usize as u64);
+            ((val as u32 as u64) << 32u32) & (4294967296usize as u64);
     }
     #[inline]
     pub fn mPostedFlushCounterStyles(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (17179869184usize as u64)) >> 34u32)
-                                      as u32)
+                                        (8589934592usize as u64)) >> 33u32) as
+                                      u32)
         }
     }
     #[inline]
     pub fn set_mPostedFlushCounterStyles(&mut self,
                                          val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(17179869184usize as u64);
+        self._bitfield_1 &= !(8589934592usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 34u32) & (17179869184usize as u64);
+            ((val as u32 as u64) << 33u32) & (8589934592usize as u64);
     }
     #[inline]
     pub fn mSuppressResizeReflow(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (34359738368usize as u64)) >> 35u32)
+                                        (17179869184usize as u64)) >> 34u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mSuppressResizeReflow(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(34359738368usize as u64);
+        self._bitfield_1 &= !(17179869184usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 35u32) & (34359738368usize as u64);
+            ((val as u32 as u64) << 34u32) & (17179869184usize as u64);
     }
     #[inline]
     pub fn mIsVisual(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (68719476736usize as u64)) >> 36u32)
+                                        (34359738368usize as u64)) >> 35u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mIsVisual(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(68719476736usize as u64);
+        self._bitfield_1 &= !(34359738368usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 36u32) & (68719476736usize as u64);
+            ((val as u32 as u64) << 35u32) & (34359738368usize as u64);
     }
     #[inline]
     pub fn mFireAfterPaintEvents(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (137438953472usize as u64)) >> 37u32)
+                                        (68719476736usize as u64)) >> 36u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mFireAfterPaintEvents(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(137438953472usize as u64);
+        self._bitfield_1 &= !(68719476736usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 37u32) & (137438953472usize as u64);
+            ((val as u32 as u64) << 36u32) & (68719476736usize as u64);
     }
     #[inline]
     pub fn mIsChrome(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (274877906944usize as u64)) >> 38u32)
+                                        (137438953472usize as u64)) >> 37u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mIsChrome(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(274877906944usize as u64);
+        self._bitfield_1 &= !(137438953472usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 38u32) & (274877906944usize as u64);
+            ((val as u32 as u64) << 37u32) & (137438953472usize as u64);
     }
     #[inline]
     pub fn mIsChromeOriginImage(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (549755813888usize as u64)) >> 39u32)
+                                        (274877906944usize as u64)) >> 38u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mIsChromeOriginImage(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(549755813888usize as u64);
+        self._bitfield_1 &= !(274877906944usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 39u32) & (549755813888usize as u64);
+            ((val as u32 as u64) << 38u32) & (274877906944usize as u64);
     }
     #[inline]
     pub fn mPaintFlashing(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (1099511627776usize as u64)) >> 40u32)
+                                        (549755813888usize as u64)) >> 39u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mPaintFlashing(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(1099511627776usize as u64);
+        self._bitfield_1 &= !(549755813888usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 40u32) & (1099511627776usize as u64);
+            ((val as u32 as u64) << 39u32) & (549755813888usize as u64);
     }
     #[inline]
     pub fn mPaintFlashingInitialized(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (2199023255552usize as u64)) >> 41u32)
+                                        (1099511627776usize as u64)) >> 40u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mPaintFlashingInitialized(&mut self,
                                          val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(2199023255552usize as u64);
+        self._bitfield_1 &= !(1099511627776usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 41u32) & (2199023255552usize as u64);
+            ((val as u32 as u64) << 40u32) & (1099511627776usize as u64);
     }
     #[inline]
     pub fn mHasWarnedAboutPositionedTableParts(&self)
      -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (4398046511104usize as u64)) >> 42u32)
+                                        (2199023255552usize as u64)) >> 41u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mHasWarnedAboutPositionedTableParts(&mut self,
                                                    val:
                                                        ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(4398046511104usize as u64);
+        self._bitfield_1 &= !(2199023255552usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 42u32) & (4398046511104usize as u64);
+            ((val as u32 as u64) << 41u32) & (2199023255552usize as u64);
     }
     #[inline]
     pub fn mHasWarnedAboutTooLargeDashedOrDottedRadius(&self)
      -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (8796093022208usize as u64)) >> 43u32)
+                                        (4398046511104usize as u64)) >> 42u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mHasWarnedAboutTooLargeDashedOrDottedRadius(&mut self,
                                                            val:
                                                                ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(8796093022208usize as u64);
+        self._bitfield_1 &= !(4398046511104usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 43u32) & (8796093022208usize as u64);
+            ((val as u32 as u64) << 42u32) & (4398046511104usize as u64);
     }
     #[inline]
     pub fn mQuirkSheetAdded(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (17592186044416usize as u64)) >>
-                                       44u32) as u32)
+                                        (8796093022208usize as u64)) >> 43u32)
+                                      as u32)
         }
     }
     #[inline]
     pub fn set_mQuirkSheetAdded(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(17592186044416usize as u64);
+        self._bitfield_1 &= !(8796093022208usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 44u32) & (17592186044416usize as u64);
+            ((val as u32 as u64) << 43u32) & (8796093022208usize as u64);
     }
     #[inline]
     pub fn mNeedsPrefUpdate(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (35184372088832usize as u64)) >>
-                                       45u32) as u32)
+                                        (17592186044416usize as u64)) >>
+                                       44u32) as u32)
         }
     }
     #[inline]
     pub fn set_mNeedsPrefUpdate(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(35184372088832usize as u64);
+        self._bitfield_1 &= !(17592186044416usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 45u32) & (35184372088832usize as u64);
+            ((val as u32 as u64) << 44u32) & (17592186044416usize as u64);
     }
 }
 /**
  * Smart pointer class that can hold a pointer to either a RestyleManager
  * or a ServoRestyleManager.
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
@@ -5118,17 +5162,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_117256 { ALLOW_MEMMOVE = 0, }
+pub enum nsPtrHashKey__bindgen_ty_bindgen_id_118298 { 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,
@@ -5138,21 +5182,27 @@ 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_118596 {
+pub enum nsIContent__bindgen_ty_bindgen_id_119638 {
     eAllChildren = 0,
     eAllButXBL = 1,
     eSkipPlaceholderContent = 2,
 }
+#[repr(i32)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum nsIContent__bindgen_ty_bindgen_id_119874 {
+    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
    * match, we return ATTR_VALUE_NO_MATCH. A non-negative result always
    * indicates a match.
    *
@@ -5345,17 +5395,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_119962,
+    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_121005,
     /**
      * 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>,
@@ -5382,36 +5432,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_119962 {
+pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_121005 {
     /**
       * 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_119962() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962>()
+fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_121005() {
+    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_121005>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962>()
+    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_121005>()
                , 8usize);
 }
-impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_119962 {
+impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_121005 {
     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);
@@ -5452,41 +5502,55 @@ pub type nsWeakPtr = nsCOMPtr<nsIWeakRef
 #[derive(Debug, Copy)]
 pub struct PrefSetting {
     pub _address: u8,
 }
 impl Clone for PrefSetting {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __bit_const_reference<_Cp> {
+    pub __seg_: __bit_const_reference___storage_pointer<_Cp>,
+    pub __mask_: __bit_const_reference___storage_type<_Cp>,
+}
+pub type __bit_const_reference___storage_type<_Cp> = _Cp;
+pub type __bit_const_reference___storage_pointer<_Cp> = _Cp;
+#[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsIChannel {
     pub _base: nsIRequest,
 }
 #[repr(C)]
 #[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_135707 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_138490 {
     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_138510 {
+    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);
 }
 impl Clone for nsIChannel {
     fn clone(&self) -> Self { *self }
 }
@@ -5499,17 +5563,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_135545 {
+pub enum nsIRequest__bindgen_ty_bindgen_id_138328 {
     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,
@@ -5981,17 +6045,16 @@ pub struct nsIPresShell {
     pub mPresContext: RefPtr<nsPresContext>,
     pub mStyleSet: StyleSetHandle,
     pub mFrameConstructor: *mut nsCSSFrameConstructor,
     pub mViewManager: *mut nsViewManager,
     pub mFrameArena: nsPresArena,
     pub mSelection: RefPtr<nsFrameSelection>,
     pub mFrameManager: *mut nsFrameManagerBase,
     pub mForwardingContainer: u64,
-    pub mHiddenInvalidationObserverRefreshDriver: *mut nsRefreshDriver,
     pub mDocAccessible: *mut DocAccessible,
     pub mReflowContinueTimer: nsCOMPtr<nsITimer>,
     pub mDrawEventTargetFrame: *mut nsIFrame,
     pub mAllocatedPointers: [u64; 6usize],
     pub mPaintCount: u64,
     pub mScrollPositionClampingScrollPortSize: nsSize,
     pub mWeakFrames: *mut nsWeakFrame,
     pub mCanvasBackgroundColor: nscolor,
@@ -6054,23 +6117,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_154828 =
-    nsIPresShell__bindgen_ty_bindgen_id_154828::SCROLL_TOP;
-pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_154828 =
-    nsIPresShell__bindgen_ty_bindgen_id_154828::SCROLL_BOTTOM;
+pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_156315 =
+    nsIPresShell__bindgen_ty_bindgen_id_156315::SCROLL_TOP;
+pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_156315 =
+    nsIPresShell__bindgen_ty_bindgen_id_156315::SCROLL_BOTTOM;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_154828 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_156315 {
     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 {
@@ -6086,16 +6149,90 @@ pub struct nsIPresShell_ScrollAxis {
 #[test]
 fn bindgen_test_layout_nsIPresShell_ScrollAxis() {
     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_156346 {
+    SCROLL_FIRST_ANCESTOR_ONLY = 1,
+    SCROLL_OVERFLOW_HIDDEN = 2,
+    SCROLL_NO_PARENT_FRAMES = 4,
+    SCROLL_SMOOTH = 8,
+    SCROLL_SMOOTH_AUTO = 16,
+}
+#[repr(u32)]
+/**
+   * Render the document into an arbitrary gfxContext
+   * Designed for getting a picture of a document or a piece of a document
+   * Note that callers will generally want to call FlushPendingNotifications
+   * to get an up-to-date view of the document
+   * @param aRect is the region to capture into the offscreen buffer, in the
+   * root frame's coordinate system (if aIgnoreViewportScrolling is false)
+   * or in the root scrolled frame's coordinate system
+   * (if aIgnoreViewportScrolling is true). The coordinates are in appunits.
+   * @param aFlags see below;
+   *   set RENDER_IS_UNTRUSTED if the contents may be passed to malicious
+   * agents. E.g. we might choose not to paint the contents of sensitive widgets
+   * such as the file name in a file upload widget, and we might choose not
+   * to paint themes.
+   *   set RENDER_IGNORE_VIEWPORT_SCROLLING to ignore
+   * clipping and scrollbar painting due to scrolling in the viewport
+   *   set RENDER_CARET to draw the caret if one would be visible
+   * (by default the caret is never drawn)
+   *   set RENDER_USE_LAYER_MANAGER to force rendering to go through
+   * the layer manager for the window. This may be unexpectedly slow
+   * (if the layer manager must read back data from the GPU) or low-quality
+   * (if the layer manager reads back pixel data and scales it
+   * instead of rendering using the appropriate scaling). It may also
+   * slow everything down if the area rendered does not correspond to the
+   * normal visible area of the window.
+   *   set RENDER_ASYNC_DECODE_IMAGES to avoid having images synchronously
+   * decoded during rendering.
+   * (by default images decode synchronously with RenderDocument)
+   *   set RENDER_DOCUMENT_RELATIVE to render the document as if there has been
+   * no scrolling and interpret |aRect| relative to the document instead of the
+   * CSS viewport. Only considered if RENDER_IGNORE_VIEWPORT_SCROLLING is set
+   * 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_156799 {
+    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_156817 {
+    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_156940 { FORCE_DRAW = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIPresShell_PointerCaptureInfo {
     pub mPendingContent: nsCOMPtr<nsIContent>,
     pub mOverrideContent: nsCOMPtr<nsIContent>,
     pub mPrimaryState: bool,
 }
 #[test]
@@ -6153,17 +6290,17 @@ extern "C" {
     pub static mut nsIPresShell_gActivePointersIds: *mut ();
 }
 extern "C" {
     #[link_name = "_ZN12nsIPresShell14gKeyDownTargetE"]
     pub static mut nsIPresShell_gKeyDownTarget: *mut nsIContent;
 }
 #[test]
 fn bindgen_test_layout_nsIPresShell() {
-    assert_eq!(::std::mem::size_of::<nsIPresShell>() , 416usize);
+    assert_eq!(::std::mem::size_of::<nsIPresShell>() , 408usize);
     assert_eq!(::std::mem::align_of::<nsIPresShell>() , 8usize);
 }
 impl nsIPresShell {
     #[inline]
     pub fn mStylesHaveChanged(&self) -> bool {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 & (1usize as u16)) >>
                                        0u32) as u8)
@@ -6480,77 +6617,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_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_LISTENERMANAGER;
-pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_PROPERTIES;
-pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_IS_ANONYMOUS_ROOT;
-pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_FORCE_XBL_BINDINGS;
-pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_MAY_BE_IN_BINDING_MNGR;
-pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_IS_EDITABLE;
-pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_MAY_HAVE_CLASS;
-pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_IS_IN_SHADOW_TREE;
-pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_EMPTY_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_SLOW_SELECTOR;
-pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_EDGE_CHILD_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_156879
+pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_LISTENERMANAGER;
+pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_PROPERTIES;
+pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_IS_ANONYMOUS_ROOT;
+pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_FORCE_XBL_BINDINGS;
+pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_MAY_BE_IN_BINDING_MNGR;
+pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_IS_EDITABLE;
+pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_MAY_HAVE_CLASS;
+pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_IS_IN_SHADOW_TREE;
+pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_EMPTY_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_SLOW_SELECTOR;
+pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_EDGE_CHILD_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_158347
           =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_ALL_SELECTOR_FLAGS;
-pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_NEEDS_FRAME;
-pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_DESCENDANTS_NEED_FRAMES;
-pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_ACCESSKEY;
-pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_DIRECTION_RTL;
-pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_HAS_DIRECTION_LTR;
-pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_ALL_DIRECTION_FLAGS;
-pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_CHROME_ONLY_ACCESS;
-pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_156879
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_ALL_SELECTOR_FLAGS;
+pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_NEEDS_FRAME;
+pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_DESCENDANTS_NEED_FRAMES;
+pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_ACCESSKEY;
+pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_DIRECTION_RTL;
+pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_HAS_DIRECTION_LTR;
+pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_ALL_DIRECTION_FLAGS;
+pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_CHROME_ONLY_ACCESS;
+pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_158347
           =
-    _bindgen_ty_bindgen_id_156879::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_156879 =
-    _bindgen_ty_bindgen_id_156879::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    _bindgen_ty_bindgen_id_158347::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_158347 =
+    _bindgen_ty_bindgen_id_158347::NODE_TYPE_SPECIFIC_BITS_OFFSET;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum _bindgen_ty_bindgen_id_156879 {
+pub enum _bindgen_ty_bindgen_id_158347 {
     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,
@@ -6598,17 +6735,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_173287 {
+pub enum nsITimer__bindgen_ty_bindgen_id_174915 {
     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);
@@ -6624,17 +6761,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_173763 {
+pub enum nsExpirationState__bindgen_ty_bindgen_id_175391 {
     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);
 }
@@ -6698,26 +6835,33 @@ 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_175185 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_175978 {
     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_176058 {
+    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);
 }
 impl Clone for imgIRequest {
     fn clone(&self) -> Self { *self }
 }
@@ -7202,17 +7346,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_195712 {
+pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_196508 {
     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]
@@ -7229,17 +7373,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_195859 {
+pub enum imgINotificationObserver__bindgen_ty_bindgen_id_196655 {
     SIZE_AVAILABLE = 1,
     FRAME_UPDATE = 2,
     FRAME_COMPLETE = 3,
     LOAD_COMPLETE = 4,
     DECODE_COMPLETE = 5,
     DISCARD = 6,
     UNLOCKED_DRAW = 7,
     IS_ANIMATED = 8,
@@ -7478,17 +7622,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_197113
+pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_197909
          {
     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>()
@@ -7874,33 +8018,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_197858 {
+pub struct _bindgen_ty_bindgen_id_198662 {
     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_197858() {
-    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_197858>() ,
+fn bindgen_test_layout__bindgen_ty_bindgen_id_198662() {
+    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_198662>() ,
                8usize);
-    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_197858>() ,
+    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_198662>() ,
                8usize);
 }
-impl Clone for _bindgen_ty_bindgen_id_197858 {
-    fn clone(&self) -> Self { *self }
-}
-pub type nsStyleUnion = _bindgen_ty_bindgen_id_197858;
+impl Clone for _bindgen_ty_bindgen_id_198662 {
+    fn clone(&self) -> Self { *self }
+}
+pub type nsStyleUnion = _bindgen_ty_bindgen_id_198662;
 /**
  * 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.
  */
@@ -8915,34 +9059,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_206771 {
+pub struct bindgen_vtable__bindgen_id_207732 {
 }
 /**
  * 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_206771,
+    pub vtable_: *const bindgen_vtable__bindgen_id_207732,
     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)]
@@ -8954,17 +9098,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_206852 {
+pub enum nsISupportsPriority__bindgen_ty_bindgen_id_207813 {
     PRIORITY_HIGHEST = -20,
     PRIORITY_HIGH = -10,
     PRIORITY_NORMAL = 0,
     PRIORITY_LOW = 10,
     PRIORITY_LOWEST = 20,
 }
 #[test]
 fn bindgen_test_layout_nsISupportsPriority() {
@@ -9345,33 +9489,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_209746,
+    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_210707,
 }
 #[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_209746 {
+pub struct nsCSSValue__bindgen_ty_bindgen_id_210707 {
     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>,
@@ -9385,23 +9529,23 @@ pub struct nsCSSValue__bindgen_ty_bindge
     pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>,
     pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>,
     pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>,
     pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>,
     pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_209746() {
-    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_209746>()
+fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_210707() {
+    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_210707>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_209746>()
+    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_210707>()
                , 8usize);
 }
-impl Clone for nsCSSValue__bindgen_ty_bindgen_id_209746 {
+impl Clone for nsCSSValue__bindgen_ty_bindgen_id_210707 {
     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)]
@@ -9412,22 +9556,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_209953 {
+pub struct bindgen_vtable__bindgen_id_210914 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct CounterStyle {
-    pub vtable_: *const bindgen_vtable__bindgen_id_209953,
+    pub vtable_: *const bindgen_vtable__bindgen_id_210914,
     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 {
@@ -9614,36 +9758,36 @@ 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_211908,
+    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_212871,
     pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
     pub mImageTracked: bool,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleImage__bindgen_ty_bindgen_id_211908 {
+pub struct nsStyleImage__bindgen_ty_bindgen_id_212871 {
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     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_211908() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_211908>()
+fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_212871() {
+    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_212871>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_211908>()
+    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_212871>()
                , 8usize);
 }
-impl Clone for nsStyleImage__bindgen_ty_bindgen_id_211908 {
+impl Clone for nsStyleImage__bindgen_ty_bindgen_id_212871 {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsStyleImage() {
     assert_eq!(::std::mem::size_of::<nsStyleImage>() , 40usize);
     assert_eq!(::std::mem::align_of::<nsStyleImage>() , 8usize);
 }
 #[repr(C)]
@@ -9684,17 +9828,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_211954 {
+pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_212917 {
     shorthand = 0,
     color = 1,
     image = 2,
     repeat = 3,
     positionX = 4,
     positionY = 5,
     clip = 6,
     origin = 7,
@@ -10220,17 +10364,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_213713,
+    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_214676,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Type {
     Ease = 0,
     Linear = 1,
     EaseIn = 2,
     EaseOut = 3,
@@ -10239,66 +10383,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_213713 {
-    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714>,
-    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725>,
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_214676 {
+    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214677>,
+    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214688>,
     pub bindgen_union_field: [u32; 4usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214677 {
     pub mX1: f32,
     pub mY1: f32,
     pub mX2: f32,
     pub mY2: f32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214677() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214677>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214677>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213714
+ nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214677
  {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214688 {
     pub mSteps: u32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214688() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214688>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214688>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_213713__bindgen_ty_bindgen_id_213725
+ nsTimingFunction__bindgen_ty_bindgen_id_214676__bindgen_ty_bindgen_id_214688
  {
     fn clone(&self) -> Self { *self }
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_213713() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_214676() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_214676>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_213713>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_214676>()
                , 4usize);
 }
-impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_213713 {
+impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_214676 {
     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 {
@@ -10349,23 +10493,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_214096<ReferenceBox>,
+    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_215059<ReferenceBox>,
     pub mType: StyleShapeSourceType,
     pub mReferenceBox: ReferenceBox,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct StyleShapeSource__bindgen_ty_bindgen_id_214096<ReferenceBox> {
+pub struct StyleShapeSource__bindgen_ty_bindgen_id_215059<ReferenceBox> {
     pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>,
     pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
     pub bindgen_union_field: u64,
     pub _phantom_0: ::std::marker::PhantomData<ReferenceBox>,
 }
 pub type StyleClipPath = StyleShapeSource<StyleClipPathGeometryBox>;
 pub type StyleShapeOutside = StyleShapeSource<StyleShapeOutsideShapeBox>;
 #[repr(C)]
@@ -10407,35 +10551,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_214180,
+    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_215143,
     pub mImageTracked: bool,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleContentData__bindgen_ty_bindgen_id_214180 {
+pub struct nsStyleContentData__bindgen_ty_bindgen_id_215143 {
     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_214180() {
-    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_214180>()
+fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_215143() {
+    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_215143>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_214180>()
+    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_215143>()
                , 8usize);
 }
-impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_214180 {
+impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_215143 {
     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)]
@@ -10550,35 +10694,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_214579,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_215542,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_214579 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_215542 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_214579() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_214579>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_215542() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_215542>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_214579>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_215542>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_214579 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_215542 {
     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)]
@@ -10603,17 +10747,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_214756 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_215719 {
     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,
 }
@@ -10622,33 +10766,33 @@ fn bindgen_test_layout_nsStyleSVG() {
     assert_eq!(::std::mem::size_of::<nsStyleSVG>() , 144usize);
     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_214822,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_214822 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_215785,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_215785 {
     pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_214822() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_214822>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_215785() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_215785>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_214822>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_215785>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_214822 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_215785 {
     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/ports/geckolib/gecko_bindings/structs_release.rs
+++ b/servo/ports/geckolib/gecko_bindings/structs_release.rs
@@ -1432,20 +1432,22 @@ impl Clone for Value {
 #[derive(Debug, Copy)]
 pub struct JSCompartment {
     pub _address: u8,
 }
 impl Clone for JSCompartment {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
-#[derive(Debug)]
+#[derive(Debug, Copy, Clone)]
 pub struct atomic<_Tp> {
-    pub _M_i: _Tp,
-}
+    pub _base: (),
+    pub _phantom_0: ::std::marker::PhantomData<_Tp>,
+}
+pub type atomic___base = [u8; 0usize];
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct FreePolicy {
     pub _address: u8,
 }
 #[test]
 fn bindgen_test_layout_FreePolicy() {
     assert_eq!(::std::mem::size_of::<FreePolicy>() , 1usize);
@@ -1489,40 +1491,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_60705>,
-    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_60712>,
+    pub debugView: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_59538>,
+    pub s: __BindgenUnionField<jsval_layout__bindgen_ty_bindgen_id_59545>,
     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_60705 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_59538 {
     pub _bitfield_1: u64,
 }
 #[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_60705() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_60705>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_59538() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_59538>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_60705>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_59538>()
                , 8usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_60705 {
-    fn clone(&self) -> Self { *self }
-}
-impl jsval_layout__bindgen_ty_bindgen_id_60705 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_59538 {
+    fn clone(&self) -> Self { *self }
+}
+impl jsval_layout__bindgen_ty_bindgen_id_59538 {
     #[inline]
     pub fn payload47(&self) -> u64 {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (140737488355327usize as u64)) >>
                                        0u32) as u64)
         }
     }
@@ -1545,46 +1547,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_60712 {
-    pub payload: jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713 {
+pub struct jsval_layout__bindgen_ty_bindgen_id_59545 {
+    pub payload: jsval_layout__bindgen_ty_bindgen_id_59545__bindgen_ty_bindgen_id_59546,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct jsval_layout__bindgen_ty_bindgen_id_59545__bindgen_ty_bindgen_id_59546 {
     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_60712__bindgen_ty_bindgen_id_60713() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713>()
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_59545__bindgen_ty_bindgen_id_59546() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_59545__bindgen_ty_bindgen_id_59546>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_59545__bindgen_ty_bindgen_id_59546>()
                , 4usize);
 }
 impl Clone for
- jsval_layout__bindgen_ty_bindgen_id_60712__bindgen_ty_bindgen_id_60713 {
-    fn clone(&self) -> Self { *self }
-}
-#[test]
-fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_60712() {
-    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_60712>()
+ jsval_layout__bindgen_ty_bindgen_id_59545__bindgen_ty_bindgen_id_59546 {
+    fn clone(&self) -> Self { *self }
+}
+#[test]
+fn bindgen_test_layout_jsval_layout__bindgen_ty_bindgen_id_59545() {
+    assert_eq!(::std::mem::size_of::<jsval_layout__bindgen_ty_bindgen_id_59545>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_60712>()
+    assert_eq!(::std::mem::align_of::<jsval_layout__bindgen_ty_bindgen_id_59545>()
                , 4usize);
 }
-impl Clone for jsval_layout__bindgen_ty_bindgen_id_60712 {
+impl Clone for jsval_layout__bindgen_ty_bindgen_id_59545 {
     fn clone(&self) -> Self { *self }
 }
 impl Clone for jsval_layout {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsAString_internal {
@@ -1608,17 +1610,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_62550 {
+pub enum nsAString_internal__bindgen_ty_bindgen_id_61383 {
     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,
@@ -1670,22 +1672,22 @@ impl Clone for nsString_Segment {
     fn clone(&self) -> Self { *self }
 }
 #[test]
 fn bindgen_test_layout_nsString() {
     assert_eq!(::std::mem::size_of::<nsString>() , 16usize);
     assert_eq!(::std::mem::align_of::<nsString>() , 8usize);
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_63160 {
+pub struct bindgen_vtable__bindgen_id_61993 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_63160,
+    pub vtable_: *const bindgen_vtable__bindgen_id_61993,
 }
 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 {
@@ -1717,17 +1719,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_64390 {
+pub enum nsACString_internal__bindgen_ty_bindgen_id_63223 {
     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,
@@ -1779,45 +1781,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_64942 {
+pub struct bindgen_vtable__bindgen_id_63775 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCStringComparator {
-    pub vtable_: *const bindgen_vtable__bindgen_id_64942,
+    pub vtable_: *const bindgen_vtable__bindgen_id_63775,
 }
 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_65245 {
+pub struct bindgen_vtable__bindgen_id_63819 {
 }
 /**
  * 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_65245,
+    pub vtable_: *const bindgen_vtable__bindgen_id_63819,
 }
 #[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>,
 }
@@ -1825,25 +1827,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_65528 {
+pub struct bindgen_vtable__bindgen_id_64102 {
 }
 /**
  * Participant implementation classes
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsCycleCollectionParticipant {
-    pub vtable_: *const bindgen_vtable__bindgen_id_65528,
+    pub vtable_: *const bindgen_vtable__bindgen_id_64102,
     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);
@@ -2156,34 +2158,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_70167<CleanupPolicy>,
+    pub __bindgen_anon_1: TErrorResult__bindgen_ty_bindgen_id_68731<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_70167<CleanupPolicy> {
+pub struct TErrorResult__bindgen_ty_bindgen_id_68731<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)]
@@ -2306,17 +2308,17 @@ impl nsIAtom {
     #[inline]
     pub fn set_mIsStatic(&mut self, val: u32) {
         self._bitfield_1 &= !(2147483648usize as u32);
         self._bitfield_1 |=
             ((val as u32 as u32) << 31u32) & (2147483648usize as u32);
     }
 }
 #[repr(C)]
-pub struct bindgen_vtable__bindgen_id_70938 {
+pub struct bindgen_vtable__bindgen_id_69502 {
 }
 /**
  * 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
@@ -2348,17 +2350,17 @@ pub struct bindgen_vtable__bindgen_id_70
  *
  * 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_70938,
+    pub vtable_: *const bindgen_vtable__bindgen_id_69502,
     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>,
@@ -2373,19 +2375,33 @@ 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_71134 {
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_69698 {
     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_69701 {
+    WRAPPER_IS_NOT_DOM_BINDING = 2,
+}
+#[repr(u32)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum nsWrapperCache__bindgen_ty_bindgen_id_69704 {
+    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)]
 #[derive(Debug, Copy)]
 pub struct AllOwningUnionBase {
@@ -2450,33 +2466,65 @@ 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_87955 {
+#[derive(Debug, Copy)]
+pub struct input_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for input_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct forward_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for forward_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct bidirectional_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for bidirectional_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct random_access_iterator_tag {
+    pub _address: u8,
+}
+impl Clone for random_access_iterator_tag {
+    fn clone(&self) -> Self { *self }
+}
+#[repr(C)]
+pub struct bindgen_vtable__bindgen_id_89267 {
 }
 /**
  * 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_87955,
+    pub vtable_: *const bindgen_vtable__bindgen_id_89267,
 }
 #[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, Copy)]
@@ -2487,17 +2535,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_93396 {
+pub enum nsIPrincipal__bindgen_ty_bindgen_id_94706 {
     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);
@@ -2805,17 +2853,17 @@ pub enum nsIDocument_DocumentTheme {
     Doc_Theme_Neutral = 2,
     Doc_Theme_Dark = 3,
     Doc_Theme_Bright = 4,
 }
 pub type nsIDocument_FrameRequestCallbackList =
     nsTArray<RefPtr<FrameRequestCallback>>;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIDocument__bindgen_ty_bindgen_id_102082 { REQUEST_DISCARD = 1, }
+pub enum nsIDocument__bindgen_ty_bindgen_id_103392 { REQUEST_DISCARD = 1, }
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsIDocument_DeprecatedOperations {
     eGetAttributeNode = 0,
     eSetAttributeNode = 1,
     eGetAttributeNodeNS = 2,
     eSetAttributeNodeNS = 3,
     eRemoveAttributeNode = 4,
@@ -3496,17 +3544,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_98796,
+    pub __bindgen_anon_1: nsINode__bindgen_ty_bindgen_id_100106,
     pub mSlots: *mut nsINode_nsSlots,
     pub mServoNodeData: UniquePtr<ServoNodeData,
                                   DefaultDelete<ServoNodeData>>,
 }
 pub type nsINode_BoxQuadOptions = BoxQuadOptions;
 pub type nsINode_ConvertCoordinateOptions = ConvertCoordinateOptions;
 pub type nsINode_DOMPoint = DOMPoint;
 pub type nsINode_DOMPointInit = DOMPointInit;
@@ -3522,37 +3570,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_94940 {
+pub enum nsINode__bindgen_ty_bindgen_id_96250 {
     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_95709 {
+pub struct bindgen_vtable__bindgen_id_97019 {
 }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsINode_nsSlots {
-    pub vtable_: *const bindgen_vtable__bindgen_id_95709,
+    pub vtable_: *const bindgen_vtable__bindgen_id_97019,
     /**
      * A list of mutation observers
      */
     pub mMutationObservers: [u64; 2usize],
     /**
      * An object implementing nsIDOMNodeList for this content (childNodes)
      * @see nsIDOMNodeList
      * @see nsGenericHTMLElement::GetChildNodes
@@ -3611,29 +3659,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_98796 {
+pub struct nsINode__bindgen_ty_bindgen_id_100106 {
     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_98796() {
-    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_98796>() ,
-               8usize);
-    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_98796>()
+fn bindgen_test_layout_nsINode__bindgen_ty_bindgen_id_100106() {
+    assert_eq!(::std::mem::size_of::<nsINode__bindgen_ty_bindgen_id_100106>()
                , 8usize);
-}
-impl Clone for nsINode__bindgen_ty_bindgen_id_98796 {
+    assert_eq!(::std::mem::align_of::<nsINode__bindgen_ty_bindgen_id_100106>()
+               , 8usize);
+}
+impl Clone for nsINode__bindgen_ty_bindgen_id_100106 {
     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)]
@@ -3973,30 +4021,40 @@ 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_107063 {
+pub enum nsIDOMNode__bindgen_ty_bindgen_id_108375 {
     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_108594 {
+    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]
 fn bindgen_test_layout_nsIDOMNode() {
     assert_eq!(::std::mem::size_of::<nsIDOMNode>() , 8usize);
     assert_eq!(::std::mem::align_of::<nsIDOMNode>() , 8usize);
 }
 impl Clone for nsIDOMNode {
     fn clone(&self) -> Self { *self }
 }
@@ -4484,289 +4542,275 @@ impl nsPresContext {
     }
     #[inline]
     pub fn set_mIsEmulatingMedia(&mut self, val: ::std::os::raw::c_uint) {
         self._bitfield_1 &= !(67108864usize as u64);
         self._bitfield_1 |=
             ((val as u32 as u64) << 26u32) & (67108864usize as u64);
     }
     #[inline]
-    pub fn mAllInvalidated(&self) -> ::std::os::raw::c_uint {
+    pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
                                         (134217728usize as u64)) >> 27u32) as
                                       u32)
         }
     }
     #[inline]
-    pub fn set_mAllInvalidated(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(134217728usize as u64);
-        self._bitfield_1 |=
-            ((val as u32 as u64) << 27u32) & (134217728usize as u64);
-    }
-    #[inline]
-    pub fn mIsGlyph(&self) -> ::std::os::raw::c_uint {
-        unsafe {
-            ::std::mem::transmute(((self._bitfield_1 &
-                                        (268435456usize as u64)) >> 28u32) as
-                                      u32)
-        }
-    }
-    #[inline]
     pub fn set_mIsGlyph(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(268435456usize as u64);
+        self._bitfield_1 &= !(134217728usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 28u32) & (268435456usize as u64);
+            ((val as u32 as u64) << 27u32) & (134217728usize as u64);
     }
     #[inline]
     pub fn mUsesRootEMUnits(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (536870912usize as u64)) >> 29u32) as
+                                        (268435456usize as u64)) >> 28u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mUsesRootEMUnits(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(536870912usize as u64);
+        self._bitfield_1 &= !(268435456usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 29u32) & (536870912usize as u64);
+            ((val as u32 as u64) << 28u32) & (268435456usize as u64);
     }
     #[inline]
     pub fn mUsesExChUnits(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (1073741824usize as u64)) >> 30u32) as
+                                        (536870912usize as u64)) >> 29u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mUsesExChUnits(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(1073741824usize as u64);
+        self._bitfield_1 &= !(536870912usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 30u32) & (1073741824usize as u64);
+            ((val as u32 as u64) << 29u32) & (536870912usize as u64);
     }
     #[inline]
     pub fn mUsesViewportUnits(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (2147483648usize as u64)) >> 31u32) as
+                                        (1073741824usize as u64)) >> 30u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mUsesViewportUnits(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(2147483648usize as u64);
+        self._bitfield_1 &= !(1073741824usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 31u32) & (2147483648usize as u64);
+            ((val as u32 as u64) << 30u32) & (1073741824usize as u64);
     }
     #[inline]
     pub fn mPendingViewportChange(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (4294967296usize as u64)) >> 32u32) as
+                                        (2147483648usize as u64)) >> 31u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mPendingViewportChange(&mut self,
                                       val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(4294967296usize as u64);
+        self._bitfield_1 &= !(2147483648usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 32u32) & (4294967296usize as u64);
+            ((val as u32 as u64) << 31u32) & (2147483648usize as u64);
     }
     #[inline]
     pub fn mCounterStylesDirty(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (8589934592usize as u64)) >> 33u32) as
+                                        (4294967296usize as u64)) >> 32u32) as
                                       u32)
         }
     }
     #[inline]
     pub fn set_mCounterStylesDirty(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(8589934592usize as u64);
+        self._bitfield_1 &= !(4294967296usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 33u32) & (8589934592usize as u64);
+            ((val as u32 as u64) << 32u32) & (4294967296usize as u64);
     }
     #[inline]
     pub fn mPostedFlushCounterStyles(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (17179869184usize as u64)) >> 34u32)
-                                      as u32)
+                                        (8589934592usize as u64)) >> 33u32) as
+                                      u32)
         }
     }
     #[inline]
     pub fn set_mPostedFlushCounterStyles(&mut self,
                                          val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(17179869184usize as u64);
+        self._bitfield_1 &= !(8589934592usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 34u32) & (17179869184usize as u64);
+            ((val as u32 as u64) << 33u32) & (8589934592usize as u64);
     }
     #[inline]
     pub fn mSuppressResizeReflow(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (34359738368usize as u64)) >> 35u32)
+                                        (17179869184usize as u64)) >> 34u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mSuppressResizeReflow(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(34359738368usize as u64);
+        self._bitfield_1 &= !(17179869184usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 35u32) & (34359738368usize as u64);
+            ((val as u32 as u64) << 34u32) & (17179869184usize as u64);
     }
     #[inline]
     pub fn mIsVisual(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (68719476736usize as u64)) >> 36u32)
+                                        (34359738368usize as u64)) >> 35u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mIsVisual(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(68719476736usize as u64);
+        self._bitfield_1 &= !(34359738368usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 36u32) & (68719476736usize as u64);
+            ((val as u32 as u64) << 35u32) & (34359738368usize as u64);
     }
     #[inline]
     pub fn mFireAfterPaintEvents(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (137438953472usize as u64)) >> 37u32)
+                                        (68719476736usize as u64)) >> 36u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mFireAfterPaintEvents(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(137438953472usize as u64);
+        self._bitfield_1 &= !(68719476736usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 37u32) & (137438953472usize as u64);
+            ((val as u32 as u64) << 36u32) & (68719476736usize as u64);
     }
     #[inline]
     pub fn mIsChrome(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (274877906944usize as u64)) >> 38u32)
+                                        (137438953472usize as u64)) >> 37u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mIsChrome(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(274877906944usize as u64);
+        self._bitfield_1 &= !(137438953472usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 38u32) & (274877906944usize as u64);
+            ((val as u32 as u64) << 37u32) & (137438953472usize as u64);
     }
     #[inline]
     pub fn mIsChromeOriginImage(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (549755813888usize as u64)) >> 39u32)
+                                        (274877906944usize as u64)) >> 38u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mIsChromeOriginImage(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(549755813888usize as u64);
+        self._bitfield_1 &= !(274877906944usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 39u32) & (549755813888usize as u64);
+            ((val as u32 as u64) << 38u32) & (274877906944usize as u64);
     }
     #[inline]
     pub fn mPaintFlashing(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (1099511627776usize as u64)) >> 40u32)
+                                        (549755813888usize as u64)) >> 39u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mPaintFlashing(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(1099511627776usize as u64);
+        self._bitfield_1 &= !(549755813888usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 40u32) & (1099511627776usize as u64);
+            ((val as u32 as u64) << 39u32) & (549755813888usize as u64);
     }
     #[inline]
     pub fn mPaintFlashingInitialized(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (2199023255552usize as u64)) >> 41u32)
+                                        (1099511627776usize as u64)) >> 40u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mPaintFlashingInitialized(&mut self,
                                          val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(2199023255552usize as u64);
+        self._bitfield_1 &= !(1099511627776usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 41u32) & (2199023255552usize as u64);
+            ((val as u32 as u64) << 40u32) & (1099511627776usize as u64);
     }
     #[inline]
     pub fn mHasWarnedAboutPositionedTableParts(&self)
      -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (4398046511104usize as u64)) >> 42u32)
+                                        (2199023255552usize as u64)) >> 41u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mHasWarnedAboutPositionedTableParts(&mut self,
                                                    val:
                                                        ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(4398046511104usize as u64);
+        self._bitfield_1 &= !(2199023255552usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 42u32) & (4398046511104usize as u64);
+            ((val as u32 as u64) << 41u32) & (2199023255552usize as u64);
     }
     #[inline]
     pub fn mHasWarnedAboutTooLargeDashedOrDottedRadius(&self)
      -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (8796093022208usize as u64)) >> 43u32)
+                                        (4398046511104usize as u64)) >> 42u32)
                                       as u32)
         }
     }
     #[inline]
     pub fn set_mHasWarnedAboutTooLargeDashedOrDottedRadius(&mut self,
                                                            val:
                                                                ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(8796093022208usize as u64);
+        self._bitfield_1 &= !(4398046511104usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 43u32) & (8796093022208usize as u64);
+            ((val as u32 as u64) << 42u32) & (4398046511104usize as u64);
     }
     #[inline]
     pub fn mQuirkSheetAdded(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (17592186044416usize as u64)) >>
-                                       44u32) as u32)
+                                        (8796093022208usize as u64)) >> 43u32)
+                                      as u32)
         }
     }
     #[inline]
     pub fn set_mQuirkSheetAdded(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(17592186044416usize as u64);
+        self._bitfield_1 &= !(8796093022208usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 44u32) & (17592186044416usize as u64);
+            ((val as u32 as u64) << 43u32) & (8796093022208usize as u64);
     }
     #[inline]
     pub fn mNeedsPrefUpdate(&self) -> ::std::os::raw::c_uint {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 &
-                                        (35184372088832usize as u64)) >>
-                                       45u32) as u32)
+                                        (17592186044416usize as u64)) >>
+                                       44u32) as u32)
         }
     }
     #[inline]
     pub fn set_mNeedsPrefUpdate(&mut self, val: ::std::os::raw::c_uint) {
-        self._bitfield_1 &= !(35184372088832usize as u64);
+        self._bitfield_1 &= !(17592186044416usize as u64);
         self._bitfield_1 |=
-            ((val as u32 as u64) << 45u32) & (35184372088832usize as u64);
+            ((val as u32 as u64) << 44u32) & (17592186044416usize as u64);
     }
 }
 /**
  * Smart pointer class that can hold a pointer to either a RestyleManager
  * or a ServoRestyleManager.
  */
 #[repr(C)]
 #[derive(Debug, Copy)]
@@ -5066,17 +5110,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_111637 { ALLOW_MEMMOVE = 0, }
+pub enum nsPtrHashKey__bindgen_ty_bindgen_id_112948 { 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,
@@ -5086,21 +5130,27 @@ 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_112977 {
+pub enum nsIContent__bindgen_ty_bindgen_id_114288 {
     eAllChildren = 0,
     eAllButXBL = 1,
     eSkipPlaceholderContent = 2,
 }
+#[repr(i32)]
+#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
+pub enum nsIContent__bindgen_ty_bindgen_id_114524 {
+    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
    * match, we return ATTR_VALUE_NO_MATCH. A non-negative result always
    * indicates a match.
    *
@@ -5293,17 +5343,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_114307,
+    pub __bindgen_anon_1: FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_115619,
     /**
      * 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>,
@@ -5330,36 +5380,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_114307 {
+pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_115619 {
     /**
       * 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_114307() {
-    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307>()
+fn bindgen_test_layout_FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_115619() {
+    assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_115619>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307>()
+    assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_115619>()
                , 8usize);
 }
-impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_114307 {
+impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_bindgen_id_115619 {
     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);
@@ -5400,41 +5450,55 @@ pub type nsWeakPtr = nsCOMPtr<nsIWeakRef
 #[derive(Debug, Copy)]
 pub struct PrefSetting {
     pub _address: u8,
 }
 impl Clone for PrefSetting {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __bit_const_reference<_Cp> {
+    pub __seg_: __bit_const_reference___storage_pointer<_Cp>,
+    pub __mask_: __bit_const_reference___storage_type<_Cp>,
+}
+pub type __bit_const_reference___storage_type<_Cp> = _Cp;
+pub type __bit_const_reference___storage_pointer<_Cp> = _Cp;
+#[repr(C)]
 #[derive(Debug, Copy)]
 pub struct nsIChannel {
     pub _base: nsIRequest,
 }
 #[repr(C)]
 #[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_129733 {
+pub enum nsIChannel__bindgen_ty_bindgen_id_132785 {
     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_132805 {
+    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);
 }
 impl Clone for nsIChannel {
     fn clone(&self) -> Self { *self }
 }
@@ -5447,17 +5511,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_129571 {
+pub enum nsIRequest__bindgen_ty_bindgen_id_132623 {
     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,
@@ -5929,17 +5993,16 @@ pub struct nsIPresShell {
     pub mPresContext: RefPtr<nsPresContext>,
     pub mStyleSet: StyleSetHandle,
     pub mFrameConstructor: *mut nsCSSFrameConstructor,
     pub mViewManager: *mut nsViewManager,
     pub mFrameArena: nsPresArena,
     pub mSelection: RefPtr<nsFrameSelection>,
     pub mFrameManager: *mut nsFrameManagerBase,
     pub mForwardingContainer: u64,
-    pub mHiddenInvalidationObserverRefreshDriver: *mut nsRefreshDriver,
     pub mDocAccessible: *mut DocAccessible,
     pub mReflowContinueTimer: nsCOMPtr<nsITimer>,
     pub mPaintCount: u64,
     pub mScrollPositionClampingScrollPortSize: nsSize,
     pub mWeakFrames: *mut nsWeakFrame,
     pub mCanvasBackgroundColor: nscolor,
     pub mResolution: [u64; 2usize],
     pub mSelectionFlags: i16,
@@ -6000,23 +6063,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_148842 =
-    nsIPresShell__bindgen_ty_bindgen_id_148842::SCROLL_TOP;
-pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_148842 =
-    nsIPresShell__bindgen_ty_bindgen_id_148842::SCROLL_BOTTOM;
+pub const SCROLL_LEFT: nsIPresShell__bindgen_ty_bindgen_id_150598 =
+    nsIPresShell__bindgen_ty_bindgen_id_150598::SCROLL_TOP;
+pub const SCROLL_RIGHT: nsIPresShell__bindgen_ty_bindgen_id_150598 =
+    nsIPresShell__bindgen_ty_bindgen_id_150598::SCROLL_BOTTOM;
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum nsIPresShell__bindgen_ty_bindgen_id_148842 {
+pub enum nsIPresShell__bindgen_ty_bindgen_id_150598 {
     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 {
@@ -6032,16 +6095,90 @@ pub struct nsIPresShell_ScrollAxis {
 #[test]
 fn bindgen_test_layout_nsIPresShell_ScrollAxis() {
     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_150629 {
+    SCROLL_FIRST_ANCESTOR_ONLY = 1,
+    SCROLL_OVERFLOW_HIDDEN = 2,
+    SCROLL_NO_PARENT_FRAMES = 4,
+    SCROLL_SMOOTH = 8,
+    SCROLL_SMOOTH_AUTO = 16,
+}
+#[repr(u32)]
+/**
+   * Render the document into an arbitrary gfxContext
+   * Designed for getting a picture of a document or a piece of a document
+   * Note that callers will generally want to call FlushPendingNotifications
+   * to get an up-to-date view of the document
+   * @param aRect is the region to capture into the offscreen buffer, in the
+   * root frame's coordinate system (if aIgnoreViewportScrolling is false)
+   * or in the root scrolled frame's coordinate system
+   * (if aIgnoreViewportScrolling is true). The coordinates are in appunits.
+   * @param aFlags see below;
+   *   set RENDER_IS_UNTRUSTED if the contents may be passed to malicious
+   * agents. E.g. we might choose not to paint the contents of sensitive widgets
+   * such as the file name in a file upload widget, and we might choose not
+   * to paint themes.
+   *   set RENDER_IGNORE_VIEWPORT_SCROLLING to ignore
+   * clipping and scrollbar painting due to scrolling in the viewport
+   *   set RENDER_CARET to draw the caret if one would be visible
+   * (by default the caret is never drawn)
+   *   set RENDER_USE_LAYER_MANAGER to force rendering to go through
+   * the layer manager for the window. This may be unexpectedly slow
+   * (if the layer manager must read back data from the GPU) or low-quality
+   * (if the layer manager reads back pixel data and scales it
+   * instead of rendering using the appropriate scaling). It may also
+   * slow everything down if the area rendered does not correspond to the
+   * normal visible area of the window.
+   *   set RENDER_ASYNC_DECODE_IMAGES to avoid having images synchronously
+   * decoded during rendering.
+   * (by default images decode synchronously with RenderDocument)
+   *   set RENDER_DOCUMENT_RELATIVE to render the document as if there has been
+   * no scrolling and interpret |aRect| relative to the document instead of the
+   * CSS viewport. Only considered if RENDER_IGNORE_VIEWPORT_SCROLLING is set
+   * 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_151051 {
+    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_151069 {
+    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_151185 { FORCE_DRAW = 1, }
 #[repr(C)]
 #[derive(Debug)]
 pub struct nsIPresShell_PointerCaptureInfo {
     pub mPendingContent: nsCOMPtr<nsIContent>,
     pub mOverrideContent: nsCOMPtr<nsIContent>,
     pub mPrimaryState: bool,
 }
 #[test]
@@ -6099,17 +6236,17 @@ extern "C" {
     pub static mut nsIPresShell_gActivePointersIds: *mut ();
 }
 extern "C" {
     #[link_name = "_ZN12nsIPresShell14gKeyDownTargetE"]
     pub static mut nsIPresShell_gKeyDownTarget: *mut nsIContent;
 }
 #[test]
 fn bindgen_test_layout_nsIPresShell() {
-    assert_eq!(::std::mem::size_of::<nsIPresShell>() , 344usize);
+    assert_eq!(::std::mem::size_of::<nsIPresShell>() , 336usize);
     assert_eq!(::std::mem::align_of::<nsIPresShell>() , 8usize);
 }
 impl nsIPresShell {
     #[inline]
     pub fn mStylesHaveChanged(&self) -> bool {
         unsafe {
             ::std::mem::transmute(((self._bitfield_1 & (1usize as u16)) >>
                                        0u32) as u8)
@@ -6426,77 +6563,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_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_LISTENERMANAGER;
-pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_PROPERTIES;
-pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_IS_ANONYMOUS_ROOT;
-pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_FORCE_XBL_BINDINGS;
-pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_MAY_BE_IN_BINDING_MNGR;
-pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_IS_EDITABLE;
-pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_MAY_HAVE_CLASS;
-pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_IS_IN_SHADOW_TREE;
-pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_EMPTY_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_SLOW_SELECTOR;
-pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_EDGE_CHILD_SELECTOR;
-pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_150829
+pub const NODE_HAS_LISTENERMANAGER: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_LISTENERMANAGER;
+pub const NODE_HAS_PROPERTIES: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_PROPERTIES;
+pub const NODE_IS_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_IS_ANONYMOUS_ROOT;
+pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+pub const NODE_FORCE_XBL_BINDINGS: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_FORCE_XBL_BINDINGS;
+pub const NODE_MAY_BE_IN_BINDING_MNGR: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_MAY_BE_IN_BINDING_MNGR;
+pub const NODE_IS_EDITABLE: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_IS_EDITABLE;
+pub const NODE_MAY_HAVE_CLASS: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_MAY_HAVE_CLASS;
+pub const NODE_IS_IN_SHADOW_TREE: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_IS_IN_SHADOW_TREE;
+pub const NODE_HAS_EMPTY_SELECTOR: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_EMPTY_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_SLOW_SELECTOR;
+pub const NODE_HAS_EDGE_CHILD_SELECTOR: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_EDGE_CHILD_SELECTOR;
+pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: _bindgen_ty_bindgen_id_152566
           =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_ALL_SELECTOR_FLAGS;
-pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_NEEDS_FRAME;
-pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_DESCENDANTS_NEED_FRAMES;
-pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_ACCESSKEY;
-pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_DIRECTION_RTL;
-pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_HAS_DIRECTION_LTR;
-pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_ALL_DIRECTION_FLAGS;
-pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_CHROME_ONLY_ACCESS;
-pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_1;
-pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_150829
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+pub const NODE_ALL_SELECTOR_FLAGS: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_ALL_SELECTOR_FLAGS;
+pub const NODE_NEEDS_FRAME: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_NEEDS_FRAME;
+pub const NODE_DESCENDANTS_NEED_FRAMES: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_DESCENDANTS_NEED_FRAMES;
+pub const NODE_HAS_ACCESSKEY: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_ACCESSKEY;
+pub const NODE_HAS_DIRECTION_RTL: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_DIRECTION_RTL;
+pub const NODE_HAS_DIRECTION_LTR: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_HAS_DIRECTION_LTR;
+pub const NODE_ALL_DIRECTION_FLAGS: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_ALL_DIRECTION_FLAGS;
+pub const NODE_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_CHROME_ONLY_ACCESS;
+pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+pub const NODE_SHARED_RESTYLE_BIT_1: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_SHARED_RESTYLE_BIT_2: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_IS_DIRTY_FOR_SERVO: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_SHARED_RESTYLE_BIT_1;
+pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: _bindgen_ty_bindgen_id_152566
           =
-    _bindgen_ty_bindgen_id_150829::NODE_SHARED_RESTYLE_BIT_2;
-pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_150829 =
-    _bindgen_ty_bindgen_id_150829::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    _bindgen_ty_bindgen_id_152566::NODE_SHARED_RESTYLE_BIT_2;
+pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: _bindgen_ty_bindgen_id_152566 =
+    _bindgen_ty_bindgen_id_152566::NODE_TYPE_SPECIFIC_BITS_OFFSET;
 #[repr(u32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-pub enum _bindgen_ty_bindgen_id_150829 {
+pub enum _bindgen_ty_bindgen_id_152566 {
     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,
@@ -6544,17 +6681,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_167235 {
+pub enum nsITimer__bindgen_ty_bindgen_id_169279 {
     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);
@@ -6570,17 +6707,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_167711 {
+pub enum nsExpirationState__bindgen_ty_bindgen_id_169755 {
     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);
 }
@@ -6644,26 +6781,33 @@ 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_169133 {
+pub enum imgIRequest__bindgen_ty_bindgen_id_170342 {
     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_170422 {
+    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);
 }
 impl Clone for imgIRequest {
     fn clone(&self) -> Self { *self }
 }
@@ -7148,17 +7292,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_189570 {
+pub enum nsPresArena_FreeList__bindgen_ty_bindgen_id_190782 {
     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]
@@ -7175,17 +7319,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_189717 {
+pub enum imgINotificationObserver__bindgen_ty_bindgen_id_190929 {
     SIZE_AVAILABLE = 1,
     FRAME_UPDATE = 2,
     FRAME_COMPLETE = 3,
     LOAD_COMPLETE = 4,
     DECODE_COMPLETE = 5,
     DISCARD = 6,
     UNLOCKED_DRAW = 7,
     IS_ANIMATED = 8,
@@ -7424,17 +7568,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_190955
+pub enum gfxFontFeatureValueSet_FeatureValueHashEntry__bindgen_ty_bindgen_id_192167
          {
     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>()
@@ -7820,33 +7964,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_191700 {
+pub struct _bindgen_ty_bindgen_id_192920 {
     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_191700() {
-    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_191700>() ,
+fn bindgen_test_layout__bindgen_ty_bindgen_id_192920() {
+    assert_eq!(::std::mem::size_of::<_bindgen_ty_bindgen_id_192920>() ,
                8usize);
-    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_191700>() ,
+    assert_eq!(::std::mem::align_of::<_bindgen_ty_bindgen_id_192920>() ,
                8usize);
 }
-impl Clone for _bindgen_ty_bindgen_id_191700 {
-    fn clone(&self) -> Self { *self }
-}
-pub type nsStyleUnion = _bindgen_ty_bindgen_id_191700;
+impl Clone for _bindgen_ty_bindgen_id_192920 {
+    fn clone(&self) -> Self { *self }
+}
+pub type nsStyleUnion = _bindgen_ty_bindgen_id_192920;
 /**
  * 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.
  */
@@ -8861,34 +9005,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_200558 {
+pub struct bindgen_vtable__bindgen_id_201935 {
 }
 /**
  * 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_200558,
+    pub vtable_: *const bindgen_vtable__bindgen_id_201935,
     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)]
@@ -8900,17 +9044,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_200634 {
+pub enum nsISupportsPriority__bindgen_ty_bindgen_id_202011 {
     PRIORITY_HIGHEST = -20,
     PRIORITY_HIGH = -10,
     PRIORITY_NORMAL = 0,
     PRIORITY_LOW = 10,
     PRIORITY_LOWEST = 20,
 }
 #[test]
 fn bindgen_test_layout_nsISupportsPriority() {
@@ -9291,33 +9435,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_203528,
+    pub mValue: nsCSSValue__bindgen_ty_bindgen_id_204905,
 }
 #[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_203528 {
+pub struct nsCSSValue__bindgen_ty_bindgen_id_204905 {
     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>,
@@ -9331,23 +9475,23 @@ pub struct nsCSSValue__bindgen_ty_bindge
     pub mSharedList: __BindgenUnionField<*mut nsCSSValueSharedList>,
     pub mPairList: __BindgenUnionField<*mut nsCSSValuePairList_heap>,
     pub mPairListDependent: __BindgenUnionField<*mut nsCSSValuePairList>,
     pub mFloatColor: __BindgenUnionField<*mut nsCSSValueFloatColor>,
     pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_203528() {
-    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_203528>()
+fn bindgen_test_layout_nsCSSValue__bindgen_ty_bindgen_id_204905() {
+    assert_eq!(::std::mem::size_of::<nsCSSValue__bindgen_ty_bindgen_id_204905>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_203528>()
+    assert_eq!(::std::mem::align_of::<nsCSSValue__bindgen_ty_bindgen_id_204905>()
                , 8usize);
 }
-impl Clone for nsCSSValue__bindgen_ty_bindgen_id_203528 {
+impl Clone for nsCSSValue__bindgen_ty_bindgen_id_204905 {
     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)]
@@ -9358,22 +9502,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_203735 {
+pub struct bindgen_vtable__bindgen_id_205112 {
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
 pub struct CounterStyle {
-    pub vtable_: *const bindgen_vtable__bindgen_id_203735,
+    pub vtable_: *const bindgen_vtable__bindgen_id_205112,
     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 {
@@ -9560,35 +9704,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_205690,
+    pub __bindgen_anon_1: nsStyleImage__bindgen_ty_bindgen_id_207069,
     pub mCropRect: UniquePtr<nsStyleSides, DefaultDelete<nsStyleSides>>,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleImage__bindgen_ty_bindgen_id_205690 {
+pub struct nsStyleImage__bindgen_ty_bindgen_id_207069 {
     pub mImage: __BindgenUnionField<*mut imgRequestProxy>,
     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_205690() {
-    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_205690>()
+fn bindgen_test_layout_nsStyleImage__bindgen_ty_bindgen_id_207069() {
+    assert_eq!(::std::mem::size_of::<nsStyleImage__bindgen_ty_bindgen_id_207069>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_205690>()
+    assert_eq!(::std::mem::align_of::<nsStyleImage__bindgen_ty_bindgen_id_207069>()
                , 8usize);
 }
-impl Clone for nsStyleImage__bindgen_ty_bindgen_id_205690 {
+impl Clone for nsStyleImage__bindgen_ty_bindgen_id_207069 {
     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)]
@@ -9629,17 +9773,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_205734 {
+pub enum nsStyleImageLayers__bindgen_ty_bindgen_id_207113 {
     shorthand = 0,
     color = 1,
     image = 2,
     repeat = 3,
     positionX = 4,
     positionY = 5,
     clip = 6,
     origin = 7,
@@ -10165,17 +10309,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_207493,
+    pub __bindgen_anon_1: nsTimingFunction__bindgen_ty_bindgen_id_208872,
 }
 #[repr(i32)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
 pub enum nsTimingFunction_Type {
     Ease = 0,
     Linear = 1,
     EaseIn = 2,
     EaseOut = 3,
@@ -10184,66 +10328,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_207493 {
-    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494>,
-    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505>,
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_208872 {
+    pub mFunc: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208873>,
+    pub __bindgen_anon_1: __BindgenUnionField<nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208884>,
     pub bindgen_union_field: [u32; 4usize],
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208873 {
     pub mX1: f32,
     pub mY1: f32,
     pub mX2: f32,
     pub mY2: f32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208873() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208873>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208873>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207494
+ nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208873
  {
     fn clone(&self) -> Self { *self }
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505 {
+pub struct nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208884 {
     pub mSteps: u32,
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208884() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208884>()
                , 4usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208884>()
                , 4usize);
 }
 impl Clone for
- nsTimingFunction__bindgen_ty_bindgen_id_207493__bindgen_ty_bindgen_id_207505
+ nsTimingFunction__bindgen_ty_bindgen_id_208872__bindgen_ty_bindgen_id_208884
  {
     fn clone(&self) -> Self { *self }
 }
 #[test]
-fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_207493() {
-    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493>()
+fn bindgen_test_layout_nsTimingFunction__bindgen_ty_bindgen_id_208872() {
+    assert_eq!(::std::mem::size_of::<nsTimingFunction__bindgen_ty_bindgen_id_208872>()
                , 16usize);
-    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_207493>()
+    assert_eq!(::std::mem::align_of::<nsTimingFunction__bindgen_ty_bindgen_id_208872>()
                , 4usize);
 }
-impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_207493 {
+impl Clone for nsTimingFunction__bindgen_ty_bindgen_id_208872 {
     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 {
@@ -10294,23 +10438,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_207876<ReferenceBox>,
+    pub __bindgen_anon_1: StyleShapeSource__bindgen_ty_bindgen_id_209255<ReferenceBox>,
     pub mType: StyleShapeSourceType,
     pub mReferenceBox: ReferenceBox,
 }
 #[repr(C)]
 #[derive(Debug, Copy, Clone)]
-pub struct StyleShapeSource__bindgen_ty_bindgen_id_207876<ReferenceBox> {
+pub struct StyleShapeSource__bindgen_ty_bindgen_id_209255<ReferenceBox> {
     pub mBasicShape: __BindgenUnionField<*mut StyleBasicShape>,
     pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
     pub bindgen_union_field: u64,
     pub _phantom_0: ::std::marker::PhantomData<ReferenceBox>,
 }
 pub type StyleClipPath = StyleShapeSource<StyleClipPathGeometryBox>;
 pub type StyleShapeOutside = StyleShapeSource<StyleShapeOutsideShapeBox>;
 #[repr(C)]
@@ -10352,34 +10496,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_207960,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleContentData__bindgen_ty_bindgen_id_207960 {
+    pub mContent: nsStyleContentData__bindgen_ty_bindgen_id_209339,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleContentData__bindgen_ty_bindgen_id_209339 {
     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_207960() {
-    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_207960>()
+fn bindgen_test_layout_nsStyleContentData__bindgen_ty_bindgen_id_209339() {
+    assert_eq!(::std::mem::size_of::<nsStyleContentData__bindgen_ty_bindgen_id_209339>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_207960>()
+    assert_eq!(::std::mem::align_of::<nsStyleContentData__bindgen_ty_bindgen_id_209339>()
                , 8usize);
 }
-impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_207960 {
+impl Clone for nsStyleContentData__bindgen_ty_bindgen_id_209339 {
     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)]
@@ -10494,35 +10638,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_208357,
+    pub mPaint: nsStyleSVGPaint__bindgen_ty_bindgen_id_209736,
     pub mType: nsStyleSVGPaintType,
     pub mFallbackColor: nscolor,
 }
 #[repr(C)]
 #[derive(Debug, Copy)]
-pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_208357 {
+pub struct nsStyleSVGPaint__bindgen_ty_bindgen_id_209736 {
     pub mColor: __BindgenUnionField<nscolor>,
     pub mPaintServer: __BindgenUnionField<*mut FragmentOrURL>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_208357() {
-    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_208357>()
+fn bindgen_test_layout_nsStyleSVGPaint__bindgen_ty_bindgen_id_209736() {
+    assert_eq!(::std::mem::size_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_209736>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_208357>()
+    assert_eq!(::std::mem::align_of::<nsStyleSVGPaint__bindgen_ty_bindgen_id_209736>()
                , 8usize);
 }
-impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_208357 {
+impl Clone for nsStyleSVGPaint__bindgen_ty_bindgen_id_209736 {
     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)]
@@ -10547,17 +10691,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_208534 {
+pub enum nsStyleSVG__bindgen_ty_bindgen_id_209913 {
     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,
 }
@@ -10566,33 +10710,33 @@ fn bindgen_test_layout_nsStyleSVG() {
     assert_eq!(::std::mem::size_of::<nsStyleSVG>() , 144usize);
     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_208600,
-}
-#[repr(C)]
-#[derive(Debug, Copy)]
-pub struct nsStyleFilter__bindgen_ty_bindgen_id_208600 {
+    pub __bindgen_anon_1: nsStyleFilter__bindgen_ty_bindgen_id_209979,
+}
+#[repr(C)]
+#[derive(Debug, Copy)]
+pub struct nsStyleFilter__bindgen_ty_bindgen_id_209979 {
     pub mURL: __BindgenUnionField<*mut FragmentOrURL>,
     pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>,
     pub bindgen_union_field: u64,
 }
 #[test]
-fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_208600() {
-    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_208600>()
+fn bindgen_test_layout_nsStyleFilter__bindgen_ty_bindgen_id_209979() {
+    assert_eq!(::std::mem::size_of::<nsStyleFilter__bindgen_ty_bindgen_id_209979>()
                , 8usize);
-    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_208600>()
+    assert_eq!(::std::mem::align_of::<nsStyleFilter__bindgen_ty_bindgen_id_209979>()
                , 8usize);
 }
-impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_208600 {
+impl Clone for nsStyleFilter__bindgen_ty_bindgen_id_209979 {
     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/ports/geckolib/string_cache/atom_macro.rs
+++ b/servo/ports/geckolib/string_cache/atom_macro.rs
@@ -481,16 +481,18 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "_ZN9nsGkAtoms4cropE"]
             pub static nsGkAtoms_crop: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms11crossoriginE"]
             pub static nsGkAtoms_crossorigin: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms6curposE"]
             pub static nsGkAtoms_curpos: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms7currentE"]
             pub static nsGkAtoms_current: *mut nsIAtom;
+            #[link_name = "_ZN9nsGkAtoms12cutoutregionE"]
+            pub static nsGkAtoms_cutoutregion: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms6cyclerE"]
             pub static nsGkAtoms_cycler: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms4dataE"]
             pub static nsGkAtoms_data: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms8datalistE"]
             pub static nsGkAtoms_datalist: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms8dataTypeE"]
             pub static nsGkAtoms_dataType: *mut nsIAtom;
@@ -4315,18 +4317,16 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "_ZN9nsGkAtoms17images_in_buttonsE"]
             pub static nsGkAtoms_images_in_buttons: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms18overlay_scrollbarsE"]
             pub static nsGkAtoms_overlay_scrollbars: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms21windows_default_themeE"]
             pub static nsGkAtoms_windows_default_theme: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms18mac_graphite_themeE"]
             pub static nsGkAtoms_mac_graphite_theme: *mut nsIAtom;
-            #[link_name = "_ZN9nsGkAtoms14mac_lion_themeE"]
-            pub static nsGkAtoms_mac_lion_theme: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms18mac_yosemite_themeE"]
             pub static nsGkAtoms_mac_yosemite_theme: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms18windows_compositorE"]
             pub static nsGkAtoms_windows_compositor: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms13windows_glassE"]
             pub static nsGkAtoms_windows_glass: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms13touch_enabledE"]
             pub static nsGkAtoms_touch_enabled: *mut nsIAtom;
@@ -4371,18 +4371,16 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "_ZN9nsGkAtoms22_moz_images_in_buttonsE"]
             pub static nsGkAtoms__moz_images_in_buttons: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms23_moz_overlay_scrollbarsE"]
             pub static nsGkAtoms__moz_overlay_scrollbars: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms26_moz_windows_default_themeE"]
             pub static nsGkAtoms__moz_windows_default_theme: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms23_moz_mac_graphite_themeE"]
             pub static nsGkAtoms__moz_mac_graphite_theme: *mut nsIAtom;
-            #[link_name = "_ZN9nsGkAtoms19_moz_mac_lion_themeE"]
-            pub static nsGkAtoms__moz_mac_lion_theme: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms23_moz_mac_yosemite_themeE"]
             pub static nsGkAtoms__moz_mac_yosemite_theme: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms23_moz_windows_compositorE"]
             pub static nsGkAtoms__moz_windows_compositor: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms20_moz_windows_classicE"]
             pub static nsGkAtoms__moz_windows_classic: *mut nsIAtom;
             #[link_name = "_ZN9nsGkAtoms18_moz_windows_glassE"]
             pub static nsGkAtoms__moz_windows_glass: *mut nsIAtom;
@@ -5400,16 +5398,18 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "?crop@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_crop: *mut nsIAtom;
             #[link_name = "?crossorigin@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_crossorigin: *mut nsIAtom;
             #[link_name = "?curpos@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_curpos: *mut nsIAtom;
             #[link_name = "?current@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_current: *mut nsIAtom;
+            #[link_name = "?cutoutregion@nsGkAtoms@@2PEAVnsIAtom@@EA"]
+            pub static nsGkAtoms_cutoutregion: *mut nsIAtom;
             #[link_name = "?cycler@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_cycler: *mut nsIAtom;
             #[link_name = "?data@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_data: *mut nsIAtom;
             #[link_name = "?datalist@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_datalist: *mut nsIAtom;
             #[link_name = "?dataType@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_dataType: *mut nsIAtom;
@@ -9234,18 +9234,16 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "?images_in_buttons@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_images_in_buttons: *mut nsIAtom;
             #[link_name = "?overlay_scrollbars@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_overlay_scrollbars: *mut nsIAtom;
             #[link_name = "?windows_default_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_windows_default_theme: *mut nsIAtom;
             #[link_name = "?mac_graphite_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_mac_graphite_theme: *mut nsIAtom;
-            #[link_name = "?mac_lion_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
-            pub static nsGkAtoms_mac_lion_theme: *mut nsIAtom;
             #[link_name = "?mac_yosemite_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_mac_yosemite_theme: *mut nsIAtom;
             #[link_name = "?windows_compositor@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_windows_compositor: *mut nsIAtom;
             #[link_name = "?windows_glass@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_windows_glass: *mut nsIAtom;
             #[link_name = "?touch_enabled@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms_touch_enabled: *mut nsIAtom;
@@ -9290,18 +9288,16 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "?_moz_images_in_buttons@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_images_in_buttons: *mut nsIAtom;
             #[link_name = "?_moz_overlay_scrollbars@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_overlay_scrollbars: *mut nsIAtom;
             #[link_name = "?_moz_windows_default_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_windows_default_theme: *mut nsIAtom;
             #[link_name = "?_moz_mac_graphite_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_mac_graphite_theme: *mut nsIAtom;
-            #[link_name = "?_moz_mac_lion_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
-            pub static nsGkAtoms__moz_mac_lion_theme: *mut nsIAtom;
             #[link_name = "?_moz_mac_yosemite_theme@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_mac_yosemite_theme: *mut nsIAtom;
             #[link_name = "?_moz_windows_compositor@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_windows_compositor: *mut nsIAtom;
             #[link_name = "?_moz_windows_classic@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_windows_classic: *mut nsIAtom;
             #[link_name = "?_moz_windows_glass@nsGkAtoms@@2PEAVnsIAtom@@EA"]
             pub static nsGkAtoms__moz_windows_glass: *mut nsIAtom;
@@ -10319,16 +10315,18 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "\x01?crop@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_crop: *mut nsIAtom;
             #[link_name = "\x01?crossorigin@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_crossorigin: *mut nsIAtom;
             #[link_name = "\x01?curpos@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_curpos: *mut nsIAtom;
             #[link_name = "\x01?current@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_current: *mut nsIAtom;
+            #[link_name = "\x01?cutoutregion@nsGkAtoms@@2PAVnsIAtom@@A"]
+            pub static nsGkAtoms_cutoutregion: *mut nsIAtom;
             #[link_name = "\x01?cycler@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_cycler: *mut nsIAtom;
             #[link_name = "\x01?data@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_data: *mut nsIAtom;
             #[link_name = "\x01?datalist@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_datalist: *mut nsIAtom;
             #[link_name = "\x01?dataType@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_dataType: *mut nsIAtom;
@@ -14153,18 +14151,16 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "\x01?images_in_buttons@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_images_in_buttons: *mut nsIAtom;
             #[link_name = "\x01?overlay_scrollbars@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_overlay_scrollbars: *mut nsIAtom;
             #[link_name = "\x01?windows_default_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_windows_default_theme: *mut nsIAtom;
             #[link_name = "\x01?mac_graphite_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_mac_graphite_theme: *mut nsIAtom;
-            #[link_name = "\x01?mac_lion_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
-            pub static nsGkAtoms_mac_lion_theme: *mut nsIAtom;
             #[link_name = "\x01?mac_yosemite_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_mac_yosemite_theme: *mut nsIAtom;
             #[link_name = "\x01?windows_compositor@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_windows_compositor: *mut nsIAtom;
             #[link_name = "\x01?windows_glass@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_windows_glass: *mut nsIAtom;
             #[link_name = "\x01?touch_enabled@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms_touch_enabled: *mut nsIAtom;
@@ -14209,18 +14205,16 @@ pub enum nsICSSAnonBoxPseudo {}
             #[link_name = "\x01?_moz_images_in_buttons@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_images_in_buttons: *mut nsIAtom;
             #[link_name = "\x01?_moz_overlay_scrollbars@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_overlay_scrollbars: *mut nsIAtom;
             #[link_name = "\x01?_moz_windows_default_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_windows_default_theme: *mut nsIAtom;
             #[link_name = "\x01?_moz_mac_graphite_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_mac_graphite_theme: *mut nsIAtom;
-            #[link_name = "\x01?_moz_mac_lion_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
-            pub static nsGkAtoms__moz_mac_lion_theme: *mut nsIAtom;
             #[link_name = "\x01?_moz_mac_yosemite_theme@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_mac_yosemite_theme: *mut nsIAtom;
             #[link_name = "\x01?_moz_windows_compositor@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_windows_compositor: *mut nsIAtom;
             #[link_name = "\x01?_moz_windows_classic@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_windows_classic: *mut nsIAtom;
             #[link_name = "\x01?_moz_windows_glass@nsGkAtoms@@2PAVnsIAtom@@A"]
             pub static nsGkAtoms__moz_windows_glass: *mut nsIAtom;
@@ -15008,16 +15002,17 @@ macro_rules! atom {
 ("coords") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_coords as *mut _) };
 ("copy") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_copy as *mut _) };
 ("copy-of") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_copyOf as *mut _) };
 ("count") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_count as *mut _) };
 ("crop") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_crop as *mut _) };
 ("crossorigin") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_crossorigin as *mut _) };
 ("curpos") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_curpos as *mut _) };
 ("current") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_current as *mut _) };
+("cutoutregion") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_cutoutregion as *mut _) };
 ("cycler") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_cycler as *mut _) };
 ("data") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_data as *mut _) };
 ("datalist") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_datalist as *mut _) };
 ("data-type") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_dataType as *mut _) };
 ("date-time") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_dateTime as *mut _) };
 ("datasources") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_datasources as *mut _) };
 ("datetime") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_datetime as *mut _) };
 ("dblclick") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_dblclick as *mut _) };
@@ -16925,17 +16920,16 @@ macro_rules! atom {
 ("scrollbar-end-backward") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_scrollbar_end_backward as *mut _) };
 ("scrollbar-end-forward") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_scrollbar_end_forward as *mut _) };
 ("scrollbar-thumb-proportional") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_scrollbar_thumb_proportional as *mut _) };
 ("images-in-menus") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_images_in_menus as *mut _) };
 ("images-in-buttons") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_images_in_buttons as *mut _) };
 ("overlay-scrollbars") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_overlay_scrollbars as *mut _) };
 ("windows-default-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_windows_default_theme as *mut _) };
 ("mac-graphite-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_mac_graphite_theme as *mut _) };
-("mac-lion-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_mac_lion_theme as *mut _) };
 ("mac-yosemite-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_mac_yosemite_theme as *mut _) };
 ("windows-compositor") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_windows_compositor as *mut _) };
 ("windows-glass") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_windows_glass as *mut _) };
 ("touch-enabled") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_touch_enabled as *mut _) };
 ("menubar-drag") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_menubar_drag as *mut _) };
 ("swipe-animation-enabled") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_swipe_animation_enabled as *mut _) };
 ("physical-home-button") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_physical_home_button as *mut _) };
 ("windows-classic") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms_windows_classic as *mut _) };
@@ -16953,17 +16947,16 @@ macro_rules! atom {
 ("-moz-scrollbar-end-backward") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_scrollbar_end_backward as *mut _) };
 ("-moz-scrollbar-end-forward") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_scrollbar_end_forward as *mut _) };
 ("-moz-scrollbar-thumb-proportional") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_scrollbar_thumb_proportional as *mut _) };
 ("-moz-images-in-menus") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_images_in_menus as *mut _) };
 ("-moz-images-in-buttons") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_images_in_buttons as *mut _) };
 ("-moz-overlay-scrollbars") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_overlay_scrollbars as *mut _) };
 ("-moz-windows-default-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_windows_default_theme as *mut _) };
 ("-moz-mac-graphite-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_mac_graphite_theme as *mut _) };
-("-moz-mac-lion-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_mac_lion_theme as *mut _) };
 ("-moz-mac-yosemite-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_mac_yosemite_theme as *mut _) };
 ("-moz-windows-compositor") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_windows_compositor as *mut _) };
 ("-moz-windows-classic") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_windows_classic as *mut _) };
 ("-moz-windows-glass") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_windows_glass as *mut _) };
 ("-moz-windows-theme") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_windows_theme as *mut _) };
 ("-moz-os-version") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_os_version as *mut _) };
 ("-moz-touch-enabled") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_touch_enabled as *mut _) };
 ("-moz-menubar-drag") => { $crate::atom_macro::unsafe_atom_from_static($crate::atom_macro::nsGkAtoms__moz_menubar_drag as *mut _) };