aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-04-02 23:30:56 -0500
committerGitHub <noreply@github.com>2017-04-02 23:30:56 -0500
commit5b037a0aa080799faae93efe59e56938a1eba913 (patch)
treece3dcc30c7a84cc56be47ae98541f19286e5d261
parenta31271b07ff1372e48d8b363a1f4a16b8ff6f98d (diff)
parente1fa699d6e56374987d1a98f33c49ce0dfca18e5 (diff)
downloadservo-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.rs6
-rw-r--r--components/style/gecko/url.rs22
-rw-r--r--components/style/gecko_bindings/bindings.rs56
-rw-r--r--components/style/gecko_bindings/structs_debug.rs232
-rw-r--r--components/style/gecko_bindings/structs_release.rs230
-rw-r--r--components/style/gecko_bindings/sugar/refptr.rs16
-rw-r--r--components/style/parser.rs27
-rw-r--r--components/style/properties/longhand/box.mako.rs3
-rw-r--r--components/style/properties/longhand/inherited_svg.mako.rs3
-rw-r--r--components/style/properties/longhand/list.mako.rs1
-rw-r--r--ports/geckolib/glue.rs35
-rw-r--r--ports/geckolib/stylesheet_loader.rs4
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(),