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

Side by Side Diff: Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp

Issue 10146014: Merge 113677 - [chromium] Viewport is not filled when out of texture memory on mac (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1084/
Patch Set: Created 8 years, 8 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 1239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1250 IntPoint m_initialScroll; 1250 IntPoint m_initialScroll;
1251 IntSize m_scrollAmount; 1251 IntSize m_scrollAmount;
1252 int m_scrolls; 1252 int m_scrolls;
1253 }; 1253 };
1254 1254
1255 TEST_F(CCLayerTreeHostTestScrollMultipleRedraw, DISABLED_runMultiThread) 1255 TEST_F(CCLayerTreeHostTestScrollMultipleRedraw, DISABLED_runMultiThread)
1256 { 1256 {
1257 runTestThreaded(); 1257 runTestThreaded();
1258 } 1258 }
1259 1259
1260 // This test verifies that properties on the layer tree host are commited to the impl side.
1261 class CCLayerTreeHostTestCommit : public CCLayerTreeHostTest {
1262 public:
1263
1264 CCLayerTreeHostTestCommit() { }
1265
1266 virtual void beginTest()
1267 {
1268 m_layerTreeHost->setViewportSize(IntSize(20, 20));
1269 m_layerTreeHost->setBackgroundColor(Color::gray);
1270 m_layerTreeHost->setPageScaleFactorAndLimits(5, 5, 5);
1271
1272 postSetNeedsCommitToMainThread();
1273 }
1274
1275 virtual void commitCompleteOnCCThread(CCLayerTreeHostImpl* impl)
1276 {
1277 EXPECT_EQ(IntSize(20, 20), impl->viewportSize());
1278 EXPECT_EQ(Color::gray, impl->backgroundColor());
1279 EXPECT_EQ(5, impl->pageScale());
1280
1281 endTest();
1282 }
1283
1284 virtual void afterTest() { }
1285 };
1286
1287 TEST_F(CCLayerTreeHostTestCommit, runTest)
1288 {
1289 runTest(true);
1290 }
1291
1260 // Verifies that startPageScaleAnimation events propagate correctly from CCLayer TreeHost to 1292 // Verifies that startPageScaleAnimation events propagate correctly from CCLayer TreeHost to
1261 // CCLayerTreeHostImpl in the MT compositor. 1293 // CCLayerTreeHostImpl in the MT compositor.
1262 class CCLayerTreeHostTestStartPageScaleAnimation : public CCLayerTreeHostTest { 1294 class CCLayerTreeHostTestStartPageScaleAnimation : public CCLayerTreeHostTest {
1263 public: 1295 public:
1264 1296
1265 CCLayerTreeHostTestStartPageScaleAnimation() 1297 CCLayerTreeHostTestStartPageScaleAnimation()
1266 : m_animationRequested(false) 1298 : m_animationRequested(false)
1267 { 1299 {
1268 } 1300 }
1269 1301
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
1754 public: 1786 public:
1755 static PassRefPtr<TestLayerChromium> create() { return adoptRef(new TestLaye rChromium()); } 1787 static PassRefPtr<TestLayerChromium> create() { return adoptRef(new TestLaye rChromium()); }
1756 1788
1757 virtual void paintContentsIfDirty(const CCOcclusionTracker* occlusion) 1789 virtual void paintContentsIfDirty(const CCOcclusionTracker* occlusion)
1758 { 1790 {
1759 m_occludedScreenSpace = occlusion ? occlusion->currentOcclusionInScreenS pace() : Region(); 1791 m_occludedScreenSpace = occlusion ? occlusion->currentOcclusionInScreenS pace() : Region();
1760 } 1792 }
1761 1793
1762 virtual bool drawsContent() const { return true; } 1794 virtual bool drawsContent() const { return true; }
1763 1795
1764 virtual Region visibleContentOpaqueRegion() const { return intersection(m_op aqueContentsRect, visibleLayerRect()); }
1765 void setOpaqueContentsRect(const IntRect& opaqueContentsRect) { m_opaqueCont entsRect = opaqueContentsRect; }
1766
1767 const Region& occludedScreenSpace() const { return m_occludedScreenSpace; } 1796 const Region& occludedScreenSpace() const { return m_occludedScreenSpace; }
1768 void clearOccludedScreenSpace() { m_occludedScreenSpace = Region(); } 1797 void clearOccludedScreenSpace() { m_occludedScreenSpace = Region(); }
1769 1798
1770 private: 1799 private:
1771 TestLayerChromium() : LayerChromium() { } 1800 TestLayerChromium() : LayerChromium() { }
1772 1801
1773 Region m_occludedScreenSpace; 1802 Region m_occludedScreenSpace;
1774 IntRect m_opaqueContentsRect;
1775 }; 1803 };
1776 1804
1777 static void setLayerPropertiesForTesting(TestLayerChromium* layer, LayerChromium * parent, const TransformationMatrix& transform, const FloatPoint& anchor, const FloatPoint& position, const IntSize& bounds, bool opaque) 1805 static void setLayerPropertiesForTesting(TestLayerChromium* layer, LayerChromium * parent, const TransformationMatrix& transform, const FloatPoint& anchor, const FloatPoint& position, const IntSize& bounds, bool opaque)
1778 { 1806 {
1779 layer->removeAllChildren(); 1807 layer->removeAllChildren();
1780 if (parent) 1808 if (parent)
1781 parent->addChild(layer); 1809 parent->addChild(layer);
1782 layer->setTransform(transform); 1810 layer->setTransform(transform);
1783 layer->setAnchorPoint(anchor); 1811 layer->setAnchorPoint(anchor);
1784 layer->setPosition(position); 1812 layer->setPosition(position);
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 endTest(); 2009 endTest();
1982 } 2010 }
1983 2011
1984 virtual void afterTest() 2012 virtual void afterTest()
1985 { 2013 {
1986 } 2014 }
1987 }; 2015 };
1988 2016
1989 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLayerOcclusion) 2017 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestLayerOcclusion)
1990 2018
1991 class CCLayerTreeHostTestContentLayerOcclusion : public CCLayerTreeHostTest {
1992 public:
1993 CCLayerTreeHostTestContentLayerOcclusion() { }
1994
1995 virtual void beginTest()
1996 {
1997 RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create();
1998 RefPtr<TestLayerChromium> child = TestLayerChromium::create();
1999
2000 TransformationMatrix identityMatrix;
2001 setLayerPropertiesForTesting(rootLayer.get(), 0, identityMatrix, FloatPo int(0, 0), FloatPoint(0, 0), IntSize(100, 100), true);
2002 setLayerPropertiesForTesting(child.get(), rootLayer.get(), identityMatri x, FloatPoint(0, 0), FloatPoint(30, 30), IntSize(50, 50), false);
2003
2004 child->setOpaqueContentsRect(IntRect(10, 10, 20, 20));
2005
2006 m_layerTreeHost->setRootLayer(rootLayer);
2007 m_layerTreeHost->setViewportSize(rootLayer->bounds());
2008 m_layerTreeHost->updateLayers();
2009 m_layerTreeHost->commitComplete();
2010
2011 EXPECT_EQ_RECT(IntRect(), child->occludedScreenSpace().bounds());
2012 EXPECT_EQ(0u, child->occludedScreenSpace().rects().size());
2013
2014 EXPECT_EQ_RECT(IntRect(40, 40, 20, 20), rootLayer->occludedScreenSpace() .bounds());
2015 EXPECT_EQ(1u, rootLayer->occludedScreenSpace().rects().size());
2016
2017 // Kill the layerTreeHost immediately.
2018 m_layerTreeHost->setRootLayer(0);
2019 m_layerTreeHost.clear();
2020
2021 endTest();
2022 }
2023
2024 virtual void afterTest()
2025 {
2026 }
2027 };
2028
2029 SINGLE_AND_MULTI_THREAD_TEST_F(CCLayerTreeHostTestContentLayerOcclusion)
2030
2031 class CCLayerTreeHostTestLayerOcclusionWithFilters : public CCLayerTreeHostTest { 2019 class CCLayerTreeHostTestLayerOcclusionWithFilters : public CCLayerTreeHostTest {
2032 public: 2020 public:
2033 CCLayerTreeHostTestLayerOcclusionWithFilters() { } 2021 CCLayerTreeHostTestLayerOcclusionWithFilters() { }
2034 2022
2035 virtual void beginTest() 2023 virtual void beginTest()
2036 { 2024 {
2037 RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create(); 2025 RefPtr<TestLayerChromium> rootLayer = TestLayerChromium::create();
2038 RefPtr<TestLayerChromium> child = TestLayerChromium::create(); 2026 RefPtr<TestLayerChromium> child = TestLayerChromium::create();
2039 RefPtr<TestLayerChromium> child2 = TestLayerChromium::create(); 2027 RefPtr<TestLayerChromium> child2 = TestLayerChromium::create();
2040 RefPtr<TestLayerChromium> grandChild = TestLayerChromium::create(); 2028 RefPtr<TestLayerChromium> grandChild = TestLayerChromium::create();
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
2289 private: 2277 private:
2290 FloatSize m_scrollAmount; 2278 FloatSize m_scrollAmount;
2291 }; 2279 };
2292 2280
2293 TEST_F(CCLayerTreeHostTestFractionalScroll, runMultiThread) 2281 TEST_F(CCLayerTreeHostTestFractionalScroll, runMultiThread)
2294 { 2282 {
2295 runTestThreaded(); 2283 runTestThreaded();
2296 } 2284 }
2297 2285
2298 } // namespace 2286 } // namespace
OLDNEW
« no previous file with comments | « Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp ('k') | Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698