mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
style: Add an FFI function to see if an element is display: contents.
Bug: 1303605 Reviewed-by: bz
This commit is contained in:
parent
ecf71d77cd
commit
c3185eab01
1 changed files with 22 additions and 5 deletions
|
@ -1043,17 +1043,34 @@ pub extern "C" fn Servo_Element_GetPseudoComputedValues(
|
|||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_Element_IsDisplayNone(element: RawGeckoElementBorrowed) -> bool {
|
||||
pub extern "C" fn Servo_Element_IsDisplayNone(
|
||||
element: RawGeckoElementBorrowed,
|
||||
) -> bool {
|
||||
let element = GeckoElement(element);
|
||||
let data = element.get_data().expect("Invoking Servo_Element_IsDisplayNone on unstyled element");
|
||||
let data = element.get_data()
|
||||
.expect("Invoking Servo_Element_IsDisplayNone on unstyled element");
|
||||
|
||||
// This function is hot, so we bypass the AtomicRefCell. It would be nice to also assert that
|
||||
// we're not in the servo traversal, but this function is called at various intermediate
|
||||
// checkpoints when managing the traversal on the Gecko side.
|
||||
// This function is hot, so we bypass the AtomicRefCell.
|
||||
//
|
||||
// It would be nice to also assert that we're not in the servo traversal,
|
||||
// but this function is called at various intermediate checkpoints when
|
||||
// managing the traversal on the Gecko side.
|
||||
debug_assert!(is_main_thread());
|
||||
unsafe { &*data.as_ptr() }.styles.is_display_none()
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_Element_IsDisplayContents(
|
||||
element: RawGeckoElementBorrowed,
|
||||
) -> bool {
|
||||
let element = GeckoElement(element);
|
||||
let data = element.get_data()
|
||||
.expect("Invoking Servo_Element_IsDisplayContents on unstyled element");
|
||||
|
||||
debug_assert!(is_main_thread());
|
||||
unsafe { &*data.as_ptr() }.styles.primary().get_box().clone_display().is_contents()
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub extern "C" fn Servo_Element_IsPrimaryStyleReusedViaRuleNode(element: RawGeckoElementBorrowed) -> bool {
|
||||
let element = GeckoElement(element);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue