diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs index 6d943733a27..425fa65ea12 100644 --- a/ports/geckolib/gecko_bindings/bindings.rs +++ b/ports/geckolib/gecko_bindings/bindings.rs @@ -25,6 +25,8 @@ use structs::nsStyleSVGReset; use structs::nsStyleColumn; use structs::nsStyleEffects; use structs::SheetParsingMode; +use structs::nsMainThreadPtrHandle; +use structs::nsMainThreadPtrHolder; use heapsize::HeapSizeOf; unsafe impl Send for nsStyleFont {} unsafe impl Sync for nsStyleFont {} @@ -102,6 +104,8 @@ impl HeapSizeOf for nsStyleEffects { fn heap_size_of_children(&self) -> usize { pub enum nsIAtom { } pub enum nsINode { } pub type RawGeckoNode = nsINode; +pub enum nsIPrincipal { } +pub enum nsIURI { } pub enum Element { } pub type RawGeckoElement = Element; pub enum nsIDocument { } @@ -110,6 +114,8 @@ pub enum ServoNodeData { } pub enum ServoComputedValues { } pub enum RawServoStyleSheet { } pub enum RawServoStyleSet { } +pub type ThreadSafePrincipalHolder = nsMainThreadPtrHolder; +pub type ThreadSafeURIHolder = nsMainThreadPtrHolder; extern "C" { pub fn Gecko_ChildrenCount(node: *mut RawGeckoNode) -> u32; pub fn Gecko_NodeIsElement(node: *mut RawGeckoNode) -> bool; @@ -138,6 +144,8 @@ extern "C" { pub fn Gecko_IsVisitedLink(element: *mut RawGeckoElement) -> bool; pub fn Gecko_IsUnvisitedLink(element: *mut RawGeckoElement) -> bool; pub fn Gecko_IsRootElement(element: *mut RawGeckoElement) -> bool; + pub fn Gecko_LocalName(element: *mut RawGeckoElement) -> *mut nsIAtom; + pub fn Gecko_Namespace(element: *mut RawGeckoElement) -> *mut nsIAtom; pub fn Gecko_GetNodeData(node: *mut RawGeckoNode) -> *mut ServoNodeData; pub fn Gecko_SetNodeData(node: *mut RawGeckoNode, data: *mut ServoNodeData); @@ -159,8 +167,25 @@ extern "C" { pub fn Gecko_SetListStyleType(style_struct: *mut nsStyleList, type_: u32); pub fn Gecko_CopyListStyleTypeFrom(dst: *mut nsStyleList, src: *const nsStyleList); + pub fn Gecko_AddRefPrincipalArbitraryThread(aPtr: + *mut ThreadSafePrincipalHolder); + pub fn Gecko_ReleasePrincipalArbitraryThread(aPtr: + *mut ThreadSafePrincipalHolder); + pub fn Gecko_AddRefURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder); + pub fn Gecko_ReleaseURIArbitraryThread(aPtr: *mut ThreadSafeURIHolder); + pub fn Gecko_SetMozBinding(style_struct: *mut nsStyleDisplay, + string_bytes: *const u8, string_length: u32, + base_uri: *mut ThreadSafeURIHolder, + referrer: *mut ThreadSafeURIHolder, + principal: *mut ThreadSafePrincipalHolder); + pub fn Gecko_CopyMozBindingFrom(des: *mut nsStyleDisplay, + src: *const nsStyleDisplay); pub fn Servo_StylesheetFromUTF8Bytes(bytes: *const u8, length: u32, - parsing_mode: SheetParsingMode) + parsing_mode: SheetParsingMode, + base: *mut ThreadSafeURIHolder, + referrer: *mut ThreadSafeURIHolder, + principal: + *mut ThreadSafePrincipalHolder) -> *mut RawServoStyleSheet; pub fn Servo_AddRefStyleSheet(sheet: *mut RawServoStyleSheet); pub fn Servo_ReleaseStyleSheet(sheet: *mut RawServoStyleSheet); @@ -202,8 +227,6 @@ extern "C" { ns: *mut nsIAtom, name: *mut nsIAtom, length: *mut u32) -> *const ::std::os::raw::c_char; - pub fn Gecko_LocalName(element: *mut RawGeckoElement) -> *mut nsIAtom; - pub fn Gecko_Namespace(element: *mut RawGeckoElement) -> *mut nsIAtom; pub fn Gecko_Construct_nsStyleFont(ptr: *mut nsStyleFont); pub fn Gecko_CopyConstruct_nsStyleFont(ptr: *mut nsStyleFont, other: *const nsStyleFont); diff --git a/ports/geckolib/gecko_bindings/structs.rs b/ports/geckolib/gecko_bindings/structs.rs index c2d4d178089..f736bc2896b 100644 --- a/ports/geckolib/gecko_bindings/structs.rs +++ b/ports/geckolib/gecko_bindings/structs.rs @@ -2747,7 +2747,6 @@ pub struct piecewise_construct_t; impl ::std::clone::Clone for piecewise_construct_t { fn clone(&self) -> Self { *self } } -pub enum tuple { } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct pair<_T1, _T2> { @@ -3778,6 +3777,56 @@ pub type nscolor = u32; #[repr(i8)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] pub enum nsHexColorType { NoAlpha = 0, AllowAlpha = 1, } +/** + * Class to safely handle main-thread-only pointers off the main thread. + * + * Classes like XPCWrappedJS are main-thread-only, which means that it is + * forbidden to call methods on instances of these classes off the main thread. + * For various reasons (see bug 771074), this restriction recently began to + * apply to AddRef/Release as well. + * + * This presents a problem for consumers that wish to hold a callback alive + * on non-main-thread code. A common example of this is the proxy callback + * pattern, where non-main-thread code holds a strong-reference to the callback + * object, and dispatches new Runnables (also with a strong reference) to the + * main thread in order to execute the callback. This involves several AddRef + * and Release calls on the other thread, which is (now) verboten. + * + * The basic idea of this class is to introduce a layer of indirection. + * nsMainThreadPtrHolder is a threadsafe reference-counted class that internally + * maintains one strong reference to the main-thread-only object. It must be + * instantiated on the main thread (so that the AddRef of the underlying object + * happens on the main thread), but consumers may subsequently pass references + * to the holder anywhere they please. These references are meant to be opaque + * when accessed off-main-thread (assertions enforce this). + * + * The semantics of RefPtr > would be cumbersome, so + * we also introduce nsMainThreadPtrHandle, which is conceptually identical + * to the above (though it includes various convenience methods). The basic + * pattern is as follows. + * + * // On the main thread: + * nsCOMPtr callback = ...; + * nsMainThreadPtrHandle callbackHandle = + * new nsMainThreadPtrHolder(callback); + * // Pass callbackHandle to structs/classes that might be accessed on other + * // threads. + * + * All structs and classes that might be accessed on other threads should store + * an nsMainThreadPtrHandle rather than an nsCOMPtr. + */ +#[repr(C)] +#[derive(Debug)] +pub struct nsMainThreadPtrHolder { + pub mRefCnt: ThreadSafeAutoRefCnt, + pub mRawPtr: *mut T, + pub mStrict: bool, +} +#[repr(C)] +#[derive(Debug)] +pub struct nsMainThreadPtrHandle { + pub mPtr: RefPtr, +} /** * This structure precedes the string buffers "we" allocate. It may be the * case that nsTAString::mData does not point to one of these special @@ -3800,12 +3849,21 @@ fn bindgen_test_layout_nsStringBuffer() { } pub enum CSSStyleSheet { } #[repr(C)] +pub struct URLValueData { + pub _bindgen_opaque_blob: [u64; 5usize], +} +#[test] +fn bindgen_test_layout_URLValueData() { + assert_eq!(::std::mem::size_of::() , 40usize); + assert_eq!(::std::mem::align_of::() , 8usize); +} +#[repr(C)] pub struct URLValue { - pub _bindgen_opaque_blob: [u64; 7usize], + pub _bindgen_opaque_blob: [u64; 6usize], } #[test] fn bindgen_test_layout_URLValue() { - assert_eq!(::std::mem::size_of::() , 56usize); + assert_eq!(::std::mem::size_of::() , 48usize); assert_eq!(::std::mem::align_of::() , 8usize); } #[repr(C)] @@ -4553,22 +4611,22 @@ pub enum nsStyleUnit { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_h_unnamed_10 { +pub struct nsStyleCoord_h_unnamed_14 { pub mInt: __BindgenUnionField, pub mFloat: __BindgenUnionField, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub _bindgen_data_: u64, } -impl nsStyleCoord_h_unnamed_10 { } -impl ::std::clone::Clone for nsStyleCoord_h_unnamed_10 { +impl nsStyleCoord_h_unnamed_14 { } +impl ::std::clone::Clone for nsStyleCoord_h_unnamed_14 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleCoord_h_unnamed_10() { - assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() , 8usize); +fn bindgen_test_layout_nsStyleCoord_h_unnamed_14() { + assert_eq!(::std::mem::size_of::() , 8usize); + assert_eq!(::std::mem::align_of::() , 8usize); } -pub type nsStyleUnion = nsStyleCoord_h_unnamed_10; +pub type nsStyleUnion = nsStyleCoord_h_unnamed_14; /** * Class that hold a single size specification used by the style * system. The size specification consists of two parts -- a number @@ -4763,27 +4821,27 @@ pub enum nsStyleImageType { pub struct nsStyleImage { pub mSubImages: u64, pub mType: nsStyleImageType, - pub nsStyleImage_nsStyleStruct_h_unnamed_13: nsStyleImage_nsStyleStruct_h_unnamed_13, + pub nsStyleImage_nsStyleStruct_h_unnamed_17: nsStyleImage_nsStyleStruct_h_unnamed_17, pub mCropRect: nsAutoPtr, pub mImageTracked: bool, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleImage_nsStyleStruct_h_unnamed_13 { +pub struct nsStyleImage_nsStyleStruct_h_unnamed_17 { pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mGradient: __BindgenUnionField<*mut nsStyleGradient>, pub mElementId: __BindgenUnionField<*mut ::std::os::raw::c_ushort>, pub _bindgen_data_: u64, } -impl nsStyleImage_nsStyleStruct_h_unnamed_13 { } -impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_13 { +impl nsStyleImage_nsStyleStruct_h_unnamed_17 { } +impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_17 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_13() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_17() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } #[test] @@ -4833,7 +4891,7 @@ pub struct nsStyleImageLayers { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_14 { +pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_18 { shorthand = 0, color = 1, image = 2, @@ -5298,7 +5356,7 @@ fn bindgen_test_layout_nsStyleVisibility() { #[derive(Debug, Copy)] pub struct nsTimingFunction { pub mType: nsTimingFunction_Type, - pub nsTimingFunction_nsStyleStruct_h_unnamed_15: nsTimingFunction_nsStyleStruct_h_unnamed_15, + pub nsTimingFunction_nsStyleStruct_h_unnamed_19: nsTimingFunction_nsStyleStruct_h_unnamed_19, } #[repr(i32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] @@ -5325,56 +5383,56 @@ pub enum nsTimingFunction_StepSyntax { pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_15 { - pub mFunc: __BindgenUnionField, - pub nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_17: __BindgenUnionField, +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_19 { + pub mFunc: __BindgenUnionField, + pub nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_21: __BindgenUnionField, pub _bindgen_data_: [u32; 4usize], } -impl nsTimingFunction_nsStyleStruct_h_unnamed_15 { } -impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_15 { +impl nsTimingFunction_nsStyleStruct_h_unnamed_19 { } +impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_19 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_15() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_19() { + assert_eq!(::std::mem::size_of::() , 16usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_16 { +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_20 { pub mX1: f32, pub mY1: f32, pub mX2: f32, pub mY2: f32, } impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_16 { + nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_20 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_16() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_20() { + assert_eq!(::std::mem::size_of::() , 16usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_17 { +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_21 { pub mStepSyntax: nsTimingFunction_StepSyntax, pub mSteps: u32, } impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_17 { + nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_21 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_15_nsStyleStruct_h_unnamed_17() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_19_nsStyleStruct_h_unnamed_21() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 4usize); } impl ::std::clone::Clone for nsTimingFunction { @@ -5519,26 +5577,26 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_18, + pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_22, pub mImageTracked: bool, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleContentData_nsStyleStruct_h_unnamed_18 { +pub struct nsStyleContentData_nsStyleStruct_h_unnamed_22 { pub mString: __BindgenUnionField<*mut ::std::os::raw::c_ushort>, pub mImage: __BindgenUnionField<*mut imgRequestProxy>, pub mCounters: __BindgenUnionField<*mut Array>, pub _bindgen_data_: u64, } -impl nsStyleContentData_nsStyleStruct_h_unnamed_18 { } -impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_18 { +impl nsStyleContentData_nsStyleStruct_h_unnamed_22 { } +impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_22 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_18() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_22() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } #[test] @@ -5672,26 +5730,26 @@ pub enum nsStyleSVGOpacitySource { #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_19, + pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_23, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_19 { +pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_23 { pub mColor: __BindgenUnionField, pub mPaintServer: __BindgenUnionField<*mut nsIURI>, pub _bindgen_data_: u64, } -impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_19 { } -impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_19 { +impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_23 { } +impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_23 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_19() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_23() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } #[test] @@ -5758,25 +5816,25 @@ fn bindgen_test_layout_nsStyleBasicShape() { #[derive(Debug)] pub struct nsStyleClipPath { pub mType: i32, - pub nsStyleClipPath_nsStyleStruct_h_unnamed_20: nsStyleClipPath_nsStyleStruct_h_unnamed_20, + pub nsStyleClipPath_nsStyleStruct_h_unnamed_24: nsStyleClipPath_nsStyleStruct_h_unnamed_24, pub mSizingBox: u8, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_20 { +pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_24 { pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>, pub mURL: __BindgenUnionField<*mut nsIURI>, pub _bindgen_data_: u64, } -impl nsStyleClipPath_nsStyleStruct_h_unnamed_20 { } -impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_20 { +impl nsStyleClipPath_nsStyleStruct_h_unnamed_24 { } +impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_24 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_20() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_24() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } #[test] @@ -5789,24 +5847,24 @@ fn bindgen_test_layout_nsStyleClipPath() { pub struct nsStyleFilter { pub mType: i32, pub mFilterParameter: nsStyleCoord, - pub nsStyleFilter_nsStyleStruct_h_unnamed_21: nsStyleFilter_nsStyleStruct_h_unnamed_21, + pub nsStyleFilter_nsStyleStruct_h_unnamed_25: nsStyleFilter_nsStyleStruct_h_unnamed_25, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleFilter_nsStyleStruct_h_unnamed_21 { +pub struct nsStyleFilter_nsStyleStruct_h_unnamed_25 { pub mURL: __BindgenUnionField<*mut nsIURI>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub _bindgen_data_: u64, } -impl nsStyleFilter_nsStyleStruct_h_unnamed_21 { } -impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_21 { +impl nsStyleFilter_nsStyleStruct_h_unnamed_25 { } +impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_25 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_21() { - assert_eq!(::std::mem::size_of::() +fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_25() { + assert_eq!(::std::mem::size_of::() , 8usize); - assert_eq!(::std::mem::align_of::() + assert_eq!(::std::mem::align_of::() , 8usize); } #[test] diff --git a/ports/geckolib/gecko_bindings/tools/regen_bindings.sh b/ports/geckolib/gecko_bindings/tools/regen_bindings.sh index cce6f21ddfb..da147247541 100755 --- a/ports/geckolib/gecko_bindings/tools/regen_bindings.sh +++ b/ports/geckolib/gecko_bindings/tools/regen_bindings.sh @@ -50,7 +50,7 @@ do done # Other mapped types. -for TYPE in SheetParsingMode +for TYPE in SheetParsingMode nsMainThreadPtrHandle nsMainThreadPtrHolder do MAP_GECKO_TYPES=$MAP_GECKO_TYPES"-blacklist-type $TYPE " MAP_GECKO_TYPES=$MAP_GECKO_TYPES"-raw-line 'use structs::$TYPE;' " @@ -59,6 +59,8 @@ done # Check for the include directory. +export OBJDIR="$1" +export SRCDIR="$1/.." # Not necessarily true, but let's assume. export DIST_INCLUDE="$1/dist/include" if [ ! -d "$DIST_INCLUDE" ]; then echo "$DIST_INCLUDE: directory not found" @@ -72,6 +74,8 @@ export RUST_BACKTRACE=1 eval ./rust-bindgen/target/debug/bindgen \ -x c++ -std=gnu++0x \ "-I$DIST_INCLUDE" \ + "-I$DIST_INCLUDE/nspr/" \ + "-I$SRCDIR/nsprpub/pr/include/" \ $PLATFORM_DEPENDENT_DEFINES \ -o ../bindings.rs \ -no-type-renaming \ diff --git a/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh b/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh index 5f9c77c146a..64b56284026 100755 --- a/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh +++ b/ports/geckolib/gecko_bindings/tools/regen_style_structs.sh @@ -102,8 +102,10 @@ export RUST_BACKTRACE=1 -match "pair" \ -match "SheetParsingMode.h" \ -match "StaticPtr.h" \ + -match "nsProxyRelease.h" \ -blacklist-type "IsDestructibleFallbackImpl" \ -blacklist-type "IsDestructibleFallback" \ + -blacklist-type "nsProxyReleaseEvent" \ -opaque-type "nsIntMargin" \ -opaque-type "nsIntPoint" \ -opaque-type "nsIntRect" \ @@ -116,6 +118,7 @@ export RUST_BACKTRACE=1 -opaque-type "CounterStyleManager" \ -opaque-type "ImageValue" \ -opaque-type "URLValue" \ + -opaque-type "URLValueData" \ -opaque-type "nsIPrincipal" \ -opaque-type "nsDataHashtable" \ -opaque-type "imgIRequest" \