servo: Merge #14564 - stylo: regenerate bindings (from heycam:bindings-update-10); r=emilio
authorCameron McCormack <cam@mcc.id.au>
Mon, 12 Dec 2016 22:10:39 -0800
changeset 340323 fe2de6d7fa7f946d66aaff3acaf16bba29f62ddc
parent 340322 c8358873adae876920eea7123fd366e5862c1bc0
child 340324 0ea1d828c66589d690e55ed98ab927a0a268a318
push id31307
push usergszorc@mozilla.com
push dateSat, 04 Feb 2017 00:59:06 +0000
treeherdermozilla-central@94079d43835f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersemilio
servo: Merge #14564 - stylo: regenerate bindings (from heycam:bindings-update-10); r=emilio <!-- Please describe your changes on the following line: --> This corresponds to https://treeherder.mozilla.org/#/jobs?repo=stylo&revision=6c5de1f0640254429c826c38622e5b1fd78693f5. r? @bholley Source-Repo: https://github.com/servo/servo Source-Revision: debf5e0e7872347d67d9046b72979bcf7d08f9ca
servo/components/style/build_gecko.rs
servo/components/style/gecko_bindings/bindings.rs
servo/components/style/gecko_bindings/structs_debug.rs
servo/components/style/gecko_bindings/structs_release.rs
--- a/servo/components/style/build_gecko.rs
+++ b/servo/components/style/build_gecko.rs
@@ -314,16 +314,17 @@ mod bindings {
             "nsTArray",
             "nsTArrayHeader",
             "pair",
             "Position",
             "Runnable",
             "ServoAttrSnapshot",
             "ServoElementSnapshot",
             "SheetParsingMode",
+            "Side",  // must be a rust-bindgen bug that requires both of these
             "mozilla::Side",
             "StaticRefPtr",
             "StyleAnimation",
             "StyleBasicShape",
             "StyleBasicShapeType",
             "StyleClipPath",
             "StyleClipPathGeometryBox",
             "StyleTransition",
--- a/servo/components/style/gecko_bindings/bindings.rs
+++ b/servo/components/style/gecko_bindings/bindings.rs
@@ -1,73 +1,13 @@
 /* automatically generated by rust-bindgen */
 
 pub use nsstring::{nsACString, nsAString};
 type nsACString_internal = nsACString;
 type nsAString_internal = nsAString;
-pub type nsTArrayBorrowed_uintptr_t<'a> = &'a mut ::gecko_bindings::structs::nsTArray<usize>;
-pub type ServoComputedValuesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoComputedValues>;
-pub type ServoComputedValuesBorrowedOrNull<'a> = Option<&'a ServoComputedValues>;
-pub type ServoComputedValuesBorrowed<'a> = &'a ServoComputedValues;
-enum ServoComputedValuesVoid{ }
-pub struct ServoComputedValues(ServoComputedValuesVoid);
-pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoCssRules>;
-pub type ServoCssRulesBorrowedOrNull<'a> = Option<&'a ServoCssRules>;
-pub type ServoCssRulesBorrowed<'a> = &'a ServoCssRules;
-enum ServoCssRulesVoid{ }
-pub struct ServoCssRules(ServoCssRulesVoid);
-pub type RawServoStyleSheetStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoStyleSheet>;
-pub type RawServoStyleSheetBorrowedOrNull<'a> = Option<&'a RawServoStyleSheet>;
-pub type RawServoStyleSheetBorrowed<'a> = &'a RawServoStyleSheet;
-enum RawServoStyleSheetVoid{ }
-pub struct RawServoStyleSheet(RawServoStyleSheetVoid);
-pub type RawServoDeclarationBlockStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoDeclarationBlock>;
-pub type RawServoDeclarationBlockBorrowedOrNull<'a> = Option<&'a RawServoDeclarationBlock>;
-pub type RawServoDeclarationBlockBorrowed<'a> = &'a RawServoDeclarationBlock;
-enum RawServoDeclarationBlockVoid{ }
-pub struct RawServoDeclarationBlock(RawServoDeclarationBlockVoid);
-pub type RawServoStyleRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoStyleRule>;
-pub type RawServoStyleRuleBorrowedOrNull<'a> = Option<&'a RawServoStyleRule>;
-pub type RawServoStyleRuleBorrowed<'a> = &'a RawServoStyleRule;
-enum RawServoStyleRuleVoid{ }
-pub struct RawServoStyleRule(RawServoStyleRuleVoid);
-pub type RawGeckoNodeBorrowed<'a> = &'a RawGeckoNode;
-pub type RawGeckoNodeBorrowedOrNull<'a> = Option<&'a RawGeckoNode>;
-pub type RawGeckoElementBorrowed<'a> = &'a RawGeckoElement;
-pub type RawGeckoElementBorrowedOrNull<'a> = Option<&'a RawGeckoElement>;
-pub type RawGeckoDocumentBorrowed<'a> = &'a RawGeckoDocument;
-pub type RawGeckoDocumentBorrowedOrNull<'a> = Option<&'a RawGeckoDocument>;
-pub type RawServoDeclarationBlockStrongBorrowed<'a> = &'a RawServoDeclarationBlockStrong;
-pub type RawServoDeclarationBlockStrongBorrowedOrNull<'a> = Option<&'a RawServoDeclarationBlockStrong>;
-pub type nsCSSValueBorrowed<'a> = &'a nsCSSValue;
-pub type nsCSSValueBorrowedOrNull<'a> = Option<&'a nsCSSValue>;
-pub type nsCSSValueBorrowedMut<'a> = &'a mut nsCSSValue;
-pub type nsCSSValueBorrowedMutOrNull<'a> = Option<&'a mut nsCSSValue>;
-pub type RawServoStyleSetBorrowed<'a> = &'a RawServoStyleSet;
-pub type RawServoStyleSetBorrowedMut<'a> = &'a mut RawServoStyleSet;
-pub type RawServoStyleSetOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoStyleSet>;
-pub type RawServoStyleSetBorrowedOrNull<'a> = Option<&'a RawServoStyleSet>;
-pub type RawServoStyleSetBorrowedMutOrNull<'a> = Option<&'a mut RawServoStyleSet>;
-pub type RawServoStyleSetOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoStyleSet>;
-enum RawServoStyleSetVoid{ }
-pub struct RawServoStyleSet(RawServoStyleSetVoid);
-pub type StyleChildrenIteratorBorrowed<'a> = &'a StyleChildrenIterator;
-pub type StyleChildrenIteratorBorrowedMut<'a> = &'a mut StyleChildrenIterator;
-pub type StyleChildrenIteratorOwned = ::gecko_bindings::sugar::ownership::Owned<StyleChildrenIterator>;
-pub type StyleChildrenIteratorBorrowedOrNull<'a> = Option<&'a StyleChildrenIterator>;
-pub type StyleChildrenIteratorBorrowedMutOrNull<'a> = Option<&'a mut StyleChildrenIterator>;
-pub type StyleChildrenIteratorOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<StyleChildrenIterator>;
-enum StyleChildrenIteratorVoid{ }
-pub struct StyleChildrenIterator(StyleChildrenIteratorVoid);
-pub type ServoElementSnapshotBorrowed<'a> = &'a ServoElementSnapshot;
-pub type ServoElementSnapshotBorrowedMut<'a> = &'a mut ServoElementSnapshot;
-pub type ServoElementSnapshotOwned = ::gecko_bindings::sugar::ownership::Owned<ServoElementSnapshot>;
-pub type ServoElementSnapshotBorrowedOrNull<'a> = Option<&'a ServoElementSnapshot>;
-pub type ServoElementSnapshotBorrowedMutOrNull<'a> = Option<&'a mut ServoElementSnapshot>;
-pub type ServoElementSnapshotOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<ServoElementSnapshot>;
 use gecko_bindings::structs::RawGeckoDocument;
 use gecko_bindings::structs::RawGeckoElement;
 use gecko_bindings::structs::RawGeckoNode;
 use gecko_bindings::structs::ThreadSafeURIHolder;
 use gecko_bindings::structs::ThreadSafePrincipalHolder;
 use gecko_bindings::structs::ConsumeStyleBehavior;
 use gecko_bindings::structs::LazyComputeBehavior;
 use gecko_bindings::structs::TraversalRootBehavior;
@@ -198,16 +138,76 @@ unsafe impl Sync for nsStyleVariables {}
 use gecko_bindings::structs::nsStyleVisibility;
 unsafe impl Send for nsStyleVisibility {}
 unsafe impl Sync for nsStyleVisibility {}
 use gecko_bindings::structs::nsStyleXUL;
 unsafe impl Send for nsStyleXUL {}
 unsafe impl Sync for nsStyleXUL {}
 use gecko_bindings::structs::nscoord;
 use gecko_bindings::structs::nsresult;
+pub type nsTArrayBorrowed_uintptr_t<'a> = &'a mut ::gecko_bindings::structs::nsTArray<usize>;
+pub type ServoComputedValuesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoComputedValues>;
+pub type ServoComputedValuesBorrowed<'a> = &'a ServoComputedValues;
+pub type ServoComputedValuesBorrowedOrNull<'a> = Option<&'a ServoComputedValues>;
+enum ServoComputedValuesVoid { }
+pub struct ServoComputedValues(ServoComputedValuesVoid);
+pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoCssRules>;
+pub type ServoCssRulesBorrowed<'a> = &'a ServoCssRules;
+pub type ServoCssRulesBorrowedOrNull<'a> = Option<&'a ServoCssRules>;
+enum ServoCssRulesVoid { }
+pub struct ServoCssRules(ServoCssRulesVoid);
+pub type RawServoStyleSheetStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoStyleSheet>;
+pub type RawServoStyleSheetBorrowed<'a> = &'a RawServoStyleSheet;
+pub type RawServoStyleSheetBorrowedOrNull<'a> = Option<&'a RawServoStyleSheet>;
+enum RawServoStyleSheetVoid { }
+pub struct RawServoStyleSheet(RawServoStyleSheetVoid);
+pub type RawServoDeclarationBlockStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoDeclarationBlock>;
+pub type RawServoDeclarationBlockBorrowed<'a> = &'a RawServoDeclarationBlock;
+pub type RawServoDeclarationBlockBorrowedOrNull<'a> = Option<&'a RawServoDeclarationBlock>;
+enum RawServoDeclarationBlockVoid { }
+pub struct RawServoDeclarationBlock(RawServoDeclarationBlockVoid);
+pub type RawServoStyleRuleStrong = ::gecko_bindings::sugar::ownership::Strong<RawServoStyleRule>;
+pub type RawServoStyleRuleBorrowed<'a> = &'a RawServoStyleRule;
+pub type RawServoStyleRuleBorrowedOrNull<'a> = Option<&'a RawServoStyleRule>;
+enum RawServoStyleRuleVoid { }
+pub struct RawServoStyleRule(RawServoStyleRuleVoid);
+pub type RawServoStyleSetOwned = ::gecko_bindings::sugar::ownership::Owned<RawServoStyleSet>;
+pub type RawServoStyleSetOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<RawServoStyleSet>;
+pub type RawServoStyleSetBorrowed<'a> = &'a RawServoStyleSet;
+pub type RawServoStyleSetBorrowedOrNull<'a> = Option<&'a RawServoStyleSet>;
+pub type RawServoStyleSetBorrowedMut<'a> = &'a mut RawServoStyleSet;
+pub type RawServoStyleSetBorrowedMutOrNull<'a> = Option<&'a mut RawServoStyleSet>;
+enum RawServoStyleSetVoid { }
+pub struct RawServoStyleSet(RawServoStyleSetVoid);
+pub type StyleChildrenIteratorOwned = ::gecko_bindings::sugar::ownership::Owned<StyleChildrenIterator>;
+pub type StyleChildrenIteratorOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<StyleChildrenIterator>;
+pub type StyleChildrenIteratorBorrowed<'a> = &'a StyleChildrenIterator;
+pub type StyleChildrenIteratorBorrowedOrNull<'a> = Option<&'a StyleChildrenIterator>;
+pub type StyleChildrenIteratorBorrowedMut<'a> = &'a mut StyleChildrenIterator;
+pub type StyleChildrenIteratorBorrowedMutOrNull<'a> = Option<&'a mut StyleChildrenIterator>;
+enum StyleChildrenIteratorVoid { }
+pub struct StyleChildrenIterator(StyleChildrenIteratorVoid);
+pub type ServoElementSnapshotOwned = ::gecko_bindings::sugar::ownership::Owned<ServoElementSnapshot>;
+pub type ServoElementSnapshotOwnedOrNull = ::gecko_bindings::sugar::ownership::OwnedOrNull<ServoElementSnapshot>;
+pub type ServoElementSnapshotBorrowed<'a> = &'a ServoElementSnapshot;
+pub type ServoElementSnapshotBorrowedOrNull<'a> = Option<&'a ServoElementSnapshot>;
+pub type ServoElementSnapshotBorrowedMut<'a> = &'a mut ServoElementSnapshot;
+pub type ServoElementSnapshotBorrowedMutOrNull<'a> = Option<&'a mut ServoElementSnapshot>;
+pub type RawGeckoNodeBorrowed<'a> = &'a RawGeckoNode;
+pub type RawGeckoNodeBorrowedOrNull<'a> = Option<&'a RawGeckoNode>;
+pub type RawGeckoElementBorrowed<'a> = &'a RawGeckoElement;
+pub type RawGeckoElementBorrowedOrNull<'a> = Option<&'a RawGeckoElement>;
+pub type RawGeckoDocumentBorrowed<'a> = &'a RawGeckoDocument;
+pub type RawGeckoDocumentBorrowedOrNull<'a> = Option<&'a RawGeckoDocument>;
+pub type RawServoDeclarationBlockStrongBorrowed<'a> = &'a RawServoDeclarationBlockStrong;
+pub type RawServoDeclarationBlockStrongBorrowedOrNull<'a> = Option<&'a RawServoDeclarationBlockStrong>;
+pub type nsCSSValueBorrowed<'a> = &'a nsCSSValue;
+pub type nsCSSValueBorrowedOrNull<'a> = Option<&'a nsCSSValue>;
+pub type nsCSSValueBorrowedMut<'a> = &'a mut nsCSSValue;
+pub type nsCSSValueBorrowedMutOrNull<'a> = Option<&'a mut nsCSSValue>;
 
 extern "C" {
     pub fn Servo_CssRules_AddRef(ptr: ServoCssRulesBorrowed);
 }
 extern "C" {
     pub fn Servo_CssRules_Release(ptr: ServoCssRulesBorrowed);
 }
 extern "C" {
@@ -1192,17 +1192,17 @@ extern "C" {
                               set: RawServoStyleSetBorrowed,
                               consume: ConsumeStyleBehavior,
                               compute: LazyComputeBehavior)
      -> ServoComputedValuesStrong;
 }
 extern "C" {
     pub fn Servo_TraverseSubtree(root: RawGeckoElementBorrowed,
                                  set: RawServoStyleSetBorrowed,
-                                 behavior: TraversalRootBehavior);
+                                 root_behavior: TraversalRootBehavior);
 }
 extern "C" {
     pub fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed);
 }
 extern "C" {
     pub fn Servo_GetStyleFont(computed_values:
                                   ServoComputedValuesBorrowedOrNull)
      -> *const nsStyleFont;
--- a/servo/components/style/gecko_bindings/structs_debug.rs
+++ b/servo/components/style/gecko_bindings/structs_debug.rs
@@ -1505,17 +1505,20 @@ pub mod root {
                 /**
      * XBL binding installed on the lement.
      */
                 pub mXBLInsertionParent: root::nsCOMPtr<root::nsIContent>,
                 /**
      * Web components custom element data.
      */
                 pub mCustomElementData: root::RefPtr<root::mozilla::dom::CustomElementData>,
-                pub mRegisteredIntersectionObservers: root::nsTArray<root::mozilla::dom::FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration>,
+                /**
+     * Registered Intersection Observers on the element.
+     */
+                pub mRegisteredIntersectionObservers: [u64; 6usize],
             }
             #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_1 {
                 /**
       * The nearest enclosing content node with a binding that created us.
       * @see FragmentOrElement::GetBindingParent
       */
@@ -1531,40 +1534,20 @@ pub mod root {
                 assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_1>()
                            , 8usize);
                 assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_1>()
                            , 8usize);
             }
             impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_1 {
                 fn clone(&self) -> Self { *self }
             }
-            /**
-     * Registered Intersection Observers on the element.
-     */
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration {
-                pub observer: *mut root::mozilla::dom::DOMIntersectionObserver,
-                pub previousThreshold: i32,
-            }
-            #[test]
-            fn bindgen_test_layout_FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration() {
-                assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration>()
-                           , 16usize);
-                assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration>()
-                           , 8usize);
-            }
-            impl Clone for
-             FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration {
-                fn clone(&self) -> Self { *self }
-            }
             #[test]
             fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
                 assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>()
-                           , 168usize);
+                           , 208usize);
                 assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>()
                            , 8usize);
             }
             extern "C" {
                 #[link_name =
                       "_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"]
                 pub static mut FragmentOrElement__cycleCollectorGlobal:
                            root::mozilla::dom::FragmentOrElement_cycleCollection;
@@ -1932,69 +1915,16 @@ pub mod root {
                 pub static mut Attr_sInitialized: bool;
             }
             #[test]
             fn bindgen_test_layout_Attr() {
                 assert_eq!(::std::mem::size_of::<Attr>() , 144usize);
                 assert_eq!(::std::mem::align_of::<Attr>() , 8usize);
             }
             #[repr(C)]
-            #[derive(Debug)]
-            pub struct DOMIntersectionObserver {
-                pub _base: root::nsISupports,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub _mOwningThread: root::nsAutoOwningThread,
-                pub mOwner: root::nsCOMPtr<root::nsPIDOMWindowInner>,
-                pub mCallback: root::RefPtr<root::mozilla::dom::IntersectionCallback>,
-                pub mRoot: root::RefPtr<root::mozilla::dom::Element>,
-                pub mRootMargin: root::nsCSSRect,
-                pub mThresholds: root::nsTArray<f64>,
-                pub mObservationTargets: [u64; 6usize],
-                pub mQueuedEntries: root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>,
-                pub mConnected: bool,
-            }
-            pub type DOMIntersectionObserver_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct DOMIntersectionObserver_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserver_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserver_cycleCollection>()
-                           , 16usize);
-                assert_eq!(::std::mem::align_of::<DOMIntersectionObserver_cycleCollection>()
-                           , 8usize);
-            }
-            impl Clone for DOMIntersectionObserver_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DOMIntersectionObserver_COMTypeInfo<T, U> {
-                pub _address: u8,
-                pub _phantom_0: ::std::marker::PhantomData<T>,
-                pub _phantom_1: ::std::marker::PhantomData<U>,
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom23DOMIntersectionObserver21_cycleCollectorGlobalE"]
-                pub static mut DOMIntersectionObserver__cycleCollectorGlobal:
-                           root::mozilla::dom::DOMIntersectionObserver_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserver() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserver>() ,
-                           208usize);
-                assert_eq!(::std::mem::align_of::<DOMIntersectionObserver>() ,
-                           8usize);
-            }
-            #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct FontFaceSet {
                 pub _address: u8,
             }
             impl Clone for FontFaceSet {
                 fn clone(&self) -> Self { *self }
             }
             #[repr(C)]
@@ -2125,28 +2055,16 @@ pub mod root {
             #[test]
             fn bindgen_test_layout_DOMIntersectionObserverEntry() {
                 assert_eq!(::std::mem::size_of::<DOMIntersectionObserverEntry>()
                            , 104usize);
                 assert_eq!(::std::mem::align_of::<DOMIntersectionObserverEntry>()
                            , 8usize);
             }
             #[repr(C)]
-            #[derive(Debug)]
-            pub struct IntersectionCallback {
-                pub _base: root::mozilla::dom::CallbackFunction,
-            }
-            #[test]
-            fn bindgen_test_layout_IntersectionCallback() {
-                assert_eq!(::std::mem::size_of::<IntersectionCallback>() ,
-                           56usize);
-                assert_eq!(::std::mem::align_of::<IntersectionCallback>() ,
-                           8usize);
-            }
-            #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct Grid {
                 pub _address: u8,
             }
             impl Clone for Grid {
                 fn clone(&self) -> Self { *self }
             }
         }
@@ -2488,17 +2406,20 @@ pub mod root {
                 pub _address: u8,
             }
             impl Clone for IMEState {
                 fn clone(&self) -> Self { *self }
             }
         }
         #[repr(i32)]
         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum TraversalRootBehavior { Normal = 0, UnstyledChildrenOnly = 1, }
+        pub enum TraversalRootBehavior {
+            Normal = 0,
+            UnstyledChildrenOnly = 1,
+        }
         pub mod a11y {
             #[allow(unused_imports)]
             use self::super::super::super::root;
             #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct DocAccessible {
                 pub _address: u8,
             }
@@ -8743,73 +8664,73 @@ pub mod root {
     #[repr(C)]
     #[derive(Debug, Copy)]
     pub struct nsDOMMutationObserver {
         pub _address: u8,
     }
     impl Clone for nsDOMMutationObserver {
         fn clone(&self) -> Self { *self }
     }
-    pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_LISTENERMANAGER;
-    pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_PROPERTIES;
-    pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_IS_ANONYMOUS_ROOT;
-    pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-    pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-    pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_FORCE_XBL_BINDINGS;
-    pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_MAY_BE_IN_BINDING_MNGR;
-    pub const NODE_IS_EDITABLE: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_IS_EDITABLE;
-    pub const NODE_MAY_HAVE_CLASS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_MAY_HAVE_CLASS;
-    pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_IS_IN_SHADOW_TREE;
-    pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_EMPTY_SELECTOR;
-    pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_SLOW_SELECTOR;
-    pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_EDGE_CHILD_SELECTOR;
-    pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-    pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_ALL_SELECTOR_FLAGS;
-    pub const NODE_NEEDS_FRAME: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_NEEDS_FRAME;
-    pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_DESCENDANTS_NEED_FRAMES;
-    pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_ACCESSKEY;
-    pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_DIRECTION_RTL;
-    pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_HAS_DIRECTION_LTR;
-    pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_ALL_DIRECTION_FLAGS;
-    pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_CHROME_ONLY_ACCESS;
-    pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-    pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_SHARED_RESTYLE_BIT_1;
-    pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_SHARED_RESTYLE_BIT_2;
-    pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_SHARED_RESTYLE_BIT_1;
-    pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_68 =
-        _bindgen_ty_68::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_LISTENERMANAGER;
+    pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_PROPERTIES;
+    pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_IS_ANONYMOUS_ROOT;
+    pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+    pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+    pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_FORCE_XBL_BINDINGS;
+    pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_MAY_BE_IN_BINDING_MNGR;
+    pub const NODE_IS_EDITABLE: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_IS_EDITABLE;
+    pub const NODE_MAY_HAVE_CLASS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_MAY_HAVE_CLASS;
+    pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_IS_IN_SHADOW_TREE;
+    pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_EMPTY_SELECTOR;
+    pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_SLOW_SELECTOR;
+    pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_EDGE_CHILD_SELECTOR;
+    pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+    pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_ALL_SELECTOR_FLAGS;
+    pub const NODE_NEEDS_FRAME: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_NEEDS_FRAME;
+    pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_DESCENDANTS_NEED_FRAMES;
+    pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_ACCESSKEY;
+    pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_DIRECTION_RTL;
+    pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_HAS_DIRECTION_LTR;
+    pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_ALL_DIRECTION_FLAGS;
+    pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_CHROME_ONLY_ACCESS;
+    pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+    pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_SHARED_RESTYLE_BIT_1;
+    pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_SHARED_RESTYLE_BIT_2;
+    pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_SHARED_RESTYLE_BIT_1;
+    pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_69 =
+        _bindgen_ty_69::NODE_TYPE_SPECIFIC_BITS_OFFSET;
     #[repr(u32)]
     #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-    pub enum _bindgen_ty_68 {
+    pub enum _bindgen_ty_69 {
         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,
--- a/servo/components/style/gecko_bindings/structs_release.rs
+++ b/servo/components/style/gecko_bindings/structs_release.rs
@@ -1498,17 +1498,20 @@ pub mod root {
                 /**
      * XBL binding installed on the lement.
      */
                 pub mXBLInsertionParent: root::nsCOMPtr<root::nsIContent>,
                 /**
      * Web components custom element data.
      */
                 pub mCustomElementData: root::RefPtr<root::mozilla::dom::CustomElementData>,
-                pub mRegisteredIntersectionObservers: root::nsTArray<root::mozilla::dom::FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration>,
+                /**
+     * Registered Intersection Observers on the element.
+     */
+                pub mRegisteredIntersectionObservers: [u64; 5usize],
             }
             #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct FragmentOrElement_nsDOMSlots__bindgen_ty_1 {
                 /**
       * The nearest enclosing content node with a binding that created us.
       * @see FragmentOrElement::GetBindingParent
       */
@@ -1524,40 +1527,20 @@ pub mod root {
                 assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_1>()
                            , 8usize);
                 assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots__bindgen_ty_1>()
                            , 8usize);
             }
             impl Clone for FragmentOrElement_nsDOMSlots__bindgen_ty_1 {
                 fn clone(&self) -> Self { *self }
             }
-            /**
-     * Registered Intersection Observers on the element.
-     */
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration {
-                pub observer: *mut root::mozilla::dom::DOMIntersectionObserver,
-                pub previousThreshold: i32,
-            }
-            #[test]
-            fn bindgen_test_layout_FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration() {
-                assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration>()
-                           , 16usize);
-                assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration>()
-                           , 8usize);
-            }
-            impl Clone for
-             FragmentOrElement_nsDOMSlots_IntersectionObserverRegistration {
-                fn clone(&self) -> Self { *self }
-            }
             #[test]
             fn bindgen_test_layout_FragmentOrElement_nsDOMSlots() {
                 assert_eq!(::std::mem::size_of::<FragmentOrElement_nsDOMSlots>()
-                           , 168usize);
+                           , 200usize);
                 assert_eq!(::std::mem::align_of::<FragmentOrElement_nsDOMSlots>()
                            , 8usize);
             }
             extern "C" {
                 #[link_name =
                       "_ZN7mozilla3dom17FragmentOrElement21_cycleCollectorGlobalE"]
                 pub static mut FragmentOrElement__cycleCollectorGlobal:
                            root::mozilla::dom::FragmentOrElement_cycleCollection;
@@ -1922,68 +1905,16 @@ pub mod root {
                 pub static mut Attr_sInitialized: bool;
             }
             #[test]
             fn bindgen_test_layout_Attr() {
                 assert_eq!(::std::mem::size_of::<Attr>() , 136usize);
                 assert_eq!(::std::mem::align_of::<Attr>() , 8usize);
             }
             #[repr(C)]
-            #[derive(Debug)]
-            pub struct DOMIntersectionObserver {
-                pub _base: root::nsISupports,
-                pub _base_1: root::nsWrapperCache,
-                pub mRefCnt: root::nsCycleCollectingAutoRefCnt,
-                pub mOwner: root::nsCOMPtr<root::nsPIDOMWindowInner>,
-                pub mCallback: root::RefPtr<root::mozilla::dom::IntersectionCallback>,
-                pub mRoot: root::RefPtr<root::mozilla::dom::Element>,
-                pub mRootMargin: root::nsCSSRect,
-                pub mThresholds: root::nsTArray<f64>,
-                pub mObservationTargets: [u64; 5usize],
-                pub mQueuedEntries: root::nsTArray<root::RefPtr<root::mozilla::dom::DOMIntersectionObserverEntry>>,
-                pub mConnected: bool,
-            }
-            pub type DOMIntersectionObserver_HasThreadSafeRefCnt =
-                root::mozilla::FalseType;
-            #[repr(C)]
-            #[derive(Debug, Copy)]
-            pub struct DOMIntersectionObserver_cycleCollection {
-                pub _base: root::nsXPCOMCycleCollectionParticipant,
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserver_cycleCollection() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserver_cycleCollection>()
-                           , 16usize);
-                assert_eq!(::std::mem::align_of::<DOMIntersectionObserver_cycleCollection>()
-                           , 8usize);
-            }
-            impl Clone for DOMIntersectionObserver_cycleCollection {
-                fn clone(&self) -> Self { *self }
-            }
-            #[repr(C)]
-            #[derive(Debug, Copy, Clone)]
-            pub struct DOMIntersectionObserver_COMTypeInfo<T, U> {
-                pub _address: u8,
-                pub _phantom_0: ::std::marker::PhantomData<T>,
-                pub _phantom_1: ::std::marker::PhantomData<U>,
-            }
-            extern "C" {
-                #[link_name =
-                      "_ZN7mozilla3dom23DOMIntersectionObserver21_cycleCollectorGlobalE"]
-                pub static mut DOMIntersectionObserver__cycleCollectorGlobal:
-                           root::mozilla::dom::DOMIntersectionObserver_cycleCollection;
-            }
-            #[test]
-            fn bindgen_test_layout_DOMIntersectionObserver() {
-                assert_eq!(::std::mem::size_of::<DOMIntersectionObserver>() ,
-                           192usize);
-                assert_eq!(::std::mem::align_of::<DOMIntersectionObserver>() ,
-                           8usize);
-            }
-            #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct FontFaceSet {
                 pub _address: u8,
             }
             impl Clone for FontFaceSet {
                 fn clone(&self) -> Self { *self }
             }
             #[repr(C)]
@@ -2113,28 +2044,16 @@ pub mod root {
             #[test]
             fn bindgen_test_layout_DOMIntersectionObserverEntry() {
                 assert_eq!(::std::mem::size_of::<DOMIntersectionObserverEntry>()
                            , 96usize);
                 assert_eq!(::std::mem::align_of::<DOMIntersectionObserverEntry>()
                            , 8usize);
             }
             #[repr(C)]
-            #[derive(Debug)]
-            pub struct IntersectionCallback {
-                pub _base: root::mozilla::dom::CallbackFunction,
-            }
-            #[test]
-            fn bindgen_test_layout_IntersectionCallback() {
-                assert_eq!(::std::mem::size_of::<IntersectionCallback>() ,
-                           48usize);
-                assert_eq!(::std::mem::align_of::<IntersectionCallback>() ,
-                           8usize);
-            }
-            #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct Grid {
                 pub _address: u8,
             }
             impl Clone for Grid {
                 fn clone(&self) -> Self { *self }
             }
         }
@@ -2470,17 +2389,20 @@ pub mod root {
                 pub _address: u8,
             }
             impl Clone for IMEState {
                 fn clone(&self) -> Self { *self }
             }
         }
         #[repr(i32)]
         #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-        pub enum TraversalRootBehavior { Normal = 0, UnstyledChildrenOnly = 1, }
+        pub enum TraversalRootBehavior {
+            Normal = 0,
+            UnstyledChildrenOnly = 1,
+        }
         pub mod a11y {
             #[allow(unused_imports)]
             use self::super::super::super::root;
             #[repr(C)]
             #[derive(Debug, Copy)]
             pub struct DocAccessible {
                 pub _address: u8,
             }
@@ -8679,73 +8601,73 @@ pub mod root {
     #[repr(C)]
     #[derive(Debug, Copy)]
     pub struct nsDOMMutationObserver {
         pub _address: u8,
     }
     impl Clone for nsDOMMutationObserver {
         fn clone(&self) -> Self { *self }
     }
-    pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_LISTENERMANAGER;
-    pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_PROPERTIES;
-    pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_IS_ANONYMOUS_ROOT;
-    pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
-    pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_IS_NATIVE_ANONYMOUS_ROOT;
-    pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_FORCE_XBL_BINDINGS;
-    pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_MAY_BE_IN_BINDING_MNGR;
-    pub const NODE_IS_EDITABLE: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_IS_EDITABLE;
-    pub const NODE_MAY_HAVE_CLASS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_MAY_HAVE_CLASS;
-    pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_IS_IN_SHADOW_TREE;
-    pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_EMPTY_SELECTOR;
-    pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_SLOW_SELECTOR;
-    pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_EDGE_CHILD_SELECTOR;
-    pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
-    pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_ALL_SELECTOR_FLAGS;
-    pub const NODE_NEEDS_FRAME: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_NEEDS_FRAME;
-    pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_DESCENDANTS_NEED_FRAMES;
-    pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_ACCESSKEY;
-    pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_DIRECTION_RTL;
-    pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_HAS_DIRECTION_LTR;
-    pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_ALL_DIRECTION_FLAGS;
-    pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_CHROME_ONLY_ACCESS;
-    pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
-    pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_SHARED_RESTYLE_BIT_1;
-    pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_SHARED_RESTYLE_BIT_2;
-    pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_SHARED_RESTYLE_BIT_1;
-    pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_62 =
-        _bindgen_ty_62::NODE_TYPE_SPECIFIC_BITS_OFFSET;
+    pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_LISTENERMANAGER;
+    pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_PROPERTIES;
+    pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_IS_ANONYMOUS_ROOT;
+    pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE;
+    pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_IS_NATIVE_ANONYMOUS_ROOT;
+    pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_FORCE_XBL_BINDINGS;
+    pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_MAY_BE_IN_BINDING_MNGR;
+    pub const NODE_IS_EDITABLE: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_IS_EDITABLE;
+    pub const NODE_MAY_HAVE_CLASS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_MAY_HAVE_CLASS;
+    pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_IS_IN_SHADOW_TREE;
+    pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_EMPTY_SELECTOR;
+    pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_SLOW_SELECTOR;
+    pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_EDGE_CHILD_SELECTOR;
+    pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS;
+    pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_ALL_SELECTOR_FLAGS;
+    pub const NODE_NEEDS_FRAME: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_NEEDS_FRAME;
+    pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_DESCENDANTS_NEED_FRAMES;
+    pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_ACCESSKEY;
+    pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_DIRECTION_RTL;
+    pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_HAS_DIRECTION_LTR;
+    pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_ALL_DIRECTION_FLAGS;
+    pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_CHROME_ONLY_ACCESS;
+    pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS;
+    pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_SHARED_RESTYLE_BIT_1;
+    pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_SHARED_RESTYLE_BIT_2;
+    pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_SHARED_RESTYLE_BIT_1;
+    pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_63 =
+        _bindgen_ty_63::NODE_TYPE_SPECIFIC_BITS_OFFSET;
     #[repr(u32)]
     #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
-    pub enum _bindgen_ty_62 {
+    pub enum _bindgen_ty_63 {
         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,