[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:34:40 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit d0a4f938085da81c5189c841174c1a10bb6a3de2
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Jul 29 18:50:59 2010 +0000
2010-07-29 Simon Fraser <simon.fraser at apple.com>
Reviewed by Darin Adler.
Resizer control does not paint in otherwise empty compositing layer
https://bugs.webkit.org/show_bug.cgi?id=42306
Ensure that we create backing store for an empty element with resize: both,
in order to render the resizer control.
Test: compositing/overflow/resize-painting.html
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Check for hasOverflowControls()
earlier, before any child checks.
(WebCore::RenderLayerBacking::hasNonCompositingDescendants): Renamed from hasNonCompositingContent()
to clarify its purpose.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64298 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index aa5cdf6..e10ea6b 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,15 @@
+2010-07-29 Simon Fraser <simon.fraser at apple.com>
+
+ Reviewed by Darin Adler.
+
+ Resizer control does not paint in otherwise empty compositing layer
+ https://bugs.webkit.org/show_bug.cgi?id=42306
+
+ Layer dumping test with an empty div having "resize: both".
+
+ * compositing/overflow/resize-painting-expected.txt: Added.
+ * compositing/overflow/resize-painting.html: Added.
+
2010-07-28 Justin Schuh <jschuh at chromium.org>
Reviewed by Nate Chapin.
diff --git a/LayoutTests/compositing/overflow/resize-painting-expected.txt b/LayoutTests/compositing/overflow/resize-painting-expected.txt
new file mode 100644
index 0000000..36b5a69
--- /dev/null
+++ b/LayoutTests/compositing/overflow/resize-painting-expected.txt
@@ -0,0 +1,43 @@
+(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 1
+ (GraphicsLayer
+ (position 18.00 10.00)
+ (anchor 0.50 0.50)
+ (bounds 100.00 100.00)
+ (opacity 1.00)
+ (usingTiledLayer 0)
+ (preserves3D 0)
+ (drawsContent 1)
+ (backfaceVisibility visible)
+ (backgroundColor none)
+ (transform identity)
+ (childrenTransform identity)
+ )
+ )
+ )
+ )
+)
+
diff --git a/LayoutTests/compositing/overflow/resize-painting.html b/LayoutTests/compositing/overflow/resize-painting.html
new file mode 100644
index 0000000..0fcf2fe
--- /dev/null
+++ b/LayoutTests/compositing/overflow/resize-painting.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+ .composited {
+ -webkit-transform: translateZ(0);
+ }
+
+ .box {
+ margin: 10px;
+ width: 100px;
+ height: 100px;
+ z-index: 0;
+ }
+
+ .resizable {
+ overflow: auto;
+ resize: both;
+ }
+ </style>
+ <script type="text/javascript" charset="utf-8">
+ if (window.layoutTestController)
+ layoutTestController.dumpAsText();
+
+ function doTest()
+ {
+ if (window.layoutTestController)
+ document.getElementById('layers').innerText = layoutTestController.layerTreeAsText();
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+ </head>
+<body>
+ <!-- You should see the resize widget in this element -->
+ <div class="resizable composited box"></div>
+ <pre id="layers">Layer tree appears here in DRT.</pre>
+</body>
+</html>
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index ad62d49..74dd73f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,22 @@
+2010-07-29 Simon Fraser <simon.fraser at apple.com>
+
+ Reviewed by Darin Adler.
+
+ Resizer control does not paint in otherwise empty compositing layer
+ https://bugs.webkit.org/show_bug.cgi?id=42306
+
+ Ensure that we create backing store for an empty element with resize: both,
+ in order to render the resizer control.
+
+ Test: compositing/overflow/resize-painting.html
+
+ * rendering/RenderLayerBacking.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Check for hasOverflowControls()
+ earlier, before any child checks.
+ (WebCore::RenderLayerBacking::hasNonCompositingDescendants): Renamed from hasNonCompositingContent()
+ to clarify its purpose.
+
2010-07-29 Adam Roben <aroben at apple.com>
Remove WKCACFLayer::Lanczos
diff --git a/WebCore/rendering/RenderLayerBacking.cpp b/WebCore/rendering/RenderLayerBacking.cpp
index 13a8145..0e5933e 100644
--- a/WebCore/rendering/RenderLayerBacking.cpp
+++ b/WebCore/rendering/RenderLayerBacking.cpp
@@ -650,6 +650,9 @@ bool RenderLayerBacking::isSimpleContainerCompositingLayer() const
if (hasBoxDecorationsOrBackground(renderObject))
return false;
+ if (m_owningLayer->hasOverflowControls())
+ return false;
+
// If we have got this far and the renderer has no children, then we're ok.
if (!renderObject->firstChild())
return true;
@@ -678,26 +681,23 @@ bool RenderLayerBacking::isSimpleContainerCompositingLayer() const
if (hasBoxDecorationsOrBackgroundImage(style))
return false;
- // Ceck to see if all the body's children are compositing layers.
- if (hasNonCompositingContent())
+ // Check to see if all the body's children are compositing layers.
+ if (hasNonCompositingDescendants())
return false;
return true;
}
// Check to see if all the renderer's children are compositing layers.
- if (hasNonCompositingContent())
+ if (hasNonCompositingDescendants())
return false;
return true;
}
// Conservative test for having no rendered children.
-bool RenderLayerBacking::hasNonCompositingContent() const
+bool RenderLayerBacking::hasNonCompositingDescendants() const
{
- if (m_owningLayer->hasOverflowControls())
- return true;
-
// Some HTML can cause whitespace text nodes to have renderers, like:
// <div>
// <img src=...>
diff --git a/WebCore/rendering/RenderLayerBacking.h b/WebCore/rendering/RenderLayerBacking.h
index 852fc04..808000b 100644
--- a/WebCore/rendering/RenderLayerBacking.h
+++ b/WebCore/rendering/RenderLayerBacking.h
@@ -173,7 +173,7 @@ private:
bool rendererHasBackground() const;
const Color rendererBackgroundColor() const;
- bool hasNonCompositingContent() const;
+ bool hasNonCompositingDescendants() const;
void paintIntoLayer(RenderLayer* rootLayer, GraphicsContext*, const IntRect& paintDirtyRect,
PaintBehavior paintBehavior, GraphicsLayerPaintingPhase, RenderObject* paintingRoot);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list