Title: [150213] trunk
- Revision
- 150213
- Author
- [email protected]
- Date
- 2013-05-16 16:57:46 -0700 (Thu, 16 May 2013)
Log Message
Source/WebCore: Content disappears when scrolling http://www.childrenscancer.org/zach/
https://bugs.webkit.org/show_bug.cgi?id=116206
Reviewed by Darin Adler.
When a RenderLayerBacking gains or loses a foregroundLayer or backgroundLayer,
we need to repaint the primary layer, since what paints into that primary
layer will change.
On the page in question, we gained/lost a foreground layer when scrolling because
the page popped an element into position:fixed.
Test: compositing/repaint/foreground-layer-change.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateForegroundLayer):
(WebCore::RenderLayerBacking::updateBackgroundLayer):
LayoutTests: Content disappears when scrolling http://www.childrenscancer.org/zach/
https://bugs.webkit.org/show_bug.cgi?id=116206
Reviewed by Darin Adler.
Ref test for foreground layer removal.
* compositing/repaint/foreground-layer-change-expected.html: Added.
* compositing/repaint/foreground-layer-change.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (150212 => 150213)
--- trunk/LayoutTests/ChangeLog 2013-05-16 23:48:49 UTC (rev 150212)
+++ trunk/LayoutTests/ChangeLog 2013-05-16 23:57:46 UTC (rev 150213)
@@ -1,3 +1,15 @@
+2013-05-16 Simon Fraser <[email protected]>
+
+ Content disappears when scrolling http://www.childrenscancer.org/zach/
+ https://bugs.webkit.org/show_bug.cgi?id=116206
+
+ Reviewed by Darin Adler.
+
+ Ref test for foreground layer removal.
+
+ * compositing/repaint/foreground-layer-change-expected.html: Added.
+ * compositing/repaint/foreground-layer-change.html: Added.
+
2013-05-16 Ryosuke Niwa <[email protected]>
REGRESSION: canvas/philip/tests/2d.text.draw.fontface.notinpage.html fails
Added: trunk/LayoutTests/compositing/repaint/foreground-layer-change-expected.html (0 => 150213)
--- trunk/LayoutTests/compositing/repaint/foreground-layer-change-expected.html (rev 0)
+++ trunk/LayoutTests/compositing/repaint/foreground-layer-change-expected.html 2013-05-16 23:57:46 UTC (rev 150213)
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+ .container {
+ border: 1px solid black;
+ }
+ .box {
+ width: 200px;
+ height: 200px;
+ background-color: red;
+ }
+
+ .child {
+ background-color: green;
+ width: 100%;
+ height: 100%;
+ }
+
+ .composited {
+ -webkit-transform: translateZ(0);
+ }
+
+ #negative {
+ position: absolute;
+ top: 100px;
+ height: 50px;
+ width: 50px;
+ background-color: orange;
+ z-index: 0;
+ }
+ </style>
+</head>
+<body>
+ <div class="container composited box">
+ <div class="child"></div>
+ <div id="negative" class="composited behind box"></div>
+ </div>
+</body>
+</html>
Property changes on: trunk/LayoutTests/compositing/repaint/foreground-layer-change-expected.html
___________________________________________________________________
Added: svn:mime-type
Added: svn:keywords
Added: svn:eol-style
Added: trunk/LayoutTests/compositing/repaint/foreground-layer-change.html (0 => 150213)
--- trunk/LayoutTests/compositing/repaint/foreground-layer-change.html (rev 0)
+++ trunk/LayoutTests/compositing/repaint/foreground-layer-change.html 2013-05-16 23:57:46 UTC (rev 150213)
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+ .container {
+ border: 1px solid black;
+ }
+ .box {
+ width: 200px;
+ height: 200px;
+ background-color: red;
+ }
+
+ .child {
+ background-color: green;
+ width: 100%;
+ height: 100%;
+ }
+
+ .composited {
+ -webkit-transform: translateZ(0);
+ }
+
+ #negative {
+ position: absolute;
+ top: 100px;
+ height: 50px;
+ width: 50px;
+ background-color: orange;
+ z-index: 0;
+ }
+
+ #negative.behind {
+ z-index: -1;
+ }
+ </style>
+ <script>
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+ function doTest()
+ {
+ window.setTimeout(function() {
+ document.getElementById('negative').classList.remove('behind');
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }, 0)
+ }
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+ <div class="container composited box">
+ <div class="child"></div>
+ <div id="negative" class="composited behind box"></div>
+ </div>
+</body>
+</html>
Property changes on: trunk/LayoutTests/compositing/repaint/foreground-layer-change.html
___________________________________________________________________
Added: svn:mime-type
Added: svn:keywords
Added: svn:eol-style
Modified: trunk/Source/WebCore/ChangeLog (150212 => 150213)
--- trunk/Source/WebCore/ChangeLog 2013-05-16 23:48:49 UTC (rev 150212)
+++ trunk/Source/WebCore/ChangeLog 2013-05-16 23:57:46 UTC (rev 150213)
@@ -1,3 +1,23 @@
+2013-05-16 Simon Fraser <[email protected]>
+
+ Content disappears when scrolling http://www.childrenscancer.org/zach/
+ https://bugs.webkit.org/show_bug.cgi?id=116206
+
+ Reviewed by Darin Adler.
+
+ When a RenderLayerBacking gains or loses a foregroundLayer or backgroundLayer,
+ we need to repaint the primary layer, since what paints into that primary
+ layer will change.
+
+ On the page in question, we gained/lost a foreground layer when scrolling because
+ the page popped an element into position:fixed.
+
+ Test: compositing/repaint/foreground-layer-change.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateForegroundLayer):
+ (WebCore::RenderLayerBacking::updateBackgroundLayer):
+
2013-05-16 Andy Estes <[email protected]>
Do not indefinitely cache resources from blob URLs.
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (150212 => 150213)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2013-05-16 23:48:49 UTC (rev 150212)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2013-05-16 23:57:46 UTC (rev 150213)
@@ -1165,8 +1165,10 @@
layerChanged = true;
}
- if (layerChanged)
+ if (layerChanged) {
+ m_graphicsLayer->setNeedsDisplay();
m_graphicsLayer->setPaintingPhase(paintingPhaseForPrimaryLayer());
+ }
return layerChanged;
}
@@ -1214,6 +1216,7 @@
}
if (layerChanged) {
+ m_graphicsLayer->setNeedsDisplay();
// This assumes that the background layer is only used for fixed backgrounds, which is currently a correct assumption.
if (renderer()->view())
compositor()->fixedRootBackgroundLayerChanged();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes