[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 13:14:36 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit d3a27130ec2fac659de3532cc2e3dfe9d4d226fe
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 9 17:14:30 2010 +0000

    2010-09-09  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Dan Bernstein.
    
            REGRESSION(r58875-r59046): Scrollable content drawn in wrong layer with Flash 10.1
            https://bugs.webkit.org/show_bug.cgi?id=40743
    
            We can't do partial compositing layer updates on scrolling if we have to look
            for overlap, because the overlap map needs to be populated by traversing the
            compositing layer hierarchy from the root.
    
            Test: compositing/layer-creation/scroll-partial-update.html
    
            * rendering/RenderLayerCompositor.cpp:
            (WebCore::RenderLayerCompositor::updateCompositingLayers):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67093 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index fca5e48..90e30a5 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-09-09  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        REGRESSION(r58875-r59046): Scrollable content drawn in wrong layer with Flash 10.1
+        https://bugs.webkit.org/show_bug.cgi?id=40743
+        
+        Test for compositing layers updates on scrolling.
+
+        * compositing/layer-creation/scroll-partial-update-expected.txt: Added.
+        * compositing/layer-creation/scroll-partial-update.html: Added.
+
 2010-09-09  Tony Chang  <tony at chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/LayoutTests/compositing/layer-creation/scroll-partial-update-expected.txt b/LayoutTests/compositing/layer-creation/scroll-partial-update-expected.txt
new file mode 100644
index 0000000..4a0f216
--- /dev/null
+++ b/LayoutTests/compositing/layer-creation/scroll-partial-update-expected.txt
@@ -0,0 +1,70 @@
+scroll me
+ (GraphicsLayer
+  (position 0.00 0.00)
+  (anchor 0.50 0.50)
+  (bounds 800.00 600.00)
+  (opacity 1.00)
+  (usingTiledLayer 0)
+  (preserves3D 0)
+  (drawsContent 0)
+  (backfaceVisibility visible)
+  (backgroundColor none)
+  (transform identity)
+  (children 1
+    (GraphicsLayer
+      (position 0.00 0.00)
+      (anchor 0.50 0.50)
+      (bounds 800.00 600.00)
+      (opacity 1.00)
+      (usingTiledLayer 0)
+      (preserves3D 0)
+      (drawsContent 0)
+      (backfaceVisibility visible)
+      (backgroundColor none)
+      (transform identity)
+      (childrenTransform identity)
+      (children 3
+        (GraphicsLayer
+          (position 8.00 8.00)
+          (anchor 0.50 0.50)
+          (bounds 20.00 20.00)
+          (opacity 1.00)
+          (usingTiledLayer 0)
+          (preserves3D 0)
+          (drawsContent 0)
+          (backfaceVisibility visible)
+          (backgroundColor none)
+          (transform identity)
+          (childrenTransform identity)
+        )
+        (GraphicsLayer
+          (position 10.00 10.00)
+          (anchor 0.50 0.50)
+          (bounds 400.00 100.00)
+          (opacity 1.00)
+          (usingTiledLayer 0)
+          (preserves3D 0)
+          (drawsContent 1)
+          (backfaceVisibility visible)
+          (backgroundColor none)
+          (transform identity)
+          (childrenTransform identity)
+        )
+        (GraphicsLayer
+          (position 200.00 8.00)
+          (anchor 0.50 0.50)
+          (bounds 204.00 204.00)
+          (opacity 1.00)
+          (usingTiledLayer 0)
+          (preserves3D 0)
+          (drawsContent 1)
+          (backfaceVisibility visible)
+          (backgroundColor none)
+          (transform identity)
+          (childrenTransform identity)
+        )
+      )
+    )
+  )
+)
+
diff --git a/LayoutTests/compositing/layer-creation/scroll-partial-update.html b/LayoutTests/compositing/layer-creation/scroll-partial-update.html
new file mode 100644
index 0000000..af995b1
--- /dev/null
+++ b/LayoutTests/compositing/layer-creation/scroll-partial-update.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <style type="text/css">
+      #overlay {
+        position: absolute;
+        left: 10px;
+        top: 10px;
+        width: 400px;
+        height: 100px;
+        z-index: 1;
+        background-color: rgba(0, 0, 0, 0.5);
+      }
+
+      #container {
+        position: absolute;
+        left: 200px;
+        top: 8px;
+        width: 200px;
+        z-index: 2;
+        border: 2px solid blue;
+      }
+
+      #scroller {
+        height: 200px;
+        background-color: yellow;
+        overflow-y: scroll;
+      }
+
+      #scroller > div {
+        height: 400px;
+      }
+      
+      pre {
+        margin-top: 200px;
+      }
+    </style>
+    <script type="text/javascript" charset="utf-8">
+      if (window.layoutTestController) {
+        layoutTestController.dumpAsText();
+        layoutTestController.waitUntilDone();
+      }
+
+      function doTest()
+      {
+        window.setTimeout(function() {
+          document.getElementById('scroller').scrollTop = 50;
+          if (window.layoutTestController) {
+            document.getElementById('results').innerText = layoutTestController.layerTreeAsText();
+            layoutTestController.notifyDone();
+          }
+        }, 20);
+      }
+      window.addEventListener('load', doTest, false);
+    </script>
+  </head>
+  <body>
+
+    <video src="../resources/video.mp4" height="20" width="20"></video>
+
+    <div id="overlay"></div>
+
+    <div id="container">
+      <div id="scroller">
+        <div>scroll me</div>
+      </div>
+    </div>
+    <pre id="results"></pre>
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 3d1fcab..a9d89ee 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-09-09  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        REGRESSION(r58875-r59046): Scrollable content drawn in wrong layer with Flash 10.1
+        https://bugs.webkit.org/show_bug.cgi?id=40743
+        
+        We can't do partial compositing layer updates on scrolling if we have to look
+        for overlap, because the overlap map needs to be populated by traversing the
+        compositing layer hierarchy from the root.
+
+        Test: compositing/layer-creation/scroll-partial-update.html
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateCompositingLayers):
+
 2010-09-09  Philippe Normand  <pnormand at igalia.com>
 
         Reviewed by Martin Robinson.
diff --git a/WebCore/rendering/RenderLayerCompositor.cpp b/WebCore/rendering/RenderLayerCompositor.cpp
index d37bac3..859b394 100644
--- a/WebCore/rendering/RenderLayerCompositor.cpp
+++ b/WebCore/rendering/RenderLayerCompositor.cpp
@@ -212,7 +212,7 @@ void RenderLayerCompositor::updateCompositingLayers(CompositingUpdateType update
         return;
 
     bool needHierarchyUpdate = m_compositingLayersNeedRebuild;
-    if (!updateRoot) {
+    if (!updateRoot || m_compositingConsultsOverlap) {
         // Only clear the flag if we're updating the entire hierarchy.
         m_compositingLayersNeedRebuild = false;
         updateRoot = rootRenderLayer();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list