[webkit-changes] [WebKit/WebKit] fdb9f3: [css-anchor-position-1] Evaluate @position-try fal...
Antti Koivisto
noreply at github.com
Mon Feb 24 21:08:14 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fdb9f3f2775afdd25e52cc96f8fdd2a62261093c
https://github.com/WebKit/WebKit/commit/fdb9f3f2775afdd25e52cc96f8fdd2a62261093c
Author: Antti Koivisto <antti at apple.com>
Date: 2025-02-24 (Mon, 24 Feb 2025)
Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-getComputedStyle-003-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-invalid-fallback-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-cssom-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-invalidation-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-area-in-position-try-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-003-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-004-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-cascade-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-cascade-layer-reorder-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-container-query-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-custom-property-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-dynamic-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-fallbacks-limit-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-grid-001-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-initial-transition-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-position-anchor-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-transition-basic-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-tree-scoped-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-typed-om-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-alignment-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-anchor-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-margin-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-percentage-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-position-area-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-sizing-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-wm-expected.txt
M LayoutTests/platform/ios/TestExpectations
M Source/WebCore/style/AnchorPositionEvaluator.cpp
M Source/WebCore/style/AnchorPositionEvaluator.h
M Source/WebCore/style/PropertyCascade.cpp
M Source/WebCore/style/PropertyCascade.h
M Source/WebCore/style/RuleSet.cpp
M Source/WebCore/style/RuleSet.h
M Source/WebCore/style/RuleSetBuilder.cpp
M Source/WebCore/style/StyleBuilder.cpp
M Source/WebCore/style/StyleBuilderState.h
M Source/WebCore/style/StyleTreeResolver.cpp
M Source/WebCore/style/StyleTreeResolver.h
Log Message:
-----------
[css-anchor-position-1] Evaluate @position-try fallbacks
https://bugs.webkit.org/show_bug.cgi?id=288365
rdar://145466429
Reviewed by Alan Baradlay.
Make @position-try fallbacks work.
https://drafts.csswg.org/css-anchor-position-1/#fallback-rule
* LayoutTests/TestExpectations:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-getComputedStyle-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/anchor-invalid-fallback-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-cssom-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-invalidation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-area-in-position-try-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-003-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-004-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-cascade-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-cascade-layer-reorder-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-container-query-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-custom-property-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-dynamic-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-fallbacks-limit-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-grid-001-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-initial-transition-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-position-anchor-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-transition-basic-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-tree-scoped-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/position-try-typed-om-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-alignment-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-anchor-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-basic-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-margin-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-percentage-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-position-area-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-sizing-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/try-tactic-wm-expected.txt:
Most try-tactic tests also use @position-try so that test coverage gets activated too.
PASS->FAIL cases were passing spuriously due to unimplemented feature.
* Source/WebCore/style/AnchorPositionEvaluator.cpp:
(WebCore::Style::computeInsetValue):
(WebCore::Style::AnchorPositionEvaluator::resolvePositionTryFallbackProperty):
* Source/WebCore/style/AnchorPositionEvaluator.h:
* Source/WebCore/style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):
Pass the fallback properties to the cascade.
(WebCore::Style::PropertyCascade::buildCascade):
(WebCore::Style::PropertyCascade::addPositionTryFallbackProperties):
Include the fallback properties to the cascade.
* Source/WebCore/style/PropertyCascade.h:
* Source/WebCore/style/RuleSet.cpp:
(WebCore::Style::RuleSet::positionTryRuleForName const):
Keep @position-try rules in ruleset.
* Source/WebCore/style/RuleSet.h:
* Source/WebCore/style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::addMutatingRulesToResolver):
Collect @position-try rules.
* Source/WebCore/style/StyleBuilder.cpp:
(WebCore::Style::positionTryFallbackProperties):
(WebCore::Style::Builder::Builder):
* Source/WebCore/style/StyleBuilderState.h:
Pass BuilderPositionTryFallback that has properties resolved instead of the plain PositionTryFallback from style.
(WebCore::Style::BuilderState::positionTryFallback const):
* Source/WebCore/style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveAgainInDifferentContext const):
(WebCore::Style::TreeResolver::generatePositionOptionsIfNeeded):
Fallbacks may contain new anchor references. We need to ensure anchors are resolved before generating the options.
(WebCore::Style::TreeResolver::generatePositionOption):
Find the @posistion-try rule based on the scoped name and pass the properties to the style builder.
* Source/WebCore/style/StyleTreeResolver.h:
Canonical link: https://commits.webkit.org/291009@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list