Changeset 293485 in webkit
- Timestamp:
- Apr 26, 2022 5:19:14 PM (3 months ago)
- Location:
- trunk
- Files:
-
- 4 added
- 6 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html (added)
-
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade (added)
-
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/style/PropertyCascade.cpp (modified) (1 diff)
-
Source/WebCore/style/PropertyCascade.h (modified) (1 diff)
-
Source/WebCore/style/StyleBuilder.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r293478 r293485 1 2022-04-26 Oriol Brufau <obrufau@igalia.com> 2 3 [css-cascade] Fix cascade rollback for deferred properties 4 https://bugs.webkit.org/show_bug.cgi?id=238125 5 6 Reviewed by Antti Koivisto. 7 8 Add custom expectation for mac-wk1 since scroll-behavior is disabled 9 there, and thus not checked by the test. 10 11 * platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt: Added. 12 1 13 2022-04-26 Karl Rackler <rackler@apple.com> 2 14 -
trunk/LayoutTests/imported/w3c/ChangeLog
r293444 r293485 1 2022-04-26 Oriol Brufau <obrufau@igalia.com> 2 3 [css-cascade] Fix cascade rollback for deferred properties 4 https://bugs.webkit.org/show_bug.cgi?id=238125 5 6 Reviewed by Antti Koivisto. 7 8 Add a test. It still has some failures due to bug 239579, bug 239669, 9 and bug 239670. 10 11 * web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt: Added. 12 * web-platform-tests/css/css-cascade/all-prop-revert-layer.html: Added. 13 1 14 2022-04-26 Ziran Sun <zsun@igalia.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r293455 r293485 1 2022-04-26 Oriol Brufau <obrufau@igalia.com> 2 3 [css-cascade] Fix cascade rollback for deferred properties 4 https://bugs.webkit.org/show_bug.cgi?id=238125 5 6 Reviewed by Antti Koivisto. 7 8 When a deferred property was set to 'revert' or 'revert-layer', it used 9 to roll back to a declaration of the same exact property (or behave as 10 'unset' if none). 11 12 This patch lets deferred properties roll back to their related property, 13 e.g. '-webkit-box-shadow: revert-layer' can roll back to a 'box-shadow' 14 declaration in the previous layer. 15 16 This is consistent with logical and physical properties, where the 17 rollback happens after resolving logical properties. 18 19 Test: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html 20 21 * style/PropertyCascade.cpp: 22 (WebCore::Style::PropertyCascade::lastDeferredPropertyResolvingRelated const): 23 * style/PropertyCascade.h: 24 * style/StyleBuilder.cpp: 25 (WebCore::Style::Builder::applyProperty): 26 1 27 2022-04-26 Elliott Williams <emw@apple.com> 2 28 -
trunk/Source/WebCore/style/PropertyCascade.cpp
r293100 r293485 155 155 } 156 156 157 const PropertyCascade::Property* PropertyCascade::lastDeferredPropertyResolvingRelated(CSSPropertyID propertyID) const 158 { 159 auto relatedID = getRelatedPropertyId(propertyID); 160 if (relatedID == CSSPropertyInvalid) { 161 ASSERT_NOT_REACHED(); 162 return hasDeferredProperty(propertyID) ? &deferredProperty(propertyID) : nullptr; 163 } 164 auto indexForPropertyID = deferredPropertyIndex(propertyID); 165 auto indexForRelatedID = deferredPropertyIndex(relatedID); 166 if (indexForPropertyID > indexForRelatedID) 167 return &deferredProperty(propertyID); 168 if (indexForPropertyID < indexForRelatedID) 169 return &deferredProperty(relatedID); 170 ASSERT(!hasDeferredProperty(propertyID)); 171 ASSERT(!hasDeferredProperty(relatedID)); 172 return nullptr; 173 } 157 174 158 175 bool PropertyCascade::addMatch(const MatchedProperties& matchedProperties, CascadeLevel cascadeLevel, bool important) -
trunk/Source/WebCore/style/PropertyCascade.h
r293292 r293485 65 65 bool hasDeferredProperty(CSSPropertyID) const; 66 66 const Property& deferredProperty(CSSPropertyID) const; 67 const Property* lastDeferredPropertyResolvingRelated(CSSPropertyID) const; 67 68 68 69 bool hasCustomProperty(const AtomString&) const; -
trunk/Source/WebCore/style/StyleBuilder.cpp
r293100 r293485 323 323 return; 324 324 } 325 } else if (rollbackCascade->hasDeferredProperty(id)) { 326 auto& property = rollbackCascade->deferredProperty(id); 327 applyRollbackCascadeProperty(property, linkMatchMask); 325 } else if (auto* property = rollbackCascade->lastDeferredPropertyResolvingRelated(id)) { 326 applyRollbackCascadeProperty(*property, linkMatchMask); 328 327 return; 329 328 }
Note: See TracChangeset
for help on using the changeset viewer.