diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-04-02 23:30:56 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-02 23:30:56 -0500 |
commit | 5b037a0aa080799faae93efe59e56938a1eba913 (patch) | |
tree | ce3dcc30c7a84cc56be47ae98541f19286e5d261 | |
parent | a31271b07ff1372e48d8b363a1f4a16b8ff6f98d (diff) | |
parent | e1fa699d6e56374987d1a98f33c49ce0dfca18e5 (diff) | |
download | servo-5b037a0aa080799faae93efe59e56938a1eba913.tar.gz servo-5b037a0aa080799faae93efe59e56938a1eba913.zip |
Auto merge of #16235 - upsuper:bug1351957, r=heycam
Create URLExtraData for holding base uri, referrer, and principal
This is the Servo side change of [bug 1351957](https://bugzilla.mozilla.org/show_bug.cgi?id=1351957) which has been reviewed on Bugzilla.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16235)
<!-- Reviewable:end -->
-rw-r--r-- | components/style/build_gecko.rs | 6 | ||||
-rw-r--r-- | components/style/gecko/url.rs | 22 | ||||
-rw-r--r-- | components/style/gecko_bindings/bindings.rs | 56 | ||||
-rw-r--r-- | components/style/gecko_bindings/structs_debug.rs | 232 | ||||
-rw-r--r-- | components/style/gecko_bindings/structs_release.rs | 230 | ||||
-rw-r--r-- | components/style/gecko_bindings/sugar/refptr.rs | 16 | ||||
-rw-r--r-- | components/style/parser.rs | 27 | ||||
-rw-r--r-- | components/style/properties/longhand/box.mako.rs | 3 | ||||
-rw-r--r-- | components/style/properties/longhand/inherited_svg.mako.rs | 3 | ||||
-rw-r--r-- | components/style/properties/longhand/list.mako.rs | 1 | ||||
-rw-r--r-- | ports/geckolib/glue.rs | 35 | ||||
-rw-r--r-- | ports/geckolib/stylesheet_loader.rs | 4 |
12 files changed, 243 insertions, 392 deletions
diff --git a/components/style/build_gecko.rs b/components/style/build_gecko.rs index 287698adc52..fa7142b69a2 100644 --- a/components/style/build_gecko.rs +++ b/components/style/build_gecko.rs @@ -367,7 +367,6 @@ mod bindings { "nsCursorImage", "nsFont", "nsIAtom", - "nsIURI", "nsMainThreadPtrHandle", "nsMainThreadPtrHolder", "nsMargin", @@ -604,10 +603,8 @@ mod bindings { "RawGeckoPresContext", "RawGeckoPresContextOwned", "RawGeckoStyleAnimationList", - "GeckoParserExtraData", + "RawGeckoURLExtraData", "RefPtr", - "ThreadSafeURIHolder", - "ThreadSafePrincipalHolder", "CSSPseudoClassType", "TraversalRootBehavior", "FontFamilyList", @@ -630,7 +627,6 @@ mod bindings { "nsCursorImage", "nsFont", "nsIAtom", - "nsIURI", "nsMediaFeature", "nsRestyleHint", "nsStyleBackground", diff --git a/components/style/gecko/url.rs b/components/style/gecko/url.rs index b1550486cdf..f6d1e0ce244 100644 --- a/components/style/gecko/url.rs +++ b/components/style/gecko/url.rs @@ -5,8 +5,8 @@ //! Common handling for the specified value CSS url() values. use cssparser::CssStringWriter; -use gecko_bindings::structs::ServoBundledURI; -use gecko_bindings::sugar::refptr::{GeckoArcPrincipal, GeckoArcURI}; +use gecko_bindings::structs::{ServoBundledURI, URLExtraData}; +use gecko_bindings::sugar::refptr::RefPtr; use parser::ParserContext; use std::borrow::Cow; use std::fmt::{self, Write}; @@ -22,12 +22,8 @@ pub struct SpecifiedUrl { /// really large. serialization: Arc<String>, - /// The base URI. - pub base: GeckoArcURI, - /// The referrer. - pub referrer: GeckoArcURI, - /// The principal that originated this URI. - pub principal: GeckoArcPrincipal, + /// The URL extra data. + pub extra_data: RefPtr<URLExtraData>, } impl SpecifiedUrl { @@ -39,7 +35,7 @@ impl SpecifiedUrl { context: &ParserContext) -> Result<Self, ()> { let extra = &context.extra_data; - if extra.base.is_none() || extra.referrer.is_none() || extra.principal.is_none() { + if extra.data.is_none() { // FIXME(heycam) should ensure we always have a principal, etc., // when parsing style attributes and re-parsing due to CSS // Variables. @@ -49,9 +45,7 @@ impl SpecifiedUrl { Ok(SpecifiedUrl { serialization: Arc::new(url.into_owned()), - base: extra.base.as_ref().unwrap().clone(), - referrer: extra.referrer.as_ref().unwrap().clone(), - principal: extra.principal.as_ref().unwrap().clone(), + extra_data: extra.data.as_ref().unwrap().clone(), }) } @@ -88,9 +82,7 @@ impl SpecifiedUrl { ServoBundledURI { mURLString: ptr, mURLStringLength: len as u32, - mBaseURI: self.base.get(), - mReferrer: self.referrer.get(), - mPrincipal: self.principal.get(), + mExtraData: self.extra_data.get(), } } } diff --git a/components/style/gecko_bindings/bindings.rs b/components/style/gecko_bindings/bindings.rs index c5896b01127..89010477bee 100644 --- a/components/style/gecko_bindings/bindings.rs +++ b/components/style/gecko_bindings/bindings.rs @@ -17,10 +17,8 @@ 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; @@ -43,7 +41,6 @@ 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; @@ -371,20 +368,6 @@ 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" { @@ -446,9 +429,9 @@ 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) @@ -892,6 +875,14 @@ 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); } @@ -1387,10 +1378,8 @@ extern "C" { 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" { @@ -1404,10 +1393,8 @@ extern "C" { 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) @@ -1563,13 +1550,13 @@ 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" { @@ -1624,7 +1611,7 @@ extern "C" { extern "C" { pub fn Servo_ParseStyleAttribute(data: *const nsACString, base: *const nsACString, - extraData: *const GeckoParserExtraData) + extra_data: *mut RawGeckoURLExtraData) -> RawServoDeclarationBlockStrong; } extern "C" { @@ -1692,8 +1679,7 @@ extern "C" { value: *const nsACString, is_important: bool, base: *const nsACString, - data: - *const GeckoParserExtraData) + data: *mut RawGeckoURLExtraData) -> bool; } extern "C" { @@ -1704,7 +1690,7 @@ extern "C" { is_important: bool, base: *const nsACString, data: - *const GeckoParserExtraData) + *mut RawGeckoURLExtraData) -> bool; } extern "C" { diff --git a/components/style/gecko_bindings/structs_debug.rs b/components/style/gecko_bindings/structs_debug.rs index 2451724ac57..3cb0c48012b 100644 --- a/components/style/gecko_bindings/structs_debug.rs +++ b/components/style/gecko_bindings/structs_debug.rs @@ -5224,6 +5224,49 @@ pub mod root { #[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)] @@ -5232,10 +5275,8 @@ pub mod root { 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, } @@ -5243,7 +5284,7 @@ pub mod root { 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 , @@ -5261,40 +5302,27 @@ pub mod root { "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 ! ( + & ( * ( 0 as * const URLValueData ) ) . mExtraData + as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( - URLValueData ) , "::" , stringify ! ( mReferrer ) + 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 @@ -5307,7 +5335,7 @@ pub mod root { } #[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 , @@ -5323,7 +5351,7 @@ pub mod root { } #[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 , @@ -5331,12 +5359,12 @@ pub mod root { "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 ) )); } @@ -26466,6 +26494,7 @@ pub mod root { 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>>; @@ -26709,21 +26738,16 @@ pub mod root { 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 ! ( @@ -26740,59 +26764,15 @@ pub mod root { "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 ) - )); - } - #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nsROCSSPrimitiveValue([u8; 0]); #[repr(C)] @@ -27969,54 +27949,30 @@ pub mod root { } #[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_76() { - assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>>() + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::css::URLExtraData>>() , 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>>>() + 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::nsMainThreadPtrHolder<root::nsIURI>> - ) )); + root::already_AddRefed<root::mozilla::css::URLExtraData> ) + )); } #[test] - fn __bindgen_test_layout_template_77() { - assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIPrincipal>>() + fn __bindgen_test_layout_template_76() { + assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 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_78() { - 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>>>() + root::nsMainThreadPtrHolder<root::nsIURI> ) )); + assert_eq!(::std::mem::align_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>> - ) )); + root::nsMainThreadPtrHolder<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_template_79() { + fn __bindgen_test_layout_template_77() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28027,7 +27983,7 @@ pub mod root { 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::UniquePtr<root::nsCSSValueList, root::mozilla::DefaultDelete<root::nsCSSValueList>>>() , 8usize , concat ! ( @@ -28044,7 +28000,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_81() { + fn __bindgen_test_layout_template_79() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28057,7 +28013,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_template_82() { + fn __bindgen_test_layout_template_80() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList, root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>() , 8usize , concat ! ( @@ -28074,7 +28030,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_83() { + fn __bindgen_test_layout_template_81() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28087,7 +28043,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_84() { + fn __bindgen_test_layout_template_82() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIFrame>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28098,7 +28054,7 @@ pub mod root { root::nsPtrHashKey<root::nsIFrame> ) )); } #[test] - fn __bindgen_test_layout_template_85() { + fn __bindgen_test_layout_template_83() { assert_eq!(::std::mem::size_of::<[u64; 6usize]>() , 48usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28109,7 +28065,7 @@ pub mod root { [u64; 6usize] ) )); } #[test] - fn __bindgen_test_layout_template_86() { + fn __bindgen_test_layout_template_84() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28122,7 +28078,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_87() { + fn __bindgen_test_layout_template_85() { assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28133,7 +28089,7 @@ pub mod root { [u64; 2usize] ) )); } #[test] - fn __bindgen_test_layout_template_88() { + fn __bindgen_test_layout_template_86() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -28142,7 +28098,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_template_89() { + fn __bindgen_test_layout_template_87() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28153,7 +28109,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_template_90() { + fn __bindgen_test_layout_template_88() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28164,7 +28120,7 @@ pub mod root { root::already_AddRefed<root::nsStyleImageRequest> ) )); } #[test] - fn __bindgen_test_layout_template_91() { + fn __bindgen_test_layout_template_89() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28175,7 +28131,7 @@ pub mod root { 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::UniquePtr<root::nsStyleSides, root::mozilla::DefaultDelete<root::nsStyleSides>>>() , 8usize , concat ! ( @@ -28192,7 +28148,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_93() { + fn __bindgen_test_layout_template_91() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28205,7 +28161,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_template_94() { + fn __bindgen_test_layout_template_92() { assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28216,7 +28172,7 @@ pub mod root { 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::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>>() , 8usize , concat ! ( @@ -28231,7 +28187,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_96() { + fn __bindgen_test_layout_template_94() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28242,7 +28198,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_template_97() { + fn __bindgen_test_layout_template_95() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28255,7 +28211,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_98() { + fn __bindgen_test_layout_template_96() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28266,7 +28222,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::DOMRect> ) )); } #[test] - fn __bindgen_test_layout_template_99() { + fn __bindgen_test_layout_template_97() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -28275,7 +28231,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_template_100() { + fn __bindgen_test_layout_template_98() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -28286,7 +28242,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_template_101() { + fn __bindgen_test_layout_template_99() { assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko_bindings/structs_release.rs b/components/style/gecko_bindings/structs_release.rs index fa6cdd8a419..8442777cbcc 100644 --- a/components/style/gecko_bindings/structs_release.rs +++ b/components/style/gecko_bindings/structs_release.rs @@ -5163,6 +5163,49 @@ pub mod root { #[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)] @@ -5171,10 +5214,8 @@ pub mod root { 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, } @@ -5182,7 +5223,7 @@ pub mod root { 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 , @@ -5200,40 +5241,27 @@ pub mod root { "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 ! ( + & ( * ( 0 as * const URLValueData ) ) . mExtraData + as * const _ as usize } , 32usize , concat ! ( "Alignment of field: " , stringify ! ( - URLValueData ) , "::" , stringify ! ( mReferrer ) + 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 @@ -5246,7 +5274,7 @@ pub mod root { } #[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 , @@ -5261,7 +5289,7 @@ pub mod root { } #[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 , @@ -5269,7 +5297,7 @@ pub mod root { "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 ) )); } @@ -25827,6 +25855,7 @@ pub mod root { 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>>; @@ -26070,21 +26099,16 @@ pub mod root { 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 ! ( @@ -26101,59 +26125,15 @@ pub mod root { "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 ) - )); - } - #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nsROCSSPrimitiveValue([u8; 0]); #[repr(C)] @@ -27330,54 +27310,30 @@ pub mod root { } #[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_76() { - assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIURI>>>() + assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::mozilla::css::URLExtraData>>() , 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>>>() + 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::nsMainThreadPtrHolder<root::nsIURI>> - ) )); + root::already_AddRefed<root::mozilla::css::URLExtraData> ) + )); } #[test] - fn __bindgen_test_layout_template_77() { - assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIPrincipal>>() + fn __bindgen_test_layout_template_76() { + assert_eq!(::std::mem::size_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 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_78() { - 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>>>() + root::nsMainThreadPtrHolder<root::nsIURI> ) )); + assert_eq!(::std::mem::align_of::<root::nsMainThreadPtrHolder<root::nsIURI>>() , 8usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - root::already_AddRefed<root::nsMainThreadPtrHolder<root::nsIPrincipal>> - ) )); + root::nsMainThreadPtrHolder<root::nsIURI> ) )); } #[test] - fn __bindgen_test_layout_template_79() { + fn __bindgen_test_layout_template_77() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValueList>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27388,7 +27344,7 @@ pub mod root { 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::UniquePtr<root::nsCSSValueList, root::mozilla::DefaultDelete<root::nsCSSValueList>>>() , 8usize , concat ! ( @@ -27405,7 +27361,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_81() { + fn __bindgen_test_layout_template_79() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsCSSValuePairList>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27418,7 +27374,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_template_82() { + fn __bindgen_test_layout_template_80() { assert_eq!(::std::mem::size_of::<root::mozilla::UniquePtr<root::nsCSSValuePairList, root::mozilla::DefaultDelete<root::nsCSSValuePairList>>>() , 8usize , concat ! ( @@ -27435,7 +27391,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_83() { + fn __bindgen_test_layout_template_81() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::FramePropertyTable_PropertyValue>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27448,7 +27404,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_84() { + fn __bindgen_test_layout_template_82() { assert_eq!(::std::mem::size_of::<root::nsPtrHashKey<root::nsIFrame>>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27459,7 +27415,7 @@ pub mod root { root::nsPtrHashKey<root::nsIFrame> ) )); } #[test] - fn __bindgen_test_layout_template_85() { + fn __bindgen_test_layout_template_83() { assert_eq!(::std::mem::size_of::<[u64; 5usize]>() , 40usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27470,7 +27426,7 @@ pub mod root { [u64; 5usize] ) )); } #[test] - fn __bindgen_test_layout_template_86() { + fn __bindgen_test_layout_template_84() { assert_eq!(::std::mem::size_of::<root::mozilla::OwningNonNull<root::mozilla::EffectCompositor_AnimationStyleRuleProcessor>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27483,7 +27439,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_87() { + fn __bindgen_test_layout_template_85() { assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27494,7 +27450,7 @@ pub mod root { [u64; 2usize] ) )); } #[test] - fn __bindgen_test_layout_template_88() { + fn __bindgen_test_layout_template_86() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -27503,7 +27459,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_template_89() { + fn __bindgen_test_layout_template_87() { assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27514,7 +27470,7 @@ pub mod root { [u32; 3usize] ) )); } #[test] - fn __bindgen_test_layout_template_90() { + fn __bindgen_test_layout_template_88() { assert_eq!(::std::mem::size_of::<root::already_AddRefed<root::nsStyleImageRequest>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27525,7 +27481,7 @@ pub mod root { root::already_AddRefed<root::nsStyleImageRequest> ) )); } #[test] - fn __bindgen_test_layout_template_91() { + fn __bindgen_test_layout_template_89() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::nsStyleSides>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27536,7 +27492,7 @@ pub mod root { 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::UniquePtr<root::nsStyleSides, root::mozilla::DefaultDelete<root::nsStyleSides>>>() , 8usize , concat ! ( @@ -27553,7 +27509,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_93() { + fn __bindgen_test_layout_template_91() { assert_eq!(::std::mem::size_of::<root::mozilla::DefaultDelete<root::CachedBorderImageData>>() , 1usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27566,7 +27522,7 @@ pub mod root { )); } #[test] - fn __bindgen_test_layout_template_94() { + fn __bindgen_test_layout_template_92() { assert_eq!(::std::mem::size_of::<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>() , 32usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27577,7 +27533,7 @@ pub mod root { 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::<root::nsTArray<root::std::pair<::nsstring::nsStringRepr, ::nsstring::nsStringRepr>>>() , 8usize , concat ! ( @@ -27592,7 +27548,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_96() { + fn __bindgen_test_layout_template_94() { assert_eq!(::std::mem::size_of::<[u64; 18usize]>() , 144usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27603,7 +27559,7 @@ pub mod root { [u64; 18usize] ) )); } #[test] - fn __bindgen_test_layout_template_97() { + fn __bindgen_test_layout_template_95() { assert_eq!(::std::mem::size_of::<root::nsTArray<root::mozilla::DisplayItemClip_RoundedRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27616,7 +27572,7 @@ pub mod root { ) )); } #[test] - fn __bindgen_test_layout_template_98() { + fn __bindgen_test_layout_template_96() { assert_eq!(::std::mem::size_of::<root::RefPtr<root::mozilla::dom::DOMRect>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27627,7 +27583,7 @@ pub mod root { root::RefPtr<root::mozilla::dom::DOMRect> ) )); } #[test] - fn __bindgen_test_layout_template_99() { + fn __bindgen_test_layout_template_97() { assert_eq!(::std::mem::size_of::<u64>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( u64 ) )); @@ -27636,7 +27592,7 @@ pub mod root { u64 ) )); } #[test] - fn __bindgen_test_layout_template_100() { + fn __bindgen_test_layout_template_98() { assert_eq!(::std::mem::size_of::<root::nsTArray<*mut root::mozilla::css::DocumentRule>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( @@ -27647,7 +27603,7 @@ pub mod root { root::nsTArray<*mut root::mozilla::css::DocumentRule> ) )); } #[test] - fn __bindgen_test_layout_template_101() { + fn __bindgen_test_layout_template_99() { assert_eq!(::std::mem::size_of::<root::nsAutoPtr<root::nsMediaQuery>>() , 8usize , concat ! ( "Size of template specialization: " , stringify ! ( diff --git a/components/style/gecko_bindings/sugar/refptr.rs b/components/style/gecko_bindings/sugar/refptr.rs index 5953652f3a5..3713ea09266 100644 --- a/components/style/gecko_bindings/sugar/refptr.rs +++ b/components/style/gecko_bindings/sugar/refptr.rs @@ -261,12 +261,9 @@ macro_rules! impl_threadsafe_refcount { ); } -impl_threadsafe_refcount!(::gecko_bindings::structs::ThreadSafePrincipalHolder, - Gecko_AddRefPrincipalArbitraryThread, - Gecko_ReleasePrincipalArbitraryThread); -impl_threadsafe_refcount!(::gecko_bindings::structs::ThreadSafeURIHolder, - Gecko_AddRefURIArbitraryThread, - Gecko_ReleaseURIArbitraryThread); +impl_threadsafe_refcount!(::gecko_bindings::structs::RawGeckoURLExtraData, + Gecko_AddRefURLExtraDataArbitraryThread, + Gecko_ReleaseURLExtraDataArbitraryThread); impl_threadsafe_refcount!(::gecko_bindings::structs::nsStyleQuoteValues, Gecko_AddRefQuoteValuesArbitraryThread, Gecko_ReleaseQuoteValuesArbitraryThread); @@ -276,10 +273,3 @@ impl_threadsafe_refcount!(::gecko_bindings::structs::nsCSSValueSharedList, impl_threadsafe_refcount!(::gecko_bindings::structs::mozilla::css::URLValue, Gecko_AddRefCSSURLValueArbitraryThread, Gecko_ReleaseCSSURLValueArbitraryThread); -/// A Gecko `ThreadSafePrincipalHolder` wrapped in a safe refcounted pointer, to -/// use during stylesheet parsing and style computation. -pub type GeckoArcPrincipal = RefPtr<::gecko_bindings::structs::ThreadSafePrincipalHolder>; - -/// A Gecko `ThreadSafeURIHolder` wrapped in a safe refcounted pointer, to use -/// during stylesheet parsing and style computation. -pub type GeckoArcURI = RefPtr<::gecko_bindings::structs::ThreadSafeURIHolder>; diff --git a/components/style/parser.rs b/components/style/parser.rs index 8a8628d2d89..f4d52ffbfdd 100644 --- a/components/style/parser.rs +++ b/components/style/parser.rs @@ -9,7 +9,9 @@ use cssparser::{Parser, SourcePosition, UnicodeRange}; use error_reporting::ParseErrorReporter; #[cfg(feature = "gecko")] -use gecko_bindings::sugar::refptr::{GeckoArcPrincipal, GeckoArcURI}; +use gecko_bindings::structs::URLExtraData; +#[cfg(feature = "gecko")] +use gecko_bindings::sugar::refptr::RefPtr; use servo_url::ServoUrl; use style_traits::OneOrMoreCommaSeparated; use stylesheets::Origin; @@ -21,12 +23,8 @@ pub struct ParserContextExtraData; /// Extra data that the style backend may need to parse stylesheets. #[cfg(feature = "gecko")] pub struct ParserContextExtraData { - /// The base URI. - pub base: Option<GeckoArcURI>, - /// The referrer URI. - pub referrer: Option<GeckoArcURI>, - /// The principal that loaded this stylesheet. - pub principal: Option<GeckoArcPrincipal>, + /// The URL extra data. + pub data: Option<RefPtr<URLExtraData>>, } #[cfg(not(feature = "gecko"))] @@ -39,7 +37,7 @@ impl Default for ParserContextExtraData { #[cfg(feature = "gecko")] impl Default for ParserContextExtraData { fn default() -> Self { - ParserContextExtraData { base: None, referrer: None, principal: None } + ParserContextExtraData { data: None } } } @@ -48,15 +46,10 @@ impl ParserContextExtraData { /// Construct from a GeckoParserExtraData /// /// GeckoParserExtraData must live longer than this call - pub unsafe fn new(data: *const ::gecko_bindings::structs::GeckoParserExtraData) -> Self { - // the to_safe calls are safe since we trust that we have references to - // real Gecko refptrs. The dereferencing of data is safe because this function - // is expected to be called with a `data` living longer than this function. - unsafe { ParserContextExtraData { - base: Some((*data).mBaseURI.to_safe()), - referrer: Some((*data).mReferrer.to_safe()), - principal: Some((*data).mPrincipal.to_safe()), - }} + pub unsafe fn new(data: *mut URLExtraData) -> Self { + ParserContextExtraData { + data: Some(RefPtr::new(data)), + } } } /// The data that the parser needs from outside in order to parse a stylesheet. diff --git a/components/style/properties/longhand/box.mako.rs b/components/style/properties/longhand/box.mako.rs index d05a5ed4a1e..244a0e4a186 100644 --- a/components/style/properties/longhand/box.mako.rs +++ b/components/style/properties/longhand/box.mako.rs @@ -2158,8 +2158,7 @@ ${helpers.predefined_type("-moz-binding", "UrlOrNone", "Either::Second(None_)", animatable="False", gecko_ffi_name="mBinding", spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-binding)", - disable_when_testing="True", - boxed=True)} + disable_when_testing="True")} ${helpers.single_keyword("-moz-orient", "inline block horizontal vertical", diff --git a/components/style/properties/longhand/inherited_svg.mako.rs b/components/style/properties/longhand/inherited_svg.mako.rs index 31d393f13fc..241a08905b4 100644 --- a/components/style/properties/longhand/inherited_svg.mako.rs +++ b/components/style/properties/longhand/inherited_svg.mako.rs @@ -121,19 +121,16 @@ ${helpers.single_keyword("clip-rule", "nonzero evenodd", ${helpers.predefined_type("marker-start", "UrlOrNone", "Either::Second(None_)", products="gecko", - boxed = product == "gecko", animatable="False", spec="https://www.w3.org/TR/SVG2/painting.html#VertexMarkerProperties")} ${helpers.predefined_type("marker-mid", "UrlOrNone", "Either::Second(None_)", products="gecko", - boxed = product == "gecko", animatable="False", spec="https://www.w3.org/TR/SVG2/painting.html#VertexMarkerProperties")} ${helpers.predefined_type("marker-end", "UrlOrNone", "Either::Second(None_)", products="gecko", - boxed = product == "gecko", animatable="False", spec="https://www.w3.org/TR/SVG2/painting.html#VertexMarkerProperties")} diff --git a/components/style/properties/longhand/list.mako.rs b/components/style/properties/longhand/list.mako.rs index 8049c06d05c..81ce62a32e1 100644 --- a/components/style/properties/longhand/list.mako.rs +++ b/components/style/properties/longhand/list.mako.rs @@ -38,7 +38,6 @@ ${helpers.single_keyword("list-style-type", """ spec="https://drafts.csswg.org/css-lists/#propdef-list-style-type")} ${helpers.predefined_type("list-style-image", "UrlOrNone", "Either::Second(None_)", - boxed = product == "gecko", initial_specified_value="Either::Second(None_)", animatable=False, spec="https://drafts.csswg.org/css-lists/#propdef-list-style-image")} diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 455aaaf41d2..00580613e2d 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -54,16 +54,15 @@ use style::gecko_bindings::bindings::nsTimingFunctionBorrowed; use style::gecko_bindings::bindings::nsTimingFunctionBorrowedMut; use style::gecko_bindings::structs; use style::gecko_bindings::structs::{SheetParsingMode, nsIAtom, nsCSSPropertyID}; -use style::gecko_bindings::structs::{ThreadSafePrincipalHolder, ThreadSafeURIHolder}; use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint, nsCSSFontFaceRule}; use style::gecko_bindings::structs::Loader; use style::gecko_bindings::structs::RawGeckoPresContextOwned; use style::gecko_bindings::structs::ServoStyleSheet; +use style::gecko_bindings::structs::URLExtraData; use style::gecko_bindings::structs::nsCSSValueSharedList; use style::gecko_bindings::structs::nsresult; use style::gecko_bindings::sugar::ownership::{FFIArcHelpers, HasFFI, HasArcFFI, HasBoxFFI}; use style::gecko_bindings::sugar::ownership::{HasSimpleFFI, Strong}; -use style::gecko_bindings::sugar::refptr::{GeckoArcPrincipal, GeckoArcURI}; use style::gecko_properties::{self, style_structs}; use style::keyframes::KeyframesStepValue; use style::media_queries::{MediaList, parse_media_query_list}; @@ -331,9 +330,7 @@ pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes(loader: *mut Loader, data: *const nsACString, mode: SheetParsingMode, base_url: *const nsACString, - base: *mut ThreadSafeURIHolder, - referrer: *mut ThreadSafeURIHolder, - principal: *mut ThreadSafePrincipalHolder) + extra_data: *mut URLExtraData) -> RawServoStyleSheetStrong { let global_style_data = &*GLOBAL_STYLE_DATA; let input = unsafe { data.as_ref().unwrap().as_str_unchecked() }; @@ -346,11 +343,7 @@ pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes(loader: *mut Loader, let base_str = unsafe { base_url.as_ref().unwrap().as_str_unchecked() }; let url = ServoUrl::parse(base_str).unwrap(); - let extra_data = unsafe { ParserContextExtraData { - base: Some(GeckoArcURI::new(base)), - referrer: Some(GeckoArcURI::new(referrer)), - principal: Some(GeckoArcPrincipal::new(principal)), - }}; + let extra_data = unsafe { ParserContextExtraData::new(extra_data) }; let loader = if loader.is_null() { None } else { @@ -375,16 +368,10 @@ pub extern "C" fn Servo_StyleSheet_ClearAndUpdate(stylesheet: RawServoStyleSheet loader: *mut Loader, gecko_stylesheet: *mut ServoStyleSheet, data: *const nsACString, - base: *mut ThreadSafeURIHolder, - referrer: *mut ThreadSafeURIHolder, - principal: *mut ThreadSafePrincipalHolder) + extra_data: *mut URLExtraData) { let input = unsafe { data.as_ref().unwrap().as_str_unchecked() }; - let extra_data = unsafe { ParserContextExtraData { - base: Some(GeckoArcURI::new(base)), - referrer: Some(GeckoArcURI::new(referrer)), - principal: Some(GeckoArcPrincipal::new(principal)), - }}; + let extra_data = unsafe { ParserContextExtraData::new(extra_data) }; let loader = if loader.is_null() { None @@ -792,7 +779,7 @@ macro_rules! make_context { #[no_mangle] pub extern "C" fn Servo_ParseProperty(property: *const nsACString, value: *const nsACString, base: *const nsACString, - data: *const structs::GeckoParserExtraData) + data: *mut URLExtraData) -> RawServoDeclarationBlockStrong { let name = unsafe { property.as_ref().unwrap().as_str_unchecked() }; let id = if let Ok(id) = PropertyId::parse(name.into()) { @@ -824,7 +811,7 @@ pub extern "C" fn Servo_ParseProperty(property: *const nsACString, value: *const #[no_mangle] pub extern "C" fn Servo_ParseEasing(easing: *const nsAString, base: *const nsACString, - data: *const structs::GeckoParserExtraData, + data: *mut URLExtraData, output: nsTimingFunctionBorrowedMut) -> bool { use style::properties::longhands::transition_timing_function; @@ -845,7 +832,7 @@ pub extern "C" fn Servo_ParseEasing(easing: *const nsAString, #[no_mangle] pub extern "C" fn Servo_ParseStyleAttribute(data: *const nsACString, base: *const nsACString, - raw_extra_data: *const structs::GeckoParserExtraData) + raw_extra_data: *mut URLExtraData) -> RawServoDeclarationBlockStrong { let global_style_data = &*GLOBAL_STYLE_DATA; let value = unsafe { data.as_ref().unwrap().as_str_unchecked() }; @@ -965,7 +952,7 @@ pub extern "C" fn Servo_DeclarationBlock_GetPropertyIsImportant(declarations: Ra fn set_property(declarations: RawServoDeclarationBlockBorrowed, property_id: PropertyId, value: *const nsACString, is_important: bool, - base: *const nsACString, data: *const structs::GeckoParserExtraData) -> bool { + base: *const nsACString, data: *mut URLExtraData) -> bool { let value = unsafe { value.as_ref().unwrap().as_str_unchecked() }; make_context!((base, data) => (base_url, extra_data)); @@ -985,7 +972,7 @@ pub extern "C" fn Servo_DeclarationBlock_SetProperty(declarations: RawServoDecla property: *const nsACString, value: *const nsACString, is_important: bool, base: *const nsACString, - data: *const structs::GeckoParserExtraData) -> bool { + data: *mut URLExtraData) -> bool { set_property(declarations, get_property_id_from_property!(property, false), value, is_important, base, data) } @@ -995,7 +982,7 @@ pub extern "C" fn Servo_DeclarationBlock_SetPropertyById(declarations: RawServoD property: nsCSSPropertyID, value: *const nsACString, is_important: bool, base: *const nsACString, - data: *const structs::GeckoParserExtraData) -> bool { + data: *mut URLExtraData) -> bool { set_property(declarations, get_property_id_from_nscsspropertyid!(property, false), value, is_important, base, data) } diff --git a/ports/geckolib/stylesheet_loader.rs b/ports/geckolib/stylesheet_loader.rs index cc81a267b48..78a859cc64e 100644 --- a/ports/geckolib/stylesheet_loader.rs +++ b/ports/geckolib/stylesheet_loader.rs @@ -44,13 +44,13 @@ impl StyleStylesheetLoader for StylesheetLoader { // so this raw pointer will still be valid. let (spec_bytes, spec_len): (*const u8, usize) = import.url.as_slice_components(); - let base_uri = import.url.base.mRawPtr; + let base_url_data = import.url.extra_data.get(); let arc = make_arc(import); unsafe { Gecko_LoadStyleSheet(self.0, self.1, HasArcFFI::arc_as_borrowed(&arc), - base_uri, + base_url_data, spec_bytes, spec_len as u32, media_string.as_bytes().as_ptr(), |