Title: [171105] trunk
Revision
171105
Author
an...@apple.com
Date
2014-07-15 07:59:58 -0700 (Tue, 15 Jul 2014)

Log Message

REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
https://bugs.webkit.org/show_bug.cgi?id=134888

Reviewed by Mihnea Ovidenie.


Source/WebCore: 
Test: fast/regions/flowthread-getranges-box-cast.html

* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges): Test the type before casting.

LayoutTests: 
* fast/regions/flowthread-getranges-box-cast-expected.txt: Added.
* fast/regions/flowthread-getranges-box-cast.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (171104 => 171105)


--- trunk/LayoutTests/ChangeLog	2014-07-15 10:49:58 UTC (rev 171104)
+++ trunk/LayoutTests/ChangeLog	2014-07-15 14:59:58 UTC (rev 171105)
@@ -1,3 +1,13 @@
+2014-07-15  Antti Koivisto  <an...@apple.com>
+
+        REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
+        https://bugs.webkit.org/show_bug.cgi?id=134888
+
+        Reviewed by Mihnea Ovidenie.
+
+        * fast/regions/flowthread-getranges-box-cast-expected.txt: Added.
+        * fast/regions/flowthread-getranges-box-cast.html: Added.
+
 2014-07-14  Zalan Bujtas  <za...@apple.com>
 
         Subpixel rendering: Zero sized compositing container's content positioned off by one device pixel.

Added: trunk/LayoutTests/fast/regions/flowthread-getranges-box-cast-expected.txt (0 => 171105)


--- trunk/LayoutTests/fast/regions/flowthread-getranges-box-cast-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/regions/flowthread-getranges-box-cast-expected.txt	2014-07-15 14:59:58 UTC (rev 171105)
@@ -0,0 +1,3 @@
+This test passes if it doesn't crash or assert.
+
+

Added: trunk/LayoutTests/fast/regions/flowthread-getranges-box-cast.html (0 => 171105)


--- trunk/LayoutTests/fast/regions/flowthread-getranges-box-cast.html	                        (rev 0)
+++ trunk/LayoutTests/fast/regions/flowthread-getranges-box-cast.html	2014-07-15 14:59:58 UTC (rev 171105)
@@ -0,0 +1,17 @@
+<script>
+if (window.testRunner)
+    testRunner.dumpAsText();
+</script>
+<style>
+#region1 { -webkit-flow-from: flow1; width: 250px; height: 70px; left: 20px; top: 250px;}
+</style>
+<div>This test passes if it doesn't crash or assert.</div>
+<div><div id="article"><div <script>
+<br>
+</div></div></div>
+<div id="region1"></div>
+<script>
+var article = document.getElementById("article");
+article.style.webkitFlowInto = "flow1";
+range1 = region1.webkitGetRegionFlowRanges();
+</script>

Modified: trunk/Source/WebCore/ChangeLog (171104 => 171105)


--- trunk/Source/WebCore/ChangeLog	2014-07-15 10:49:58 UTC (rev 171104)
+++ trunk/Source/WebCore/ChangeLog	2014-07-15 14:59:58 UTC (rev 171105)
@@ -1,3 +1,15 @@
+2014-07-15  Antti Koivisto  <an...@apple.com>
+
+        REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
+        https://bugs.webkit.org/show_bug.cgi?id=134888
+
+        Reviewed by Mihnea Ovidenie.
+
+        Test: fast/regions/flowthread-getranges-box-cast.html
+
+        * rendering/RenderNamedFlowThread.cpp:
+        (WebCore::RenderNamedFlowThread::getRanges): Test the type before casting.
+
 2014-07-15  Carlos Alberto Lopez Perez  <clo...@igalia.com>
 
         [GTK] Update GObject DOM bindings symbols file after r171014.

Modified: trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp (171104 => 171105)


--- trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp	2014-07-15 10:49:58 UTC (rev 171104)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowThread.cpp	2014-07-15 14:59:58 UTC (rev 171105)
@@ -36,6 +36,7 @@
 #include "Range.h"
 #include "RenderInline.h"
 #include "RenderLayer.h"
+#include "RenderLineBreak.h"
 #include "RenderNamedFlowFragment.h"
 #include "RenderText.h"
 #include "RenderView.h"
@@ -664,11 +665,14 @@
                 boundingBox = toRenderInline(renderer)->linesBoundingBox();
             else if (renderer->isText())
                 boundingBox = toRenderText(renderer)->linesBoundingBox();
-            else {
-                boundingBox =  toRenderBox(renderer)->frameRect();
+            else if (renderer->isLineBreak())
+                boundingBox = toRenderLineBreak(renderer)->linesBoundingBox();
+            else if (renderer->isBox()) {
+                boundingBox = toRenderBox(renderer)->frameRect();
                 if (toRenderBox(renderer)->isRelPositioned())
                     boundingBox.move(toRenderBox(renderer)->relativePositionLogicalOffset());
-            }
+            } else
+                continue;
 
             LayoutUnit offsetTop = renderer->containingBlock()->offsetFromLogicalTopOfFirstPage();
             const LayoutPoint logicalOffsetFromTop(isHorizontalWritingMode() ? LayoutUnit() :  offsetTop,
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to