Title: [213826] releases/WebKitGTK/webkit-2.16/Source/WebCore
Revision
213826
Author
[email protected]
Date
2017-03-13 04:38:23 -0700 (Mon, 13 Mar 2017)

Log Message

Merge r213523 - Animated GIFs fail to play in multi-column layout
https://bugs.webkit.org/show_bug.cgi?id=167901
<rdar://problem/30382262>

Reviewed by Zalan Bujtas.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):
Make sure to handle the case where we pass in a null repaintContainer and need
to cross a multicolumn flow thread -> region boundary as a result.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog (213825 => 213826)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-03-13 11:34:42 UTC (rev 213825)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/ChangeLog	2017-03-13 11:38:23 UTC (rev 213826)
@@ -1,3 +1,16 @@
+2017-03-07  Dave Hyatt  <[email protected]>
+
+        Animated GIFs fail to play in multi-column layout
+        https://bugs.webkit.org/show_bug.cgi?id=167901
+        <rdar://problem/30382262>
+
+        Reviewed by Zalan Bujtas.
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::computeRectForRepaint):
+        Make sure to handle the case where we pass in a null repaintContainer and need
+        to cross a multicolumn flow thread -> region boundary as a result.
+
 2017-03-07  Chris Dumez  <[email protected]>
 
         Align initEvent / initCustomEvent / initMessageEvent with the latest specification

Modified: releases/WebKitGTK/webkit-2.16/Source/WebCore/rendering/RenderBox.cpp (213825 => 213826)


--- releases/WebKitGTK/webkit-2.16/Source/WebCore/rendering/RenderBox.cpp	2017-03-13 11:34:42 UTC (rev 213825)
+++ releases/WebKitGTK/webkit-2.16/Source/WebCore/rendering/RenderBox.cpp	2017-03-13 11:38:23 UTC (rev 213826)
@@ -57,6 +57,7 @@
 #include "RenderIterator.h"
 #include "RenderLayer.h"
 #include "RenderLayerCompositor.h"
+#include "RenderMultiColumnFlowThread.h"
 #include "RenderNamedFlowFragment.h"
 #include "RenderNamedFlowThread.h"
 #include "RenderTableCell.h"
@@ -2293,6 +2294,21 @@
         adjustedRect.expand(locationOffset - flooredLocationOffset);
         locationOffset = flooredLocationOffset;
     }
+
+    if (is<RenderMultiColumnFlowThread>(this)) {
+        // We won't normally run this code. Only when the repaintContainer is null (i.e., we're trying
+        // to get the rect in view coordinates) will we come in here, since normally repaintContainer
+        // will be set and we'll stop at the flow thread. This case is mainly hit by the check for whether
+        // or not images should animate.
+        // FIXME: Just as with offsetFromContainer, we aren't really handling objects that span
+        // multiple columns properly.
+        LayoutPoint physicalPoint(flipForWritingMode(adjustedRect.location()));
+        if (auto* region = downcast<RenderMultiColumnFlowThread>(*this).physicalTranslationFromFlowToRegion((physicalPoint))) {
+            adjustedRect.setLocation(region->flipForWritingMode(physicalPoint));
+            return region->computeRectForRepaint(adjustedRect, repaintContainer, context);
+        }
+    }
+
     LayoutPoint topLeft = adjustedRect.location();
     topLeft.move(locationOffset);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to