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 3fdf2b27d2c..4ed708759a4 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; @@ -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, @@ -1335,6 +1340,17 @@ extern "C" { principal: *mut ThreadSafePrincipalHolder) -> RawServoDeclarationBlockStrong; } +extern "C" { + pub fn Servo_GetComputedKeyframeValues(keyframes: + RawGeckoKeyframeListBorrowed, + style: ServoComputedValuesBorrowed, + parent_style: + ServoComputedValuesBorrowedOrNull, + pres_context: + RawGeckoPresContextBorrowed, + result: + RawGeckoComputedKeyframeValuesListBorrowedMut); +} extern "C" { pub fn Servo_AnimationValues_Populate(arg1: RawGeckoAnimationValueListBorrowedMut, diff --git a/components/style/gecko_bindings/structs_debug.rs b/components/style/gecko_bindings/structs_debug.rs index e585bedfc61..de581823965 100644 --- a/components/style/gecko_bindings/structs_debug.rs +++ b/components/style/gecko_bindings/structs_debug.rs @@ -25443,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 = @@ -25462,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]); diff --git a/components/style/gecko_bindings/structs_release.rs b/components/style/gecko_bindings/structs_release.rs index 3c48a3191ae..76debc8e158 100644 --- a/components/style/gecko_bindings/structs_release.rs +++ b/components/style/gecko_bindings/structs_release.rs @@ -24800,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 = @@ -24819,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]);