diff --git a/components/style/gecko_selector_impl.rs b/components/style/gecko_selector_impl.rs index ed99fd39758..5798222cb07 100644 --- a/components/style/gecko_selector_impl.rs +++ b/components/style/gecko_selector_impl.rs @@ -44,7 +44,8 @@ pub enum PseudoElement { // https://mxr.mozilla.org/mozilla-central/source/layout/style/nsCSSAnonBoxList.h #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub enum AnonBoxPseudoElement { - MozNonElement, + MozText, + MozOtherNonElement, MozAnonymousBlock, MozAnonymousPositionedBlock, MozMathMLAnonymousBlock, @@ -67,7 +68,7 @@ pub enum AnonBoxPseudoElement { MozTableCell, MozTableColumnGroup, MozTableColumn, - MozTableOuter, + MozTableWrapper, MozTableRowGroup, MozTableRow, @@ -214,7 +215,8 @@ impl SelectorImpl for GeckoSelectorImpl { } Ok(AnonBox(match_ignore_ascii_case! { name, - "-moz-non-element" => MozNonElement, + "-moz-text" => MozText, + "-moz-other-non-element" => MozOtherNonElement, "-moz-anonymous-block" => MozAnonymousBlock, "-moz-anonymous-positioned-block" => MozAnonymousPositionedBlock, @@ -240,7 +242,7 @@ impl SelectorImpl for GeckoSelectorImpl { "-moz-table-cell" => MozTableCell, "-moz-table-column-group" => MozTableColumnGroup, "-moz-table-column" => MozTableColumn, - "-moz-table-outer" => MozTableOuter, + "-moz-table-wrapper" => MozTableWrapper, "-moz-table-row-group" => MozTableRowGroup, "-moz-table-row" => MozTableRow, @@ -305,7 +307,8 @@ impl SelectorImplExt for GeckoSelectorImpl { fun(After); fun(FirstLine); - fun(AnonBox(MozNonElement)); + fun(AnonBox(MozText)); + fun(AnonBox(MozOtherNonElement)); fun(AnonBox(MozAnonymousBlock)); fun(AnonBox(MozAnonymousPositionedBlock)); fun(AnonBox(MozMathMLAnonymousBlock)); @@ -328,7 +331,7 @@ impl SelectorImplExt for GeckoSelectorImpl { fun(AnonBox(MozTableCell)); fun(AnonBox(MozTableColumnGroup)); fun(AnonBox(MozTableColumn)); - fun(AnonBox(MozTableOuter)); + fun(AnonBox(MozTableWrapper)); fun(AnonBox(MozTableRowGroup)); fun(AnonBox(MozTableRow)); diff --git a/ports/geckolib/gecko_bindings/bindings.rs b/ports/geckolib/gecko_bindings/bindings.rs index e2bce737e7d..9dd1a4e0b00 100644 --- a/ports/geckolib/gecko_bindings/bindings.rs +++ b/ports/geckolib/gecko_bindings/bindings.rs @@ -135,6 +135,7 @@ use structs::nsStyleCoord_CalcValue as CalcValue; use structs::nsStyleCoord_Calc as Calc; use structs::nsRestyleHint; use structs::ServoElementSnapshot; +use structs::nsChangeHint; use structs::SheetParsingMode; use structs::nsMainThreadPtrHandle; use structs::nsMainThreadPtrHolder; @@ -293,6 +294,10 @@ extern "C" { pub fn Gecko_GetNodeFlags(node: *mut RawGeckoNode) -> u32; pub fn Gecko_SetNodeFlags(node: *mut RawGeckoNode, flags: u32); pub fn Gecko_UnsetNodeFlags(node: *mut RawGeckoNode, flags: u32); + pub fn Gecko_CalcAndStoreStyleDifference(element: *mut RawGeckoElement, + newstyle: + *mut ServoComputedValues) + -> nsChangeHint; pub fn Gecko_EnsureTArrayCapacity(array: *mut ::std::os::raw::c_void, capacity: usize, elem_size: usize); pub fn Gecko_EnsureImageLayersLength(layers: *mut nsStyleImageLayers, diff --git a/ports/geckolib/gecko_bindings/tools/regen.py b/ports/geckolib/gecko_bindings/tools/regen.py index 434de5fa024..29dc162a027 100755 --- a/ports/geckolib/gecko_bindings/tools/regen.py +++ b/ports/geckolib/gecko_bindings/tools/regen.py @@ -126,8 +126,7 @@ COMPILATION_TARGETS = { "nsStyleImageLayers::Layer", "nsStyleImageLayers::LayerType", "nsStyleUnit", "nsStyleUnion", "nsStyleCoord::CalcValue", "nsStyleCoord::Calc", "nsRestyleHint", "ServoElementSnapshot", - - "SheetParsingMode", "nsMainThreadPtrHandle", + "nsChangeHint", "SheetParsingMode", "nsMainThreadPtrHandle", "nsMainThreadPtrHolder", "nscolor", "nsFont", "FontFamilyList", "FontFamilyType", "nsIAtom", ], @@ -211,7 +210,7 @@ def build(objdir, target_name, kind_name=None, if os.path.isdir(bindgen): bindgen = ["cargo", "run", "--manifest-path", - os.path.join(bindgen, "Cargo.toml"), "--"] + os.path.join(bindgen, "Cargo.toml"), "--features", "llvm_stable", "--"] else: bindgen = [bindgen]