Title: [88475] trunk/Source/WebCore
Revision
88475
Author
[email protected]
Date
2011-06-09 13:05:51 -0700 (Thu, 09 Jun 2011)

Log Message

2011-06-09  Simon Fraser  <[email protected]>

        Reviewed by Darin Adler.

        Crashes in RenderLayerBacking::paintingGoesToWindow
        https://bugs.webkit.org/show_bug.cgi?id=61159

        Speculative fix for unreproducible crash that can occur when RenderObject::repaintUsingContainer()
        finds a repaintContainer that is not the RenderView, but that is also not
        composited (for unknown reasons), by checking to see if the layer is
        compositing before using backing(). An assertion remains to try to catch
        this in debug builds.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setBackingNeedsRepaintInRect):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (88474 => 88475)


--- trunk/Source/WebCore/ChangeLog	2011-06-09 19:52:27 UTC (rev 88474)
+++ trunk/Source/WebCore/ChangeLog	2011-06-09 20:05:51 UTC (rev 88475)
@@ -1,3 +1,19 @@
+2011-06-09  Simon Fraser  <[email protected]>
+
+        Reviewed by Darin Adler.
+
+        Crashes in RenderLayerBacking::paintingGoesToWindow
+        https://bugs.webkit.org/show_bug.cgi?id=61159
+
+        Speculative fix for unreproducible crash that can occur when RenderObject::repaintUsingContainer()
+        finds a repaintContainer that is not the RenderView, but that is also not
+        composited (for unknown reasons), by checking to see if the layer is
+        compositing before using backing(). An assertion remains to try to catch
+        this in debug builds.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::setBackingNeedsRepaintInRect):
+
 2011-06-09  Julien Chaffraix  <[email protected]>
 
         Reviewed by Darin Adler.

Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (88474 => 88475)


--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2011-06-09 19:52:27 UTC (rev 88474)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2011-06-09 20:05:51 UTC (rev 88475)
@@ -3922,8 +3922,10 @@
 
 void RenderLayer::setBackingNeedsRepaintInRect(const IntRect& r)
 {
+    // https://bugs.webkit.org/show_bug.cgi?id=61159 describes an unreproducible crash here,
+    // so assert but check that the layer is composited.
     ASSERT(isComposited());
-    if (backing()->paintingGoesToWindow()) {
+    if (!isComposited() || backing()->paintingGoesToWindow()) {
         // If we're trying to repaint the placeholder document layer, propagate the
         // repaint to the native view system.
         IntRect absRect(r);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to