Title: [254907] releases/WebKitGTK/webkit-2.26
Revision
254907
Author
[email protected]
Date
2020-01-22 02:26:39 -0800 (Wed, 22 Jan 2020)

Log Message

Merge r250929 - RunResolver::rangeForRendererWithOffsets should check for range end
https://bugs.webkit.org/show_bug.cgi?id=202761
<rdar://problem/55917924>

Reviewed by Antti Koivisto.

Source/WebCore:

This patch ensures that when rangeForRenderer comes back with a collapsed run (empty range), rangeForRendererWithOffsets returns an empty range as well.

Test: fast/text/simple-line-layout-range-check-end.html

* rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets const):

LayoutTests:

* fast/text/simple-line-layout-range-check-end-expected.txt: Added.
* fast/text/simple-line-layout-range-check-end.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.26/LayoutTests/ChangeLog (254906 => 254907)


--- releases/WebKitGTK/webkit-2.26/LayoutTests/ChangeLog	2020-01-22 10:26:33 UTC (rev 254906)
+++ releases/WebKitGTK/webkit-2.26/LayoutTests/ChangeLog	2020-01-22 10:26:39 UTC (rev 254907)
@@ -1,3 +1,14 @@
+2019-10-09  Zalan Bujtas  <[email protected]>
+
+        RunResolver::rangeForRendererWithOffsets should check for range end
+        https://bugs.webkit.org/show_bug.cgi?id=202761
+        <rdar://problem/55917924>
+
+        Reviewed by Antti Koivisto.
+
+        * fast/text/simple-line-layout-range-check-end-expected.txt: Added.
+        * fast/text/simple-line-layout-range-check-end.html: Added.
+
 2019-10-28  Zalan Bujtas  <[email protected]>
 
         Hidden framesets should provide default edgeInfo value

Added: releases/WebKitGTK/webkit-2.26/LayoutTests/fast/text/simple-line-layout-range-check-end-expected.txt (0 => 254907)


--- releases/WebKitGTK/webkit-2.26/LayoutTests/fast/text/simple-line-layout-range-check-end-expected.txt	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.26/LayoutTests/fast/text/simple-line-layout-range-check-end-expected.txt	2020-01-22 10:26:39 UTC (rev 254907)
@@ -0,0 +1,3 @@
+Pass if no crash or assert.
+text
+

Added: releases/WebKitGTK/webkit-2.26/LayoutTests/fast/text/simple-line-layout-range-check-end.html (0 => 254907)


--- releases/WebKitGTK/webkit-2.26/LayoutTests/fast/text/simple-line-layout-range-check-end.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.26/LayoutTests/fast/text/simple-line-layout-range-check-end.html	2020-01-22 10:26:39 UTC (rev 254907)
@@ -0,0 +1,14 @@
+Pass if no crash or assert.
+<div id=first></div>
+<div id=middle></div>
+<div id=last></div>
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText();
+middle.after("text");
+
+var foo = document.createRange();
+foo.selectNodeContents(last);
+foo.setStartAfter(first);
+foo.getBoundingClientRect();
+</script>

Modified: releases/WebKitGTK/webkit-2.26/Source/WebCore/ChangeLog (254906 => 254907)


--- releases/WebKitGTK/webkit-2.26/Source/WebCore/ChangeLog	2020-01-22 10:26:33 UTC (rev 254906)
+++ releases/WebKitGTK/webkit-2.26/Source/WebCore/ChangeLog	2020-01-22 10:26:39 UTC (rev 254907)
@@ -1,3 +1,18 @@
+2019-10-09  Zalan Bujtas  <[email protected]>
+
+        RunResolver::rangeForRendererWithOffsets should check for range end
+        https://bugs.webkit.org/show_bug.cgi?id=202761
+        <rdar://problem/55917924>
+
+        Reviewed by Antti Koivisto.
+
+        This patch ensures that when rangeForRenderer comes back with a collapsed run (empty range), rangeForRendererWithOffsets returns an empty range as well.
+
+        Test: fast/text/simple-line-layout-range-check-end.html
+
+        * rendering/SimpleLineLayoutResolver.cpp:
+        (WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets const):
+
 2019-11-13  Xabier Rodriguez Calvar  <[email protected]>
 
         [GStreamer] Several issues while trying to play a video on NextCloud

Modified: releases/WebKitGTK/webkit-2.26/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp (254906 => 254907)


--- releases/WebKitGTK/webkit-2.26/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp	2020-01-22 10:26:33 UTC (rev 254906)
+++ releases/WebKitGTK/webkit-2.26/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp	2020-01-22 10:26:39 UTC (rev 254907)
@@ -299,6 +299,8 @@
 {
     ASSERT(startOffset <= endOffset);
     auto range = rangeForRenderer(renderer);
+    if (range.begin() == range.end())
+        return { end(), end() };
     auto it = range.begin();
     auto localEnd = (*it).start() + endOffset;
     // Advance to the first run with the start offset inside. Only the first node in a range can have a startOffset.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to