Title: [283493] trunk
Revision
283493
Author
[email protected]
Date
2021-10-04 06:16:56 -0700 (Mon, 04 Oct 2021)

Log Message

'overflow-wrap: anywhere' should be considered when calculating min-content intrinsic sizes.
https://bugs.webkit.org/show_bug.cgi?id=231152

Reviewed by Javier Fernandez.

Source/WebCore:

As opposed to overflow-wrap: 'break-word', 'anywhere' should be taken into account when computing the preferred width.

"An otherwise unbreakable sequence of characters may be broken at an arbitrary point...
Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes."

https://drafts.csswg.org/css-text-3/#overflow-wrap-property

* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):

LayoutTests:

* TestExpectations: Progressions.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (283492 => 283493)


--- trunk/LayoutTests/ChangeLog	2021-10-04 12:14:33 UTC (rev 283492)
+++ trunk/LayoutTests/ChangeLog	2021-10-04 13:16:56 UTC (rev 283493)
@@ -1,3 +1,12 @@
+2021-10-04  Alan Bujtas  <[email protected]>
+
+        'overflow-wrap: anywhere' should be considered when calculating min-content intrinsic sizes.
+        https://bugs.webkit.org/show_bug.cgi?id=231152
+
+        Reviewed by Javier Fernandez.
+
+        * TestExpectations: Progressions.
+
 2021-10-04  Ziran Sun  <[email protected]>
 
         [css-grid] Resync web-platform-tests/css/css-grid tests from upstream

Modified: trunk/LayoutTests/TestExpectations (283492 => 283493)


--- trunk/LayoutTests/TestExpectations	2021-10-04 12:14:33 UTC (rev 283492)
+++ trunk/LayoutTests/TestExpectations	2021-10-04 13:16:56 UTC (rev 283493)
@@ -2642,9 +2642,7 @@
 
 # overflow-wrap:anywhere feature is not implemented in legacy line layout.
 webkit.org/b/195345 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-anywhere-003.html [ ImageOnlyFailure ]
-webkit.org/b/195345 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html [ ImageOnlyFailure ]
 webkit.org/b/195345 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-002.html [ ImageOnlyFailure ]
-webkit.org/b/195345 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-003.html [ ImageOnlyFailure ]
 webkit.org/b/195345 imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-006.html [ ImageOnlyFailure ]
 
 webkit.org/b/197277 imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-008.html [ ImageOnlyFailure ]
@@ -4391,8 +4389,6 @@
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-014.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-016.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/line-breaking/line-breaking-017.html [ ImageOnlyFailure ]
-webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-005.html [ ImageOnlyFailure ]
-webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-min-content-size-007.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-shaping-001.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-shaping-002.html [ ImageOnlyFailure ]

Modified: trunk/Source/WebCore/ChangeLog (283492 => 283493)


--- trunk/Source/WebCore/ChangeLog	2021-10-04 12:14:33 UTC (rev 283492)
+++ trunk/Source/WebCore/ChangeLog	2021-10-04 13:16:56 UTC (rev 283493)
@@ -1,3 +1,21 @@
+2021-10-04  Alan Bujtas  <[email protected]>
+
+        'overflow-wrap: anywhere' should be considered when calculating min-content intrinsic sizes.
+        https://bugs.webkit.org/show_bug.cgi?id=231152
+
+        Reviewed by Javier Fernandez.
+
+        As opposed to overflow-wrap: 'break-word', 'anywhere' should be taken into account when computing the preferred width.
+
+        "An otherwise unbreakable sequence of characters may be broken at an arbitrary point... 
+        Soft wrap opportunities introduced by anywhere are considered when calculating min-content intrinsic sizes."
+
+        https://drafts.csswg.org/css-text-3/#overflow-wrap-property
+
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::computePreferredLogicalWidths):
+        (WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):
+
 2021-10-04  Kimmo Kinnunen  <[email protected]>
 
         Regression (r283238)[ MacOS wk1 ] fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html is timing out

Modified: trunk/Source/WebCore/rendering/RenderText.cpp (283492 => 283493)


--- trunk/Source/WebCore/rendering/RenderText.cpp	2021-10-04 12:14:33 UTC (rev 283492)
+++ trunk/Source/WebCore/rendering/RenderText.cpp	2021-10-04 13:16:56 UTC (rev 283493)
@@ -1014,11 +1014,11 @@
 
     bool breakNBSP = style.autoWrap() && style.nbspMode() == NBSPMode::Space;
     
-    // Note the deliberate omission of word-wrap and overflow-wrap from this breakAll check. Those
-    // do not affect minimum preferred sizes. Note that break-word is a non-standard value for
+    bool breakAnywhere = style.lineBreak() == LineBreak::Anywhere && style.autoWrap();
+    // Note the deliberate omission of word-wrap/overflow-wrap's break-word value from this breakAll check.
+    // Those do not affect minimum preferred sizes. Note that break-word is a non-standard value for
     // word-break, but we support it as though it means break-all.
-    bool breakAnywhere = style.lineBreak() == LineBreak::Anywhere && style.autoWrap();
-    bool breakAll = (style.wordBreak() == WordBreak::BreakAll || style.wordBreak() == WordBreak::BreakWord) && style.autoWrap();
+    bool breakAll = (style.wordBreak() == WordBreak::BreakAll || style.wordBreak() == WordBreak::BreakWord || style.overflowWrap() == OverflowWrap::Anywhere) && style.autoWrap();
     bool keepAllWords = style.wordBreak() == WordBreak::KeepAll;
     bool canUseLineBreakShortcut = iteratorMode == LineBreakIteratorMode::Default;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to