mirror of
https://github.com/servo/servo.git
synced 2025-08-07 06:25:32 +01:00
Auto merge of #15493 - BorisChiou:animation/get_property, r=Manishearth
stylo: Add Servo_AnimationValue_Serialize This is the servo-side change for [bug 1337313](https://bugzilla.mozilla.org/show_bug.cgi?id=1337313). @Manishearth had already reviewed it there. Please merge this patch until the gecko-side changes for [bug 1337313](https://bugzilla.mozilla.org/show_bug.cgi?id=1337313) is landed. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix [bug 1337313](https://bugzilla.mozilla.org/show_bug.cgi?id=1337313). - [X] These changes do not require tests because there are existing tests for this in mozilla-central <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15493) <!-- Reviewable:end -->
This commit is contained in:
commit
401a55e172
2 changed files with 37 additions and 16 deletions
|
@ -1303,12 +1303,17 @@ extern "C" {
|
||||||
-> RawServoDeclarationBlockStrong;
|
-> RawServoDeclarationBlockStrong;
|
||||||
}
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Servo_AnimationValues_GetOpacity(value:
|
pub fn Servo_AnimationValue_Serialize(value:
|
||||||
RawServoAnimationValueBorrowed)
|
RawServoAnimationValueBorrowed,
|
||||||
|
property: nsCSSPropertyID,
|
||||||
|
buffer: *mut nsAString_internal);
|
||||||
|
}
|
||||||
|
extern "C" {
|
||||||
|
pub fn Servo_AnimationValue_GetOpacity(value: RawServoAnimationValueBorrowed)
|
||||||
-> f32;
|
-> f32;
|
||||||
}
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn Servo_AnimationValues_GetTransform(value: RawServoAnimationValueBorrowed,
|
pub fn Servo_AnimationValue_GetTransform(value: RawServoAnimationValueBorrowed,
|
||||||
list: &mut RefPtr<nsCSSValueSharedList>);
|
list: &mut RefPtr<nsCSSValueSharedList>);
|
||||||
}
|
}
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
@ -213,8 +213,33 @@ pub extern "C" fn Servo_AnimationValues_Uncompute(value: RawServoAnimationValueB
|
||||||
})).into_strong()
|
})).into_strong()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
macro_rules! get_property_id_from_nscsspropertyid {
|
||||||
|
($property_id: ident, $ret: expr) => {{
|
||||||
|
match PropertyId::from_nscsspropertyid($property_id) {
|
||||||
|
Ok(property_id) => property_id,
|
||||||
|
Err(()) => { return $ret; }
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn Servo_AnimationValues_GetOpacity(value: RawServoAnimationValueBorrowed)
|
pub extern "C" fn Servo_AnimationValue_Serialize(value: RawServoAnimationValueBorrowed,
|
||||||
|
property: nsCSSPropertyID,
|
||||||
|
buffer: *mut nsAString)
|
||||||
|
{
|
||||||
|
let uncomputed_value = AnimationValue::as_arc(&value).uncompute();
|
||||||
|
let mut string = String::new();
|
||||||
|
let rv = PropertyDeclarationBlock {
|
||||||
|
declarations: vec![(uncomputed_value, Importance::Normal)],
|
||||||
|
important_count: 0
|
||||||
|
}.single_value_to_css(&get_property_id_from_nscsspropertyid!(property, ()), &mut string);
|
||||||
|
debug_assert!(rv.is_ok());
|
||||||
|
|
||||||
|
write!(unsafe { &mut *buffer }, "{}", string).expect("Failed to copy string");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
pub extern "C" fn Servo_AnimationValue_GetOpacity(value: RawServoAnimationValueBorrowed)
|
||||||
-> f32
|
-> f32
|
||||||
{
|
{
|
||||||
let value = AnimationValue::as_arc(&value);
|
let value = AnimationValue::as_arc(&value);
|
||||||
|
@ -226,7 +251,7 @@ pub extern "C" fn Servo_AnimationValues_GetOpacity(value: RawServoAnimationValue
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn Servo_AnimationValues_GetTransform(value: RawServoAnimationValueBorrowed,
|
pub extern "C" fn Servo_AnimationValue_GetTransform(value: RawServoAnimationValueBorrowed,
|
||||||
list: &mut structs::RefPtr<nsCSSValueSharedList>)
|
list: &mut structs::RefPtr<nsCSSValueSharedList>)
|
||||||
{
|
{
|
||||||
let value = AnimationValue::as_arc(&value);
|
let value = AnimationValue::as_arc(&value);
|
||||||
|
@ -832,15 +857,6 @@ pub extern "C" fn Servo_DeclarationBlock_GetCssText(declarations: RawServoDeclar
|
||||||
declarations.read().to_css(unsafe { result.as_mut().unwrap() }).unwrap();
|
declarations.read().to_css(unsafe { result.as_mut().unwrap() }).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! get_property_id_from_nscsspropertyid {
|
|
||||||
($property_id: ident, $ret: expr) => {{
|
|
||||||
match PropertyId::from_nscsspropertyid($property_id) {
|
|
||||||
Ok(property_id) => property_id,
|
|
||||||
Err(()) => { return $ret; }
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
||||||
declarations: RawServoDeclarationBlockBorrowed,
|
declarations: RawServoDeclarationBlockBorrowed,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue