[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

simon.fraser at apple.com simon.fraser at apple.com
Thu Apr 8 02:11:41 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 44e8cbd31f480adb48ef9417c42f245c50c36a97
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Mar 5 22:55:24 2010 +0000

    2010-03-05  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Darin Adler.
    
            ASSERTION FAILED: rootLayer == m_clipRectsRoot at hulu.com
            https://bugs.webkit.org/show_bug.cgi?id=34065
            <rdar://problem/7573509>
    
            Fix one instance of this assertion (not necessarily the one seen on hulu.com).
    
            If the layer that clippingRoot() is being called on is itself compositing,
            then it acts as the clipping root. Without this, calls to RenderLayer::childrenClipRect()
            and RenderLayer::selfClipRect() via FrameView::windowClipRectForLayer(), for plug-ins,
            caused the caching of an incorrect clip rects root.
    
            Test: compositing/geometry/object-clip-rects-assertion.html
    
            * rendering/RenderLayer.cpp:
            (WebCore::RenderLayer::clippingRoot):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55597 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 6694323..04971fc 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2010-03-05  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Darin Adler.
+
+        Assertion ASSERTION FAILED: rootLayer == m_clipRectsRoot at hulu.com
+        https://bugs.webkit.org/show_bug.cgi?id=34065
+        <rdar://problem/7573509>
+        
+        Testcase with an object element and a RenderLayer sibling.
+
+        * compositing/geometry/object-clip-rects-assertion-expected.txt: Added.
+        * compositing/geometry/object-clip-rects-assertion.html: Added.
+
 2010-03-05  Dean Jackson  <dino at apple.com>
 
         No review.
diff --git a/LayoutTests/compositing/geometry/object-clip-rects-assertion-expected.txt b/LayoutTests/compositing/geometry/object-clip-rects-assertion-expected.txt
new file mode 100644
index 0000000..74da4d2
--- /dev/null
+++ b/LayoutTests/compositing/geometry/object-clip-rects-assertion-expected.txt
@@ -0,0 +1,4 @@
+This testcase should not fire an assertion related to clip rects.
+
+
+
diff --git a/LayoutTests/compositing/geometry/object-clip-rects-assertion.html b/LayoutTests/compositing/geometry/object-clip-rects-assertion.html
new file mode 100644
index 0000000..4e39e13
--- /dev/null
+++ b/LayoutTests/compositing/geometry/object-clip-rects-assertion.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+  "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <title>Clip Rects assertion</title>
+  <style type="text/css" media="screen">
+
+    .container {
+        position: absolute;
+        overflow: hidden;
+        padding: 10px;
+        border: 1px solid black;
+    }
+    
+    .box {
+      width: 100px;
+      height: 100px;
+      background-color: blue;
+      opacity: 0.8;
+    }
+    
+  </style>
+  <script type="text/javascript" charset="utf-8">
+    if (window.layoutTestController)
+      layoutTestController.dumpAsText();
+  </script>
+</head>
+<body>
+
+    <p>This testcase should not fire an assertion related to clip rects.</p>
+    <div class="container">
+        <object height="100" width="100">
+            <param value="../resources/video.mp4" name="src">
+            <param value="false" name="autoplay">
+        </object>
+        <div class="box">
+        </div>
+    </div>
+    
+</body>
+</html>
diff --git a/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.checksum b/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.checksum
new file mode 100644
index 0000000..eec722c
--- /dev/null
+++ b/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.checksum
@@ -0,0 +1 @@
+a5a20a25a27b404c726e3e2f92f97732
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.png b/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.png
new file mode 100644
index 0000000..d38f87c
Binary files /dev/null and b/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.png differ
diff --git a/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.txt b/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.txt
new file mode 100644
index 0000000..09d632c
--- /dev/null
+++ b/LayoutTests/platform/mac/compositing/geometry/clip-rects-assertion-expected.txt
@@ -0,0 +1,13 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x8
+  RenderBlock {HTML} at (0,0) size 800x8
+    RenderBody {BODY} at (8,8) size 784x0
+layer at (8,8) size 400x404
+  RenderBlock (positioned) {DIV} at (8,8) size 400x404
+    RenderBlock (anonymous) at (0,0) size 400x304
+      RenderText {#text} at (0,0) size 0x0
+layer at (8,8) size 400x300
+  RenderEmbeddedObject {OBJECT} at (0,0) size 400x300
+layer at (8,312) size 100x100
+  RenderBlock {DIV} at (0,304) size 100x100 [bgcolor=#0000FF]
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index c416f28..659389d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,5 +1,25 @@
 2010-03-05  Simon Fraser  <simon.fraser at apple.com>
 
+        Reviewed by Darin Adler.
+
+        ASSERTION FAILED: rootLayer == m_clipRectsRoot at hulu.com
+        https://bugs.webkit.org/show_bug.cgi?id=34065
+        <rdar://problem/7573509>
+        
+        Fix one instance of this assertion (not necessarily the one seen on hulu.com).
+        
+        If the layer that clippingRoot() is being called on is itself compositing,
+        then it acts as the clipping root. Without this, calls to RenderLayer::childrenClipRect()
+        and RenderLayer::selfClipRect() via FrameView::windowClipRectForLayer(), for plug-ins,
+        caused the caching of an incorrect clip rects root.
+
+        Test: compositing/geometry/object-clip-rects-assertion.html
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::clippingRoot):
+
+2010-03-05  Simon Fraser  <simon.fraser at apple.com>
+
         Reviewed by Dan Bernstein.
 
         Child clipping compositing layers don't show the blue debug color
diff --git a/WebCore/rendering/RenderLayer.cpp b/WebCore/rendering/RenderLayer.cpp
index 93632eb..60387b6 100644
--- a/WebCore/rendering/RenderLayer.cpp
+++ b/WebCore/rendering/RenderLayer.cpp
@@ -710,6 +710,11 @@ RenderLayer* RenderLayer::enclosingCompositingLayer(bool includeSelf) const
 
 RenderLayer* RenderLayer::clippingRoot() const
 {
+#if USE(ACCELERATED_COMPOSITING)
+    if (isComposited())
+        return const_cast<RenderLayer*>(this);
+#endif
+
     const RenderLayer* current = this;
     while (current) {
         if (current->renderer()->isRenderView())

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list