[SCM] WebKit Debian packaging branch, debian/experimental,	updated. upstream/1.3.3-9427-gc2be6fc
    simon.fraser at apple.com 
    simon.fraser at apple.com
       
    Wed Dec 22 11:30:50 UTC 2010
    
    
  
The following commit has been merged in the debian/experimental branch:
commit cd3b47e71ba79e3b05da59c02dd6dd07e7069ece
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jul 27 21:18:02 2010 +0000
    2010-07-27  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Darin Adler.
    
            Incomplete repaint of some Safari extension content which falls into a composited iframe
            <rdar://problem/8235044>
    
            syncCompositingStateRecursive() bails if it thinks that a layout is pending, because
            the layout may update layers and make this sync obsolete. However, it only checked for an
            active layout timer. This ignores other sources of pending style changes and layouts, like
            the document's style recalc timer. So use needsLayout(), which does check this.
    
            Unable to create a test because it depends on Safari extension behavior.
    
            * page/FrameView.cpp:
            (WebCore::FrameView::syncCompositingStateRecursive):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d1eeeae..439a99f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2010-07-27  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Incomplete repaint of some Safari extension content which falls into a composited iframe
+        <rdar://problem/8235044>
+        
+        syncCompositingStateRecursive() bails if it thinks that a layout is pending, because
+        the layout may update layers and make this sync obsolete. However, it only checked for an
+        active layout timer. This ignores other sources of pending style changes and layouts, like
+        the document's style recalc timer. So use needsLayout(), which does check this.
+
+        Unable to create a test because it depends on Safari extension behavior.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::syncCompositingStateRecursive):
+
 2010-07-27  Andreas Kling  <andreas.kling at nokia.com>
 
         Reviewed by Kenneth Rohde Christiansen.
diff --git a/WebCore/page/FrameView.cpp b/WebCore/page/FrameView.cpp
index 98ca8f9..0547c82 100644
--- a/WebCore/page/FrameView.cpp
+++ b/WebCore/page/FrameView.cpp
@@ -541,10 +541,10 @@ bool FrameView::syncCompositingStateRecursive()
     if (!contentRenderer)
         return true;    // We don't want to keep trying to update layers if we have no renderer.
 
-    if (m_layoutTimer.isActive()) {
-        // Don't sync layers if there's a layout pending.
+    // If we sync compositing layers when a layout is pending, we may cause painting of compositing
+    // layer content to occur before layout has happened, which will cause paintContents() to bail.
+    if (needsLayout())
         return false;
-    }
     
     if (GraphicsLayer* rootLayer = contentRenderer->compositor()->rootPlatformLayer())
         rootLayer->syncCompositingState();
-- 
WebKit Debian packaging
    
    
More information about the Pkg-webkit-commits
mailing list