Title: [107360] trunk/Source/WebCore
Revision
107360
Author
[email protected]
Date
2012-02-09 22:08:40 -0800 (Thu, 09 Feb 2012)

Log Message

[Chromium] Assertion failure minX <= maxX in Region.cpp
https://bugs.webkit.org/show_bug.cgi?id=78038

Patch by Dana Jansens <[email protected]> on 2012-02-09
Reviewed by James Robinson.

Covered by existing tests (should make them stop asserting).

Clamp sizes for composited layers coming out of WebCore to make sure they are valid non-negative values.

* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setSize):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (107359 => 107360)


--- trunk/Source/WebCore/ChangeLog	2012-02-10 05:59:03 UTC (rev 107359)
+++ trunk/Source/WebCore/ChangeLog	2012-02-10 06:08:40 UTC (rev 107360)
@@ -1,3 +1,17 @@
+2012-02-09  Dana Jansens  <[email protected]>
+
+        [Chromium] Assertion failure minX <= maxX in Region.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=78038
+
+        Reviewed by James Robinson.
+
+        Covered by existing tests (should make them stop asserting).
+
+        Clamp sizes for composited layers coming out of WebCore to make sure they are valid non-negative values.
+
+        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
+        (WebCore::GraphicsLayerChromium::setSize):
+
 2012-02-09  Gregg Tavares  <[email protected]>
 
         Make WebGLRenderingContext::printWarningToConsole safer

Modified: trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp (107359 => 107360)


--- trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp	2012-02-10 05:59:03 UTC (rev 107359)
+++ trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp	2012-02-10 06:08:40 UTC (rev 107360)
@@ -175,10 +175,16 @@
 
 void GraphicsLayerChromium::setSize(const FloatSize& size)
 {
-    if (size == m_size)
+    // We are receiving negative sizes here that cause assertions to fail in the compositor. Clamp them to 0 to
+    // avoid those assertions.
+    FloatSize clampedSize = size;
+    if (clampedSize.isEmpty())
+        clampedSize = FloatSize();
+
+    if (clampedSize == m_size)
         return;
 
-    GraphicsLayer::setSize(size);
+    GraphicsLayer::setSize(clampedSize);
     updateLayerSize();
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to