commit b2460cab5357c8310c4d9e0bc031155982288f5d
parent 36d8a4108e1f0be382e56a30894f0355b9c36ed1
Author: Emilio Cobos Álvarez <emilio@crisal.io>
Date: Tue, 30 Sep 2025 15:53:54 +0000
Bug 1991706 - Introduce position-fallback origin. r=layout-anchor-positioning-reviewers,dshin
As per https://drafts.csswg.org/css-anchor-position-1/#position-fallback-origin
We'll use this to resolve @position-try in the blocked bug.
Differential Revision: https://phabricator.services.mozilla.com/D266852
Diffstat:
4 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/dom/chrome-webidl/InspectorUtils.webidl b/dom/chrome-webidl/InspectorUtils.webidl
@@ -154,6 +154,7 @@ enum DeclarationOrigin {
"user-agent",
"pres-hints",
"style-attribute",
+ "position-fallback",
"animations",
"transitions",
"smil",
diff --git a/layout/inspector/InspectorUtils.cpp b/layout/inspector/InspectorUtils.cpp
@@ -424,6 +424,8 @@ static void GetCSSRulesFromComputedValues(
return DeclarationOrigin::User;
case StyleMatchingDeclarationBlockOrigin::UserAgent:
return DeclarationOrigin::User_agent;
+ case StyleMatchingDeclarationBlockOrigin::PositionFallback:
+ return DeclarationOrigin::Position_fallback;
case StyleMatchingDeclarationBlockOrigin::Animations:
return DeclarationOrigin::Animations;
case StyleMatchingDeclarationBlockOrigin::Transitions:
diff --git a/servo/components/style/rule_tree/level.rs b/servo/components/style/rule_tree/level.rs
@@ -50,6 +50,8 @@ pub enum CascadeLevel {
/// https://drafts.csswg.org/css-scoping/#shadow-cascading
shadow_cascade_order: ShadowCascadeOrder,
},
+ /// https://drafts.csswg.org/css-anchor-position-1/#position-fallback-origin
+ PositionFallback,
/// SVG SMIL animations.
SMILOverride,
/// CSS animations and script-generated animations.
@@ -80,6 +82,7 @@ impl CascadeLevel {
shadow_cascade_order: -shadow_cascade_order,
},
Self::PresHints
+ | Self::PositionFallback
| Self::SMILOverride
| Self::Animations
| Self::AuthorImportant { .. }
@@ -100,6 +103,7 @@ impl CascadeLevel {
shadow_cascade_order: -shadow_cascade_order,
},
Self::PresHints
+ | Self::PositionFallback
| Self::SMILOverride
| Self::Animations
| Self::AuthorNormal { .. }
@@ -165,6 +169,7 @@ impl CascadeLevel {
Self::UAImportant | Self::UANormal => Origin::UserAgent,
Self::UserImportant | Self::UserNormal => Origin::User,
Self::PresHints
+ | Self::PositionFallback { .. }
| Self::AuthorNormal { .. }
| Self::AuthorImportant { .. }
| Self::SMILOverride
diff --git a/servo/ports/geckolib/glue.rs b/servo/ports/geckolib/glue.rs
@@ -4713,6 +4713,7 @@ pub enum MatchingDeclarationBlockOrigin {
User,
Author,
PresHints,
+ PositionFallback,
Animations,
Transitions,
SMIL,
@@ -4758,6 +4759,7 @@ pub extern "C" fn Servo_ComputedValues_GetMatchingDeclarations(
CascadeLevel::AuthorNormal { .. } | CascadeLevel::AuthorImportant { .. } => {
MatchingDeclarationBlockOrigin::Author
},
+ CascadeLevel::PositionFallback => MatchingDeclarationBlockOrigin::PositionFallback,
CascadeLevel::PresHints => MatchingDeclarationBlockOrigin::PresHints,
CascadeLevel::Animations => MatchingDeclarationBlockOrigin::Animations,
CascadeLevel::Transitions => MatchingDeclarationBlockOrigin::Transitions,