aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ports/geckolib/glue.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/ports/geckolib/glue.rs b/ports/geckolib/glue.rs
index 3043f879e64..02d54692b19 100644
--- a/ports/geckolib/glue.rs
+++ b/ports/geckolib/glue.rs
@@ -203,6 +203,23 @@ pub extern "C" fn Servo_Element_ClearData(element: RawGeckoElementBorrowed) -> (
}
#[no_mangle]
+pub extern "C" fn Servo_Element_ShouldTraverse(element: RawGeckoElementBorrowed) -> bool {
+ let element = GeckoElement(element);
+ if let Some(data) = element.get_data() {
+ debug_assert!(!element.has_dirty_descendants(),
+ "only call Servo_Element_ShouldTraverse if you know the element \
+ does not have dirty descendants");
+ match *data.borrow() {
+ ElementData::Initial(None) |
+ ElementData::Restyle(..) => true,
+ _ => false,
+ }
+ } else {
+ false
+ }
+}
+
+#[no_mangle]
pub extern "C" fn Servo_StyleSheet_Empty(mode: SheetParsingMode) -> RawServoStyleSheetStrong {
let url = ServoUrl::parse("about:blank").unwrap();
let extra_data = ParserContextExtraData::default();