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