Changeset 293288 in webkit
- Timestamp:
- Apr 22, 2022, 11:44:03 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 8 edited
-
LayoutTests/imported/w3c/ChangeLog (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-removed-expected.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-removed.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-removed-expected.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-contain/contain-size-removed.html (added)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004-expected.txt (modified) (1 diff)
-
LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005-expected.txt (modified) (1 diff)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/style/RenderStyle.cpp (modified) (2 diffs)
-
Source/WebCore/rendering/style/RenderStyle.h (modified) (1 diff)
-
Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp (modified) (1 diff)
-
Source/WebCore/rendering/style/StyleRareNonInheritedData.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/imported/w3c/ChangeLog
r293209 r293288 1 2022-04-22 Cathie Chen <cathiechen@igalia.com> 2 3 The layout is not updated when style.contain is changed from "size"/"inline-size" to empty string 4 https://bugs.webkit.org/show_bug.cgi?id=239489 5 6 Reviewed by Rob Buis. 7 8 * web-platform-tests/css/css-contain/contain-inline-size-removed-expected.html: Added. 9 * web-platform-tests/css/css-contain/contain-inline-size-removed.html: Added. 10 * web-platform-tests/css/css-contain/contain-size-removed-expected.html: Added. 11 * web-platform-tests/css/css-contain/contain-size-removed.html: Added. 12 * web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004-expected.txt: 13 * web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005-expected.txt: 14 1 15 2022-04-21 Rob Buis <rbuis@igalia.com> 2 16 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004-expected.txt
r291797 r293288 1 501 0 2 2 3 FAIL contain-intrinsic-size: auto assert_equals: expected 1 but got 503 FAIL contain-intrinsic-size: auto assert_equals: expected 1 but got 0 4 4 -
trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005-expected.txt
r291797 r293288 1 501 0 2 2 3 FAIL contain-intrinsic-size: auto assert_equals: expected 1 but got 503 FAIL contain-intrinsic-size: auto assert_equals: expected 1 but got 0 4 4 -
trunk/Source/WebCore/ChangeLog
r293287 r293288 1 2022-04-22 Cathie Chen <cathiechen@igalia.com> 2 3 The layout is not updated when style.contain is changed from "size"/"inline-size" to empty string 4 https://bugs.webkit.org/show_bug.cgi?id=239489 5 6 Reviewed by Rob Buis. 7 8 Unlike "layout", "paint" and "style" containment, being a "size" and "inline-size" containment or not affects the layout size of the element. 9 So it should require layout when a normal element becomes a "size"/"inline-size" containment, vice versa. 10 11 Tests: imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-removed.html 12 imported/w3c/web-platform-tests/css/css-contain/contain-size-removed.html 13 14 * rendering/style/RenderStyle.cpp: 15 (WebCore::rareNonInheritedDataChangeRequiresLayout): 16 (WebCore::RenderStyle::effectiveContainment const): Deleted. Moved to StyleRareNonInheritedData. 17 * rendering/style/RenderStyle.h: 18 (WebCore::RenderStyle::effectiveContainment const): 19 * rendering/style/StyleRareNonInheritedData.cpp: 20 (WebCore::StyleRareNonInheritedData::effectiveContainment const): 21 * rendering/style/StyleRareNonInheritedData.h: 22 1 23 2022-04-22 Rob Buis <rbuis@igalia.com> 2 24 -
trunk/Source/WebCore/rendering/style/RenderStyle.cpp
r293028 r293288 775 775 776 776 if (first.inputSecurity != second.inputSecurity) 777 return true; 778 779 if (first.effectiveContainment().contains(Containment::Size) != second.effectiveContainment().contains(Containment::Size) 780 || first.effectiveContainment().contains(Containment::InlineSize) != second.effectiveContainment().contains(Containment::InlineSize)) 777 781 return true; 778 782 … … 2895 2899 } 2896 2900 2897 OptionSet<Containment> RenderStyle::effectiveContainment() const2898 {2899 auto containment = contain();2900 2901 switch (containerType()) {2902 case ContainerType::None:2903 break;2904 case ContainerType::Size:2905 containment.add({ Containment::Layout, Containment::Style, Containment::Size });2906 break;2907 case ContainerType::InlineSize:2908 containment.add({ Containment::Layout, Containment::Style, Containment::InlineSize });2909 break;2910 };2911 2912 return containment;2913 }2914 2915 2901 UserSelect RenderStyle::effectiveUserSelect() const 2916 2902 { -
trunk/Source/WebCore/rendering/style/RenderStyle.h
r293090 r293288 537 537 bool hasAspectRatio() const { return aspectRatioType() == AspectRatioType::Ratio || aspectRatioType() == AspectRatioType::AutoAndRatio; } 538 538 OptionSet<Containment> contain() const { return m_rareNonInheritedData->contain; } 539 OptionSet<Containment> effectiveContainment() const ;539 OptionSet<Containment> effectiveContainment() const { return m_rareNonInheritedData->effectiveContainment(); } 540 540 bool containsLayout() const { return effectiveContainment().contains(Containment::Layout); } 541 541 bool containsSize() const { return effectiveContainment().contains(Containment::Size); } -
trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
r293090 r293288 367 367 } 368 368 369 OptionSet<Containment> StyleRareNonInheritedData::effectiveContainment() const 370 { 371 auto containment = contain; 372 373 switch (static_cast<ContainerType>(containerType)) { 374 case ContainerType::None: 375 break; 376 case ContainerType::Size: 377 containment.add({ Containment::Layout, Containment::Style, Containment::Size }); 378 break; 379 case ContainerType::InlineSize: 380 containment.add({ Containment::Layout, Containment::Style, Containment::InlineSize }); 381 break; 382 }; 383 384 return containment; 385 } 386 369 387 #if ENABLE(FILTERS_LEVEL_2) 370 388 -
trunk/Source/WebCore/rendering/style/StyleRareNonInheritedData.h
r293090 r293288 105 105 bool hasOpacity() const { return opacity < 1; } 106 106 107 OptionSet<Containment> effectiveContainment() const; 108 107 109 float opacity; 108 110
Note:
See TracChangeset
for help on using the changeset viewer.