Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fdb9f3f2775afdd25e52cc96f8fdd2a62261093c https://github.com/WebKit/WebKit/commit/fdb9f3f2775afdd25e52cc96f8fdd2a62261093c Author: Antti Koivisto <an...@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 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes