diff --git a/components/style/build_gecko.rs b/components/style/build_gecko.rs index 8d530f7e34f..7b13ff0e1fd 100644 --- a/components/style/build_gecko.rs +++ b/components/style/build_gecko.rs @@ -531,6 +531,7 @@ mod bindings { "RawGeckoDocument", "RawGeckoElement", "RawGeckoKeyframeList", + "RawGeckoComputedKeyframeValuesList", "RawGeckoNode", "RawGeckoAnimationValueList", "RawServoAnimationValue", @@ -638,6 +639,7 @@ mod bindings { "nsCSSValue", "RawGeckoAnimationValueList", "RawGeckoKeyframeList", + "RawGeckoComputedKeyframeValuesList", ]; for &ty in structs_types.iter() { builder = builder.hide_type(ty) diff --git a/components/style/gecko_bindings/bindings.rs b/components/style/gecko_bindings/bindings.rs index a64c70d0b51..e2c723f5e65 100644 --- a/components/style/gecko_bindings/bindings.rs +++ b/components/style/gecko_bindings/bindings.rs @@ -7,6 +7,7 @@ use gecko_bindings::structs::mozilla::css::URLValue; use gecko_bindings::structs::RawGeckoDocument; use gecko_bindings::structs::RawGeckoElement; use gecko_bindings::structs::RawGeckoKeyframeList; +use gecko_bindings::structs::RawGeckoComputedKeyframeValuesList; use gecko_bindings::structs::RawGeckoNode; use gecko_bindings::structs::RawGeckoAnimationValueList; use gecko_bindings::structs::RawServoAnimationValue; @@ -167,11 +168,6 @@ use gecko_bindings::structs::ServoStyleSheet; use gecko_bindings::structs::EffectCompositor_CascadeLevel; use gecko_bindings::structs::RawServoAnimationValueBorrowedListBorrowed; pub type nsTArrayBorrowed_uintptr_t<'a> = &'a mut ::gecko_bindings::structs::nsTArray; -pub type ServoComputedValuesStrong = ::gecko_bindings::sugar::ownership::Strong; -pub type ServoComputedValuesBorrowed<'a> = &'a ServoComputedValues; -pub type ServoComputedValuesBorrowedOrNull<'a> = Option<&'a ServoComputedValues>; -enum ServoComputedValuesVoid { } -pub struct ServoComputedValues(ServoComputedValuesVoid); pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong; pub type ServoCssRulesBorrowed<'a> = &'a ServoCssRules; pub type ServoCssRulesBorrowedOrNull<'a> = Option<&'a ServoCssRules>; @@ -182,6 +178,11 @@ pub type RawServoStyleSheetBorrowed<'a> = &'a RawServoStyleSheet; pub type RawServoStyleSheetBorrowedOrNull<'a> = Option<&'a RawServoStyleSheet>; enum RawServoStyleSheetVoid { } pub struct RawServoStyleSheet(RawServoStyleSheetVoid); +pub type ServoComputedValuesStrong = ::gecko_bindings::sugar::ownership::Strong; +pub type ServoComputedValuesBorrowed<'a> = &'a ServoComputedValues; +pub type ServoComputedValuesBorrowedOrNull<'a> = Option<&'a ServoComputedValues>; +enum ServoComputedValuesVoid { } +pub struct ServoComputedValues(ServoComputedValuesVoid); pub type RawServoDeclarationBlockStrong = ::gecko_bindings::sugar::ownership::Strong; pub type RawServoDeclarationBlockBorrowed<'a> = &'a RawServoDeclarationBlock; pub type RawServoDeclarationBlockBorrowedOrNull<'a> = Option<&'a RawServoDeclarationBlock>; @@ -242,6 +243,10 @@ pub type RawGeckoKeyframeListBorrowed<'a> = &'a RawGeckoKeyframeList; pub type RawGeckoKeyframeListBorrowedOrNull<'a> = Option<&'a RawGeckoKeyframeList>; pub type RawGeckoKeyframeListBorrowedMut<'a> = &'a mut RawGeckoKeyframeList; pub type RawGeckoKeyframeListBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoKeyframeList>; +pub type RawGeckoComputedKeyframeValuesListBorrowed<'a> = &'a RawGeckoComputedKeyframeValuesList; +pub type RawGeckoComputedKeyframeValuesListBorrowedOrNull<'a> = Option<&'a RawGeckoComputedKeyframeValuesList>; +pub type RawGeckoComputedKeyframeValuesListBorrowedMut<'a> = &'a mut RawGeckoComputedKeyframeValuesList; +pub type RawGeckoComputedKeyframeValuesListBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoComputedKeyframeValuesList>; extern "C" { pub fn Gecko_EnsureTArrayCapacity(aArray: *mut ::std::os::raw::c_void, @@ -1336,14 +1341,15 @@ extern "C" { -> RawServoDeclarationBlockStrong; } extern "C" { - pub fn Servo_AnimationValues_Populate(arg1: - RawGeckoAnimationValueListBorrowedMut, - arg2: - RawServoDeclarationBlockBorrowed, - arg3: ServoComputedValuesBorrowed, - arg4: - ServoComputedValuesBorrowedOrNull, - arg5: RawGeckoPresContextBorrowed); + pub fn Servo_GetComputedKeyframeValues(keyframes: + RawGeckoKeyframeListBorrowed, + style: ServoComputedValuesBorrowed, + parent_style: + ServoComputedValuesBorrowedOrNull, + pres_context: + RawGeckoPresContextBorrowed, + result: + RawGeckoComputedKeyframeValuesListBorrowedMut); } extern "C" { pub fn Servo_AnimationValues_Interpolate(from: @@ -1375,6 +1381,13 @@ extern "C" { list: *mut RefPtr); } +extern "C" { + pub fn Servo_AnimationValue_DeepEqual(arg1: + RawServoAnimationValueBorrowed, + arg2: + RawServoAnimationValueBorrowed) + -> bool; +} extern "C" { pub fn Servo_ParseStyleAttribute(data: *const nsACString_internal) -> RawServoDeclarationBlockStrong; diff --git a/components/style/gecko_bindings/structs_debug.rs b/components/style/gecko_bindings/structs_debug.rs index 7142267fe92..de581823965 100644 --- a/components/style/gecko_bindings/structs_debug.rs +++ b/components/style/gecko_bindings/structs_debug.rs @@ -1902,14 +1902,14 @@ pub mod root { pub struct ScrollSnapInfo { pub mScrollSnapTypeX: u8, pub mScrollSnapTypeY: u8, - pub mScrollSnapIntervalX: [u64; 2usize], - pub mScrollSnapIntervalY: [u64; 2usize], + pub mScrollSnapIntervalX: [u32; 2usize], + pub mScrollSnapIntervalY: [u32; 2usize], pub mScrollSnapDestination: root::nsPoint, pub mScrollSnapCoordinates: root::nsTArray, } #[test] fn bindgen_test_layout_ScrollSnapInfo() { - assert_eq!(::std::mem::size_of::() , 56usize , + assert_eq!(::std::mem::size_of::() , 40usize , concat ! ( "Size of: " , stringify ! ( ScrollSnapInfo ) )); assert_eq! (::std::mem::align_of::() , 8usize @@ -1933,28 +1933,28 @@ pub mod root { assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapIntervalX as * const _ as usize } , - 8usize , concat ! ( + 4usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapIntervalX ) )); assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapIntervalY as * const _ as usize } , - 24usize , concat ! ( + 12usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapIntervalY ) )); assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapDestination as * const _ as usize } , - 40usize , concat ! ( + 20usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapDestination ) )); assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapCoordinates as * const _ as usize } , - 48usize , concat ! ( + 32usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapCoordinates ) )); @@ -3167,7 +3167,7 @@ pub mod root { #[derive(Debug, Copy, Clone)] pub struct GetRootNodeOptions([u8; 0]); #[repr(C)] - #[derive(Debug, Copy, Clone)] + #[derive(Debug)] pub struct UnionMember { pub mStorage: root::mozilla::AlignedStorage2, } @@ -3370,6 +3370,7 @@ pub mod root { pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub _mOwningThread: root::nsAutoOwningThread, pub mOwner: root::nsCOMPtr, + pub mDocument: root::RefPtr, pub mCallback: root::RefPtr, pub mRoot: root::RefPtr, pub mRootMargin: root::nsCSSRect, @@ -3415,7 +3416,7 @@ pub mod root { #[test] fn bindgen_test_layout_DOMIntersectionObserver() { assert_eq!(::std::mem::size_of::() , - 208usize , concat ! ( + 216usize , concat ! ( "Size of: " , stringify ! ( DOMIntersectionObserver ) )); assert_eq! (::std::mem::align_of::() @@ -4852,6 +4853,9 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] + pub struct ImportRule([u8; 0]); + #[repr(C)] + #[derive(Debug, Copy, Clone)] pub struct Rule([u8; 0]); #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -5247,6 +5251,7 @@ pub mod root { pub mType: root::mozilla::StyleBackendType, pub mDisabled: bool, pub mDocumentAssociationMode: root::mozilla::StyleSheet_DocumentAssociationMode, + pub mInner: *mut root::mozilla::StyleSheetInfo, } pub type StyleSheet_HasThreadSafeRefCnt = root::mozilla::FalseType; #[repr(C)] @@ -5281,7 +5286,7 @@ pub mod root { } #[test] fn bindgen_test_layout_StyleSheet() { - assert_eq!(::std::mem::size_of::() , 120usize , concat + assert_eq!(::std::mem::size_of::() , 128usize , concat ! ( "Size of: " , stringify ! ( StyleSheet ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSheet ) )); @@ -5302,6 +5307,9 @@ pub mod root { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ServoStyleSheet([u8; 0]); + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct StyleSheetInfo([u8; 0]); #[repr(i16)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum UseCounter { @@ -5390,7 +5398,8 @@ pub mod root { eUseCounter_FileLastModifiedDate = 81, eUseCounter_ImageBitmapRenderingContext_TransferImageBitmap = 82, eUseCounter_URLCreateObjectURL_MediaStream = 83, - eUseCounter_Count = 84, + eUseCounter_XMLBaseAttribute = 84, + eUseCounter_Count = 85, } #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] @@ -7128,13 +7137,13 @@ pub mod root { pub mOffset: [u64; 2usize], pub mComputedOffset: f64, pub mTimingFunction: [u64; 18usize], - pub mComposite: [u64; 2usize], + pub mComposite: [u8; 2usize], pub mPropertyValues: root::nsTArray, } pub const Keyframe_kComputedOffsetNotSet: f64 = -1.; #[test] fn bindgen_test_layout_Keyframe() { - assert_eq!(::std::mem::size_of::() , 192usize , concat ! + assert_eq!(::std::mem::size_of::() , 184usize , concat ! ( "Size of: " , stringify ! ( Keyframe ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( Keyframe ) )); @@ -7160,7 +7169,7 @@ pub mod root { "::" , stringify ! ( mComposite ) )); assert_eq! (unsafe { & ( * ( 0 as * const Keyframe ) ) . mPropertyValues as - * const _ as usize } , 184usize , concat ! ( + * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mPropertyValues ) )); } @@ -7787,12 +7796,6 @@ pub mod root { pub type pair_first_type<_T1> = _T1; pub type pair_second_type<_T2> = _T2; #[repr(C)] - pub struct atomic<_Tp> { - pub _base: (), - pub _phantom_0: ::std::marker::PhantomData<_Tp>, - } - pub type atomic___base = [u8; 0usize]; - #[repr(C)] #[derive(Debug, Copy)] pub struct input_iterator_tag { pub _address: u8, @@ -7811,62 +7814,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug, Copy)] - pub struct forward_iterator_tag { - pub _address: u8, - } - #[test] - fn bindgen_test_layout_forward_iterator_tag() { - assert_eq!(::std::mem::size_of::() , 1usize - , concat ! ( - "Size of: " , stringify ! ( forward_iterator_tag ) )); - assert_eq! (::std::mem::align_of::() , - 1usize , concat ! ( - "Alignment of " , stringify ! ( forward_iterator_tag ) - )); - } - impl Clone for forward_iterator_tag { - fn clone(&self) -> Self { *self } - } - #[repr(C)] - #[derive(Debug, Copy)] - pub struct bidirectional_iterator_tag { - pub _address: u8, - } - #[test] - fn bindgen_test_layout_bidirectional_iterator_tag() { - assert_eq!(::std::mem::size_of::() , - 1usize , concat ! ( - "Size of: " , stringify ! ( bidirectional_iterator_tag - ) )); - assert_eq! (::std::mem::align_of::() , - 1usize , concat ! ( - "Alignment of " , stringify ! ( - bidirectional_iterator_tag ) )); - } - impl Clone for bidirectional_iterator_tag { - fn clone(&self) -> Self { *self } - } - #[repr(C)] - #[derive(Debug, Copy)] - pub struct random_access_iterator_tag { - pub _address: u8, - } - #[test] - fn bindgen_test_layout_random_access_iterator_tag() { - assert_eq!(::std::mem::size_of::() , - 1usize , concat ! ( - "Size of: " , stringify ! ( random_access_iterator_tag - ) )); - assert_eq! (::std::mem::align_of::() , - 1usize , concat ! ( - "Alignment of " , stringify ! ( - random_access_iterator_tag ) )); - } - impl Clone for random_access_iterator_tag { - fn clone(&self) -> Self { *self } - } - #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct iterator<_Category, _Tp, _Distance, _Pointer, _Reference> { pub _address: u8, @@ -7876,209 +7823,250 @@ pub mod root { pub _phantom_3: ::std::marker::PhantomData<_Pointer>, pub _phantom_4: ::std::marker::PhantomData<_Reference>, } + pub type iterator_iterator_category<_Category> = _Category; pub type iterator_value_type<_Tp> = _Tp; pub type iterator_difference_type<_Distance> = _Distance; pub type iterator_pointer<_Pointer> = _Pointer; pub type iterator_reference<_Reference> = _Reference; - pub type iterator_iterator_category<_Category> = _Category; #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct __bit_const_reference<_Cp> { - pub __seg_: root::std::__bit_const_reference___storage_pointer<_Cp>, - pub __mask_: root::std::__bit_const_reference___storage_type<_Cp>, + #[derive(Debug)] + pub struct atomic<_Tp> { + pub _M_i: _Tp, + } + pub mod chrono { + #[allow(unused_imports)] + use self::super::super::super::root; } - pub type __bit_const_reference___storage_type<_Cp> = _Cp; - pub type __bit_const_reference___storage_pointer<_Cp> = _Cp; } - pub type __int64_t = ::std::os::raw::c_longlong; - pub type __darwin_va_list = root::__builtin_va_list; - pub type __darwin_off_t = root::__int64_t; - pub type va_list = root::__darwin_va_list; - pub type fpos_t = root::__darwin_off_t; + pub mod __gnu_cxx { + #[allow(unused_imports)] + use self::super::super::root; + } + pub type __off_t = ::std::os::raw::c_long; + pub type __off64_t = ::std::os::raw::c_long; #[repr(C)] #[derive(Debug, Copy)] - pub struct __sbuf { - pub _base: *mut ::std::os::raw::c_uchar, - pub _size: ::std::os::raw::c_int, + pub struct _IO_FILE { + pub _flags: ::std::os::raw::c_int, + pub _IO_read_ptr: *mut ::std::os::raw::c_char, + pub _IO_read_end: *mut ::std::os::raw::c_char, + pub _IO_read_base: *mut ::std::os::raw::c_char, + pub _IO_write_base: *mut ::std::os::raw::c_char, + pub _IO_write_ptr: *mut ::std::os::raw::c_char, + pub _IO_write_end: *mut ::std::os::raw::c_char, + pub _IO_buf_base: *mut ::std::os::raw::c_char, + pub _IO_buf_end: *mut ::std::os::raw::c_char, + pub _IO_save_base: *mut ::std::os::raw::c_char, + pub _IO_backup_base: *mut ::std::os::raw::c_char, + pub _IO_save_end: *mut ::std::os::raw::c_char, + pub _markers: *mut root::_IO_marker, + pub _chain: *mut root::_IO_FILE, + pub _fileno: ::std::os::raw::c_int, + pub _flags2: ::std::os::raw::c_int, + pub _old_offset: root::__off_t, + pub _cur_column: ::std::os::raw::c_ushort, + pub _vtable_offset: ::std::os::raw::c_char, + pub _shortbuf: [::std::os::raw::c_char; 1usize], + pub _lock: *mut root::_IO_lock_t, + pub _offset: root::__off64_t, + pub __pad1: *mut ::std::os::raw::c_void, + pub __pad2: *mut ::std::os::raw::c_void, + pub __pad3: *mut ::std::os::raw::c_void, + pub __pad4: *mut ::std::os::raw::c_void, + pub __pad5: usize, + pub _mode: ::std::os::raw::c_int, + pub _unused2: [::std::os::raw::c_char; 20usize], } #[test] - fn bindgen_test_layout___sbuf() { - assert_eq!(::std::mem::size_of::<__sbuf>() , 16usize , concat ! ( - "Size of: " , stringify ! ( __sbuf ) )); - assert_eq! (::std::mem::align_of::<__sbuf>() , 8usize , concat ! ( - "Alignment of " , stringify ! ( __sbuf ) )); + fn bindgen_test_layout__IO_FILE() { + assert_eq!(::std::mem::size_of::<_IO_FILE>() , 216usize , concat ! ( + "Size of: " , stringify ! ( _IO_FILE ) )); + assert_eq! (::std::mem::align_of::<_IO_FILE>() , 8usize , concat ! ( + "Alignment of " , stringify ! ( _IO_FILE ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sbuf ) ) . _base as * const _ as + & ( * ( 0 as * const _IO_FILE ) ) . _flags as * const _ as usize } , 0usize , concat ! ( - "Alignment of field: " , stringify ! ( __sbuf ) , "::" , - stringify ! ( _base ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const __sbuf ) ) . _size as * const _ as - usize } , 8usize , concat ! ( - "Alignment of field: " , stringify ! ( __sbuf ) , "::" , - stringify ! ( _size ) )); - } - impl Clone for __sbuf { - fn clone(&self) -> Self { *self } - } - #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct __sFILEX([u8; 0]); - #[repr(C)] - #[derive(Debug, Copy)] - pub struct __sFILE { - pub _p: *mut ::std::os::raw::c_uchar, - pub _r: ::std::os::raw::c_int, - pub _w: ::std::os::raw::c_int, - pub _flags: ::std::os::raw::c_short, - pub _file: ::std::os::raw::c_short, - pub _bf: root::__sbuf, - pub _lbfsize: ::std::os::raw::c_int, - pub _cookie: *mut ::std::os::raw::c_void, - pub _close: ::std::option::Option ::std::os::raw::c_int>, - pub _read: ::std::option::Option ::std::os::raw::c_int>, - pub _seek: ::std::option::Option ::std::os::raw::c_longlong>, - pub _write: ::std::option::Option ::std::os::raw::c_int>, - pub _ub: root::__sbuf, - pub _extra: *mut root::__sFILEX, - pub _ur: ::std::os::raw::c_int, - pub _ubuf: [::std::os::raw::c_uchar; 3usize], - pub _nbuf: [::std::os::raw::c_uchar; 1usize], - pub _lb: root::__sbuf, - pub _blksize: ::std::os::raw::c_int, - pub _offset: root::fpos_t, - } - #[test] - fn bindgen_test_layout___sFILE() { - assert_eq!(::std::mem::size_of::<__sFILE>() , 152usize , concat ! ( - "Size of: " , stringify ! ( __sFILE ) )); - assert_eq! (::std::mem::align_of::<__sFILE>() , 8usize , concat ! ( - "Alignment of " , stringify ! ( __sFILE ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _p as * const _ as - usize } , 0usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _p ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _r as * const _ as - usize } , 8usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _r ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _w as * const _ as - usize } , 12usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _w ) )); - assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _flags as * const _ as - usize } , 16usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _flags ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _file as * const _ as - usize } , 18usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _file ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_ptr as * + const _ as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_read_ptr ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _bf as * const _ as - usize } , 24usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _bf ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_end as * + const _ as usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_read_end ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _lbfsize as * const _ - as usize } , 40usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _lbfsize ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_read_base as * + const _ as usize } , 24usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_read_base ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _cookie as * const _ as - usize } , 48usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _cookie ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_base as * + const _ as usize } , 32usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_write_base ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _close as * const _ as - usize } , 56usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _close ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_ptr as * + const _ as usize } , 40usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_write_ptr ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _read as * const _ as - usize } , 64usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _read ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_write_end as * + const _ as usize } , 48usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_write_end ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _seek as * const _ as - usize } , 72usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _seek ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_base as * + const _ as usize } , 56usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_buf_base ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _write as * const _ as - usize } , 80usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _write ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_buf_end as * const + _ as usize } , 64usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_buf_end ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _ub as * const _ as - usize } , 88usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _ub ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_base as * + const _ as usize } , 72usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_save_base ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _extra as * const _ as + & ( * ( 0 as * const _IO_FILE ) ) . _IO_backup_base as * + const _ as usize } , 80usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_backup_base ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _IO_save_end as * + const _ as usize } , 88usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _IO_save_end ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _markers as * const _ + as usize } , 96usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _markers ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _chain as * const _ as usize } , 104usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _extra ) )); + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _chain ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _ur as * const _ as - usize } , 112usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _ur ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _fileno as * const _ + as usize } , 112usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _fileno ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _ubuf as * const _ as - usize } , 116usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _ubuf ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _flags2 as * const _ + as usize } , 116usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _flags2 ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _nbuf as * const _ as - usize } , 119usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _nbuf ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _old_offset as * const + _ as usize } , 120usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _old_offset ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _lb as * const _ as - usize } , 120usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _lb ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _cur_column as * const + _ as usize } , 128usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _cur_column ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _blksize as * const _ - as usize } , 136usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , - stringify ! ( _blksize ) )); + & ( * ( 0 as * const _IO_FILE ) ) . _vtable_offset as * + const _ as usize } , 130usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _vtable_offset ) )); assert_eq! (unsafe { - & ( * ( 0 as * const __sFILE ) ) . _offset as * const _ as - usize } , 144usize , concat ! ( - "Alignment of field: " , stringify ! ( __sFILE ) , "::" , + & ( * ( 0 as * const _IO_FILE ) ) . _shortbuf as * const _ + as usize } , 131usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _shortbuf ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _lock as * const _ as + usize } , 136usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _lock ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _offset as * const _ + as usize } , 144usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , stringify ! ( _offset ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . __pad1 as * const _ as + usize } , 152usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( __pad1 ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . __pad2 as * const _ as + usize } , 160usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( __pad2 ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . __pad3 as * const _ as + usize } , 168usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( __pad3 ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . __pad4 as * const _ as + usize } , 176usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( __pad4 ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . __pad5 as * const _ as + usize } , 184usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( __pad5 ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _mode as * const _ as + usize } , 192usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _mode ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_FILE ) ) . _unused2 as * const _ + as usize } , 196usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_FILE ) , "::" , + stringify ! ( _unused2 ) )); } - impl Clone for __sFILE { + impl Clone for _IO_FILE { + fn clone(&self) -> Self { *self } + } + pub type FILE = root::_IO_FILE; + pub type va_list = root::__builtin_va_list; + pub type _IO_lock_t = ::std::os::raw::c_void; + #[repr(C)] + #[derive(Debug, Copy)] + pub struct _IO_marker { + pub _next: *mut root::_IO_marker, + pub _sbuf: *mut root::_IO_FILE, + pub _pos: ::std::os::raw::c_int, + } + #[test] + fn bindgen_test_layout__IO_marker() { + assert_eq!(::std::mem::size_of::<_IO_marker>() , 24usize , concat ! ( + "Size of: " , stringify ! ( _IO_marker ) )); + assert_eq! (::std::mem::align_of::<_IO_marker>() , 8usize , concat ! ( + "Alignment of " , stringify ! ( _IO_marker ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_marker ) ) . _next as * const _ + as usize } , 0usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_marker ) , "::" + , stringify ! ( _next ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_marker ) ) . _sbuf as * const _ + as usize } , 8usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_marker ) , "::" + , stringify ! ( _sbuf ) )); + assert_eq! (unsafe { + & ( * ( 0 as * const _IO_marker ) ) . _pos as * const _ as + usize } , 16usize , concat ! ( + "Alignment of field: " , stringify ! ( _IO_marker ) , "::" + , stringify ! ( _pos ) )); + } + impl Clone for _IO_marker { fn clone(&self) -> Self { *self } } - pub type FILE = root::__sFILE; /** * MozRefCountType is Mozilla's reference count type. * @@ -8589,6 +8577,11 @@ pub mod root { NS_ERROR_UC_UPDATE_WRONG_REMOVAL_INDICES = 2154758148, NS_ERROR_UC_UPDATE_CHECKSUM_MISMATCH = 2154758149, NS_ERROR_UC_UPDATE_MISSING_CHECKSUM = 2154758150, + NS_ERROR_UC_UPDATE_SHUTDOWNING = 2154758151, + NS_ERROR_UC_UPDATE_TABLE_NOT_FOUND = 2154758152, + NS_ERROR_UC_UPDATE_BUILD_PREFIX_FAILURE = 2154758153, + NS_ERROR_UC_UPDATE_FAIL_TO_WRITE_DISK = 2154758154, + NS_ERROR_UC_UPDATE_PROTOCOL_PARSER_ERROR = 2154758155, NS_ERROR_INTERNAL_ERRORRESULT_JS_EXCEPTION = 2154823681, NS_ERROR_INTERNAL_ERRORRESULT_DOMEXCEPTION = 2154823682, NS_ERROR_INTERNAL_ERRORRESULT_EXCEPTION_ON_JSCONTEXT = 2154823683, @@ -9011,7 +9004,7 @@ pub mod root { pub majorGCNumber_: u64, pub reason: *const ::std::os::raw::c_char, pub nonincrementalReason: *const ::std::os::raw::c_char, - pub collections: [u64; 6usize], + pub collections: [u64; 5usize], } #[repr(C)] #[derive(Debug, Copy)] @@ -9055,7 +9048,7 @@ pub mod root { #[test] fn bindgen_test_layout_GarbageCollectionEvent() { assert_eq!(::std::mem::size_of::() , - 72usize , concat ! ( + 64usize , concat ! ( "Size of: " , stringify ! ( GarbageCollectionEvent ) )); assert_eq! (::std::mem::align_of::() , @@ -11433,7 +11426,6 @@ pub mod root { pub mSubtreeModifiedDepth: u32, pub mDisplayDocument: root::nsCOMPtr, pub mEventsSuppressed: u32, - pub mAnimationsPaused: u32, /** * The number number of external scripts (ones with the src attribute) that * have this document as their owner and that are being evaluated right now. @@ -11651,9 +11643,6 @@ pub mod root { *mut ::std::os::raw::c_void)>; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum nsIDocument_SuppressionType { eAnimationsOnly = 1, eEvents = 3, } - #[repr(u32)] - #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsIDocument_DocumentTheme { Doc_Theme_Uninitialized = 0, Doc_Theme_None = 1, @@ -11707,7 +11696,8 @@ pub mod root { eFileLastModifiedDate = 38, eImageBitmapRenderingContext_TransferImageBitmap = 39, eURLCreateObjectURL_MediaStream = 40, - eDeprecatedOperationCount = 41, + eXMLBaseAttribute = 41, + eDeprecatedOperationCount = 42, } #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] @@ -11742,7 +11732,7 @@ pub mod root { pub struct nsIDocument_FrameRequest([u8; 0]); #[test] fn bindgen_test_layout_nsIDocument() { - assert_eq!(::std::mem::size_of::() , 1032usize , concat ! + assert_eq!(::std::mem::size_of::() , 1024usize , concat ! ( "Size of: " , stringify ! ( nsIDocument ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument ) )); @@ -14777,7 +14767,7 @@ pub mod root { pub mScrollPositionClampingScrollPortSize: root::nsSize, pub mWeakFrames: *mut root::nsWeakFrame, pub mCanvasBackgroundColor: root::nscolor, - pub mResolution: [u64; 2usize], + pub mResolution: [u32; 2usize], pub mSelectionFlags: i16, pub mRenderFlags: root::nsIPresShell_RenderFlags, pub _bitfield_1: u8, @@ -15111,7 +15101,7 @@ pub mod root { } #[test] fn bindgen_test_layout_nsIPresShell() { - assert_eq!(::std::mem::size_of::() , 408usize , concat ! + assert_eq!(::std::mem::size_of::() , 392usize , concat ! ( "Size of: " , stringify ! ( nsIPresShell ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIPresShell ) )); @@ -15208,87 +15198,87 @@ pub mod root { "::" , stringify ! ( mCanvasBackgroundColor ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mResolution as * - const _ as usize } , 328usize , concat ! ( + const _ as usize } , 324usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mResolution ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mSelectionFlags as - * const _ as usize } , 344usize , concat ! ( + * const _ as usize } , 332usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mSelectionFlags ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mRenderFlags as * - const _ as usize } , 346usize , concat ! ( + const _ as usize } , 334usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mRenderFlags ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPresShellId as * - const _ as usize } , 352usize , concat ! ( + const _ as usize } , 340usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPresShellId ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . - mChangedScopeStyleRoots as * const _ as usize } , 360usize + mChangedScopeStyleRoots as * const _ as usize } , 344usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mChangedScopeStyleRoots ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEmPerLine as * const _ as usize } , - 384usize , concat ! ( + 368usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEmPerLine ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationMinTwips as * const _ as usize } , - 388usize , concat ! ( + 372usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationMinTwips ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationLineThreshold as * const _ as usize } , - 392usize , concat ! ( + 376usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationLineThreshold ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationForceEnabled as * const _ as usize } , - 396usize , concat ! ( + 380usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationForceEnabled ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationDisabledInMasterProcess as * const _ as - usize } , 397usize , concat ! ( + usize } , 381usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationDisabledInMasterProcess ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEnabled as * const _ as usize } , - 398usize , concat ! ( + 382usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEnabled ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPaintingIsFrozen - as * const _ as usize } , 399usize , concat ! ( + as * const _ as usize } , 383usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPaintingIsFrozen ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEnabledIsDirty as * const _ as usize } , - 400usize , concat ! ( + 384usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEnabledIsDirty ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mIsNeverPainting - as * const _ as usize } , 401usize , concat ! ( + as * const _ as usize } , 385usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mIsNeverPainting ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mInFlush as * - const _ as usize } , 402usize , concat ! ( + const _ as usize } , 386usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mInFlush ) )); } @@ -15333,63 +15323,63 @@ pub mod root { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nsDOMMutationObserver([u8; 0]); - pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_LISTENERMANAGER; - pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_PROPERTIES; - pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_ANONYMOUS_ROOT; - pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; - pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS_ROOT; - pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_FORCE_XBL_BINDINGS; - pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_MAY_BE_IN_BINDING_MNGR; - pub const NODE_IS_EDITABLE: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_EDITABLE; - pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS; - pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_IN_SHADOW_TREE; - pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_EMPTY_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_SLOW_SELECTOR; - pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_EDGE_CHILD_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; - pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_ALL_SELECTOR_FLAGS; - pub const NODE_NEEDS_FRAME: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_NEEDS_FRAME; - pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_DESCENDANTS_NEED_FRAMES; - pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_ACCESSKEY; - pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_DIRECTION_RTL; - pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_DIRECTION_LTR; - pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_ALL_DIRECTION_FLAGS; - pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_CHROME_ONLY_ACCESS; - pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; - pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1; - pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_2; - pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1; - pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_TYPE_SPECIFIC_BITS_OFFSET; + pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_LISTENERMANAGER; + pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_PROPERTIES; + pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_ANONYMOUS_ROOT; + pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; + pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_NATIVE_ANONYMOUS_ROOT; + pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_FORCE_XBL_BINDINGS; + pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_MAY_BE_IN_BINDING_MNGR; + pub const NODE_IS_EDITABLE: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_EDITABLE; + pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_NATIVE_ANONYMOUS; + pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_IN_SHADOW_TREE; + pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_EMPTY_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_SLOW_SELECTOR; + pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_EDGE_CHILD_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; + pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_ALL_SELECTOR_FLAGS; + pub const NODE_NEEDS_FRAME: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_NEEDS_FRAME; + pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_DESCENDANTS_NEED_FRAMES; + pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_ACCESSKEY; + pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_DIRECTION_RTL; + pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_HAS_DIRECTION_LTR; + pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_ALL_DIRECTION_FLAGS; + pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_CHROME_ONLY_ACCESS; + pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; + pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_1; + pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_2; + pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_SHARED_RESTYLE_BIT_1; + pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_118 = + _bindgen_ty_118::NODE_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum _bindgen_ty_28 { + pub enum _bindgen_ty_118 { NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -22426,7 +22416,7 @@ pub mod root { #[repr(C)] #[derive(Debug)] pub struct CachedBorderImageData { - pub mCachedSVGViewportSize: [u64; 2usize], + pub mCachedSVGViewportSize: [u32; 3usize], pub mSubImages: root::nsCOMArray, } #[test] @@ -25453,6 +25443,8 @@ pub mod root { pub type RawGeckoDocument = root::nsIDocument; pub type RawGeckoPresContext = root::nsPresContext; pub type RawGeckoKeyframeList = root::nsTArray; + pub type RawGeckoComputedKeyframeValuesList = + root::nsTArray>; pub type RawGeckoAnimationValueList = root::nsTArray; pub type RawServoAnimationValueBorrowedList = @@ -25472,6 +25464,9 @@ pub mod root { *const root::RawServoAnimationValueBorrowedList; pub type RawGeckoKeyframeListBorrowedMut = *mut root::RawGeckoKeyframeList; + pub type RawGeckoKeyframeListBorrowed = *const root::RawGeckoKeyframeList; + pub type RawGeckoComputedKeyframeValuesListBorrowedMut = + *mut root::RawGeckoComputedKeyframeValuesList; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ElementRuleProcessorData([u8; 0]); @@ -26969,14 +26964,14 @@ pub mod root { } #[test] fn __bindgen_test_layout_template_91() { - assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat ! + assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( - [u64; 2usize] ) )); - assert_eq!(::std::mem::align_of::<[u64; 2usize]>() , 8usize , concat ! + [u32; 3usize] ) )); + assert_eq!(::std::mem::align_of::<[u32; 3usize]>() , 4usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - [u64; 2usize] ) )); + [u32; 3usize] ) )); } #[test] fn __bindgen_test_layout_template_92() { diff --git a/components/style/gecko_bindings/structs_release.rs b/components/style/gecko_bindings/structs_release.rs index 75b274131e7..76debc8e158 100644 --- a/components/style/gecko_bindings/structs_release.rs +++ b/components/style/gecko_bindings/structs_release.rs @@ -1901,14 +1901,14 @@ pub mod root { pub struct ScrollSnapInfo { pub mScrollSnapTypeX: u8, pub mScrollSnapTypeY: u8, - pub mScrollSnapIntervalX: [u64; 2usize], - pub mScrollSnapIntervalY: [u64; 2usize], + pub mScrollSnapIntervalX: [u32; 2usize], + pub mScrollSnapIntervalY: [u32; 2usize], pub mScrollSnapDestination: root::nsPoint, pub mScrollSnapCoordinates: root::nsTArray, } #[test] fn bindgen_test_layout_ScrollSnapInfo() { - assert_eq!(::std::mem::size_of::() , 56usize , + assert_eq!(::std::mem::size_of::() , 40usize , concat ! ( "Size of: " , stringify ! ( ScrollSnapInfo ) )); assert_eq! (::std::mem::align_of::() , 8usize @@ -1932,28 +1932,28 @@ pub mod root { assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapIntervalX as * const _ as usize } , - 8usize , concat ! ( + 4usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapIntervalX ) )); assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapIntervalY as * const _ as usize } , - 24usize , concat ! ( + 12usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapIntervalY ) )); assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapDestination as * const _ as usize } , - 40usize , concat ! ( + 20usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapDestination ) )); assert_eq! (unsafe { & ( * ( 0 as * const ScrollSnapInfo ) ) . mScrollSnapCoordinates as * const _ as usize } , - 48usize , concat ! ( + 32usize , concat ! ( "Alignment of field: " , stringify ! ( ScrollSnapInfo ) , "::" , stringify ! ( mScrollSnapCoordinates ) )); @@ -3151,7 +3151,7 @@ pub mod root { #[derive(Debug, Copy, Clone)] pub struct GetRootNodeOptions([u8; 0]); #[repr(C)] - #[derive(Debug, Copy, Clone)] + #[derive(Debug)] pub struct UnionMember { pub mStorage: root::mozilla::AlignedStorage2, } @@ -3352,6 +3352,7 @@ pub mod root { pub _base_1: root::nsWrapperCache, pub mRefCnt: root::nsCycleCollectingAutoRefCnt, pub mOwner: root::nsCOMPtr, + pub mDocument: root::RefPtr, pub mCallback: root::RefPtr, pub mRoot: root::RefPtr, pub mRootMargin: root::nsCSSRect, @@ -3397,7 +3398,7 @@ pub mod root { #[test] fn bindgen_test_layout_DOMIntersectionObserver() { assert_eq!(::std::mem::size_of::() , - 192usize , concat ! ( + 200usize , concat ! ( "Size of: " , stringify ! ( DOMIntersectionObserver ) )); assert_eq! (::std::mem::align_of::() @@ -4723,6 +4724,9 @@ pub mod root { } #[repr(C)] #[derive(Debug, Copy, Clone)] + pub struct ImportRule([u8; 0]); + #[repr(C)] + #[derive(Debug, Copy, Clone)] pub struct Rule([u8; 0]); #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -5087,6 +5091,7 @@ pub mod root { pub mType: root::mozilla::StyleBackendType, pub mDisabled: bool, pub mDocumentAssociationMode: root::mozilla::StyleSheet_DocumentAssociationMode, + pub mInner: *mut root::mozilla::StyleSheetInfo, } pub type StyleSheet_HasThreadSafeRefCnt = root::mozilla::FalseType; #[repr(C)] @@ -5121,7 +5126,7 @@ pub mod root { } #[test] fn bindgen_test_layout_StyleSheet() { - assert_eq!(::std::mem::size_of::() , 112usize , concat + assert_eq!(::std::mem::size_of::() , 120usize , concat ! ( "Size of: " , stringify ! ( StyleSheet ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( StyleSheet ) )); @@ -5142,6 +5147,9 @@ pub mod root { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ServoStyleSheet([u8; 0]); + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct StyleSheetInfo([u8; 0]); #[repr(i16)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum UseCounter { @@ -5230,7 +5238,8 @@ pub mod root { eUseCounter_FileLastModifiedDate = 81, eUseCounter_ImageBitmapRenderingContext_TransferImageBitmap = 82, eUseCounter_URLCreateObjectURL_MediaStream = 83, - eUseCounter_Count = 84, + eUseCounter_XMLBaseAttribute = 84, + eUseCounter_Count = 85, } #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] @@ -6941,13 +6950,13 @@ pub mod root { pub mOffset: [u64; 2usize], pub mComputedOffset: f64, pub mTimingFunction: [u64; 18usize], - pub mComposite: [u64; 2usize], + pub mComposite: [u8; 2usize], pub mPropertyValues: root::nsTArray, } pub const Keyframe_kComputedOffsetNotSet: f64 = -1.; #[test] fn bindgen_test_layout_Keyframe() { - assert_eq!(::std::mem::size_of::() , 192usize , concat ! + assert_eq!(::std::mem::size_of::() , 184usize , concat ! ( "Size of: " , stringify ! ( Keyframe ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( Keyframe ) )); @@ -6973,7 +6982,7 @@ pub mod root { "::" , stringify ! ( mComposite ) )); assert_eq! (unsafe { & ( * ( 0 as * const Keyframe ) ) . mPropertyValues as - * const _ as usize } , 184usize , concat ! ( + * const _ as usize } , 176usize , concat ! ( "Alignment of field: " , stringify ! ( Keyframe ) , "::" , stringify ! ( mPropertyValues ) )); } @@ -7600,12 +7609,6 @@ pub mod root { pub type pair_first_type<_T1> = _T1; pub type pair_second_type<_T2> = _T2; #[repr(C)] - pub struct atomic<_Tp> { - pub _base: (), - pub _phantom_0: ::std::marker::PhantomData<_Tp>, - } - pub type atomic___base = [u8; 0usize]; - #[repr(C)] #[derive(Debug, Copy)] pub struct input_iterator_tag { pub _address: u8, @@ -7624,62 +7627,6 @@ pub mod root { fn clone(&self) -> Self { *self } } #[repr(C)] - #[derive(Debug, Copy)] - pub struct forward_iterator_tag { - pub _address: u8, - } - #[test] - fn bindgen_test_layout_forward_iterator_tag() { - assert_eq!(::std::mem::size_of::() , 1usize - , concat ! ( - "Size of: " , stringify ! ( forward_iterator_tag ) )); - assert_eq! (::std::mem::align_of::() , - 1usize , concat ! ( - "Alignment of " , stringify ! ( forward_iterator_tag ) - )); - } - impl Clone for forward_iterator_tag { - fn clone(&self) -> Self { *self } - } - #[repr(C)] - #[derive(Debug, Copy)] - pub struct bidirectional_iterator_tag { - pub _address: u8, - } - #[test] - fn bindgen_test_layout_bidirectional_iterator_tag() { - assert_eq!(::std::mem::size_of::() , - 1usize , concat ! ( - "Size of: " , stringify ! ( bidirectional_iterator_tag - ) )); - assert_eq! (::std::mem::align_of::() , - 1usize , concat ! ( - "Alignment of " , stringify ! ( - bidirectional_iterator_tag ) )); - } - impl Clone for bidirectional_iterator_tag { - fn clone(&self) -> Self { *self } - } - #[repr(C)] - #[derive(Debug, Copy)] - pub struct random_access_iterator_tag { - pub _address: u8, - } - #[test] - fn bindgen_test_layout_random_access_iterator_tag() { - assert_eq!(::std::mem::size_of::() , - 1usize , concat ! ( - "Size of: " , stringify ! ( random_access_iterator_tag - ) )); - assert_eq! (::std::mem::align_of::() , - 1usize , concat ! ( - "Alignment of " , stringify ! ( - random_access_iterator_tag ) )); - } - impl Clone for random_access_iterator_tag { - fn clone(&self) -> Self { *self } - } - #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct iterator<_Category, _Tp, _Distance, _Pointer, _Reference> { pub _address: u8, @@ -7689,22 +7636,22 @@ pub mod root { pub _phantom_3: ::std::marker::PhantomData<_Pointer>, pub _phantom_4: ::std::marker::PhantomData<_Reference>, } + pub type iterator_iterator_category<_Category> = _Category; pub type iterator_value_type<_Tp> = _Tp; pub type iterator_difference_type<_Distance> = _Distance; pub type iterator_pointer<_Pointer> = _Pointer; pub type iterator_reference<_Reference> = _Reference; - pub type iterator_iterator_category<_Category> = _Category; #[repr(C)] - #[derive(Debug, Copy, Clone)] - pub struct __bit_const_reference<_Cp> { - pub __seg_: root::std::__bit_const_reference___storage_pointer<_Cp>, - pub __mask_: root::std::__bit_const_reference___storage_type<_Cp>, + #[derive(Debug)] + pub struct atomic<_Tp> { + pub _M_i: _Tp, } - pub type __bit_const_reference___storage_type<_Cp> = _Cp; - pub type __bit_const_reference___storage_pointer<_Cp> = _Cp; } - pub type __darwin_va_list = root::__builtin_va_list; - pub type va_list = root::__darwin_va_list; + pub mod __gnu_cxx { + #[allow(unused_imports)] + use self::super::super::root; + } + pub type va_list = root::__builtin_va_list; /** * MozRefCountType is Mozilla's reference count type. * @@ -8215,6 +8162,11 @@ pub mod root { NS_ERROR_UC_UPDATE_WRONG_REMOVAL_INDICES = 2154758148, NS_ERROR_UC_UPDATE_CHECKSUM_MISMATCH = 2154758149, NS_ERROR_UC_UPDATE_MISSING_CHECKSUM = 2154758150, + NS_ERROR_UC_UPDATE_SHUTDOWNING = 2154758151, + NS_ERROR_UC_UPDATE_TABLE_NOT_FOUND = 2154758152, + NS_ERROR_UC_UPDATE_BUILD_PREFIX_FAILURE = 2154758153, + NS_ERROR_UC_UPDATE_FAIL_TO_WRITE_DISK = 2154758154, + NS_ERROR_UC_UPDATE_PROTOCOL_PARSER_ERROR = 2154758155, NS_ERROR_INTERNAL_ERRORRESULT_JS_EXCEPTION = 2154823681, NS_ERROR_INTERNAL_ERRORRESULT_DOMEXCEPTION = 2154823682, NS_ERROR_INTERNAL_ERRORRESULT_EXCEPTION_ON_JSCONTEXT = 2154823683, @@ -8637,7 +8589,7 @@ pub mod root { pub majorGCNumber_: u64, pub reason: *const ::std::os::raw::c_char, pub nonincrementalReason: *const ::std::os::raw::c_char, - pub collections: [u64; 4usize], + pub collections: [u64; 3usize], } #[repr(C)] #[derive(Debug, Copy)] @@ -8681,7 +8633,7 @@ pub mod root { #[test] fn bindgen_test_layout_GarbageCollectionEvent() { assert_eq!(::std::mem::size_of::() , - 56usize , concat ! ( + 48usize , concat ! ( "Size of: " , stringify ! ( GarbageCollectionEvent ) )); assert_eq! (::std::mem::align_of::() , @@ -11022,7 +10974,6 @@ pub mod root { pub mSubtreeModifiedDepth: u32, pub mDisplayDocument: root::nsCOMPtr, pub mEventsSuppressed: u32, - pub mAnimationsPaused: u32, /** * The number number of external scripts (ones with the src attribute) that * have this document as their owner and that are being evaluated right now. @@ -11240,9 +11191,6 @@ pub mod root { *mut ::std::os::raw::c_void)>; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum nsIDocument_SuppressionType { eAnimationsOnly = 1, eEvents = 3, } - #[repr(u32)] - #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum nsIDocument_DocumentTheme { Doc_Theme_Uninitialized = 0, Doc_Theme_None = 1, @@ -11296,7 +11244,8 @@ pub mod root { eFileLastModifiedDate = 38, eImageBitmapRenderingContext_TransferImageBitmap = 39, eURLCreateObjectURL_MediaStream = 40, - eDeprecatedOperationCount = 41, + eXMLBaseAttribute = 41, + eDeprecatedOperationCount = 42, } #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] @@ -11331,7 +11280,7 @@ pub mod root { pub struct nsIDocument_FrameRequest([u8; 0]); #[test] fn bindgen_test_layout_nsIDocument() { - assert_eq!(::std::mem::size_of::() , 992usize , concat ! + assert_eq!(::std::mem::size_of::() , 984usize , concat ! ( "Size of: " , stringify ! ( nsIDocument ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIDocument ) )); @@ -14262,7 +14211,7 @@ pub mod root { pub mScrollPositionClampingScrollPortSize: root::nsSize, pub mWeakFrames: *mut root::nsWeakFrame, pub mCanvasBackgroundColor: root::nscolor, - pub mResolution: [u64; 2usize], + pub mResolution: [u32; 2usize], pub mSelectionFlags: i16, pub mRenderFlags: root::nsIPresShell_RenderFlags, pub _bitfield_1: u8, @@ -14596,7 +14545,7 @@ pub mod root { } #[test] fn bindgen_test_layout_nsIPresShell() { - assert_eq!(::std::mem::size_of::() , 336usize , concat ! + assert_eq!(::std::mem::size_of::() , 320usize , concat ! ( "Size of: " , stringify ! ( nsIPresShell ) )); assert_eq! (::std::mem::align_of::() , 8usize , concat ! ( "Alignment of " , stringify ! ( nsIPresShell ) )); @@ -14682,87 +14631,87 @@ pub mod root { "::" , stringify ! ( mCanvasBackgroundColor ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mResolution as * - const _ as usize } , 256usize , concat ! ( + const _ as usize } , 252usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mResolution ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mSelectionFlags as - * const _ as usize } , 272usize , concat ! ( + * const _ as usize } , 260usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mSelectionFlags ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mRenderFlags as * - const _ as usize } , 274usize , concat ! ( + const _ as usize } , 262usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mRenderFlags ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPresShellId as * - const _ as usize } , 280usize , concat ! ( + const _ as usize } , 268usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPresShellId ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . - mChangedScopeStyleRoots as * const _ as usize } , 288usize + mChangedScopeStyleRoots as * const _ as usize } , 272usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mChangedScopeStyleRoots ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEmPerLine as * const _ as usize } , - 312usize , concat ! ( + 296usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEmPerLine ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationMinTwips as * const _ as usize } , - 316usize , concat ! ( + 300usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationMinTwips ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationLineThreshold as * const _ as usize } , - 320usize , concat ! ( + 304usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationLineThreshold ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationForceEnabled as * const _ as usize } , - 324usize , concat ! ( + 308usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationForceEnabled ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationDisabledInMasterProcess as * const _ as - usize } , 325usize , concat ! ( + usize } , 309usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationDisabledInMasterProcess ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEnabled as * const _ as usize } , - 326usize , concat ! ( + 310usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEnabled ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mPaintingIsFrozen - as * const _ as usize } , 327usize , concat ! ( + as * const _ as usize } , 311usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mPaintingIsFrozen ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mFontSizeInflationEnabledIsDirty as * const _ as usize } , - 328usize , concat ! ( + 312usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mFontSizeInflationEnabledIsDirty ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mIsNeverPainting - as * const _ as usize } , 329usize , concat ! ( + as * const _ as usize } , 313usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mIsNeverPainting ) )); assert_eq! (unsafe { & ( * ( 0 as * const nsIPresShell ) ) . mInFlush as * - const _ as usize } , 330usize , concat ! ( + const _ as usize } , 314usize , concat ! ( "Alignment of field: " , stringify ! ( nsIPresShell ) , "::" , stringify ! ( mInFlush ) )); } @@ -14800,63 +14749,63 @@ pub mod root { #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct nsDOMMutationObserver([u8; 0]); - pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_LISTENERMANAGER; - pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_PROPERTIES; - pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_ANONYMOUS_ROOT; - pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; - pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS_ROOT; - pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_FORCE_XBL_BINDINGS; - pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_MAY_BE_IN_BINDING_MNGR; - pub const NODE_IS_EDITABLE: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_EDITABLE; - pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_NATIVE_ANONYMOUS; - pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_IN_SHADOW_TREE; - pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_EMPTY_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_SLOW_SELECTOR; - pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_EDGE_CHILD_SELECTOR; - pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; - pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_ALL_SELECTOR_FLAGS; - pub const NODE_NEEDS_FRAME: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_NEEDS_FRAME; - pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_DESCENDANTS_NEED_FRAMES; - pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_ACCESSKEY; - pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_DIRECTION_RTL; - pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_HAS_DIRECTION_LTR; - pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_ALL_DIRECTION_FLAGS; - pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_CHROME_ONLY_ACCESS; - pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; - pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1; - pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_2; - pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_SHARED_RESTYLE_BIT_1; - pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_28 = - _bindgen_ty_28::NODE_TYPE_SPECIFIC_BITS_OFFSET; + pub const NODE_HAS_LISTENERMANAGER: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_LISTENERMANAGER; + pub const NODE_HAS_PROPERTIES: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_PROPERTIES; + pub const NODE_IS_ANONYMOUS_ROOT: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_ANONYMOUS_ROOT; + pub const NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_IN_NATIVE_ANONYMOUS_SUBTREE; + pub const NODE_IS_NATIVE_ANONYMOUS_ROOT: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_NATIVE_ANONYMOUS_ROOT; + pub const NODE_FORCE_XBL_BINDINGS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_FORCE_XBL_BINDINGS; + pub const NODE_MAY_BE_IN_BINDING_MNGR: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_MAY_BE_IN_BINDING_MNGR; + pub const NODE_IS_EDITABLE: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_EDITABLE; + pub const NODE_IS_NATIVE_ANONYMOUS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_NATIVE_ANONYMOUS; + pub const NODE_IS_IN_SHADOW_TREE: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_IN_SHADOW_TREE; + pub const NODE_HAS_EMPTY_SELECTOR: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_EMPTY_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_SLOW_SELECTOR; + pub const NODE_HAS_EDGE_CHILD_SELECTOR: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_EDGE_CHILD_SELECTOR; + pub const NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_SLOW_SELECTOR_LATER_SIBLINGS; + pub const NODE_ALL_SELECTOR_FLAGS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_ALL_SELECTOR_FLAGS; + pub const NODE_NEEDS_FRAME: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_NEEDS_FRAME; + pub const NODE_DESCENDANTS_NEED_FRAMES: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_DESCENDANTS_NEED_FRAMES; + pub const NODE_HAS_ACCESSKEY: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_ACCESSKEY; + pub const NODE_HAS_DIRECTION_RTL: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_DIRECTION_RTL; + pub const NODE_HAS_DIRECTION_LTR: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_HAS_DIRECTION_LTR; + pub const NODE_ALL_DIRECTION_FLAGS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_ALL_DIRECTION_FLAGS; + pub const NODE_CHROME_ONLY_ACCESS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_CHROME_ONLY_ACCESS; + pub const NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_IS_ROOT_OF_CHROME_ONLY_ACCESS; + pub const NODE_SHARED_RESTYLE_BIT_1: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_1; + pub const NODE_SHARED_RESTYLE_BIT_2: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_2; + pub const NODE_HAS_DIRTY_DESCENDANTS_FOR_SERVO: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_SHARED_RESTYLE_BIT_1; + pub const NODE_TYPE_SPECIFIC_BITS_OFFSET: root::_bindgen_ty_105 = + _bindgen_ty_105::NODE_TYPE_SPECIFIC_BITS_OFFSET; #[repr(u32)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] - pub enum _bindgen_ty_28 { + pub enum _bindgen_ty_105 { NODE_HAS_LISTENERMANAGER = 4, NODE_HAS_PROPERTIES = 8, NODE_IS_ANONYMOUS_ROOT = 16, @@ -21824,7 +21773,7 @@ pub mod root { #[repr(C)] #[derive(Debug)] pub struct CachedBorderImageData { - pub mCachedSVGViewportSize: [u64; 2usize], + pub mCachedSVGViewportSize: [u32; 3usize], pub mSubImages: root::nsCOMArray, } #[test] @@ -24851,6 +24800,8 @@ pub mod root { pub type RawGeckoDocument = root::nsIDocument; pub type RawGeckoPresContext = root::nsPresContext; pub type RawGeckoKeyframeList = root::nsTArray; + pub type RawGeckoComputedKeyframeValuesList = + root::nsTArray>; pub type RawGeckoAnimationValueList = root::nsTArray; pub type RawServoAnimationValueBorrowedList = @@ -24870,6 +24821,9 @@ pub mod root { *const root::RawServoAnimationValueBorrowedList; pub type RawGeckoKeyframeListBorrowedMut = *mut root::RawGeckoKeyframeList; + pub type RawGeckoKeyframeListBorrowed = *const root::RawGeckoKeyframeList; + pub type RawGeckoComputedKeyframeValuesListBorrowedMut = + *mut root::RawGeckoComputedKeyframeValuesList; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ElementRuleProcessorData([u8; 0]); @@ -26367,14 +26321,14 @@ pub mod root { } #[test] fn __bindgen_test_layout_template_91() { - assert_eq!(::std::mem::size_of::<[u64; 2usize]>() , 16usize , concat ! + assert_eq!(::std::mem::size_of::<[u32; 3usize]>() , 12usize , concat ! ( "Size of template specialization: " , stringify ! ( - [u64; 2usize] ) )); - assert_eq!(::std::mem::align_of::<[u64; 2usize]>() , 8usize , concat ! + [u32; 3usize] ) )); + assert_eq!(::std::mem::align_of::<[u32; 3usize]>() , 4usize , concat ! ( "Alignment of template specialization: " , stringify ! ( - [u64; 2usize] ) )); + [u32; 3usize] ) )); } #[test] fn __bindgen_test_layout_template_92() { diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs index 054810c9424..9791ff7837d 100644 --- a/ports/geckolib/glue.rs +++ b/ports/geckolib/glue.rs @@ -32,6 +32,7 @@ use style::gecko::traversal::RecalcStyleOnly; use style::gecko::wrapper::DUMMY_BASE_URL; use style::gecko::wrapper::GeckoElement; use style::gecko_bindings::bindings; +use style::gecko_bindings::bindings::{RawGeckoKeyframeListBorrowed, RawGeckoKeyframeListBorrowedMut}; use style::gecko_bindings::bindings::{RawServoDeclarationBlockBorrowed, RawServoDeclarationBlockStrong}; use style::gecko_bindings::bindings::{RawServoStyleRuleBorrowed, RawServoStyleRuleStrong}; use style::gecko_bindings::bindings::{RawServoStyleSetBorrowed, RawServoStyleSetOwned}; @@ -40,9 +41,8 @@ use style::gecko_bindings::bindings::{RawServoStyleSheetStrong, ServoComputedVal use style::gecko_bindings::bindings::{ServoCssRulesBorrowed, ServoCssRulesStrong}; use style::gecko_bindings::bindings::{nsACString, nsAString}; use style::gecko_bindings::bindings::Gecko_AnimationAppendKeyframe; -use style::gecko_bindings::bindings::RawGeckoAnimationValueListBorrowedMut; +use style::gecko_bindings::bindings::RawGeckoComputedKeyframeValuesListBorrowedMut; use style::gecko_bindings::bindings::RawGeckoElementBorrowed; -use style::gecko_bindings::bindings::RawGeckoKeyframeListBorrowedMut; use style::gecko_bindings::bindings::RawGeckoPresContextBorrowed; use style::gecko_bindings::bindings::RawServoAnimationValueBorrowed; use style::gecko_bindings::bindings::RawServoAnimationValueStrong; @@ -326,65 +326,6 @@ pub extern "C" fn Servo_AnimationValue_DeepEqual(this: RawServoAnimationValueBor this_value == other_value } -/// Takes a ServoAnimationValues and populates it with the animation values corresponding -/// to a given property declaration block -#[no_mangle] -pub extern "C" fn Servo_AnimationValues_Populate(anim: RawGeckoAnimationValueListBorrowedMut, - declarations: RawServoDeclarationBlockBorrowed, - style: ServoComputedValuesBorrowed, - parent_style: ServoComputedValuesBorrowedOrNull, - pres_context: RawGeckoPresContextBorrowed) -{ - use style::properties::declaration_block::Importance; - use style::values::computed::Context; - - let parent_style = parent_style.as_ref().map(|r| &**ComputedValues::as_arc(&r)); - // FIXME this might not be efficient since Populate - // is called multiple times. We should precalculate the Context - // and share it across Populate calls - let style = ComputedValues::as_arc(&style); - let declarations = RwLock::::as_arc(&declarations); - let guard = declarations.read(); - - let init = ComputedValues::default_values(pres_context); - - let context = Context { - is_root_element: false, - // FIXME (bug 1303229): Use the actual viewport size here - viewport_size: Size2D::new(Au(0), Au(0)), - inherited_style: parent_style.unwrap_or(&init), - style: (**style).clone(), - font_metrics_provider: None, - }; - - let mut iter = guard.declarations - .iter() - .filter_map(|&(ref decl, imp)| { - if imp == Importance::Normal { - AnimationValue::from_declaration(decl, &context, &init) - } else { - None - } - }); - - let mut geckoiter = anim.iter_mut(); - { - // we reborrow to scope the consumed mutable borrow - // we need to be able to ensure geckoiter is empty later on - // and thus can't directly use `geckoiter` - let local_geckoiter = &mut geckoiter; - for (gecko, servo) in local_geckoiter.zip(&mut iter) { - gecko.mValue.mServo.set_arc_leaky(Arc::new(servo)); - } - } - - // we should have gone through both iterators - if iter.next().is_some() || geckoiter.next().is_some() { - warn!("stylo: Mismatched sizes of Gecko and Servo \ - array during animation value construction"); - } -} - #[no_mangle] pub extern "C" fn Servo_StyleWorkerThreadCount() -> u32 { GLOBAL_STYLE_DATA.num_threads as u32 @@ -1387,6 +1328,76 @@ pub extern "C" fn Servo_ResolveStyleLazily(element: RawGeckoElementBorrowed, result.unwrap().into_strong() } +#[no_mangle] +pub extern "C" fn Servo_GetComputedKeyframeValues(keyframes: RawGeckoKeyframeListBorrowed, + style: ServoComputedValuesBorrowed, + parent_style: ServoComputedValuesBorrowedOrNull, + pres_context: RawGeckoPresContextBorrowed, + computed_keyframes: RawGeckoComputedKeyframeValuesListBorrowedMut) +{ + use style::properties::declaration_block::Importance; + use style::properties::property_bit_field::PropertyBitField; + use style::values::computed::Context; + + let style = ComputedValues::as_arc(&style); + let parent_style = parent_style.as_ref().map(|r| &**ComputedValues::as_arc(&r)); + let init = ComputedValues::default_values(pres_context); + + let context = Context { + is_root_element: false, + // FIXME (bug 1303229): Use the actual viewport size here + viewport_size: Size2D::new(Au(0), Au(0)), + inherited_style: parent_style.unwrap_or(&init), + style: (**style).clone(), + font_metrics_provider: None, + }; + + for (index, keyframe) in keyframes.iter().enumerate() { + let ref mut animation_values = computed_keyframes[index]; + + let mut seen = PropertyBitField::new(); + + // mServoDeclarationBlock is null in the case where we have an invalid css property. + let iter = keyframe.mPropertyValues.iter() + .filter(|&property| !property.mServoDeclarationBlock.mRawPtr.is_null()); + for property in iter { + let declarations = unsafe { &*property.mServoDeclarationBlock.mRawPtr.clone() }; + let declarations = RwLock::::as_arc(&declarations); + let guard = declarations.read(); + + let anim_iter = guard.declarations + .iter() + .filter_map(|&(ref decl, imp)| { + if imp == Importance::Normal { + let property = TransitionProperty::from_declaration(decl); + let animation = AnimationValue::from_declaration(decl, &context, &init); + debug_assert!(property.is_none() == animation.is_none(), + "The failure condition of TransitionProperty::from_declaration \ + and AnimationValue::from_declaration should be the same"); + // Skip the property if either ::from_declaration fails. + if property.is_none() || animation.is_none() { + None + } else { + Some((property.unwrap(), animation.unwrap())) + } + } else { + None + } + }); + + for (i, anim) in anim_iter.enumerate() { + if !seen.has_transition_property_bit(&anim.0) { + // This is safe since we immediately write to the uninitialized values. + unsafe { animation_values.set_len((i + 1) as u32) }; + seen.set_transition_property_bit(&anim.0); + animation_values[i].mProperty = anim.0.into(); + animation_values[i].mValue.mServo.set_arc_leaky(Arc::new(anim.1)); + } + } + } + } +} + #[no_mangle] pub extern "C" fn Servo_AssertTreeIsClean(root: RawGeckoElementBorrowed) {