Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(307)

Unified Diff: Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp

Issue 10690121: Merge 121076 - [chromium] LayerRendererChromium is not getting visibility messages in single thread… (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1180/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
===================================================================
--- Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp (revision 122257)
+++ Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp (working copy)
@@ -485,7 +485,41 @@
runTestThreaded();
}
+class CCLayerTreeHostTestAbortFrameWhenInvisible : public CCLayerTreeHostTestThreadOnly {
+public:
+ CCLayerTreeHostTestAbortFrameWhenInvisible()
+ {
+ }
+ virtual void beginTest()
+ {
+ // Request a commit (from the main thread), which will trigger the commit flow from the impl side.
+ m_layerTreeHost->setNeedsCommit();
+ // Then mark ourselves as not visible before processing any more messages on the main thread.
+ m_layerTreeHost->setVisible(false);
+ // If we make it without kicking a frame, we pass!
+ endTestAfterDelay(1);
+ }
+
+ virtual void layout() OVERRIDE
+ {
+ ASSERT_FALSE(true);
+ endTest();
+ }
+
+ virtual void afterTest()
+ {
+ }
+
+private:
+};
+
+TEST_F(CCLayerTreeHostTestAbortFrameWhenInvisible, runMultiThread)
+{
+ runTestThreaded();
+}
+
+
// Trigger a frame with setNeedsCommit. Then, inside the resulting animate
// callback, requet another frame using setNeedsAnimate. End the test when
// animate gets called yet-again, indicating that the proxy is correctly
@@ -952,113 +986,6 @@
runTest(true);
}
-class CCLayerTreeHostTestVisibilityAndAllocationControlDrawing : public CCLayerTreeHostTest {
-public:
-
- CCLayerTreeHostTestVisibilityAndAllocationControlDrawing() { }
-
- virtual void beginTest()
- {
- postSetNeedsCommitToMainThread();
- }
-
- virtual void didCommitAndDrawFrame()
- {
- int lastFrame = m_layerTreeHost->frameNumber() - 1;
-
- // These frames should draw.
- switch (lastFrame) {
- case 0:
- // Set the tree invisible, this should not draw.
- m_layerTreeHost->setVisible(false);
- break;
- case 2:
- // Set the tree invisible and give a non-visible allocation, this
- // should not draw.
- m_layerTreeHost->setVisible(false);
- m_layerTreeHost->setContentsMemoryAllocationLimitBytes(0);
- break;
- case 5:
- // Give a memory allocation not for display, but while we are
- // visible. This should not be used and we should remain
- // ready for display and it should draw.
- m_layerTreeHost->setContentsMemoryAllocationLimitBytes(0);
- break;
- case 6:
- endTest();
- break;
-
- default:
- ASSERT_NOT_REACHED();
- }
- }
-
- virtual void didCommit()
- {
- int lastFrame = m_layerTreeHost->frameNumber() - 1;
-
- // These frames should not draw.
- switch (lastFrame) {
- case 1:
- // Set the tree visible, this should draw.
- m_layerTreeHost->setVisible(true);
- break;
- case 3:
- // Set visible without giving a visible memory allocation, this
- // shouldn't make the impl side ready for display, so it should
- // not draw.
- m_layerTreeHost->setVisible(true);
- break;
- case 4:
- // Now give a memory allocation for display, this should draw.
- m_layerTreeHost->setContentsMemoryAllocationLimitBytes(1);
- break;
- }
- }
-
- virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
- {
- switch (impl->sourceFrameNumber()) {
- case 0:
- // The host starts out visible and able to display before we do any commit.
- EXPECT_TRUE(impl->visible());
- EXPECT_TRUE(impl->sourceFrameCanBeDrawn());
- break;
- case 1:
- // We still have a memory allocation for display.
- EXPECT_FALSE(impl->visible());
- EXPECT_TRUE(impl->sourceFrameCanBeDrawn());
- break;
- case 2:
- EXPECT_TRUE(impl->visible());
- EXPECT_TRUE(impl->sourceFrameCanBeDrawn());
- break;
- case 3:
- EXPECT_FALSE(impl->visible());
- EXPECT_FALSE(impl->sourceFrameCanBeDrawn());
- break;
- case 4:
- EXPECT_TRUE(impl->visible());
- EXPECT_FALSE(impl->sourceFrameCanBeDrawn());
- break;
- case 5:
- EXPECT_TRUE(impl->visible());
- EXPECT_TRUE(impl->sourceFrameCanBeDrawn());
- break;
- case 6:
- EXPECT_TRUE(impl->visible());
- EXPECT_TRUE(impl->sourceFrameCanBeDrawn());
- break;
- }
- }
-
- virtual void afterTest()
- {
- }
-};
-
-SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestVisibilityAndAllocationControlDrawing)
-
// Verifies that startPageScaleAnimation events propagate correctly from CCLayerTreeHost to
// CCLayerTreeHostImpl in the MT compositor.
class CCLayerTreeHostTestStartPageScaleAnimation : public CCLayerTreeHostTest {
@@ -1689,7 +1616,7 @@
m_layerTreeHost->setViewportSize(rootLayer->bounds());
ASSERT_TRUE(m_layerTreeHost->initializeLayerRendererIfNeeded());
CCTextureUpdater updater;
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds());
@@ -1706,7 +1633,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds());
@@ -1724,7 +1651,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds());
@@ -1744,7 +1671,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds());
@@ -1766,7 +1693,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds());
@@ -1788,7 +1715,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds());
@@ -1811,7 +1738,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), grandChild->occludedScreenSpace().bounds());
@@ -1834,7 +1761,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds());
@@ -1897,7 +1824,7 @@
m_layerTreeHost->setViewportSize(rootLayer->bounds());
ASSERT_TRUE(m_layerTreeHost->initializeLayerRendererIfNeeded());
CCTextureUpdater updater;
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds());
@@ -1924,7 +1851,7 @@
m_layerTreeHost->setRootLayer(rootLayer);
m_layerTreeHost->setViewportSize(rootLayer->bounds());
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
EXPECT_EQ_RECT(IntRect(), child2->occludedScreenSpace().bounds());
@@ -1986,7 +1913,7 @@
m_layerTreeHost->setViewportSize(layers[0]->bounds());
ASSERT_TRUE(m_layerTreeHost->initializeLayerRendererIfNeeded());
CCTextureUpdater updater;
- m_layerTreeHost->updateLayers(updater);
+ m_layerTreeHost->updateLayers(updater, std::numeric_limits<size_t>::max());
m_layerTreeHost->commitComplete();
for (int i = 0; i < numSurfaces-1; ++i) {
« no previous file with comments | « Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp ('k') | Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698