cc: Remove the WTF::Vector dependency from CCRenderPass.

Replace the use of Vector with std::vector instead.

Covered by existing tests.

BUG=152049

Review URL: https://codereview.chromium.org/10989026

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159098 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/cc/CCLayerTreeHostImpl.cpp b/cc/CCLayerTreeHostImpl.cpp
index 4793482..46a8e0a 100644
--- a/cc/CCLayerTreeHostImpl.cpp
+++ b/cc/CCLayerTreeHostImpl.cpp
@@ -30,6 +30,7 @@
 #include "CCSingleThreadProxy.h"
 #include "TraceEvent.h"
 #include <wtf/CurrentTime.h>
+#include <algorithm>
 
 using WebKit::WebTransformationMatrix;
 
@@ -252,13 +253,13 @@
 void CCLayerTreeHostImpl::FrameData::appendRenderPass(scoped_ptr<CCRenderPass> renderPass)
 {
     CCRenderPass* pass = renderPass.get();
-    renderPasses.append(pass);
+    renderPasses.push_back(pass);
     renderPassesById.set(pass->id(), renderPass.Pass());
 }
 
 bool CCLayerTreeHostImpl::calculateRenderPasses(FrameData& frame)
 {
-    ASSERT(frame.renderPasses.isEmpty());
+    ASSERT(!frame.renderPasses.size());
 
     calculateRenderSurfaceLayerList(*frame.renderSurfaceLayerList);
 
@@ -343,8 +344,8 @@
 #endif
 
     if (!m_hasTransparentBackground) {
-        frame.renderPasses.last()->setHasTransparentBackground(false);
-        frame.renderPasses.last()->appendQuadsToFillScreen(m_rootLayerImpl.get(), m_backgroundColor, occlusionTracker);
+        frame.renderPasses.back()->setHasTransparentBackground(false);
+        frame.renderPasses.back()->appendQuadsToFillScreen(m_rootLayerImpl.get(), m_backgroundColor, occlusionTracker);
     }
 
     if (drawFrame)
@@ -413,14 +414,15 @@
 static void removeRenderPassesRecursive(CCRenderPass::Id removeRenderPassId, CCLayerTreeHostImpl::FrameData& frame)
 {
     CCRenderPass* removeRenderPass = findRenderPassById(removeRenderPassId, frame);
-    size_t removeIndex = frame.renderPasses.find(removeRenderPass);
+    CCRenderPassList& renderPasses = frame.renderPasses;
+    CCRenderPassList::iterator toRemove = std::find(renderPasses.begin(), renderPasses.end(), removeRenderPass);
 
     // The pass was already removed by another quad - probably the original, and we are the replica.
-    if (removeIndex == notFound)
+    if (toRemove == renderPasses.end())
         return;
 
-    const CCRenderPass* removedPass = frame.renderPasses[removeIndex];
-    frame.renderPasses.remove(removeIndex);
+    const CCRenderPass* removedPass = *toRemove;
+    frame.renderPasses.erase(toRemove);
 
     // Now follow up for all RenderPass quads and remove their RenderPasses recursively.
     const CCQuadList& quadList = removedPass->quadList();
@@ -443,14 +445,15 @@
 bool CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass(const CCRenderPassDrawQuad& quad, const FrameData& frame) const
 {
     const CCRenderPass* renderPass = findRenderPassById(quad.renderPassId(), frame);
-    size_t passIndex = frame.renderPasses.find(renderPass);
+    const CCRenderPassList& renderPasses = frame.renderPasses;
+    CCRenderPassList::const_iterator foundPass = std::find(renderPasses.begin(), renderPasses.end(), renderPass);
 
-    bool renderPassAlreadyRemoved = passIndex == notFound;
+    bool renderPassAlreadyRemoved = foundPass == renderPasses.end();
     if (renderPassAlreadyRemoved)
         return false;
 
     // If any quad or RenderPass draws into this RenderPass, then keep it.
-    const CCQuadList& quadList = frame.renderPasses[passIndex]->quadList();
+    const CCQuadList& quadList = (*foundPass)->quadList();
     for (CCQuadList::constBackToFrontIterator quadListIterator = quadList.backToFrontBegin(); quadListIterator != quadList.backToFrontEnd(); ++quadListIterator) {
         CCDrawQuad* currentQuad = *quadListIterator;
 
@@ -458,7 +461,8 @@
             return false;
 
         const CCRenderPass* contributingPass = findRenderPassById(CCRenderPassDrawQuad::materialCast(currentQuad)->renderPassId(), frame);
-        if (frame.renderPasses.contains(contributingPass))
+        CCRenderPassList::const_iterator foundContributingPass = std::find(renderPasses.begin(), renderPasses.end(), contributingPass);
+        if (foundContributingPass != renderPasses.end())
             return false;
     }
     return true;
@@ -547,7 +551,7 @@
 {
     TRACE_EVENT0("cc", "CCLayerTreeHostImpl::drawLayers");
     ASSERT(canDraw());
-    ASSERT(!frame.renderPasses.isEmpty());
+    ASSERT(frame.renderPasses.size());
 
     // FIXME: use the frame begin time from the overall compositor scheduler.
     // This value is currently inaccessible because it is up in Chromium's