Skip to content

Commit

Permalink
style: Add an FFI function to see if an element is display: contents.
Browse files Browse the repository at this point in the history
Bug: 1303605
Reviewed-by: bz
  • Loading branch information
emilio committed Apr 7, 2018
1 parent ecf71d7 commit c3185ea
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions ports/geckolib/glue.rs
Expand Up @@ -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);
Expand Down

0 comments on commit c3185ea

Please sign in to comment.