Modified: trunk/Source/WebKit/chromium/ChangeLog (104504 => 104505)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-01-10 00:03:12 UTC (rev 104504)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-01-10 00:12:18 UTC (rev 104505)
@@ -1,3 +1,16 @@
+2012-01-09 W. James MacLean <[email protected]>
+
+ [Chromium] REGRESSION(r104368): Broke CCLayerTreeHostImplTest.blendingOffWhenDrawingOpaqueLayers
+ https://bugs.webkit.org/show_bug.cgi?id=75783
+
+ Updated unit test to reflect desired behaviour now that tile/quad culling
+ is implemented.
+
+ Reviewed by James Robinson.
+
+ * tests/CCLayerTreeHostImplTest.cpp:
+ (WebKit::TEST_F):
+
2012-01-09 Chris Rogers <[email protected]>
Fix potential issue in WebMediaPlayerClientImpl
Modified: trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp (104504 => 104505)
--- trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp 2012-01-10 00:03:12 UTC (rev 104504)
+++ trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp 2012-01-10 00:12:18 UTC (rev 104505)
@@ -218,7 +218,7 @@
};
// https://bugs.webkit.org/show_bug.cgi?id=75783
-TEST_F(CCLayerTreeHostImplTest, FAILS_blendingOffWhenDrawingOpaqueLayers)
+TEST_F(CCLayerTreeHostImplTest, blendingOffWhenDrawingOpaqueLayers)
{
GraphicsContext3D::Attributes attrs;
RefPtr<GraphicsContext3D> context = GraphicsContext3DPrivate::createGraphicsContextFromWebContext(adoptPtr(new BlendStateTrackerContext()), attrs, 0, GraphicsContext3D::RenderDirectlyToHostWindow, GraphicsContext3DPrivate::ForUseOnThisThread);
@@ -264,7 +264,7 @@
layer2->setOpacity(1);
layer2->setExpectation(false, false);
m_hostImpl->drawLayers();
- EXPECT_TRUE(layer1->drawn());
+ EXPECT_FALSE(layer1->drawn());
EXPECT_TRUE(layer2->drawn());
// Parent layer with translucent content, drawn with blending.
@@ -273,7 +273,7 @@
layer1->setExpectation(true, false);
layer2->setExpectation(false, false);
m_hostImpl->drawLayers();
- EXPECT_TRUE(layer1->drawn());
+ EXPECT_FALSE(layer1->drawn());
EXPECT_TRUE(layer2->drawn());
// Parent layer with translucent opacity and opaque content. Since it has a
@@ -286,8 +286,31 @@
layer1->setExpectation(false, true);
layer2->setExpectation(false, false);
m_hostImpl->drawLayers();
+ EXPECT_FALSE(layer1->drawn());
+ EXPECT_TRUE(layer2->drawn());
+
+ // Draw again, but with child non-opaque, to make sure
+ // layer1 not culled.
+ layer1->setOpaque(true);
+ layer1->setOpacity(1);
+ layer1->setExpectation(false, false);
+ layer2->setOpaque(true);
+ layer2->setOpacity(0.5);
+ layer2->setExpectation(true, false);
+ m_hostImpl->drawLayers();
EXPECT_TRUE(layer1->drawn());
EXPECT_TRUE(layer2->drawn());
+
+ // A second way of making the child non-opaque.
+ layer1->setOpaque(true);
+ layer1->setOpacity(1);
+ layer1->setExpectation(false, false);
+ layer2->setOpaque(false);
+ layer2->setOpacity(1);
+ layer2->setExpectation(true, false);
+ m_hostImpl->drawLayers();
+ EXPECT_TRUE(layer1->drawn());
+ EXPECT_TRUE(layer2->drawn());
}
class ReshapeTrackerContext: public FakeWebGraphicsContext3D {