[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:23:15 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 66b5f2dbce12416f458a387233651b8eafaa89b3
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 21 15:14:07 2010 +0000

    2010-07-20  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Dan Bernstein.
    
            CSS rotation transform can cause elements with certain styles to vanish during rotation.
            https://bugs.webkit.org/show_bug.cgi?id=42579
    
            Remove some untested, broken code that, as far as I can tell, could never get hit.
            Use the correct rect for the PaintInfo so that zero-sized elements with overflow:hidden
            but a border paint correctly.
    
            Test: compositing/overflow/zero-size-overflow.html
    
            * rendering/RenderLayerBacking.cpp:
            (WebCore::RenderLayerBacking::paintIntoLayer):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 8a29487..d52a00b 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,17 @@
+2010-07-20  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        CSS rotation transform can cause elements with certain styles to vanish during rotation.
+        https://bugs.webkit.org/show_bug.cgi?id=42579
+        
+        Testcase with a composited, zero-size element with a thick border.
+
+        * compositing/overflow/zero-size-overflow-expected.checksum: Added.
+        * compositing/overflow/zero-size-overflow-expected.png: Added.
+        * compositing/overflow/zero-size-overflow-expected.txt: Added.
+        * compositing/overflow/zero-size-overflow.html: Added.
+
 2010-07-21  Csaba Osztrogonác  <ossy at webkit.org>
 
         Unreviewed.
diff --git a/LayoutTests/compositing/overflow/zero-size-overflow-expected.checksum b/LayoutTests/compositing/overflow/zero-size-overflow-expected.checksum
new file mode 100644
index 0000000..03123a0
--- /dev/null
+++ b/LayoutTests/compositing/overflow/zero-size-overflow-expected.checksum
@@ -0,0 +1 @@
+d8d08cec7e2be0abfc8c9fcd1b3de142
\ No newline at end of file
diff --git a/LayoutTests/compositing/overflow/zero-size-overflow-expected.png b/LayoutTests/compositing/overflow/zero-size-overflow-expected.png
new file mode 100644
index 0000000..cc7f59b
Binary files /dev/null and b/LayoutTests/compositing/overflow/zero-size-overflow-expected.png differ
diff --git a/LayoutTests/compositing/overflow/zero-size-overflow-expected.txt b/LayoutTests/compositing/overflow/zero-size-overflow-expected.txt
new file mode 100644
index 0000000..03ccae5
--- /dev/null
+++ b/LayoutTests/compositing/overflow/zero-size-overflow-expected.txt
@@ -0,0 +1,9 @@
+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 100x100 clip at (0,0) size 0x0
+  RenderBlock (positioned) {DIV} at (8,8) size 100x100 [border: (50px solid #FF0000)]
+layer at (8,8) size 100x100 clip at (0,0) size 0x0
+  RenderBlock (positioned) {DIV} at (8,8) size 100x100 [border: (50px solid #008000)]
diff --git a/LayoutTests/compositing/overflow/zero-size-overflow.html b/LayoutTests/compositing/overflow/zero-size-overflow.html
new file mode 100644
index 0000000..5d15d26
--- /dev/null
+++ b/LayoutTests/compositing/overflow/zero-size-overflow.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+  <style type="text/css" media="screen">
+    .box {
+      position: absolute;
+      overflow: hidden;
+      width: 0;
+      height: 0;
+    }
+    
+    .indicator {
+      border: 50px solid red;
+    }
+    
+    .test {
+      border: 50px solid green;
+      -webkit-transform: translateZ(0);
+    }
+  </style>
+</head>
+<body>
+
+  <div class="indicator box"></div>
+  <div class="test box"></div>
+
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 54e7a5d..c3148f5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-07-20  Simon Fraser  <simon.fraser at apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        CSS rotation transform can cause elements with certain styles to vanish during rotation.
+        https://bugs.webkit.org/show_bug.cgi?id=42579
+        
+        Remove some untested, broken code that, as far as I can tell, could never get hit.
+        Use the correct rect for the PaintInfo so that zero-sized elements with overflow:hidden
+        but a border paint correctly.
+
+        Test: compositing/overflow/zero-size-overflow.html
+
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::paintIntoLayer):
+
 2010-07-21  Mahesh Kulkarni  <mahesh.kulkarni at nokia.com>
 
         Reviewed by Laszlo Gombos.
diff --git a/WebCore/rendering/RenderLayerBacking.cpp b/WebCore/rendering/RenderLayerBacking.cpp
index 574c658..e96c947 100644
--- a/WebCore/rendering/RenderLayerBacking.cpp
+++ b/WebCore/rendering/RenderLayerBacking.cpp
@@ -983,38 +983,11 @@ void RenderLayerBacking::paintIntoLayer(RenderLayer* rootLayer, GraphicsContext*
     bool shouldPaint = (m_owningLayer->hasVisibleContent() || m_owningLayer->hasVisibleDescendant()) && m_owningLayer->isSelfPaintingLayer();
 
     if (shouldPaint && (paintingPhase & GraphicsLayerPaintBackground)) {
-        // If this is the root then we need to send in a bigger bounding box
-        // because we'll be painting the background as well (see RenderBox::paintRootBoxDecorations()).
-        IntRect paintBox = clipRectToApply;
-        
-        // FIXME: do we need this code?
-        if (renderer()->node() && renderer()->node()->isDocumentNode() && renderer()->document()->isHTMLDocument()) {
-            RenderBox* box = toRenderBox(renderer());
-            int w = box->width();
-            int h = box->height();
-            
-            int rw;
-            int rh;
-            if (FrameView* frameView = box->view()->frameView()) {
-                rw = frameView->contentsWidth();
-                rh = frameView->contentsHeight();
-            } else {
-                rw = box->view()->width();
-                rh = box->view()->height();
-            }
-            
-            int bx = tx - box->marginLeft();
-            int by = ty - box->marginTop();
-            int bw = max(w + box->marginLeft() + box->marginRight() + box->borderLeft() + box->borderRight(), rw);
-            int bh = max(h + box->marginTop() + box->marginBottom() + box->borderTop() + box->borderBottom(), rh);
-            paintBox = IntRect(bx, by, bw, bh);
-        }
-
         // Paint our background first, before painting any child layers.
         // Establish the clip used to paint our background.
         setClip(context, paintDirtyRect, damageRect);
         
-        PaintInfo info(context, paintBox, PaintPhaseBlockBackground, false, paintingRootForRenderer, 0);
+        PaintInfo info(context, damageRect, PaintPhaseBlockBackground, false, paintingRootForRenderer, 0);
         renderer()->paint(info, tx, ty);
 
         // Our scrollbar widgets paint exactly when we tell them to, so that they work properly with

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list