[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