From fcdf5ee48891bdd634e803d41c229297e0b15a3d Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Fri, 17 Jan 2025 13:49:55 +0000 Subject: [PATCH] Bug 1936113 - Parse :open pseudo-class in the style system. r=dshin This enables us to parse the pseudo, but it's not yet connected to anything. Differential Revision: https://phabricator.services.mozilla.com/D234092 --- dom/base/rust/lib.rs | 3 +++ servo/components/style/gecko/non_ts_pseudo_class_list.rs | 1 + servo/components/style/gecko/wrapper.rs | 1 + 3 files changed, 5 insertions(+) diff --git a/dom/base/rust/lib.rs b/dom/base/rust/lib.rs index 134fbe99d052..10aed81ba1d9 100644 --- a/dom/base/rust/lib.rs +++ b/dom/base/rust/lib.rs @@ -134,6 +134,9 @@ bitflags! { /// https://drafts.csswg.org/css-scoping-1/#the-has-slotted-pseudo /// Match whether a slot element has assigned nodes const HAS_SLOTTED = 1u64 << 48; + /// https://drafts.csswg.org/selectors-4/#open-state + /// Match whether an openable element is currently open + const OPEN = 1u64 << 49; /// Some convenience unions. const DIR_STATES = Self::LTR.bits() | Self::RTL.bits(); diff --git a/servo/components/style/gecko/non_ts_pseudo_class_list.rs b/servo/components/style/gecko/non_ts_pseudo_class_list.rs index 5ef978cf5f30..877126493c9d 100644 --- a/servo/components/style/gecko/non_ts_pseudo_class_list.rs +++ b/servo/components/style/gecko/non_ts_pseudo_class_list.rs @@ -53,6 +53,7 @@ macro_rules! apply_non_ts_list { ("-moz-styleeditor-transitioning", MozStyleeditorTransitioning, STYLEEDITOR_TRANSITIONING, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS), ("fullscreen", Fullscreen, FULLSCREEN, _), ("modal", Modal, MODAL, _), + ("open", Open, OPEN, _), ("-moz-topmost-modal", MozTopmostModal, TOPMOST_MODAL, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS), ("-moz-broken", MozBroken, BROKEN, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS_AND_CHROME), ("-moz-has-dir-attr", MozHasDirAttr, HAS_DIR_ATTR, PSEUDO_CLASS_ENABLED_IN_UA_SHEETS), diff --git a/servo/components/style/gecko/wrapper.rs b/servo/components/style/gecko/wrapper.rs index 3bde299510f0..b8d770e37fa0 100644 --- a/servo/components/style/gecko/wrapper.rs +++ b/servo/components/style/gecko/wrapper.rs @@ -2088,6 +2088,7 @@ impl<'le> ::selectors::Element for GeckoElement<'le> { NonTSPseudoClass::MozDirAttrLikeAuto | NonTSPseudoClass::Modal | NonTSPseudoClass::MozTopmostModal | + NonTSPseudoClass::Open | NonTSPseudoClass::Active | NonTSPseudoClass::Hover | NonTSPseudoClass::HasSlotted |