Update binding files. draft
authorXidorn Quan <me@upsuper.org>
Thu, 30 Mar 2017 21:54:20 +1100
changeset 553580 5f6e536b04850acefa2ae4007cc1cfde4ef84fab
parent 553579 220142962f3d987d728bbfe0211e633897b2fa2a
child 622127 6429f51647413a8f715a98ce49d140582af3ba7f
push id51705
push userxquan@mozilla.com
push dateThu, 30 Mar 2017 10:55:02 +0000
milestone55.0a1
Update binding files. MozReview-Commit-ID: 2tJ5TgmC0Lb
servo/components/style/gecko_bindings/bindings.rs
servo/components/style/gecko_bindings/structs_debug.rs
servo/components/style/gecko_bindings/structs_release.rs
--- a/servo/components/style/gecko_bindings/bindings.rs
+++ b/servo/components/style/gecko_bindings/bindings.rs
@@ -11,20 +11,18 @@ use gecko_bindings::structs::RawGeckoCom
 use gecko_bindings::structs::RawGeckoNode;
 use gecko_bindings::structs::RawGeckoAnimationValueList;
 use gecko_bindings::structs::RawServoAnimationValue;
 use gecko_bindings::structs::RawServoAnimationValueMap;
 use gecko_bindings::structs::RawServoDeclarationBlock;
 use gecko_bindings::structs::RawGeckoPresContext;
 use gecko_bindings::structs::RawGeckoPresContextOwned;
 use gecko_bindings::structs::RawGeckoStyleAnimationList;
-use gecko_bindings::structs::GeckoParserExtraData;
+use gecko_bindings::structs::RawGeckoURLExtraData;
 use gecko_bindings::structs::RefPtr;
-use gecko_bindings::structs::ThreadSafeURIHolder;
-use gecko_bindings::structs::ThreadSafePrincipalHolder;
 use gecko_bindings::structs::CSSPseudoClassType;
 use gecko_bindings::structs::TraversalRootBehavior;
 use gecko_bindings::structs::FontFamilyList;
 use gecko_bindings::structs::FontFamilyType;
 use gecko_bindings::structs::Keyframe;
 use gecko_bindings::structs::ServoBundledURI;
 use gecko_bindings::structs::ServoElementSnapshot;
 use gecko_bindings::structs::SheetParsingMode;
@@ -35,17 +33,16 @@ use gecko_bindings::structs::nsCSSKeywor
 use gecko_bindings::structs::nsCSSPropertyID;
 use gecko_bindings::structs::nsCSSShadowArray;
 use gecko_bindings::structs::nsCSSValue;
 use gecko_bindings::structs::nsCSSValueSharedList;
 use gecko_bindings::structs::nsChangeHint;
 use gecko_bindings::structs::nsCursorImage;
 use gecko_bindings::structs::nsFont;
 use gecko_bindings::structs::nsIAtom;
-use gecko_bindings::structs::nsIURI;
 use gecko_bindings::structs::nsMediaFeature;
 use gecko_bindings::structs::nsRestyleHint;
 use gecko_bindings::structs::nsStyleBackground;
 unsafe impl Send for nsStyleBackground {}
 unsafe impl Sync for nsStyleBackground {}
 use gecko_bindings::structs::nsStyleBorder;
 unsafe impl Send for nsStyleBorder {}
 unsafe impl Sync for nsStyleBorder {}
@@ -359,30 +356,16 @@ extern "C" {
 }
 extern "C" {
     pub fn Servo_NamespaceRule_Release(ptr: RawServoNamespaceRuleBorrowed);
 }
 extern "C" {
     pub fn Servo_StyleSet_Drop(ptr: RawServoStyleSetOwned);
 }
 extern "C" {
-    pub fn Gecko_AddRefPrincipalArbitraryThread(aPtr:
-                                                    *mut ThreadSafePrincipalHolder);
-}
-extern "C" {
-    pub fn Gecko_ReleasePrincipalArbitraryThread(aPtr:
-                                                     *mut ThreadSafePrincipalHolder);
-}
-extern "C" {
-    pub fn Gecko_AddRefURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder);
-}
-extern "C" {
-    pub fn Gecko_ReleaseURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder);
-}
-extern "C" {
     pub fn Gecko_ChildrenCount(node: RawGeckoNodeBorrowed) -> u32;
 }
 extern "C" {
     pub fn Gecko_NodeIsElement(node: RawGeckoNodeBorrowed) -> bool;
 }
 extern "C" {
     pub fn Gecko_IsInDocument(node: RawGeckoNodeBorrowed) -> bool;
 }
@@ -434,19 +417,19 @@ extern "C" {
 extern "C" {
     pub fn Gecko_GetDocumentElement(document: RawGeckoDocumentBorrowed)
      -> RawGeckoElementBorrowedOrNull;
 }
 extern "C" {
     pub fn Gecko_LoadStyleSheet(loader: *mut Loader,
                                 parent: *mut ServoStyleSheet,
                                 import_rule: RawServoImportRuleBorrowed,
-                                base_uri: *mut nsIURI, url_bytes: *const u8,
-                                url_length: u32, media_bytes: *const u8,
-                                media_length: u32);
+                                base_url_data: *mut RawGeckoURLExtraData,
+                                url_bytes: *const u8, url_length: u32,
+                                media_bytes: *const u8, media_length: u32);
 }
 extern "C" {
     pub fn Gecko_MaybeCreateStyleChildrenIterator(node: RawGeckoNodeBorrowed)
      -> StyleChildrenIteratorOwnedOrNull;
 }
 extern "C" {
     pub fn Gecko_DropStyleChildrenIterator(it: StyleChildrenIteratorOwned);
 }
@@ -875,16 +858,24 @@ extern "C" {
 }
 extern "C" {
     pub fn Gecko_AddRefCSSURLValueArbitraryThread(aPtr: *mut URLValue);
 }
 extern "C" {
     pub fn Gecko_ReleaseCSSURLValueArbitraryThread(aPtr: *mut URLValue);
 }
 extern "C" {
+    pub fn Gecko_AddRefURLExtraDataArbitraryThread(aPtr:
+                                                       *mut RawGeckoURLExtraData);
+}
+extern "C" {
+    pub fn Gecko_ReleaseURLExtraDataArbitraryThread(aPtr:
+                                                        *mut RawGeckoURLExtraData);
+}
+extern "C" {
     pub fn Gecko_FillAllBackgroundLists(layers: *mut nsStyleImageLayers,
                                         max_len: u32);
 }
 extern "C" {
     pub fn Gecko_FillAllMaskLists(layers: *mut nsStyleImageLayers,
                                   max_len: u32);
 }
 extern "C" {
@@ -1356,37 +1347,33 @@ extern "C" {
 }
 extern "C" {
     pub fn Servo_StyleSheet_FromUTF8Bytes(loader: *mut Loader,
                                           gecko_stylesheet:
                                               *mut ServoStyleSheet,
                                           data: *const nsACString,
                                           parsing_mode: SheetParsingMode,
                                           base_url: *const nsACString,
-                                          base: *mut ThreadSafeURIHolder,
-                                          referrer: *mut ThreadSafeURIHolder,
-                                          principal:
-                                              *mut ThreadSafePrincipalHolder)
+                                          extra_data:
+                                              *mut RawGeckoURLExtraData)
      -> RawServoStyleSheetStrong;
 }
 extern "C" {
     pub fn Servo_ImportRule_GetSheet(import_rule: RawServoImportRuleBorrowed)
      -> RawServoStyleSheetStrong;
 }
 extern "C" {
     pub fn Servo_StyleSheet_ClearAndUpdate(stylesheet:
                                                RawServoStyleSheetBorrowed,
                                            loader: *mut Loader,
                                            gecko_stylesheet:
                                                *mut ServoStyleSheet,
                                            data: *const nsACString,
-                                           base: *mut ThreadSafeURIHolder,
-                                           referrer: *mut ThreadSafeURIHolder,
-                                           principal:
-                                               *mut ThreadSafePrincipalHolder);
+                                           extra_data:
+                                               *mut RawGeckoURLExtraData);
 }
 extern "C" {
     pub fn Servo_StyleSheet_HasRules(sheet: RawServoStyleSheetBorrowed)
      -> bool;
 }
 extern "C" {
     pub fn Servo_StyleSheet_GetRules(sheet: RawServoStyleSheetBorrowed)
      -> ServoCssRulesStrong;
@@ -1522,23 +1509,23 @@ extern "C" {
 extern "C" {
     pub fn Servo_NamespaceRule_GetURI(rule: RawServoNamespaceRuleBorrowed)
      -> *mut nsIAtom;
 }
 extern "C" {
     pub fn Servo_ParseProperty(property: *const nsACString,
                                value: *const nsACString,
                                base: *const nsACString,
-                               data: *const GeckoParserExtraData)
+                               data: *mut RawGeckoURLExtraData)
      -> RawServoDeclarationBlockStrong;
 }
 extern "C" {
     pub fn Servo_ParseEasing(easing: *const nsAString,
                              base: *const nsACString,
-                             data: *const GeckoParserExtraData,
+                             data: *mut RawGeckoURLExtraData,
                              output: nsTimingFunctionBorrowedMut) -> bool;
 }
 extern "C" {
     pub fn Servo_GetComputedKeyframeValues(keyframes:
                                                RawGeckoKeyframeListBorrowed,
                                            style: ServoComputedValuesBorrowed,
                                            parent_style:
                                                ServoComputedValuesBorrowedOrNull,
@@ -1583,17 +1570,17 @@ extern "C" {
                                               RawServoAnimationValueBorrowed,
                                           arg2:
                                               RawServoAnimationValueBorrowed)
      -> bool;
 }
 extern "C" {
     pub fn Servo_ParseStyleAttribute(data: *const nsACString,
                                      base: *const nsACString,
-                                     extraData: *const GeckoParserExtraData)
+                                     extra_data: *mut RawGeckoURLExtraData)
      -> RawServoDeclarationBlockStrong;
 }
 extern "C" {
     pub fn Servo_DeclarationBlock_CreateEmpty()
      -> RawServoDeclarationBlockStrong;
 }
 extern "C" {
     pub fn Servo_DeclarationBlock_Clone(declarations:
@@ -1651,29 +1638,28 @@ extern "C" {
 }
 extern "C" {
     pub fn Servo_DeclarationBlock_SetProperty(declarations:
                                                   RawServoDeclarationBlockBorrowed,
                                               property: *const nsACString,
                                               value: *const nsACString,
                                               is_important: bool,
                                               base: *const nsACString,
-                                              data:
-                                                  *const GeckoParserExtraData)
+                                              data: *mut RawGeckoURLExtraData)
      -> bool;
 }
 extern "C" {
     pub fn Servo_DeclarationBlock_SetPropertyById(declarations:
                                                       RawServoDeclarationBlockBorrowed,
                                                   property: nsCSSPropertyID,
                                                   value: *const nsACString,
                                                   is_important: bool,
                                                   base: *const nsACString,
                                                   data:
-                                                      *const GeckoParserExtraData)
+                                                      *mut RawGeckoURLExtraData)
      -> bool;
 }
 extern "C" {
     pub fn Servo_DeclarationBlock_RemoveProperty(declarations:
                                                      RawServoDeclarationBlockBorrowed,
                                                  property: *const nsACString);
 }
 extern "C" {
--- a/servo/components/style/gecko_bindings/structs_debug.rs
+++ b/servo/components/style/gecko_bindings/structs_debug.rs
@@ -4946,36 +4946,77 @@ pub mod root {
             pub struct Rule([u8; 0]);
             #[repr(C)]
             #[derive(Debug, Copy, Clone)]
             pub struct Loader([u8; 0]);
             #[repr(C)]
             #[derive(Debug, Copy, Clone)]
             pub struct ImageLoader([u8; 0]);
             #[repr(C)]
+            #[derive(Debug)]
+            pub struct URLExtraData {
+                pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+                pub mBaseURI: root::RefPtr<root::nsIURI>,
+                pub mReferrer: root::RefPtr<root::nsIURI>,
+                pub mPrincipal: root::RefPtr<root::nsIPrincipal>,
+            }
+            pub type URLExtraData_HasThreadSafeRefCnt =
+                root::mozilla::TrueType;
+            #[test]
+            fn bindgen_test_layout_URLExtraData() {
+                assert_eq!(::std::mem::size_of::<URLExtraData>() , 32usize ,
+                           concat ! (
+                           "Size of: " , stringify ! ( URLExtraData ) ));
+                assert_eq! (::std::mem::align_of::<URLExtraData>() , 8usize ,
+                            concat ! (
+                            "Alignment of " , stringify ! ( URLExtraData ) ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mRefCnt as
+                            * const _ as usize } , 0usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mRefCnt )
+                            ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mBaseURI
+                            as * const _ as usize } , 8usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mBaseURI )
+                            ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mReferrer
+                            as * const _ as usize } , 16usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mReferrer )
+                            ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mPrincipal
+                            as * const _ as usize } , 24usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mPrincipal )
+                            ));
+            }
+            #[repr(C)]
             pub struct URLValueData__bindgen_vtable {
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct URLValueData {
                 pub vtable_: *const URLValueData__bindgen_vtable,
                 pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
                 pub mURI: root::nsMainThreadPtrHandle<root::nsIURI>,
-                pub mBaseURI: root::nsMainThreadPtrHandle<root::nsIURI>,
                 pub mString: root::RefPtr<root::nsStringBuffer>,
-                pub mReferrer: root::nsMainThreadPtrHandle<root::nsIURI>,
-                pub mOriginPrincipal: root::nsMainThreadPtrHandle<root::nsIPrincipal>,
+                pub mExtraData: root::RefPtr<root::mozilla::css::URLExtraData>,
                 pub mURIResolved: bool,
                 pub mIsLocalRef: bool,
             }
             pub type URLValueData_HasThreadSafeRefCnt =
                 root::mozilla::TrueType;
             #[test]
             fn bindgen_test_layout_URLValueData() {
-                assert_eq!(::std::mem::size_of::<URLValueData>() , 64usize ,
+                assert_eq!(::std::mem::size_of::<URLValueData>() , 48usize ,
                            concat ! (
                            "Size of: " , stringify ! ( URLValueData ) ));
                 assert_eq! (::std::mem::align_of::<URLValueData>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( URLValueData ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) . mRefCnt as
                             * const _ as usize } , 8usize , concat ! (
@@ -4983,92 +5024,79 @@ pub mod root {
                             URLValueData ) , "::" , stringify ! ( mRefCnt )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) . mURI as *
                             const _ as usize } , 16usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mURI ) ));
                 assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mBaseURI
-                            as * const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mBaseURI )
-                            ));
-                assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) . mString as
-                            * const _ as usize } , 32usize , concat ! (
+                            * const _ as usize } , 24usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mString )
                             ));
                 assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mReferrer
-                            as * const _ as usize } , 40usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mReferrer )
+                            & ( * ( 0 as * const URLValueData ) ) . mExtraData
+                            as * const _ as usize } , 32usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLValueData ) , "::" , stringify ! ( mExtraData )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) .
-                            mOriginPrincipal as * const _ as usize } , 48usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! (
-                            mOriginPrincipal ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mURIResolved as * const _ as usize } , 56usize ,
+                            mURIResolved as * const _ as usize } , 40usize ,
                             concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mURIResolved
                             ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) .
-                            mIsLocalRef as * const _ as usize } , 57usize ,
+                            mIsLocalRef as * const _ as usize } , 41usize ,
                             concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mIsLocalRef
                             ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct URLValue {
                 pub _base: root::mozilla::css::URLValueData,
             }
             #[test]
             fn bindgen_test_layout_URLValue() {
-                assert_eq!(::std::mem::size_of::<URLValue>() , 64usize ,
+                assert_eq!(::std::mem::size_of::<URLValue>() , 48usize ,
                            concat ! ( "Size of: " , stringify ! ( URLValue )
                            ));
                 assert_eq! (::std::mem::align_of::<URLValue>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( URLValue ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct ImageValue {
                 pub _base: root::mozilla::css::URLValueData,
                 pub mRequests: [u64; 6usize],
                 pub mInitialized: bool,
             }
             #[test]
             fn bindgen_test_layout_ImageValue() {
-                assert_eq!(::std::mem::size_of::<ImageValue>() , 120usize ,
+                assert_eq!(::std::mem::size_of::<ImageValue>() , 104usize ,
                            concat ! ( "Size of: " , stringify ! ( ImageValue )
                            ));
                 assert_eq! (::std::mem::align_of::<ImageValue>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( ImageValue ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ImageValue ) ) . mRequests as
-                            * const _ as usize } , 64usize , concat ! (
+                            * const _ as usize } , 48usize , concat ! (
                             "Alignment of field: " , stringify ! ( ImageValue
                             ) , "::" , stringify ! ( mRequests ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ImageValue ) ) . mInitialized
-                            as * const _ as usize } , 112usize , concat ! (
+                            as * const _ as usize } , 96usize , concat ! (
                             "Alignment of field: " , stringify ! ( ImageValue
                             ) , "::" , stringify ! ( mInitialized ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct GridNamedArea {
                 pub mName: ::nsstring::nsStringRepr,
                 pub mColumnStart: u32,
@@ -26123,16 +26151,17 @@ pub mod root {
     pub struct RawServoAnimationValue([u8; 0]);
     #[repr(C)]
     #[derive(Debug, Copy, Clone)]
     pub struct RawServoAnimationValueMap([u8; 0]);
     pub type RawGeckoNode = root::nsINode;
     pub type RawGeckoElement = root::mozilla::dom::Element;
     pub type RawGeckoDocument = root::nsIDocument;
     pub type RawGeckoPresContext = root::nsPresContext;
+    pub type RawGeckoURLExtraData = root::mozilla::css::URLExtraData;
     pub type RawGeckoKeyframeList = root::nsTArray<root::mozilla::Keyframe>;
     pub type RawGeckoComputedKeyframeValuesList =
         root::nsTArray<root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>>;
     pub type RawGeckoAnimationValueList =
         root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>;
     pub type RawGeckoStyleAnimationList =
         root::nsStyleAutoArray<root::mozilla::StyleAnimation>;
     pub type RawServoAnimationValueMapBorrowed =
@@ -26322,99 +26351,50 @@ pub mod root {
                     & ( * ( 0 as * const nsMediaFeature ) ) . mGetter as *
                     const _ as usize } , 32usize , concat ! (
                     "Alignment of field: " , stringify ! ( nsMediaFeature ) ,
                     "::" , stringify ! ( mGetter ) ));
     }
     impl Clone for nsMediaFeature {
         fn clone(&self) -> Self { *self }
     }
-    pub type ThreadSafePrincipalHolder =
-        root::nsMainThreadPtrHolder<root::nsIPrincipal>;
-    pub type ThreadSafeURIHolder = root::nsMainThreadPtrHolder<root::nsIURI>;
     #[repr(C)]
     #[derive(Debug, Copy)]
     pub struct ServoBundledURI {
         pub mURLString: *const u8,
         pub mURLStringLength: u32,
-        pub mBaseURI: *mut root::ThreadSafeURIHolder,
-        pub mReferrer: *mut root::ThreadSafeURIHolder,
-        pub mPrincipal: *mut root::ThreadSafePrincipalHolder,
+        pub mExtraData: *mut root::mozilla::css::URLExtraData,
     }
     #[test]
     fn bindgen_test_layout_ServoBundledURI() {
-        assert_eq!(::std::mem::size_of::<ServoBundledURI>() , 40usize , concat
+        assert_eq!(::std::mem::size_of::<ServoBundledURI>() , 24usize , concat
                    ! ( "Size of: " , stringify ! ( ServoBundledURI ) ));
         assert_eq! (::std::mem::align_of::<ServoBundledURI>() , 8usize ,
                     concat ! (
                     "Alignment of " , stringify ! ( ServoBundledURI ) ));
         assert_eq! (unsafe {
                     & ( * ( 0 as * const ServoBundledURI ) ) . mURLString as *
                     const _ as usize } , 0usize , concat ! (
                     "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
                     "::" , stringify ! ( mURLString ) ));
         assert_eq! (unsafe {
                     & ( * ( 0 as * const ServoBundledURI ) ) .
                     mURLStringLength as * const _ as usize } , 8usize , concat
                     ! (
                     "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
                     "::" , stringify ! ( mURLStringLength ) ));
         assert_eq! (unsafe {
-                    & ( * ( 0 as * const ServoBundledURI ) ) . mBaseURI as *
+                    & ( * ( 0 as * const ServoBundledURI ) ) . mExtraData as *
                     const _ as usize } , 16usize , concat ! (
                     "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
-                    "::" , stringify ! ( mBaseURI ) ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const ServoBundledURI ) ) . mReferrer as *
-                    const _ as usize } , 24usize , concat ! (
-                    "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
-                    "::" , stringify ! ( mReferrer ) ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const ServoBundledURI ) ) . mPrincipal as *
-                    const _ as usize } , 32usize , concat ! (
-                    "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
-                    "::" , stringify ! ( mPrincipal ) ));
+                    "::" , stringify ! ( mExtraData ) ));
     }
     impl Clone for ServoBundledURI {
         fn clone(&self) -> Self { *self }
     }
-    #[repr(C)]
-    #[derive(Debug)]
-    pub struct GeckoParserExtraData {
-        pub mBaseURI: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
-        pub mReferrer: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
-        pub mPrincipal: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIPrincipal>>,
-    }
-    #[test]
-    fn bindgen_test_layout_GeckoParserExtraData() {
-        assert_eq!(::std::mem::size_of::<GeckoParserExtraData>() , 24usize ,
-                   concat ! (
-                   "Size of: " , stringify ! ( GeckoParserExtraData ) ));
-        assert_eq! (::std::mem::align_of::<GeckoParserExtraData>() , 8usize ,
-                    concat ! (
-                    "Alignment of " , stringify ! ( GeckoParserExtraData ) ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const GeckoParserExtraData ) ) . mBaseURI
-                    as * const _ as usize } , 0usize , concat ! (
-                    "Alignment of field: " , stringify ! (
-                    GeckoParserExtraData ) , "::" , stringify ! ( mBaseURI )
-                    ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const GeckoParserExtraData ) ) . mReferrer
-                    as * const _ as usize } , 8usize , concat ! (
-                    "Alignment of field: " , stringify ! (
-                    GeckoParserExtraData ) , "::" , stringify ! ( mReferrer )
-                    ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const GeckoParserExtraData ) ) . mPrincipal
-                    as * const _ as usize } , 16usize , concat ! (
-                    "Alignment of field: " , stringify ! (
-                    GeckoParserExtraData ) , "::" , stringify ! ( mPrincipal )
-                    ));
-    }
     pub type nsMediaFeatureValueGetter =
         ::std::option::Option<unsafe extern "C" fn(aPresContext:
                                                        *mut root::nsPresContext,
                                                    aFeature:
                                                        *const root::nsMediaFeature,
                                                    aResult:
                                                        *mut root::nsCSSValue)>;
     #[repr(C)]
@@ -27520,334 +27500,310 @@ pub mod root {
                    root::mozilla::DefaultDelete<root::ProxyBehaviour> ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::ProxyBehaviour>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::ProxyBehaviour> ) ));
     }
     #[test]
     fn __bindgen_test_layout_template_74() {
+        assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::css::URLExtraData>>()
+                   , 8usize , concat ! (
+                   "Size of template specialization: " , stringify ! (
+                   root::already_AddRefed<root::mozilla::css::URLExtraData> )
+                   ));
+        assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::mozilla::css::URLExtraData>>()
+                   , 8usize , concat ! (
+                   "Alignment of template specialization: " , stringify ! (
+                   root::already_AddRefed<root::mozilla::css::URLExtraData> )
+                   ));
+    }
+    #[test]
+    fn __bindgen_test_layout_template_75() {
         assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>()
                    , 24usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsMainThreadPtrHolder<root::nsIURI> ) ));
         assert_eq!(::std::mem::align_of::<root::nsMainThreadPtrHolder<root::nsIURI>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsMainThreadPtrHolder<root::nsIURI> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_75() {
-        assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>>()
-                   , 8usize , concat ! (
-                   "Size of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>
-                   ) ));
-        assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>>()
-                   , 8usize , concat ! (
-                   "Alignment of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>
-                   ) ));
-    }
-    #[test]
     fn __bindgen_test_layout_template_76() {
-        assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIPrincipal>>()
-                   , 24usize , concat ! (
-                   "Size of template specialization: " , stringify ! (
-                   root::nsMainThreadPtrHolder<root::nsIPrincipal> ) ));
-        assert_eq!(::std::mem::align_of::<root::nsMainThreadPtrHolder<root::nsIPrincipal>>()
-                   , 8usize , concat ! (
-                   "Alignment of template specialization: " , stringify ! (
-                   root::nsMainThreadPtrHolder<root::nsIPrincipal> ) ));
-    }
-    #[test]
-    fn __bindgen_test_layout_template_77() {
-        assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>>()
-                   , 8usize , concat ! (
-                   "Size of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>
-                   ) ));
-        assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>>()
-                   , 8usize , concat ! (
-                   "Alignment of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>
-                   ) ));
-    }
-    #[test]
-    fn __bindgen_test_layout_template_78() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValueList> ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValueList> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_79() {
+    fn __bindgen_test_layout_template_77() {
         assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList,
                                                root::mozilla::DefaultDelete<root::nsCSSValueList>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValueList,
                          root::mozilla::DefaultDelete<root::nsCSSValueList>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValueList,
                                                 root::mozilla::DefaultDelete<root::nsCSSValueList>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValueList,
                          root::mozilla::DefaultDelete<root::nsCSSValueList>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_80() {
+    fn __bindgen_test_layout_template_78() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValuePairList> )
                    ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValuePairList> )
                    ));
     }
     #[test]
-    fn __bindgen_test_layout_template_81() {
+    fn __bindgen_test_layout_template_79() {
         assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList,
                                                root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValuePairList,
                          root::mozilla::DefaultDelete<root::nsCSSValuePairList>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList,
                                                 root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValuePairList,
                          root::mozilla::DefaultDelete<root::nsCSSValuePairList>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_82() {
+    fn __bindgen_test_layout_template_80() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_83() {
+    fn __bindgen_test_layout_template_81() {
         assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIFrame>>()
                    , 16usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsPtrHashKey<root::nsIFrame> ) ));
         assert_eq!(::std::mem::align_of::<root::nsPtrHashKey<root::nsIFrame>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsPtrHashKey<root::nsIFrame> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_84() {
+    fn __bindgen_test_layout_template_82() {
         assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat !
                    (
                    "Size of template specialization: " , stringify ! (
                    [u64; 6usize] ) ));
         assert_eq!(::std::mem::align_of::<[u64; 6usize]>() , 8usize , concat !
                    (
                    "Alignment of template specialization: " , stringify ! (
                    [u64; 6usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_85() {
+    fn __bindgen_test_layout_template_83() {
         assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>()
                    , 16usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_86() {
+    fn __bindgen_test_layout_template_84() {
         assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat !
                    (
                    "Size of template specialization: " , stringify ! (
                    [u64; 2usize] ) ));
         assert_eq!(::std::mem::align_of::<[u64; 2usize]>() , 8usize , concat !
                    (
                    "Alignment of template specialization: " , stringify ! (
                    [u64; 2usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_87() {
+    fn __bindgen_test_layout_template_85() {
         assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! ( u64 )
                    ));
         assert_eq!(::std::mem::align_of::<u64>() , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    u64 ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_88() {
+    fn __bindgen_test_layout_template_86() {
         assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat !
                    (
                    "Size of template specialization: " , stringify ! (
                    [u32; 3usize] ) ));
         assert_eq!(::std::mem::align_of::<[u32; 3usize]>() , 4usize , concat !
                    (
                    "Alignment of template specialization: " , stringify ! (
                    [u32; 3usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_89() {
+    fn __bindgen_test_layout_template_87() {
         assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::already_AddRefed<root::nsStyleImageRequest> ) ));
         assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleImageRequest>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::already_AddRefed<root::nsStyleImageRequest> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_90() {
+    fn __bindgen_test_layout_template_88() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsStyleSides> ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsStyleSides> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_91() {
+    fn __bindgen_test_layout_template_89() {
         assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides,
                                                root::mozilla::DefaultDelete<root::nsStyleSides>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsStyleSides,
                          root::mozilla::DefaultDelete<root::nsStyleSides>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleSides,
                                                 root::mozilla::DefaultDelete<root::nsStyleSides>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsStyleSides,
                          root::mozilla::DefaultDelete<root::nsStyleSides>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_92() {
+    fn __bindgen_test_layout_template_90() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::CachedBorderImageData> )
                    ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::CachedBorderImageData> )
                    ));
     }
     #[test]
-    fn __bindgen_test_layout_template_93() {
+    fn __bindgen_test_layout_template_91() {
         assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>()
                    , 32usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) ));
         assert_eq!(::std::mem::align_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_94() {
+    fn __bindgen_test_layout_template_92() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
                                                      ::nsstring::nsStringRepr>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
                                                       ::nsstring::nsStringRepr>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_95() {
+    fn __bindgen_test_layout_template_93() {
         assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat
                    ! (
                    "Size of template specialization: " , stringify ! (
                    [u64; 18usize] ) ));
         assert_eq!(::std::mem::align_of::<[u64; 18usize]>() , 8usize , concat
                    ! (
                    "Alignment of template specialization: " , stringify ! (
                    [u64; 18usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_96() {
+    fn __bindgen_test_layout_template_94() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_97() {
+    fn __bindgen_test_layout_template_95() {
         assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::RefPtr<root::mozilla::dom::DOMRect> ) ));
         assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::dom::DOMRect>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::RefPtr<root::mozilla::dom::DOMRect> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_98() {
+    fn __bindgen_test_layout_template_96() {
         assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! ( u64 )
                    ));
         assert_eq!(::std::mem::align_of::<u64>() , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    u64 ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_99() {
+    fn __bindgen_test_layout_template_97() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<*mut root::mozilla::css::DocumentRule> ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<*mut root::mozilla::css::DocumentRule> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_100() {
+    fn __bindgen_test_layout_template_98() {
         assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsAutoPtr<root::nsMediaQuery> ) ));
         assert_eq!(::std::mem::align_of::<root::nsAutoPtr<root::nsMediaQuery>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsAutoPtr<root::nsMediaQuery> ) ));
--- a/servo/components/style/gecko_bindings/structs_release.rs
+++ b/servo/components/style/gecko_bindings/structs_release.rs
@@ -4892,36 +4892,77 @@ pub mod root {
             pub struct Rule([u8; 0]);
             #[repr(C)]
             #[derive(Debug, Copy, Clone)]
             pub struct Loader([u8; 0]);
             #[repr(C)]
             #[derive(Debug, Copy, Clone)]
             pub struct ImageLoader([u8; 0]);
             #[repr(C)]
+            #[derive(Debug)]
+            pub struct URLExtraData {
+                pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
+                pub mBaseURI: root::RefPtr<root::nsIURI>,
+                pub mReferrer: root::RefPtr<root::nsIURI>,
+                pub mPrincipal: root::RefPtr<root::nsIPrincipal>,
+            }
+            pub type URLExtraData_HasThreadSafeRefCnt =
+                root::mozilla::TrueType;
+            #[test]
+            fn bindgen_test_layout_URLExtraData() {
+                assert_eq!(::std::mem::size_of::<URLExtraData>() , 32usize ,
+                           concat ! (
+                           "Size of: " , stringify ! ( URLExtraData ) ));
+                assert_eq! (::std::mem::align_of::<URLExtraData>() , 8usize ,
+                            concat ! (
+                            "Alignment of " , stringify ! ( URLExtraData ) ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mRefCnt as
+                            * const _ as usize } , 0usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mRefCnt )
+                            ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mBaseURI
+                            as * const _ as usize } , 8usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mBaseURI )
+                            ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mReferrer
+                            as * const _ as usize } , 16usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mReferrer )
+                            ));
+                assert_eq! (unsafe {
+                            & ( * ( 0 as * const URLExtraData ) ) . mPrincipal
+                            as * const _ as usize } , 24usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLExtraData ) , "::" , stringify ! ( mPrincipal )
+                            ));
+            }
+            #[repr(C)]
             pub struct URLValueData__bindgen_vtable {
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct URLValueData {
                 pub vtable_: *const URLValueData__bindgen_vtable,
                 pub mRefCnt: root::mozilla::ThreadSafeAutoRefCnt,
                 pub mURI: root::nsMainThreadPtrHandle<root::nsIURI>,
-                pub mBaseURI: root::nsMainThreadPtrHandle<root::nsIURI>,
                 pub mString: root::RefPtr<root::nsStringBuffer>,
-                pub mReferrer: root::nsMainThreadPtrHandle<root::nsIURI>,
-                pub mOriginPrincipal: root::nsMainThreadPtrHandle<root::nsIPrincipal>,
+                pub mExtraData: root::RefPtr<root::mozilla::css::URLExtraData>,
                 pub mURIResolved: bool,
                 pub mIsLocalRef: bool,
             }
             pub type URLValueData_HasThreadSafeRefCnt =
                 root::mozilla::TrueType;
             #[test]
             fn bindgen_test_layout_URLValueData() {
-                assert_eq!(::std::mem::size_of::<URLValueData>() , 64usize ,
+                assert_eq!(::std::mem::size_of::<URLValueData>() , 48usize ,
                            concat ! (
                            "Size of: " , stringify ! ( URLValueData ) ));
                 assert_eq! (::std::mem::align_of::<URLValueData>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( URLValueData ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) . mRefCnt as
                             * const _ as usize } , 8usize , concat ! (
@@ -4929,86 +4970,73 @@ pub mod root {
                             URLValueData ) , "::" , stringify ! ( mRefCnt )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) . mURI as *
                             const _ as usize } , 16usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mURI ) ));
                 assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mBaseURI
-                            as * const _ as usize } , 24usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mBaseURI )
-                            ));
-                assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) . mString as
-                            * const _ as usize } , 32usize , concat ! (
+                            * const _ as usize } , 24usize , concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mString )
                             ));
                 assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) . mReferrer
-                            as * const _ as usize } , 40usize , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! ( mReferrer )
+                            & ( * ( 0 as * const URLValueData ) ) . mExtraData
+                            as * const _ as usize } , 32usize , concat ! (
+                            "Alignment of field: " , stringify ! (
+                            URLValueData ) , "::" , stringify ! ( mExtraData )
                             ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) .
-                            mOriginPrincipal as * const _ as usize } , 48usize
-                            , concat ! (
-                            "Alignment of field: " , stringify ! (
-                            URLValueData ) , "::" , stringify ! (
-                            mOriginPrincipal ) ));
-                assert_eq! (unsafe {
-                            & ( * ( 0 as * const URLValueData ) ) .
-                            mURIResolved as * const _ as usize } , 56usize ,
+                            mURIResolved as * const _ as usize } , 40usize ,
                             concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mURIResolved
                             ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const URLValueData ) ) .
-                            mIsLocalRef as * const _ as usize } , 57usize ,
+                            mIsLocalRef as * const _ as usize } , 41usize ,
                             concat ! (
                             "Alignment of field: " , stringify ! (
                             URLValueData ) , "::" , stringify ! ( mIsLocalRef
                             ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct URLValue {
                 pub _base: root::mozilla::css::URLValueData,
             }
             #[test]
             fn bindgen_test_layout_URLValue() {
-                assert_eq!(::std::mem::size_of::<URLValue>() , 64usize ,
+                assert_eq!(::std::mem::size_of::<URLValue>() , 48usize ,
                            concat ! ( "Size of: " , stringify ! ( URLValue )
                            ));
                 assert_eq! (::std::mem::align_of::<URLValue>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( URLValue ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct ImageValue {
                 pub _base: root::mozilla::css::URLValueData,
                 pub mRequests: [u64; 5usize],
             }
             #[test]
             fn bindgen_test_layout_ImageValue() {
-                assert_eq!(::std::mem::size_of::<ImageValue>() , 104usize ,
+                assert_eq!(::std::mem::size_of::<ImageValue>() , 88usize ,
                            concat ! ( "Size of: " , stringify ! ( ImageValue )
                            ));
                 assert_eq! (::std::mem::align_of::<ImageValue>() , 8usize ,
                             concat ! (
                             "Alignment of " , stringify ! ( ImageValue ) ));
                 assert_eq! (unsafe {
                             & ( * ( 0 as * const ImageValue ) ) . mRequests as
-                            * const _ as usize } , 64usize , concat ! (
+                            * const _ as usize } , 48usize , concat ! (
                             "Alignment of field: " , stringify ! ( ImageValue
                             ) , "::" , stringify ! ( mRequests ) ));
             }
             #[repr(C)]
             #[derive(Debug)]
             pub struct GridNamedArea {
                 pub mName: ::nsstring::nsStringRepr,
                 pub mColumnStart: u32,
@@ -25464,16 +25492,17 @@ pub mod root {
     pub struct RawServoAnimationValue([u8; 0]);
     #[repr(C)]
     #[derive(Debug, Copy, Clone)]
     pub struct RawServoAnimationValueMap([u8; 0]);
     pub type RawGeckoNode = root::nsINode;
     pub type RawGeckoElement = root::mozilla::dom::Element;
     pub type RawGeckoDocument = root::nsIDocument;
     pub type RawGeckoPresContext = root::nsPresContext;
+    pub type RawGeckoURLExtraData = root::mozilla::css::URLExtraData;
     pub type RawGeckoKeyframeList = root::nsTArray<root::mozilla::Keyframe>;
     pub type RawGeckoComputedKeyframeValuesList =
         root::nsTArray<root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>>;
     pub type RawGeckoAnimationValueList =
         root::nsTArray<root::mozilla::PropertyStyleAnimationValuePair>;
     pub type RawGeckoStyleAnimationList =
         root::nsStyleAutoArray<root::mozilla::StyleAnimation>;
     pub type RawServoAnimationValueMapBorrowed =
@@ -25663,99 +25692,50 @@ pub mod root {
                     & ( * ( 0 as * const nsMediaFeature ) ) . mGetter as *
                     const _ as usize } , 32usize , concat ! (
                     "Alignment of field: " , stringify ! ( nsMediaFeature ) ,
                     "::" , stringify ! ( mGetter ) ));
     }
     impl Clone for nsMediaFeature {
         fn clone(&self) -> Self { *self }
     }
-    pub type ThreadSafePrincipalHolder =
-        root::nsMainThreadPtrHolder<root::nsIPrincipal>;
-    pub type ThreadSafeURIHolder = root::nsMainThreadPtrHolder<root::nsIURI>;
     #[repr(C)]
     #[derive(Debug, Copy)]
     pub struct ServoBundledURI {
         pub mURLString: *const u8,
         pub mURLStringLength: u32,
-        pub mBaseURI: *mut root::ThreadSafeURIHolder,
-        pub mReferrer: *mut root::ThreadSafeURIHolder,
-        pub mPrincipal: *mut root::ThreadSafePrincipalHolder,
+        pub mExtraData: *mut root::mozilla::css::URLExtraData,
     }
     #[test]
     fn bindgen_test_layout_ServoBundledURI() {
-        assert_eq!(::std::mem::size_of::<ServoBundledURI>() , 40usize , concat
+        assert_eq!(::std::mem::size_of::<ServoBundledURI>() , 24usize , concat
                    ! ( "Size of: " , stringify ! ( ServoBundledURI ) ));
         assert_eq! (::std::mem::align_of::<ServoBundledURI>() , 8usize ,
                     concat ! (
                     "Alignment of " , stringify ! ( ServoBundledURI ) ));
         assert_eq! (unsafe {
                     & ( * ( 0 as * const ServoBundledURI ) ) . mURLString as *
                     const _ as usize } , 0usize , concat ! (
                     "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
                     "::" , stringify ! ( mURLString ) ));
         assert_eq! (unsafe {
                     & ( * ( 0 as * const ServoBundledURI ) ) .
                     mURLStringLength as * const _ as usize } , 8usize , concat
                     ! (
                     "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
                     "::" , stringify ! ( mURLStringLength ) ));
         assert_eq! (unsafe {
-                    & ( * ( 0 as * const ServoBundledURI ) ) . mBaseURI as *
+                    & ( * ( 0 as * const ServoBundledURI ) ) . mExtraData as *
                     const _ as usize } , 16usize , concat ! (
                     "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
-                    "::" , stringify ! ( mBaseURI ) ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const ServoBundledURI ) ) . mReferrer as *
-                    const _ as usize } , 24usize , concat ! (
-                    "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
-                    "::" , stringify ! ( mReferrer ) ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const ServoBundledURI ) ) . mPrincipal as *
-                    const _ as usize } , 32usize , concat ! (
-                    "Alignment of field: " , stringify ! ( ServoBundledURI ) ,
-                    "::" , stringify ! ( mPrincipal ) ));
+                    "::" , stringify ! ( mExtraData ) ));
     }
     impl Clone for ServoBundledURI {
         fn clone(&self) -> Self { *self }
     }
-    #[repr(C)]
-    #[derive(Debug)]
-    pub struct GeckoParserExtraData {
-        pub mBaseURI: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
-        pub mReferrer: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIURI>>,
-        pub mPrincipal: root::RefPtr<root::nsMainThreadPtrHolder<root::nsIPrincipal>>,
-    }
-    #[test]
-    fn bindgen_test_layout_GeckoParserExtraData() {
-        assert_eq!(::std::mem::size_of::<GeckoParserExtraData>() , 24usize ,
-                   concat ! (
-                   "Size of: " , stringify ! ( GeckoParserExtraData ) ));
-        assert_eq! (::std::mem::align_of::<GeckoParserExtraData>() , 8usize ,
-                    concat ! (
-                    "Alignment of " , stringify ! ( GeckoParserExtraData ) ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const GeckoParserExtraData ) ) . mBaseURI
-                    as * const _ as usize } , 0usize , concat ! (
-                    "Alignment of field: " , stringify ! (
-                    GeckoParserExtraData ) , "::" , stringify ! ( mBaseURI )
-                    ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const GeckoParserExtraData ) ) . mReferrer
-                    as * const _ as usize } , 8usize , concat ! (
-                    "Alignment of field: " , stringify ! (
-                    GeckoParserExtraData ) , "::" , stringify ! ( mReferrer )
-                    ));
-        assert_eq! (unsafe {
-                    & ( * ( 0 as * const GeckoParserExtraData ) ) . mPrincipal
-                    as * const _ as usize } , 16usize , concat ! (
-                    "Alignment of field: " , stringify ! (
-                    GeckoParserExtraData ) , "::" , stringify ! ( mPrincipal )
-                    ));
-    }
     pub type nsMediaFeatureValueGetter =
         ::std::option::Option<unsafe extern "C" fn(aPresContext:
                                                        *mut root::nsPresContext,
                                                    aFeature:
                                                        *const root::nsMediaFeature,
                                                    aResult:
                                                        *mut root::nsCSSValue)>;
     #[repr(C)]
@@ -26861,334 +26841,310 @@ pub mod root {
                    root::mozilla::DefaultDelete<root::ProxyBehaviour> ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::ProxyBehaviour>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::ProxyBehaviour> ) ));
     }
     #[test]
     fn __bindgen_test_layout_template_74() {
+        assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::css::URLExtraData>>()
+                   , 8usize , concat ! (
+                   "Size of template specialization: " , stringify ! (
+                   root::already_AddRefed<root::mozilla::css::URLExtraData> )
+                   ));
+        assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::mozilla::css::URLExtraData>>()
+                   , 8usize , concat ! (
+                   "Alignment of template specialization: " , stringify ! (
+                   root::already_AddRefed<root::mozilla::css::URLExtraData> )
+                   ));
+    }
+    #[test]
+    fn __bindgen_test_layout_template_75() {
         assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>()
                    , 24usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsMainThreadPtrHolder<root::nsIURI> ) ));
         assert_eq!(::std::mem::align_of::<root::nsMainThreadPtrHolder<root::nsIURI>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsMainThreadPtrHolder<root::nsIURI> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_75() {
-        assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>>()
-                   , 8usize , concat ! (
-                   "Size of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>
-                   ) ));
-        assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>>()
-                   , 8usize , concat ! (
-                   "Alignment of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>
-                   ) ));
-    }
-    #[test]
     fn __bindgen_test_layout_template_76() {
-        assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIPrincipal>>()
-                   , 24usize , concat ! (
-                   "Size of template specialization: " , stringify ! (
-                   root::nsMainThreadPtrHolder<root::nsIPrincipal> ) ));
-        assert_eq!(::std::mem::align_of::<root::nsMainThreadPtrHolder<root::nsIPrincipal>>()
-                   , 8usize , concat ! (
-                   "Alignment of template specialization: " , stringify ! (
-                   root::nsMainThreadPtrHolder<root::nsIPrincipal> ) ));
-    }
-    #[test]
-    fn __bindgen_test_layout_template_77() {
-        assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>>()
-                   , 8usize , concat ! (
-                   "Size of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>
-                   ) ));
-        assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>>()
-                   , 8usize , concat ! (
-                   "Alignment of template specialization: " , stringify ! (
-                   root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>>
-                   ) ));
-    }
-    #[test]
-    fn __bindgen_test_layout_template_78() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValueList> ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValueList> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_79() {
+    fn __bindgen_test_layout_template_77() {
         assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValueList,
                                                root::mozilla::DefaultDelete<root::nsCSSValueList>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValueList,
                          root::mozilla::DefaultDelete<root::nsCSSValueList>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValueList,
                                                 root::mozilla::DefaultDelete<root::nsCSSValueList>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValueList,
                          root::mozilla::DefaultDelete<root::nsCSSValueList>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_80() {
+    fn __bindgen_test_layout_template_78() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValuePairList> )
                    ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsCSSValuePairList> )
                    ));
     }
     #[test]
-    fn __bindgen_test_layout_template_81() {
+    fn __bindgen_test_layout_template_79() {
         assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList,
                                                root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValuePairList,
                          root::mozilla::DefaultDelete<root::nsCSSValuePairList>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList,
                                                 root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsCSSValuePairList,
                          root::mozilla::DefaultDelete<root::nsCSSValuePairList>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_82() {
+    fn __bindgen_test_layout_template_80() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_83() {
+    fn __bindgen_test_layout_template_81() {
         assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIFrame>>()
                    , 16usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsPtrHashKey<root::nsIFrame> ) ));
         assert_eq!(::std::mem::align_of::<root::nsPtrHashKey<root::nsIFrame>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsPtrHashKey<root::nsIFrame> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_84() {
+    fn __bindgen_test_layout_template_82() {
         assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat !
                    (
                    "Size of template specialization: " , stringify ! (
                    [u64; 5usize] ) ));
         assert_eq!(::std::mem::align_of::<[u64; 5usize]>() , 8usize , concat !
                    (
                    "Alignment of template specialization: " , stringify ! (
                    [u64; 5usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_85() {
+    fn __bindgen_test_layout_template_83() {
         assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_86() {
+    fn __bindgen_test_layout_template_84() {
         assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat !
                    (
                    "Size of template specialization: " , stringify ! (
                    [u64; 2usize] ) ));
         assert_eq!(::std::mem::align_of::<[u64; 2usize]>() , 8usize , concat !
                    (
                    "Alignment of template specialization: " , stringify ! (
                    [u64; 2usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_87() {
+    fn __bindgen_test_layout_template_85() {
         assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! ( u64 )
                    ));
         assert_eq!(::std::mem::align_of::<u64>() , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    u64 ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_88() {
+    fn __bindgen_test_layout_template_86() {
         assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat !
                    (
                    "Size of template specialization: " , stringify ! (
                    [u32; 3usize] ) ));
         assert_eq!(::std::mem::align_of::<[u32; 3usize]>() , 4usize , concat !
                    (
                    "Alignment of template specialization: " , stringify ! (
                    [u32; 3usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_89() {
+    fn __bindgen_test_layout_template_87() {
         assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::already_AddRefed<root::nsStyleImageRequest> ) ));
         assert_eq!(::std::mem::align_of::<root::already_AddRefed<root::nsStyleImageRequest>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::already_AddRefed<root::nsStyleImageRequest> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_90() {
+    fn __bindgen_test_layout_template_88() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsStyleSides> ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::nsStyleSides> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_91() {
+    fn __bindgen_test_layout_template_89() {
         assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsStyleSides,
                                                root::mozilla::DefaultDelete<root::nsStyleSides>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsStyleSides,
                          root::mozilla::DefaultDelete<root::nsStyleSides>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::mozilla::UniquePtr<root::nsStyleSides,
                                                 root::mozilla::DefaultDelete<root::nsStyleSides>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::UniquePtr<root::nsStyleSides,
                          root::mozilla::DefaultDelete<root::nsStyleSides>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_92() {
+    fn __bindgen_test_layout_template_90() {
         assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>()
                    , 1usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::CachedBorderImageData> )
                    ));
         assert_eq!(::std::mem::align_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>()
                    , 1usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::mozilla::DefaultDelete<root::CachedBorderImageData> )
                    ));
     }
     #[test]
-    fn __bindgen_test_layout_template_93() {
+    fn __bindgen_test_layout_template_91() {
         assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>()
                    , 32usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) ));
         assert_eq!(::std::mem::align_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_94() {
+    fn __bindgen_test_layout_template_92() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
                                                      ::nsstring::nsStringRepr>>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr,
                                                       ::nsstring::nsStringRepr>>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_95() {
+    fn __bindgen_test_layout_template_93() {
         assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat
                    ! (
                    "Size of template specialization: " , stringify ! (
                    [u64; 18usize] ) ));
         assert_eq!(::std::mem::align_of::<[u64; 18usize]>() , 8usize , concat
                    ! (
                    "Alignment of template specialization: " , stringify ! (
                    [u64; 18usize] ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_96() {
+    fn __bindgen_test_layout_template_94() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>
                    ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>
                    ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_97() {
+    fn __bindgen_test_layout_template_95() {
         assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::RefPtr<root::mozilla::dom::DOMRect> ) ));
         assert_eq!(::std::mem::align_of::<root::RefPtr<root::mozilla::dom::DOMRect>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::RefPtr<root::mozilla::dom::DOMRect> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_98() {
+    fn __bindgen_test_layout_template_96() {
         assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! ( u64 )
                    ));
         assert_eq!(::std::mem::align_of::<u64>() , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    u64 ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_99() {
+    fn __bindgen_test_layout_template_97() {
         assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsTArray<*mut root::mozilla::css::DocumentRule> ) ));
         assert_eq!(::std::mem::align_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsTArray<*mut root::mozilla::css::DocumentRule> ) ));
     }
     #[test]
-    fn __bindgen_test_layout_template_100() {
+    fn __bindgen_test_layout_template_98() {
         assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>()
                    , 8usize , concat ! (
                    "Size of template specialization: " , stringify ! (
                    root::nsAutoPtr<root::nsMediaQuery> ) ));
         assert_eq!(::std::mem::align_of::<root::nsAutoPtr<root::nsMediaQuery>>()
                    , 8usize , concat ! (
                    "Alignment of template specialization: " , stringify ! (
                    root::nsAutoPtr<root::nsMediaQuery> ) ));