Title: [258967] trunk
Revision
258967
Author
[email protected]
Date
2020-03-24 18:46:09 -0700 (Tue, 24 Mar 2020)

Log Message

[MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
https://bugs.webkit.org/show_bug.cgi?id=209527
<rdar://problem/56993589>

Reviewed by Simon Fraser.

Source/WebCore:

This patch expands on r204980. This is yet another case when we can't possibly accommodate widows in the current column.

Test: fast/multicol/page-cant-accommodate-widow-crash.html

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

LayoutTests:

* fast/multicol/page-cant-accommodate-widow-crash-expected.txt: Added.
* fast/multicol/page-cant-accommodate-widow-crash.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (258966 => 258967)


--- trunk/LayoutTests/ChangeLog	2020-03-25 01:22:03 UTC (rev 258966)
+++ trunk/LayoutTests/ChangeLog	2020-03-25 01:46:09 UTC (rev 258967)
@@ -1,3 +1,14 @@
+2020-03-24  Zalan Bujtas  <[email protected]>
+
+        [MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
+        https://bugs.webkit.org/show_bug.cgi?id=209527
+        <rdar://problem/56993589>
+
+        Reviewed by Simon Fraser.
+
+        * fast/multicol/page-cant-accommodate-widow-crash-expected.txt: Added.
+        * fast/multicol/page-cant-accommodate-widow-crash.html: Added.
+
 2020-03-24  Said Abou-Hallawa  <[email protected]>
 
         [ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing

Added: trunk/LayoutTests/fast/multicol/page-cant-accommodate-widow-crash-expected.txt (0 => 258967)


--- trunk/LayoutTests/fast/multicol/page-cant-accommodate-widow-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/page-cant-accommodate-widow-crash-expected.txt	2020-03-25 01:46:09 UTC (rev 258967)
@@ -0,0 +1,2 @@
+PassIf
+NoCrashOrAssert

Added: trunk/LayoutTests/fast/multicol/page-cant-accommodate-widow-crash.html (0 => 258967)


--- trunk/LayoutTests/fast/multicol/page-cant-accommodate-widow-crash.html	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/page-cant-accommodate-widow-crash.html	2020-03-25 01:46:09 UTC (rev 258967)
@@ -0,0 +1,21 @@
+<style>
+body {
+  word-wrap: break-word;
+  column-width: 1em;
+}
+.widow {
+  widows: 15;
+}
+.spanner {
+  column-span: all;
+}
+ol {
+  max-height: 1vh;
+}
+</style>
+<ol>PassIf<div class=spanner></div></ol>
+<div class=widow>NoCrashOrAssert</div>
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText();
+</script>

Modified: trunk/Source/WebCore/ChangeLog (258966 => 258967)


--- trunk/Source/WebCore/ChangeLog	2020-03-25 01:22:03 UTC (rev 258966)
+++ trunk/Source/WebCore/ChangeLog	2020-03-25 01:46:09 UTC (rev 258967)
@@ -1,3 +1,18 @@
+2020-03-24  Zalan Bujtas  <[email protected]>
+
+        [MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
+        https://bugs.webkit.org/show_bug.cgi?id=209527
+        <rdar://problem/56993589>
+
+        Reviewed by Simon Fraser.
+
+        This patch expands on r204980. This is yet another case when we can't possibly accommodate widows in the current column.
+
+        Test: fast/multicol/page-cant-accommodate-widow-crash.html
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
+
 2020-03-24  Wenson Hsieh  <[email protected]>
 
         Rename DragDataMac and DragImageMac to DragDataCocoa and DragImageCocoa

Modified: trunk/Source/WebCore/rendering/RenderBlockFlow.cpp (258966 => 258967)


--- trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2020-03-25 01:22:03 UTC (rev 258966)
+++ trunk/Source/WebCore/rendering/RenderBlockFlow.cpp	2020-03-25 01:46:09 UTC (rev 258967)
@@ -1767,6 +1767,8 @@
     if (!pageLogicalHeight || !hasNextPage(logicalOffset)) {
         // FIXME: In case the line aligns with the top of the page (or it's slightly shifted downwards) it will not be marked as the first line in the page.
         // From here, the fix is not straightforward because it's not easy to always determine when the current line is the first in the page.
+        // With no valid page height, we can't possibly accommodate the widow rules.
+        clearShouldBreakAtLineToAvoidWidowIfNeeded(*this);
         return;
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to