[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