summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-21 22:30:39 +0000
committerenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-09-21 22:30:39 +0000
commitbc2078352e4c69b1ac28d3c63bd39f5e6b38c776 (patch)
treef6f211a4c6c5067a0b0fe18bf2b6eda46c65e80c /cc
parent83a678709b31fdb97f909ea5cf19d6503bc3441d (diff)
downloadchromium_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.cpp38
-rw-r--r--cc/CCResourceProvider.cpp18
-rw-r--r--cc/CCTiledLayerImpl.cpp2
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;
}