mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +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,13 +1303,18 @@ extern "C" {
|
|||
-> RawServoDeclarationBlockStrong;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_AnimationValues_GetOpacity(value:
|
||||
RawServoAnimationValueBorrowed)
|
||||
pub fn Servo_AnimationValue_Serialize(value:
|
||||
RawServoAnimationValueBorrowed,
|
||||
property: nsCSSPropertyID,
|
||||
buffer: *mut nsAString_internal);
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_AnimationValue_GetOpacity(value: RawServoAnimationValueBorrowed)
|
||||
-> f32;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_AnimationValues_GetTransform(value: RawServoAnimationValueBorrowed,
|
||||
list: &mut RefPtr<nsCSSValueSharedList>);
|
||||
pub fn Servo_AnimationValue_GetTransform(value: RawServoAnimationValueBorrowed,
|
||||
list: &mut RefPtr<nsCSSValueSharedList>);
|
||||
}
|
||||
extern "C" {
|
||||
pub fn Servo_ParseStyleAttribute(data: *const nsACString_internal)
|
||||
|
|
|
@ -213,8 +213,33 @@ pub extern "C" fn Servo_AnimationValues_Uncompute(value: RawServoAnimationValueB
|
|||
})).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]
|
||||
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
|
||||
{
|
||||
let value = AnimationValue::as_arc(&value);
|
||||
|
@ -226,8 +251,8 @@ pub extern "C" fn Servo_AnimationValues_GetOpacity(value: RawServoAnimationValue
|
|||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_AnimationValues_GetTransform(value: RawServoAnimationValueBorrowed,
|
||||
list: &mut structs::RefPtr<nsCSSValueSharedList>)
|
||||
pub extern "C" fn Servo_AnimationValue_GetTransform(value: RawServoAnimationValueBorrowed,
|
||||
list: &mut structs::RefPtr<nsCSSValueSharedList>)
|
||||
{
|
||||
let value = AnimationValue::as_arc(&value);
|
||||
if let AnimationValue::Transform(ref servo_list) = **value {
|
||||
|
@ -832,15 +857,6 @@ pub extern "C" fn Servo_DeclarationBlock_GetCssText(declarations: RawServoDeclar
|
|||
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]
|
||||
pub extern "C" fn Servo_DeclarationBlock_SerializeOneValue(
|
||||
declarations: RawServoDeclarationBlockBorrowed,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue