diff options
-rw-r--r-- | components/servo/Cargo.lock | 2 | ||||
-rw-r--r-- | ports/cef/Cargo.lock | 2 | ||||
-rw-r--r-- | ports/geckolib/Cargo.lock | 1 | ||||
-rw-r--r-- | ports/geckolib/Cargo.toml | 1 | ||||
-rw-r--r-- | ports/geckolib/gecko_bindings/bindings.rs | 3 | ||||
-rw-r--r-- | ports/geckolib/gecko_bindings/structs_debug.rs | 233 | ||||
-rw-r--r-- | ports/geckolib/gecko_bindings/structs_release.rs | 233 | ||||
-rwxr-xr-x | ports/geckolib/gecko_bindings/tools/regen.py | 4 | ||||
-rw-r--r-- | ports/geckolib/lib.rs | 1 | ||||
-rw-r--r-- | ports/geckolib/wrapper.rs | 49 |
10 files changed, 356 insertions, 173 deletions
diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index e51ba302653..859e6b00e0d 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -1081,7 +1081,7 @@ dependencies = [ [[package]] name = "js" version = "0.1.3" -source = "git+https://github.com/servo/rust-mozjs#3ea62135ba1316b4aa845b18cf621bf127b56211" +source = "git+https://github.com/servo/rust-mozjs#bc9add648b3174120d70d0bef3935912bd6f1313" dependencies = [ "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index a451ab23c6c..7bef903e9ce 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -990,7 +990,7 @@ dependencies = [ [[package]] name = "js" version = "0.1.3" -source = "git+https://github.com/servo/rust-mozjs#3ea62135ba1316b4aa845b18cf621bf127b56211" +source = "git+https://github.com/servo/rust-mozjs#bc9add648b3174120d70d0bef3935912bd6f1313" dependencies = [ "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/geckolib/Cargo.lock b/ports/geckolib/Cargo.lock index c384b64242b..9f1b54a59eb 100644 --- a/ports/geckolib/Cargo.lock +++ b/ports/geckolib/Cargo.lock @@ -12,7 +12,6 @@ dependencies = [ "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "selectors 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "string_cache 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "style 0.0.1", "style_traits 0.0.1", diff --git a/ports/geckolib/Cargo.toml b/ports/geckolib/Cargo.toml index 48df8485e94..502fbe9b6c2 100644 --- a/ports/geckolib/Cargo.toml +++ b/ports/geckolib/Cargo.toml @@ -21,7 +21,6 @@ libc = "0.2" log = {version = "0.3.5", features = ["release_max_level_info"]} num_cpus = "0.2.2" selectors = "0.7" -smallvec = "0.1" string_cache = {version = "0.2.20", features = ["unstable"]} style = {path = "../../components/style", features = ["gecko"]} style_traits = {path = "../../components/style_traits"} diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs index 174333ca1ff..f983c039acc 100644 --- a/ports/geckolib/gecko_bindings/bindings.rs +++ b/ports/geckolib/gecko_bindings/bindings.rs @@ -240,6 +240,9 @@ extern "C" { principal: *mut ThreadSafePrincipalHolder); pub fn Gecko_CopyMozBindingFrom(des: *mut nsStyleDisplay, src: *const nsStyleDisplay); + pub fn Gecko_GetNodeFlags(node: *mut RawGeckoNode) -> u32; + pub fn Gecko_SetNodeFlags(node: *mut RawGeckoNode, flags: u32); + pub fn Gecko_UnsetNodeFlags(node: *mut RawGeckoNode, flags: u32); pub fn Servo_StylesheetFromUTF8Bytes(bytes: *const u8, length: u32, parsing_mode: SheetParsingMode, base: *mut ThreadSafeURIHolder, diff --git a/ports/geckolib/gecko_bindings/structs_debug.rs b/ports/geckolib/gecko_bindings/structs_debug.rs index 13274054e3b..4797b2312d2 100644 --- a/ports/geckolib/gecko_bindings/structs_debug.rs +++ b/ports/geckolib/gecko_bindings/structs_debug.rs @@ -188,6 +188,10 @@ pub const NS_ERROR_MODULE_BASE_OFFSET: ::std::os::raw::c_uint = 69; pub const MOZ_STRING_WITH_OBSOLETE_API: ::std::os::raw::c_uint = 1; pub const NSID_LENGTH: ::std::os::raw::c_uint = 39; pub const NS_NUMBER_OF_FLAGS_IN_REFCNT: ::std::os::raw::c_uint = 2; +pub const _STL_PAIR_H: ::std::os::raw::c_uint = 1; +pub const _GLIBCXX_UTILITY: ::std::os::raw::c_uint = 1; +pub const DOM_USER_DATA: ::std::os::raw::c_uint = 1; +pub const SMIL_MAPPED_ATTR_ANIMVAL: ::std::os::raw::c_uint = 2; pub const TWIPS_PER_POINT_INT: ::std::os::raw::c_uint = 20; pub const POINTS_PER_INCH_INT: ::std::os::raw::c_uint = 72; pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0; @@ -2760,6 +2764,84 @@ pub enum SheetParsingMode { pub struct HandleRefPtr<T> { pub mHandle: T, } +pub enum nsAttrAndChildArray { } +pub enum nsChildContentList { } +pub enum nsCSSSelectorList { } +pub enum nsDOMAttributeMap { } +pub enum nsIAnimationObserver { } +pub enum nsIDOMElement { } +pub enum nsIDOMNodeList { } +pub enum nsIEditor { } +pub enum nsIFrame { } +pub enum nsINodeList { } +pub enum nsNodeSupportsWeakRefTearoff { } +pub enum nsNodeWeakReference { } +pub enum nsDOMMutationObserver { } +pub enum ServoNodeData { } +pub enum EventListenerManager { } +pub enum BoxQuadOptions { } +pub enum ConvertCoordinateOptions { } +pub enum DOMPoint { } +pub enum DOMQuad { } +pub enum DOMRectReadOnly { } +pub enum Element { } +pub enum Text { } +pub enum TextOrElementOrDocument { } +pub enum DOMPointInit { } +#[repr(u32)] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +pub enum NodeFlags { + NODE_HAS_LISTENERMANAGER = 4, + NODE_HAS_PROPERTIES = 8, + NODE_IS_ANONYMOUS_ROOT = 16, + NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE = 32, + NODE_IS_NATIVE_ANONYMOUS_ROOT = 64, + NODE_FORCE_XBL_BINDINGS = 128, + NODE_MAY_BE_IN_BINDING_MNGR = 256, + NODE_IS_EDITABLE = 512, + NODE_MAY_HAVE_CLASS = 1024, + NODE_IS_IN_SHADOW_TREE = 2048, + NODE_HAS_EMPTY_SELECTOR = 4096, + NODE_HAS_SLOW_SELECTOR = 8192, + NODE_HAS_EDGE_CHILD_SELECTOR = 16384, + NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS = 32768, + NODE_ALL_SELECTOR_FLAGS = 61440, + NODE_NEEDS_FRAME = 65536, + NODE_DESCENDANTS_NEED_FRAMES = 131072, + NODE_HAS_ACCESSKEY = 262144, + NODE_HAS_DIRECTION_RTL = 524288, + NODE_HAS_DIRECTION_LTR = 1048576, + NODE_ALL_DIRECTION_FLAGS = 1572864, + NODE_CHROME_ONLY_ACCESS = 2097152, + NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS = 4194304, + NODE_IS_DIRTY_FOR_SERVO = 8388608, + NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO = 16777216, + NODE_TYPE_SPECIFIC_BITS_OFFSET = 23, +} +/** + * Class used to detect unexpected mutations. To use the class create an + * nsMutationGuard on the stack before unexpected mutations could occur. + * You can then at any time call Mutated to check if any unexpected mutations + * have occurred. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsMutationGuard { + pub mStartingGeneration: u64, +} +impl ::std::clone::Clone for nsMutationGuard { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsMutationGuard() { + assert_eq!(::std::mem::size_of::<nsMutationGuard>() , 8usize); + assert_eq!(::std::mem::align_of::<nsMutationGuard>() , 8usize); +} +extern "C" { + #[link_name = "_ZN15nsMutationGuard11sGenerationE"] + pub static mut nsMutationGuard_consts_sGeneration: + ::std::os::raw::c_ulong; +} pub type Float = f32; #[repr(i8)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] @@ -2991,7 +3073,7 @@ pub type gfxImageFormat = SurfaceFormat; pub struct RectCorner; #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum RectCorner_Types_h_unnamed_8 { +pub enum RectCorner_Types_h_unnamed_10 { TopLeft = 0, TopRight = 1, BottomRight = 2, @@ -4222,14 +4304,14 @@ pub enum nsCSSUnit { #[derive(Debug)] pub struct nsCSSValue { pub mUnit: nsCSSUnit, - pub mValue: nsCSSValue_nsCSSValue_h_unnamed_10, + pub mValue: nsCSSValue_nsCSSValue_h_unnamed_12, } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] pub enum nsCSSValue_Serialization { eNormalized = 0, eAuthorSpecified = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSValue_nsCSSValue_h_unnamed_10 { +pub struct nsCSSValue_nsCSSValue_h_unnamed_12 { pub mInt: __BindgenUnionField<i32>, pub mFloat: __BindgenUnionField<f32>, pub mString: __BindgenUnionField<*mut nsStringBuffer>, @@ -4252,15 +4334,15 @@ pub struct nsCSSValue_nsCSSValue_h_unnamed_10 { pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>, pub _bindgen_data_: u64, } -impl nsCSSValue_nsCSSValue_h_unnamed_10 { } -impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_10 { +impl nsCSSValue_nsCSSValue_h_unnamed_12 { } +impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_12 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_10() { - assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() , +fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_12() { + assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() , + assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() , 8usize); } #[test] @@ -4581,7 +4663,7 @@ pub struct ArenaRefPtr<T> { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_11 { +pub enum gfxFontConstants_h_unnamed_13 { eFeatureAlternates_historical = 0, eFeatureAlternates_stylistic = 1, eFeatureAlternates_styleset = 2, @@ -4593,7 +4675,7 @@ pub enum gfxFontConstants_h_unnamed_11 { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_12 { +pub enum gfxFontConstants_h_unnamed_14 { eFeatureEastAsian_jis78 = 0, eFeatureEastAsian_jis83 = 1, eFeatureEastAsian_jis90 = 2, @@ -4607,7 +4689,7 @@ pub enum gfxFontConstants_h_unnamed_12 { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_13 { +pub enum gfxFontConstants_h_unnamed_15 { eFeatureLigatures_none = 0, eFeatureLigatures_common = 1, eFeatureLigatures_no_common = 2, @@ -4621,7 +4703,7 @@ pub enum gfxFontConstants_h_unnamed_13 { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_14 { +pub enum gfxFontConstants_h_unnamed_16 { eFeatureNumeric_lining = 0, eFeatureNumeric_oldstyle = 1, eFeatureNumeric_proportional = 2, @@ -4708,22 +4790,22 @@ pub enum nsStyleUnit { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_h_unnamed_15 { +pub struct nsStyleCoord_h_unnamed_17 { pub mInt: __BindgenUnionField<i32>, pub mFloat: __BindgenUnionField<f32>, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub _bindgen_data_: u64, } -impl nsStyleCoord_h_unnamed_15 { } -impl ::std::clone::Clone for nsStyleCoord_h_unnamed_15 { +impl nsStyleCoord_h_unnamed_17 { } +impl ::std::clone::Clone for nsStyleCoord_h_unnamed_17 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleCoord_h_unnamed_15() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_15>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_15>() , 8usize); +fn bindgen_test_layout_nsStyleCoord_h_unnamed_17() { + assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_17>() , 8usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_17>() , 8usize); } -pub type nsStyleUnion = nsStyleCoord_h_unnamed_15; +pub type nsStyleUnion = nsStyleCoord_h_unnamed_17; /** * Class that hold a single size specification used by the style * system. The size specification consists of two parts -- a number @@ -4839,7 +4921,6 @@ fn bindgen_test_layout_imgRequestProxyStatic() { assert_eq!(::std::mem::size_of::<imgRequestProxyStatic>() , 128usize); assert_eq!(::std::mem::align_of::<imgRequestProxyStatic>() , 8usize); } -pub enum nsIFrame { } pub enum nsStyleContext { } pub enum nsTextFrame { } #[repr(C)] @@ -4917,27 +4998,27 @@ pub enum nsStyleImageType { pub struct nsStyleImage { pub mSubImages: u64, pub mType: nsStyleImageType, - pub nsStyleImage_nsStyleStruct_h_unnamed_18: nsStyleImage_nsStyleStruct_h_unnamed_18, + pub nsStyleImage_nsStyleStruct_h_unnamed_20: nsStyleImage_nsStyleStruct_h_unnamed_20, pub mCropRect: nsAutoPtr<nsStyleSides>, pub mImageTracked: bool, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleImage_nsStyleStruct_h_unnamed_18 { +pub struct nsStyleImage_nsStyleStruct_h_unnamed_20 { 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_18 { } -impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_18 { +impl nsStyleImage_nsStyleStruct_h_unnamed_20 { } +impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_20 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_18() { - assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>() +fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_20() { + assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>() + assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>() , 8usize); } #[test] @@ -4987,7 +5068,7 @@ pub struct nsStyleImageLayers { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_19 { +pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_21 { shorthand = 0, color = 1, image = 2, @@ -5454,7 +5535,7 @@ fn bindgen_test_layout_nsStyleVisibility() { #[derive(Debug, Copy)] pub struct nsTimingFunction { pub mType: nsTimingFunction_Type, - pub nsTimingFunction_nsStyleStruct_h_unnamed_20: nsTimingFunction_nsStyleStruct_h_unnamed_20, + pub nsTimingFunction_nsStyleStruct_h_unnamed_22: nsTimingFunction_nsStyleStruct_h_unnamed_22, } #[repr(i32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] @@ -5481,56 +5562,56 @@ pub enum nsTimingFunction_StepSyntax { pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20 { - pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>, - pub nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>, +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22 { + pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>, + pub nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>, pub _bindgen_data_: [u32; 4usize], } -impl nsTimingFunction_nsStyleStruct_h_unnamed_20 { } -impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_20 { +impl nsTimingFunction_nsStyleStruct_h_unnamed_22 { } +impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_22 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22() { + assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>() , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>() + assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>() , 4usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 { +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 { pub mX1: f32, pub mY1: f32, pub mX2: f32, pub mY2: f32, } impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 { + nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23() { + assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>() , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>() + assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>() , 4usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 { +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 { pub mStepSyntax: nsTimingFunction_StepSyntax, pub mSteps: u32, } impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 { + nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24() { + assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>() , 8usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>() + assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>() , 4usize); } impl ::std::clone::Clone for nsTimingFunction { @@ -5675,26 +5756,26 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_23, + pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_25, pub mImageTracked: bool, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleContentData_nsStyleStruct_h_unnamed_23 { +pub struct nsStyleContentData_nsStyleStruct_h_unnamed_25 { 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_23 { } -impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_23 { +impl nsStyleContentData_nsStyleStruct_h_unnamed_25 { } +impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_25 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_23() { - assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>() +fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_25() { + assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>() + assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>() , 8usize); } #[test] @@ -5828,26 +5909,26 @@ pub enum nsStyleSVGOpacitySource { #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_24, + pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_26, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { +pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { pub mColor: __BindgenUnionField<nscolor>, pub mPaintServer: __BindgenUnionField<*mut nsIURI>, pub _bindgen_data_: u64, } -impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { } -impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { +impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { } +impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_24() { - assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>() +fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_26() { + assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>() + assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>() , 8usize); } #[test] @@ -5882,7 +5963,7 @@ pub struct nsStyleSVG { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleSVG_nsStyleStruct_h_unnamed_25 { +pub enum nsStyleSVG_nsStyleStruct_h_unnamed_27 { FILL_OPACITY_SOURCE_MASK = 3, STROKE_OPACITY_SOURCE_MASK = 12, STROKE_DASHARRAY_CONTEXT = 16, @@ -5924,25 +6005,25 @@ fn bindgen_test_layout_nsStyleBasicShape() { #[derive(Debug)] pub struct nsStyleClipPath { pub mType: i32, - pub nsStyleClipPath_nsStyleStruct_h_unnamed_26: nsStyleClipPath_nsStyleStruct_h_unnamed_26, + pub nsStyleClipPath_nsStyleStruct_h_unnamed_28: nsStyleClipPath_nsStyleStruct_h_unnamed_28, pub mSizingBox: u8, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_26 { +pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_28 { pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>, pub mURL: __BindgenUnionField<*mut nsIURI>, pub _bindgen_data_: u64, } -impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 { } -impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_26 { +impl nsStyleClipPath_nsStyleStruct_h_unnamed_28 { } +impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_28 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_26() { - assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>() +fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_28() { + assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>() + assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>() , 8usize); } #[test] @@ -5955,24 +6036,24 @@ fn bindgen_test_layout_nsStyleClipPath() { pub struct nsStyleFilter { pub mType: i32, pub mFilterParameter: nsStyleCoord, - pub nsStyleFilter_nsStyleStruct_h_unnamed_27: nsStyleFilter_nsStyleStruct_h_unnamed_27, + pub nsStyleFilter_nsStyleStruct_h_unnamed_29: nsStyleFilter_nsStyleStruct_h_unnamed_29, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleFilter_nsStyleStruct_h_unnamed_27 { +pub struct nsStyleFilter_nsStyleStruct_h_unnamed_29 { pub mURL: __BindgenUnionField<*mut nsIURI>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub _bindgen_data_: u64, } -impl nsStyleFilter_nsStyleStruct_h_unnamed_27 { } -impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_27 { +impl nsStyleFilter_nsStyleStruct_h_unnamed_29 { } +impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_29 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_27() { - assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>() +fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_29() { + assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>() + assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>() , 8usize); } #[test] diff --git a/ports/geckolib/gecko_bindings/structs_release.rs b/ports/geckolib/gecko_bindings/structs_release.rs index 90378f6adba..8ebcf846ab7 100644 --- a/ports/geckolib/gecko_bindings/structs_release.rs +++ b/ports/geckolib/gecko_bindings/structs_release.rs @@ -188,6 +188,10 @@ pub const NS_ERROR_MODULE_BASE_OFFSET: ::std::os::raw::c_uint = 69; pub const MOZ_STRING_WITH_OBSOLETE_API: ::std::os::raw::c_uint = 1; pub const NSID_LENGTH: ::std::os::raw::c_uint = 39; pub const NS_NUMBER_OF_FLAGS_IN_REFCNT: ::std::os::raw::c_uint = 2; +pub const _STL_PAIR_H: ::std::os::raw::c_uint = 1; +pub const _GLIBCXX_UTILITY: ::std::os::raw::c_uint = 1; +pub const DOM_USER_DATA: ::std::os::raw::c_uint = 1; +pub const SMIL_MAPPED_ATTR_ANIMVAL: ::std::os::raw::c_uint = 2; pub const TWIPS_PER_POINT_INT: ::std::os::raw::c_uint = 20; pub const POINTS_PER_INCH_INT: ::std::os::raw::c_uint = 72; pub const NS_FONT_VARIANT_NORMAL: ::std::os::raw::c_uint = 0; @@ -2739,6 +2743,84 @@ pub enum SheetParsingMode { pub struct HandleRefPtr<T> { pub mHandle: T, } +pub enum nsAttrAndChildArray { } +pub enum nsChildContentList { } +pub enum nsCSSSelectorList { } +pub enum nsDOMAttributeMap { } +pub enum nsIAnimationObserver { } +pub enum nsIDOMElement { } +pub enum nsIDOMNodeList { } +pub enum nsIEditor { } +pub enum nsIFrame { } +pub enum nsINodeList { } +pub enum nsNodeSupportsWeakRefTearoff { } +pub enum nsNodeWeakReference { } +pub enum nsDOMMutationObserver { } +pub enum ServoNodeData { } +pub enum EventListenerManager { } +pub enum BoxQuadOptions { } +pub enum ConvertCoordinateOptions { } +pub enum DOMPoint { } +pub enum DOMQuad { } +pub enum DOMRectReadOnly { } +pub enum Element { } +pub enum Text { } +pub enum TextOrElementOrDocument { } +pub enum DOMPointInit { } +#[repr(u32)] +#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] +pub enum NodeFlags { + NODE_HAS_LISTENERMANAGER = 4, + NODE_HAS_PROPERTIES = 8, + NODE_IS_ANONYMOUS_ROOT = 16, + NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE = 32, + NODE_IS_NATIVE_ANONYMOUS_ROOT = 64, + NODE_FORCE_XBL_BINDINGS = 128, + NODE_MAY_BE_IN_BINDING_MNGR = 256, + NODE_IS_EDITABLE = 512, + NODE_MAY_HAVE_CLASS = 1024, + NODE_IS_IN_SHADOW_TREE = 2048, + NODE_HAS_EMPTY_SELECTOR = 4096, + NODE_HAS_SLOW_SELECTOR = 8192, + NODE_HAS_EDGE_CHILD_SELECTOR = 16384, + NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS = 32768, + NODE_ALL_SELECTOR_FLAGS = 61440, + NODE_NEEDS_FRAME = 65536, + NODE_DESCENDANTS_NEED_FRAMES = 131072, + NODE_HAS_ACCESSKEY = 262144, + NODE_HAS_DIRECTION_RTL = 524288, + NODE_HAS_DIRECTION_LTR = 1048576, + NODE_ALL_DIRECTION_FLAGS = 1572864, + NODE_CHROME_ONLY_ACCESS = 2097152, + NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS = 4194304, + NODE_IS_DIRTY_FOR_SERVO = 8388608, + NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO = 16777216, + NODE_TYPE_SPECIFIC_BITS_OFFSET = 23, +} +/** + * Class used to detect unexpected mutations. To use the class create an + * nsMutationGuard on the stack before unexpected mutations could occur. + * You can then at any time call Mutated to check if any unexpected mutations + * have occurred. + */ +#[repr(C)] +#[derive(Debug, Copy)] +pub struct nsMutationGuard { + pub mStartingGeneration: u64, +} +impl ::std::clone::Clone for nsMutationGuard { + fn clone(&self) -> Self { *self } +} +#[test] +fn bindgen_test_layout_nsMutationGuard() { + assert_eq!(::std::mem::size_of::<nsMutationGuard>() , 8usize); + assert_eq!(::std::mem::align_of::<nsMutationGuard>() , 8usize); +} +extern "C" { + #[link_name = "_ZN15nsMutationGuard11sGenerationE"] + pub static mut nsMutationGuard_consts_sGeneration: + ::std::os::raw::c_ulong; +} pub type Float = f32; #[repr(i8)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] @@ -2970,7 +3052,7 @@ pub type gfxImageFormat = SurfaceFormat; pub struct RectCorner; #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum RectCorner_Types_h_unnamed_8 { +pub enum RectCorner_Types_h_unnamed_10 { TopLeft = 0, TopRight = 1, BottomRight = 2, @@ -4201,14 +4283,14 @@ pub enum nsCSSUnit { #[derive(Debug)] pub struct nsCSSValue { pub mUnit: nsCSSUnit, - pub mValue: nsCSSValue_nsCSSValue_h_unnamed_10, + pub mValue: nsCSSValue_nsCSSValue_h_unnamed_12, } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] pub enum nsCSSValue_Serialization { eNormalized = 0, eAuthorSpecified = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsCSSValue_nsCSSValue_h_unnamed_10 { +pub struct nsCSSValue_nsCSSValue_h_unnamed_12 { pub mInt: __BindgenUnionField<i32>, pub mFloat: __BindgenUnionField<f32>, pub mString: __BindgenUnionField<*mut nsStringBuffer>, @@ -4231,15 +4313,15 @@ pub struct nsCSSValue_nsCSSValue_h_unnamed_10 { pub mFontFamilyList: __BindgenUnionField<*mut FontFamilyListRefCnt>, pub _bindgen_data_: u64, } -impl nsCSSValue_nsCSSValue_h_unnamed_10 { } -impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_10 { +impl nsCSSValue_nsCSSValue_h_unnamed_12 { } +impl ::std::clone::Clone for nsCSSValue_nsCSSValue_h_unnamed_12 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_10() { - assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() , +fn bindgen_test_layout_nsCSSValue_nsCSSValue_h_unnamed_12() { + assert_eq!(::std::mem::size_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() , 8usize); - assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_10>() , + assert_eq!(::std::mem::align_of::<nsCSSValue_nsCSSValue_h_unnamed_12>() , 8usize); } #[test] @@ -4560,7 +4642,7 @@ pub struct ArenaRefPtr<T> { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_11 { +pub enum gfxFontConstants_h_unnamed_13 { eFeatureAlternates_historical = 0, eFeatureAlternates_stylistic = 1, eFeatureAlternates_styleset = 2, @@ -4572,7 +4654,7 @@ pub enum gfxFontConstants_h_unnamed_11 { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_12 { +pub enum gfxFontConstants_h_unnamed_14 { eFeatureEastAsian_jis78 = 0, eFeatureEastAsian_jis83 = 1, eFeatureEastAsian_jis90 = 2, @@ -4586,7 +4668,7 @@ pub enum gfxFontConstants_h_unnamed_12 { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_13 { +pub enum gfxFontConstants_h_unnamed_15 { eFeatureLigatures_none = 0, eFeatureLigatures_common = 1, eFeatureLigatures_no_common = 2, @@ -4600,7 +4682,7 @@ pub enum gfxFontConstants_h_unnamed_13 { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum gfxFontConstants_h_unnamed_14 { +pub enum gfxFontConstants_h_unnamed_16 { eFeatureNumeric_lining = 0, eFeatureNumeric_oldstyle = 1, eFeatureNumeric_proportional = 2, @@ -4687,22 +4769,22 @@ pub enum nsStyleUnit { } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleCoord_h_unnamed_15 { +pub struct nsStyleCoord_h_unnamed_17 { pub mInt: __BindgenUnionField<i32>, pub mFloat: __BindgenUnionField<f32>, pub mPointer: __BindgenUnionField<*mut ::std::os::raw::c_void>, pub _bindgen_data_: u64, } -impl nsStyleCoord_h_unnamed_15 { } -impl ::std::clone::Clone for nsStyleCoord_h_unnamed_15 { +impl nsStyleCoord_h_unnamed_17 { } +impl ::std::clone::Clone for nsStyleCoord_h_unnamed_17 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleCoord_h_unnamed_15() { - assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_15>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_15>() , 8usize); +fn bindgen_test_layout_nsStyleCoord_h_unnamed_17() { + assert_eq!(::std::mem::size_of::<nsStyleCoord_h_unnamed_17>() , 8usize); + assert_eq!(::std::mem::align_of::<nsStyleCoord_h_unnamed_17>() , 8usize); } -pub type nsStyleUnion = nsStyleCoord_h_unnamed_15; +pub type nsStyleUnion = nsStyleCoord_h_unnamed_17; /** * Class that hold a single size specification used by the style * system. The size specification consists of two parts -- a number @@ -4818,7 +4900,6 @@ fn bindgen_test_layout_imgRequestProxyStatic() { assert_eq!(::std::mem::size_of::<imgRequestProxyStatic>() , 128usize); assert_eq!(::std::mem::align_of::<imgRequestProxyStatic>() , 8usize); } -pub enum nsIFrame { } pub enum nsStyleContext { } pub enum nsTextFrame { } #[repr(C)] @@ -4896,26 +4977,26 @@ pub enum nsStyleImageType { pub struct nsStyleImage { pub mSubImages: u64, pub mType: nsStyleImageType, - pub nsStyleImage_nsStyleStruct_h_unnamed_18: nsStyleImage_nsStyleStruct_h_unnamed_18, + pub nsStyleImage_nsStyleStruct_h_unnamed_20: nsStyleImage_nsStyleStruct_h_unnamed_20, pub mCropRect: nsAutoPtr<nsStyleSides>, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleImage_nsStyleStruct_h_unnamed_18 { +pub struct nsStyleImage_nsStyleStruct_h_unnamed_20 { 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_18 { } -impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_18 { +impl nsStyleImage_nsStyleStruct_h_unnamed_20 { } +impl ::std::clone::Clone for nsStyleImage_nsStyleStruct_h_unnamed_20 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_18() { - assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>() +fn bindgen_test_layout_nsStyleImage_nsStyleStruct_h_unnamed_20() { + assert_eq!(::std::mem::size_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_18>() + assert_eq!(::std::mem::align_of::<nsStyleImage_nsStyleStruct_h_unnamed_20>() , 8usize); } #[test] @@ -4965,7 +5046,7 @@ pub struct nsStyleImageLayers { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_19 { +pub enum nsStyleImageLayers_nsStyleStruct_h_unnamed_21 { shorthand = 0, color = 1, image = 2, @@ -5432,7 +5513,7 @@ fn bindgen_test_layout_nsStyleVisibility() { #[derive(Debug, Copy)] pub struct nsTimingFunction { pub mType: nsTimingFunction_Type, - pub nsTimingFunction_nsStyleStruct_h_unnamed_20: nsTimingFunction_nsStyleStruct_h_unnamed_20, + pub nsTimingFunction_nsStyleStruct_h_unnamed_22: nsTimingFunction_nsStyleStruct_h_unnamed_22, } #[repr(i32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] @@ -5459,56 +5540,56 @@ pub enum nsTimingFunction_StepSyntax { pub enum nsTimingFunction_Keyword { Implicit = 0, Explicit = 1, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20 { - pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>, - pub nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>, +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22 { + pub mFunc: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>, + pub nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24: __BindgenUnionField<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>, pub _bindgen_data_: [u32; 4usize], } -impl nsTimingFunction_nsStyleStruct_h_unnamed_20 { } -impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_20 { +impl nsTimingFunction_nsStyleStruct_h_unnamed_22 { } +impl ::std::clone::Clone for nsTimingFunction_nsStyleStruct_h_unnamed_22 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22() { + assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>() , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20>() + assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22>() , 4usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 { +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 { pub mX1: f32, pub mY1: f32, pub mX2: f32, pub mY2: f32, } impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21 { + nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23() { + assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>() , 16usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_21>() + assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_23>() , 4usize); } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 { +pub struct nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 { pub mStepSyntax: nsTimingFunction_StepSyntax, pub mSteps: u32, } impl ::std::clone::Clone for - nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22 { + nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22() { - assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>() +fn bindgen_test_layout_nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24() { + assert_eq!(::std::mem::size_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>() , 8usize); - assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_20_nsStyleStruct_h_unnamed_22>() + assert_eq!(::std::mem::align_of::<nsTimingFunction_nsStyleStruct_h_unnamed_22_nsStyleStruct_h_unnamed_24>() , 4usize); } impl ::std::clone::Clone for nsTimingFunction { @@ -5653,25 +5734,25 @@ pub enum nsStyleContentType { #[derive(Debug)] pub struct nsStyleContentData { pub mType: nsStyleContentType, - pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_23, + pub mContent: nsStyleContentData_nsStyleStruct_h_unnamed_25, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleContentData_nsStyleStruct_h_unnamed_23 { +pub struct nsStyleContentData_nsStyleStruct_h_unnamed_25 { 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_23 { } -impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_23 { +impl nsStyleContentData_nsStyleStruct_h_unnamed_25 { } +impl ::std::clone::Clone for nsStyleContentData_nsStyleStruct_h_unnamed_25 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_23() { - assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>() +fn bindgen_test_layout_nsStyleContentData_nsStyleStruct_h_unnamed_25() { + assert_eq!(::std::mem::size_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_23>() + assert_eq!(::std::mem::align_of::<nsStyleContentData_nsStyleStruct_h_unnamed_25>() , 8usize); } #[test] @@ -5805,26 +5886,26 @@ pub enum nsStyleSVGOpacitySource { #[repr(C)] #[derive(Debug)] pub struct nsStyleSVGPaint { - pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_24, + pub mPaint: nsStyleSVGPaint_nsStyleStruct_h_unnamed_26, pub mType: nsStyleSVGPaintType, pub mFallbackColor: nscolor, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { +pub struct nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { pub mColor: __BindgenUnionField<nscolor>, pub mPaintServer: __BindgenUnionField<*mut nsIURI>, pub _bindgen_data_: u64, } -impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { } -impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_24 { +impl nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { } +impl ::std::clone::Clone for nsStyleSVGPaint_nsStyleStruct_h_unnamed_26 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_24() { - assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>() +fn bindgen_test_layout_nsStyleSVGPaint_nsStyleStruct_h_unnamed_26() { + assert_eq!(::std::mem::size_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_24>() + assert_eq!(::std::mem::align_of::<nsStyleSVGPaint_nsStyleStruct_h_unnamed_26>() , 8usize); } #[test] @@ -5859,7 +5940,7 @@ pub struct nsStyleSVG { } #[repr(u32)] #[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)] -pub enum nsStyleSVG_nsStyleStruct_h_unnamed_25 { +pub enum nsStyleSVG_nsStyleStruct_h_unnamed_27 { FILL_OPACITY_SOURCE_MASK = 3, STROKE_OPACITY_SOURCE_MASK = 12, STROKE_DASHARRAY_CONTEXT = 16, @@ -5901,25 +5982,25 @@ fn bindgen_test_layout_nsStyleBasicShape() { #[derive(Debug)] pub struct nsStyleClipPath { pub mType: i32, - pub nsStyleClipPath_nsStyleStruct_h_unnamed_26: nsStyleClipPath_nsStyleStruct_h_unnamed_26, + pub nsStyleClipPath_nsStyleStruct_h_unnamed_28: nsStyleClipPath_nsStyleStruct_h_unnamed_28, pub mSizingBox: u8, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_26 { +pub struct nsStyleClipPath_nsStyleStruct_h_unnamed_28 { pub mBasicShape: __BindgenUnionField<*mut nsStyleBasicShape>, pub mURL: __BindgenUnionField<*mut nsIURI>, pub _bindgen_data_: u64, } -impl nsStyleClipPath_nsStyleStruct_h_unnamed_26 { } -impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_26 { +impl nsStyleClipPath_nsStyleStruct_h_unnamed_28 { } +impl ::std::clone::Clone for nsStyleClipPath_nsStyleStruct_h_unnamed_28 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_26() { - assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>() +fn bindgen_test_layout_nsStyleClipPath_nsStyleStruct_h_unnamed_28() { + assert_eq!(::std::mem::size_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_26>() + assert_eq!(::std::mem::align_of::<nsStyleClipPath_nsStyleStruct_h_unnamed_28>() , 8usize); } #[test] @@ -5932,24 +6013,24 @@ fn bindgen_test_layout_nsStyleClipPath() { pub struct nsStyleFilter { pub mType: i32, pub mFilterParameter: nsStyleCoord, - pub nsStyleFilter_nsStyleStruct_h_unnamed_27: nsStyleFilter_nsStyleStruct_h_unnamed_27, + pub nsStyleFilter_nsStyleStruct_h_unnamed_29: nsStyleFilter_nsStyleStruct_h_unnamed_29, } #[repr(C)] #[derive(Debug, Copy)] -pub struct nsStyleFilter_nsStyleStruct_h_unnamed_27 { +pub struct nsStyleFilter_nsStyleStruct_h_unnamed_29 { pub mURL: __BindgenUnionField<*mut nsIURI>, pub mDropShadow: __BindgenUnionField<*mut nsCSSShadowArray>, pub _bindgen_data_: u64, } -impl nsStyleFilter_nsStyleStruct_h_unnamed_27 { } -impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_27 { +impl nsStyleFilter_nsStyleStruct_h_unnamed_29 { } +impl ::std::clone::Clone for nsStyleFilter_nsStyleStruct_h_unnamed_29 { fn clone(&self) -> Self { *self } } #[test] -fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_27() { - assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>() +fn bindgen_test_layout_nsStyleFilter_nsStyleStruct_h_unnamed_29() { + assert_eq!(::std::mem::size_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>() , 8usize); - assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_27>() + assert_eq!(::std::mem::align_of::<nsStyleFilter_nsStyleStruct_h_unnamed_29>() , 8usize); } #[test] diff --git a/ports/geckolib/gecko_bindings/tools/regen.py b/ports/geckolib/gecko_bindings/tools/regen.py index c21f56f6814..1a80939b266 100755 --- a/ports/geckolib/gecko_bindings/tools/regen.py +++ b/ports/geckolib/gecko_bindings/tools/regen.py @@ -74,7 +74,8 @@ COMPILATION_TARGETS = { "nsDataHashtable.h", "nsCSSScanner.h", "utility", "nsTArray", "pair", "SheetParsingMode.h", "StaticPtr.h", "nsProxyRelease.h", "mozilla/dom/AnimationEffectReadOnlyBinding.h", - "/Types.h", # <- Disallow UnionTypes.h + "/Types.h", # <- Disallow UnionTypes.h + "nsINode.h", # <- For `NodeFlags`. ], "blacklist": [ "IsDestructibleFallbackImpl", "IsDestructibleFallback", @@ -84,6 +85,7 @@ COMPILATION_TARGETS = { "_Itup_cat", "AnimationEffectTimingProperties", "FastAnimationEffectTimingProperties", "ComputedTimingProperties", "FastComputedTimingProperties", + "nsINode", ], "opaque_types": [ "nsIntMargin", "nsIntPoint", "nsIntRect", "nsCOMArray", diff --git a/ports/geckolib/lib.rs b/ports/geckolib/lib.rs index 02da948fd32..05e766b4c56 100644 --- a/ports/geckolib/lib.rs +++ b/ports/geckolib/lib.rs @@ -15,7 +15,6 @@ extern crate libc; extern crate log; extern crate num_cpus; extern crate selectors; -extern crate smallvec; #[macro_use(atom, ns)] extern crate string_cache; extern crate style; diff --git a/ports/geckolib/wrapper.rs b/ports/geckolib/wrapper.rs index e615fcd9359..a30044315ef 100644 --- a/ports/geckolib/wrapper.rs +++ b/ports/geckolib/wrapper.rs @@ -14,6 +14,7 @@ use gecko_bindings::bindings::{Gecko_ElementState, Gecko_GetDocumentElement}; use gecko_bindings::bindings::{Gecko_GetFirstChild, Gecko_GetFirstChildElement}; use gecko_bindings::bindings::{Gecko_GetLastChild, Gecko_GetLastChildElement}; use gecko_bindings::bindings::{Gecko_GetNextSibling, Gecko_GetNextSiblingElement}; +use gecko_bindings::bindings::{Gecko_GetNodeFlags, Gecko_SetNodeFlags, Gecko_UnsetNodeFlags}; use gecko_bindings::bindings::{Gecko_GetParentElement, Gecko_GetParentNode}; use gecko_bindings::bindings::{Gecko_GetPrevSibling, Gecko_GetPrevSiblingElement}; use gecko_bindings::bindings::{Gecko_GetServoDeclarationBlock, Gecko_IsHTMLElementInHTMLDocument}; @@ -30,12 +31,10 @@ use selector_impl::{GeckoSelectorImpl, NonTSPseudoClass, PrivateStyleData}; use selectors::Element; use selectors::matching::DeclarationBlock; use selectors::parser::{AttrSelector, NamespaceConstraint}; -use smallvec::VecLike; use std::marker::PhantomData; use std::ops::BitOr; use std::ptr; use std::slice; -use std::str::from_utf8_unchecked; use std::sync::Arc; use string_cache::{Atom, BorrowedAtom, BorrowedNamespace, Namespace}; use style::dom::{OpaqueNode, PresentationalHintsSynthetizer}; @@ -185,21 +184,44 @@ impl<'ln> TNode for GeckoNode<'ln> { } fn is_dirty(&self) -> bool { - // FIXME(bholley) - true + use gecko_bindings::structs::NodeFlags::*; + // Return true unconditionally if we're not yet styled. This is a hack + // and should go away soon. + if unsafe { Gecko_GetNodeData(self.node) }.is_null() { + return true; + } + + let flags = unsafe { Gecko_GetNodeFlags(self.node) }; + flags & (NODE_IS_DIRTY_FOR_SERVO as u32) != 0 } - unsafe fn set_dirty(&self, _value: bool) { - unimplemented!() + unsafe fn set_dirty(&self, value: bool) { + use gecko_bindings::structs::NodeFlags::*; + if value { + Gecko_SetNodeFlags(self.node, NODE_IS_DIRTY_FOR_SERVO as u32) + } else { + Gecko_UnsetNodeFlags(self.node, NODE_IS_DIRTY_FOR_SERVO as u32) + } } fn has_dirty_descendants(&self) -> bool { - // FIXME(bholley) - true + use gecko_bindings::structs::NodeFlags::*; + // Return true unconditionally if we're not yet styled. This is a hack + // and should go away soon. + if unsafe { Gecko_GetNodeData(self.node) }.is_null() { + return true; + } + let flags = unsafe { Gecko_GetNodeFlags(self.node) }; + flags & (NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO as u32) != 0 } - unsafe fn set_dirty_descendants(&self, _value: bool) { - unimplemented!() + unsafe fn set_dirty_descendants(&self, value: bool) { + use gecko_bindings::structs::NodeFlags::*; + if value { + Gecko_SetNodeFlags(self.node, NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO as u32) + } else { + Gecko_UnsetNodeFlags(self.node, NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO as u32) + } } fn can_be_fragmented(&self) -> bool { @@ -430,7 +452,8 @@ impl<'le> ::selectors::Element for GeckoElement<'le> { } fn is_empty(&self) -> bool { - unimplemented!() + // XXX(emilio): Implement this properly. + false } fn get_local_name<'a>(&'a self) -> BorrowedAtom<'a> { @@ -616,7 +639,3 @@ impl<'le> ElementExt for GeckoElement<'le> { self.match_non_ts_pseudo_class(NonTSPseudoClass::AnyLink) } } - -unsafe fn reinterpret_string<'a>(ptr: *const ::libc::c_char, length: u32) -> Option<&'a str> { - (ptr as *const u8).as_ref().map(|p| from_utf8_unchecked(slice::from_raw_parts(p, length as usize))) -} |