diff options
author | enne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 22:30:39 +0000 |
---|---|---|
committer | enne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 22:30:39 +0000 |
commit | bc2078352e4c69b1ac28d3c63bd39f5e6b38c776 (patch) | |
tree | f6f211a4c6c5067a0b0fe18bf2b6eda46c65e80c /cc | |
parent | 83a678709b31fdb97f909ea5cf19d6503bc3441d (diff) | |
download | chromium_src-bc2078352e4c69b1ac28d3c63bd39f5e6b38c776.zip chromium_src-bc2078352e4c69b1ac28d3c63bd39f5e6b38c776.tar.gz chromium_src-bc2078352e4c69b1ac28d3c63bd39f5e6b38c776.tar.bz2 |
[cc] Add test for mask layers and lost contexts
Also change ASSERTS to CHECK failures when a resource does not exist, since
this is a fatal error and it's better to CHECK-fail than access random memory.
BUG=151428
Review URL: https://chromiumcodereview.appspot.com/10970043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158098 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r-- | cc/CCLayerTreeHostImplTest.cpp | 38 | ||||
-rw-r--r-- | cc/CCResourceProvider.cpp | 18 | ||||
-rw-r--r-- | cc/CCTiledLayerImpl.cpp | 2 |
3 files changed, 38 insertions, 20 deletions
diff --git a/cc/CCLayerTreeHostImplTest.cpp b/cc/CCLayerTreeHostImplTest.cpp index c1edc70..8d4971f 100644 --- a/cc/CCLayerTreeHostImplTest.cpp +++ b/cc/CCLayerTreeHostImplTest.cpp @@ -2499,11 +2499,13 @@ static inline PassOwnPtr<CCRenderPass> createRenderPassWithResource(CCResourcePr TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) { - OwnPtr<CCLayerImpl> rootLayer(CCLayerImpl::create(1)); + int layerId = 1; + + OwnPtr<CCLayerImpl> rootLayer(CCLayerImpl::create(layerId++)); rootLayer->setBounds(IntSize(10, 10)); rootLayer->setAnchorPoint(FloatPoint(0, 0)); - OwnPtr<CCTiledLayerImpl> tileLayer = CCTiledLayerImpl::create(2); + OwnPtr<CCTiledLayerImpl> tileLayer = CCTiledLayerImpl::create(layerId++); tileLayer->setBounds(IntSize(10, 10)); tileLayer->setAnchorPoint(FloatPoint(0, 0)); tileLayer->setContentBounds(IntSize(10, 10)); @@ -2515,7 +2517,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) tileLayer->pushTileProperties(0, 0, 1, IntRect(0, 0, 10, 10)); rootLayer->addChild(tileLayer.release()); - OwnPtr<CCTextureLayerImpl> textureLayer = CCTextureLayerImpl::create(3); + OwnPtr<CCTextureLayerImpl> textureLayer = CCTextureLayerImpl::create(layerId++); textureLayer->setBounds(IntSize(10, 10)); textureLayer->setAnchorPoint(FloatPoint(0, 0)); textureLayer->setContentBounds(IntSize(10, 10)); @@ -2523,10 +2525,28 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) textureLayer->setTextureId(1); rootLayer->addChild(textureLayer.release()); + OwnPtr<CCTiledLayerImpl> maskLayer = CCTiledLayerImpl::create(layerId++); + maskLayer->setBounds(IntSize(10, 10)); + maskLayer->setAnchorPoint(FloatPoint(0, 0)); + maskLayer->setContentBounds(IntSize(10, 10)); + maskLayer->setDrawsContent(true); + maskLayer->setSkipsDraw(false); + maskLayer->setTilingData(*tilingData); + maskLayer->pushTileProperties(0, 0, 1, IntRect(0, 0, 10, 10)); + + OwnPtr<CCTextureLayerImpl> textureLayerWithMask = CCTextureLayerImpl::create(layerId++); + textureLayerWithMask->setBounds(IntSize(10, 10)); + textureLayerWithMask->setAnchorPoint(FloatPoint(0, 0)); + textureLayerWithMask->setContentBounds(IntSize(10, 10)); + textureLayerWithMask->setDrawsContent(true); + textureLayerWithMask->setTextureId(1); + textureLayerWithMask->setMaskLayer(maskLayer.release()); + rootLayer->addChild(textureLayerWithMask.release()); + FakeVideoFrame videoFrame; FakeVideoFrameProvider provider; provider.setFrame(&videoFrame); - OwnPtr<CCVideoLayerImpl> videoLayer = CCVideoLayerImpl::create(4, &provider); + OwnPtr<CCVideoLayerImpl> videoLayer = CCVideoLayerImpl::create(layerId++, &provider); videoLayer->setBounds(IntSize(10, 10)); videoLayer->setAnchorPoint(FloatPoint(0, 0)); videoLayer->setContentBounds(IntSize(10, 10)); @@ -2537,7 +2557,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) FakeVideoFrame hwVideoFrame; FakeVideoFrameProvider hwProvider; hwProvider.setFrame(&hwVideoFrame); - OwnPtr<CCVideoLayerImpl> hwVideoLayer = CCVideoLayerImpl::create(5, &hwProvider); + OwnPtr<CCVideoLayerImpl> hwVideoLayer = CCVideoLayerImpl::create(layerId++, &hwProvider); hwVideoLayer->setBounds(IntSize(10, 10)); hwVideoLayer->setAnchorPoint(FloatPoint(0, 0)); hwVideoLayer->setContentBounds(IntSize(10, 10)); @@ -2545,7 +2565,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) hwVideoLayer->setLayerTreeHostImpl(m_hostImpl.get()); rootLayer->addChild(hwVideoLayer.release()); - OwnPtr<CCIOSurfaceLayerImpl> ioSurfaceLayer = CCIOSurfaceLayerImpl::create(6); + OwnPtr<CCIOSurfaceLayerImpl> ioSurfaceLayer = CCIOSurfaceLayerImpl::create(layerId++); ioSurfaceLayer->setBounds(IntSize(10, 10)); ioSurfaceLayer->setAnchorPoint(FloatPoint(0, 0)); ioSurfaceLayer->setContentBounds(IntSize(10, 10)); @@ -2554,7 +2574,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) ioSurfaceLayer->setLayerTreeHostImpl(m_hostImpl.get()); rootLayer->addChild(ioSurfaceLayer.release()); - OwnPtr<CCHeadsUpDisplayLayerImpl> hudLayer = CCHeadsUpDisplayLayerImpl::create(7); + OwnPtr<CCHeadsUpDisplayLayerImpl> hudLayer = CCHeadsUpDisplayLayerImpl::create(layerId++); hudLayer->setBounds(IntSize(10, 10)); hudLayer->setAnchorPoint(FloatPoint(0, 0)); hudLayer->setContentBounds(IntSize(10, 10)); @@ -2562,7 +2582,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) hudLayer->setLayerTreeHostImpl(m_hostImpl.get()); rootLayer->addChild(hudLayer.release()); - OwnPtr<FakeScrollbarLayerImpl> scrollbarLayer(FakeScrollbarLayerImpl::create(8)); + OwnPtr<FakeScrollbarLayerImpl> scrollbarLayer(FakeScrollbarLayerImpl::create(layerId++)); scrollbarLayer->setBounds(IntSize(10, 10)); scrollbarLayer->setContentBounds(IntSize(10, 10)); scrollbarLayer->setDrawsContent(true); @@ -2570,7 +2590,7 @@ TEST_F(CCLayerTreeHostImplTest, dontUseOldResourcesAfterLostContext) scrollbarLayer->createResources(m_hostImpl->resourceProvider()); rootLayer->addChild(scrollbarLayer.release()); - OwnPtr<CCDelegatedRendererLayerImpl> delegatedRendererLayer(CCDelegatedRendererLayerImpl::create(9)); + OwnPtr<CCDelegatedRendererLayerImpl> delegatedRendererLayer(CCDelegatedRendererLayerImpl::create(layerId++)); delegatedRendererLayer->setBounds(IntSize(10, 10)); delegatedRendererLayer->setContentBounds(IntSize(10, 10)); delegatedRendererLayer->setDrawsContent(true); diff --git a/cc/CCResourceProvider.cpp b/cc/CCResourceProvider.cpp index 54811f0..fcd7cc5 100644 --- a/cc/CCResourceProvider.cpp +++ b/cc/CCResourceProvider.cpp @@ -134,7 +134,7 @@ bool CCResourceProvider::inUseByConsumer(ResourceId id) { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -210,7 +210,7 @@ void CCResourceProvider::deleteResource(ResourceId id) { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -250,7 +250,7 @@ void CCResourceProvider::deleteOwnedResources(int pool) CCResourceProvider::ResourceType CCResourceProvider::resourceType(ResourceId id) { ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -263,7 +263,7 @@ void CCResourceProvider::upload(ResourceId id, const uint8_t* image, const IntRe { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -319,7 +319,7 @@ const CCResourceProvider::Resource* CCResourceProvider::lockForRead(ResourceId i { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -334,7 +334,7 @@ void CCResourceProvider::unlockForRead(ResourceId id) { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -348,7 +348,7 @@ const CCResourceProvider::Resource* CCResourceProvider::lockForWrite(ResourceId { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -365,7 +365,7 @@ void CCResourceProvider::unlockForWrite(ResourceId id) { ASSERT(CCProxy::isImplThread()); ResourceMap::iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE Resource* resource = &it->value; #else @@ -646,7 +646,7 @@ bool CCResourceProvider::transferResource(WebGraphicsContext3D* context, Resourc { ASSERT(CCProxy::isImplThread()); ResourceMap::const_iterator it = m_resources.find(id); - ASSERT(it != m_resources.end()); + CHECK(it != m_resources.end()); #if WTF_NEW_HASHMAP_ITERATORS_INTERFACE const Resource* source = &it->value; #else diff --git a/cc/CCTiledLayerImpl.cpp b/cc/CCTiledLayerImpl.cpp index 7693082..404cfa6d 100644 --- a/cc/CCTiledLayerImpl.cpp +++ b/cc/CCTiledLayerImpl.cpp @@ -69,8 +69,6 @@ CCResourceProvider::ResourceId CCTiledLayerImpl::contentsResourceId() const DrawableTile* tile = tileAt(0, 0); CCResourceProvider::ResourceId resourceId = tile ? tile->resourceId() : 0; - ASSERT(resourceId); - return resourceId; } |