| Index: cc/CCLayerTreeHost.cpp | 
| diff --git a/cc/CCLayerTreeHost.cpp b/cc/CCLayerTreeHost.cpp | 
| index 18786f52b4d8d263bdd91820ce425a5cf7dc8cb4..e08184b01eb5fe6964f0e2e210bab15ad7d667dd 100644 | 
| --- a/cc/CCLayerTreeHost.cpp | 
| +++ b/cc/CCLayerTreeHost.cpp | 
| @@ -394,18 +394,33 @@ void CCLayerTreeHost::setVisible(bool visible) | 
| m_proxy->setVisible(visible); | 
| } | 
|  | 
| -void CCLayerTreeHost::unlinkAllContentTextures() | 
| +void CCLayerTreeHost::reduceContentsTexturesMemoryOnImplThread(size_t limitBytes, CCResourceProvider* resourceProvider) | 
| +{ | 
| +    ASSERT(CCProxy::isImplThread()); | 
| +    ASSERT(m_contentsTextureManager.get()); | 
| +    m_contentsTextureManager->reduceMemoryOnImplThread(limitBytes, resourceProvider); | 
| +} | 
| + | 
| +void CCLayerTreeHost::getEvictedContentTexturesBackings(CCPrioritizedTextureManager::BackingVector& evictedBackings) | 
| +{ | 
| +    ASSERT(CCProxy::isImplThread()); | 
| +    evictedBackings.clear(); | 
| +    if (m_rendererInitialized) | 
| +        m_contentsTextureManager->getEvictedBackings(evictedBackings); | 
| +} | 
| + | 
| +void CCLayerTreeHost::unlinkEvictedContentTexturesBackings(const CCPrioritizedTextureManager::BackingVector& evictedBackings) | 
| { | 
| ASSERT(CCProxy::isMainThread()); | 
| ASSERT(m_contentsTextureManager.get()); | 
| -    m_contentsTextureManager->unlinkAllBackings(); | 
| +    m_contentsTextureManager->unlinkEvictedBackings(evictedBackings); | 
| } | 
|  | 
| -void CCLayerTreeHost::deleteUnlinkedTextures() | 
| +bool CCLayerTreeHost::deleteEvictedContentTexturesBackings() | 
| { | 
| ASSERT(CCProxy::isImplThread() && CCProxy::isMainThreadBlocked()); | 
| ASSERT(m_contentsTextureManager.get()); | 
| -    m_contentsTextureManager->deleteAllUnlinkedBackings(); | 
| +    return m_contentsTextureManager->deleteEvictedBackings(); | 
| } | 
|  | 
| void CCLayerTreeHost::startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double durationSec) | 
|  |