Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Unified Diff: cc/tiles/tile_manager.cc

Issue 2797883002: cc: Add TileManager::GetActivationStateAsValue for debugging state. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« cc/tiles/tile_manager.h ('K') | « cc/tiles/tile_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tiles/tile_manager.cc
diff --git a/cc/tiles/tile_manager.cc b/cc/tiles/tile_manager.cc
index bb8e450d332d13f47e38f5ba8a3164f51d23ee07..03db310b74cd5d8c51b3f81e9d84883b3e01e7b7 100644
--- a/cc/tiles/tile_manager.cc
+++ b/cc/tiles/tile_manager.cc
@@ -1358,6 +1358,58 @@ scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask(
base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr())));
}
+void TileManager::GetActivationStateAsValue(base::DictionaryValue* value) {
+ value->SetString("tree_priority",
+ TreePriorityToString(global_state_.tree_priority));
+ value->SetInteger("soft_memory_limit",
+ global_state_.soft_memory_limit_in_bytes);
+ value->SetInteger("hard_memory_limit",
+ global_state_.soft_memory_limit_in_bytes);
+ value->SetInteger("pending_required_for_activation_callback_id",
+ pending_required_for_activation_callback_id_);
+ value->SetInteger("current_memory_usage",
+ resource_pool_->memory_usage_bytes());
+ value->SetInteger("current_resource_usage", resource_pool_->resource_count());
+
+ auto tile_as_value = [](const PrioritizedTile& prioritized_tile) {
+ Tile* tile = prioritized_tile.tile();
+ TilePriority priority = prioritized_tile.priority();
+ auto value_tile = base::MakeUnique<base::DictionaryValue>();
+ value_tile->SetInteger("id", tile->id());
+ value_tile->SetString("content_rect",
+ tile->content_rect().ToString().c_str());
+ value_tile->SetDouble("contents_scale", tile->contents_scale());
+ value_tile->SetBoolean("is_ready_to_draw",
+ tile->draw_info().IsReadyToDraw());
+ value_tile->SetString("resolution",
+ TileResolutionToString(priority.resolution));
+ value_tile->SetString("priority_bin",
+ TilePriorityBinToString(priority.priority_bin));
+ value_tile->SetDouble("distance_to_visible", priority.distance_to_visible);
+ value_tile->SetBoolean("required_for_activation",
+ tile->required_for_activation());
+ value_tile->SetBoolean("required_for_draw", tile->required_for_draw());
+ return value_tile;
+ };
+
+ auto raster_tiles = base::MakeUnique<base::ListValue>();
+ std::unique_ptr<RasterTilePriorityQueue> raster_priority_queue(
+ client_->BuildRasterQueue(global_state_.tree_priority,
+ RasterTilePriorityQueue::Type::ALL));
+ for (; !raster_priority_queue->IsEmpty(); raster_priority_queue->Pop())
+ raster_tiles->Append(tile_as_value(raster_priority_queue->Top()));
+ value->Set("raster_tiles", std::move(raster_tiles));
+
+ auto activation_tiles = base::MakeUnique<base::ListValue>();
+ std::unique_ptr<RasterTilePriorityQueue> required_priority_queue(
+ client_->BuildRasterQueue(
+ global_state_.tree_priority,
+ RasterTilePriorityQueue::Type::REQUIRED_FOR_ACTIVATION));
+ for (; !required_priority_queue->IsEmpty(); required_priority_queue->Pop())
+ activation_tiles->Append(tile_as_value(required_priority_queue->Top()));
+ value->Set("activation_tiles", std::move(activation_tiles));
+}
+
TileManager::MemoryUsage::MemoryUsage()
: memory_bytes_(0), resource_count_(0) {}
« cc/tiles/tile_manager.h ('K') | « cc/tiles/tile_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698