Title: [125461] branches/safari-536.26-branch/Source/WebCore
Revision
125461
Author
[email protected]
Date
2012-08-13 15:35:48 -0700 (Mon, 13 Aug 2012)

Log Message

Merged r125104.  <rdar://problem/12082988>

Modified Paths

Diff

Modified: branches/safari-536.26-branch/Source/WebCore/ChangeLog (125460 => 125461)


--- branches/safari-536.26-branch/Source/WebCore/ChangeLog	2012-08-13 22:16:37 UTC (rev 125460)
+++ branches/safari-536.26-branch/Source/WebCore/ChangeLog	2012-08-13 22:35:48 UTC (rev 125461)
@@ -1,5 +1,29 @@
 2012-08-13  Lucas Forschler  <[email protected]>
 
+    Merge r125104.
+
+    2012-08-08  Beth Dakin  <[email protected]>
+
+            https://bugs.webkit.org/show_bug.cgi?id=93393
+            Overflow regions sometimes repaint incorrectly after going into or 
+            coming out of compositing mode
+            -and corresponding-
+            <rdar://problem/12006463>
+
+            Reviewed by Simon Fraser.
+
+            My first patch to fix this bug removed an if (parent()) check that is 
+            needed to prevent a table crash seen in 
+            fast/table/table-row-compositing-repaint-crash.html  
+            The parent() check was actually added originally to prevent this same 
+            crash. See http://trac.webkit.org/changeset/110456  
+            This patch adds that check back, but really we should delay the 
+            computation of repaint rects if layout has not happened yet.
+            * rendering/RenderLayerCompositor.cpp:
+            (WebCore::RenderLayerCompositor::updateBacking):
+
+2012-08-13  Lucas Forschler  <[email protected]>
+
     Merge r125086.
 
     2012-08-08  Beth Dakin  <[email protected]>
@@ -205173,3 +205197,4 @@
 .
 .
 .
+.

Modified: branches/safari-536.26-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp (125460 => 125461)


--- branches/safari-536.26-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp	2012-08-13 22:16:37 UTC (rev 125460)
+++ branches/safari-536.26-branch/Source/WebCore/rendering/RenderLayerCompositor.cpp	2012-08-13 22:35:48 UTC (rev 125461)
@@ -487,6 +487,12 @@
                 repaintOnCompositingChange(layer);
 
             layer->ensureBacking();
+            
+            // This layer and all of its descendants have cached repaints rects that are relative to 
+            // the repaint container, so change when compositing changes; we need to update them here. 
+            if (layer->parent()) 
+                layer->computeRepaintRectsIncludingDescendants();
+
             layerChanged = true;
         }
     } else {
@@ -504,6 +510,10 @@
             
             layer->clearBacking();
             layerChanged = true;
+            
+            // This layer and all of its descendants have cached repaints rects that are relative to 
+             // the repaint container, so change when compositing changes; we need to update them here. 
+             layer->computeRepaintRectsIncludingDescendants();
 
             // If we need to repaint, do so now that we've removed the backing
             if (shouldRepaint == CompositingChangeRepaintNow)
@@ -525,13 +535,6 @@
             innerCompositor->updateRootLayerAttachment();
     }
     
-    if (layerChanged) {
-
-        // This layer and all of its descendants have cached repaints rects that are relative to
-        // the repaint container, so change when compositing changes; we need to update them here.
-        layer->computeRepaintRectsIncludingDescendants();
-    }
-
     return layerChanged;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to