Chromium Code Reviews| Index: cc/resources/tile_manager.cc |
| diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
| index 38948c3fa1ab921b01864c448fb5e7fb3d74ee65..cd4e0b000d449664bedc174f95b5f3fe9c0fce27 100644 |
| --- a/cc/resources/tile_manager.cc |
| +++ b/cc/resources/tile_manager.cc |
| @@ -685,6 +685,19 @@ void TileManager::GetTilesWithAssignedBins(PrioritizedTileSet* tiles) { |
| } |
| } |
| +void TileManager::CleanUpLayers() { |
|
enne (OOO)
2014/05/08 00:40:57
Could you maybe split this out of this change, as
vmpstr
2014/05/08 17:02:58
Done.
|
| + for (size_t i = 0; i < layers_.size(); ++i) { |
| + if (layers_[i]->IsDrawnRenderSurfaceLayerListMember()) |
| + continue; |
| + |
| + layers_[i]->DidUnregisterLayer(); |
| + std::swap(layers_[i], layers_.back()); |
| + layers_.pop_back(); |
| + --i; |
| + prioritized_tiles_dirty_ = true; |
| + } |
| +} |
| + |
| void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) { |
| TRACE_EVENT0("cc", "TileManager::ManageTiles"); |
| @@ -694,6 +707,8 @@ void TileManager::ManageTiles(const GlobalStateThatImpactsTilePriority& state) { |
| prioritized_tiles_dirty_ = true; |
| } |
| + CleanUpLayers(); |
| + |
| // We need to call CheckForCompletedTasks() once in-between each call |
| // to ScheduleTasks() to prevent canceled tasks from being scheduled. |
| if (!did_check_for_completed_tasks_since_last_schedule_tasks_) { |