Index: cc/trees/layer_tree_host.cc |
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc |
index 49e374d94690516e8c0fbefec167c1cc03c4650f..f4780789394c447a1b3a56cfb5925ef325dec6a1 100644 |
--- a/cc/trees/layer_tree_host.cc |
+++ b/cc/trees/layer_tree_host.cc |
@@ -133,6 +133,7 @@ LayerTreeHost::LayerTreeHost( |
partial_texture_update_requests_(0), |
did_complete_scale_animation_(false), |
in_paint_layer_contents_(false), |
+ total_frames_used_for_lcd_text_metrics_(0), |
id_(s_layer_tree_host_sequence_number.GetNext() + 1), |
next_commit_forces_redraw_(false), |
shared_bitmap_manager_(shared_bitmap_manager), |
@@ -232,10 +233,6 @@ void LayerTreeHost::DidBeginMainFrame() { |
client_->DidBeginMainFrame(); |
} |
-void LayerTreeHost::BeginMainFrameNotExpectedSoon() { |
- client_->BeginMainFrameNotExpectedSoon(); |
-} |
- |
void LayerTreeHost::BeginMainFrame(const BeginFrameArgs& args) { |
inside_begin_main_frame_ = true; |
client_->BeginMainFrame(args); |
@@ -562,19 +559,19 @@ void LayerTreeHost::SetAnimationEvents( |
animation_controllers.find(event_layer_id); |
if (iter != animation_controllers.end()) { |
switch ((*events)[event_index].type) { |
- case AnimationEvent::STARTED: |
+ case AnimationEvent::Started: |
(*iter).second->NotifyAnimationStarted((*events)[event_index]); |
break; |
- case AnimationEvent::FINISHED: |
+ case AnimationEvent::Finished: |
(*iter).second->NotifyAnimationFinished((*events)[event_index]); |
break; |
- case AnimationEvent::ABORTED: |
+ case AnimationEvent::Aborted: |
(*iter).second->NotifyAnimationAborted((*events)[event_index]); |
break; |
- case AnimationEvent::PROPERTY_UPDATE: |
+ case AnimationEvent::PropertyUpdate: |
(*iter).second->NotifyAnimationPropertyUpdate((*events)[event_index]); |
break; |
} |
@@ -812,6 +809,18 @@ void LayerTreeHost::RecordGpuRasterizationHistogram() { |
gpu_rasterization_histogram_recorded_ = true; |
} |
+void LayerTreeHost::CalculateLCDTextMetricsCallback(Layer* layer) { |
+ if (!layer->SupportsLCDText()) |
+ return; |
+ |
+ lcd_text_metrics_.total_num_cc_layers++; |
+ if (layer->draw_properties().can_use_lcd_text) { |
+ lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text++; |
+ if (layer->contents_opaque()) |
+ lcd_text_metrics_.total_num_cc_layers_will_use_lcd_text++; |
+ } |
+} |
+ |
bool LayerTreeHost::UsingSharedMemoryResources() { |
return GetRendererCapabilities().using_shared_memory_resources; |
} |
@@ -852,6 +861,29 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer, |
settings_.verify_property_trees, &update_list, |
render_surface_layer_list_id); |
LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
+ |
+ if (total_frames_used_for_lcd_text_metrics_ <= |
+ kTotalFramesToUseForLCDTextMetrics) { |
+ LayerTreeHostCommon::CallFunctionForSubtree( |
+ root_layer, |
+ base::Bind(&LayerTreeHost::CalculateLCDTextMetricsCallback, |
+ base::Unretained(this))); |
+ total_frames_used_for_lcd_text_metrics_++; |
+ } |
+ |
+ if (total_frames_used_for_lcd_text_metrics_ == |
+ kTotalFramesToUseForLCDTextMetrics) { |
+ total_frames_used_for_lcd_text_metrics_++; |
+ |
+ UMA_HISTOGRAM_PERCENTAGE( |
+ "Renderer4.LCDText.PercentageOfCandidateLayers", |
+ lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text * 100.0 / |
+ lcd_text_metrics_.total_num_cc_layers); |
+ UMA_HISTOGRAM_PERCENTAGE( |
+ "Renderer4.LCDText.PercentageOfAALayers", |
+ lcd_text_metrics_.total_num_cc_layers_will_use_lcd_text * 100.0 / |
+ lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text); |
+ } |
} |
// Reset partial texture update requests. |
@@ -1219,7 +1251,8 @@ UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) { |
ui_resource_client_map_.end()); |
bool resource_lost = false; |
- UIResourceRequest request(UIResourceRequest::UI_RESOURCE_CREATE, next_id, |
+ UIResourceRequest request(UIResourceRequest::UIResourceCreate, |
+ next_id, |
client->GetBitmap(next_id, resource_lost)); |
ui_resource_request_queue_.push_back(request); |
@@ -1237,7 +1270,7 @@ void LayerTreeHost::DeleteUIResource(UIResourceId uid) { |
if (iter == ui_resource_client_map_.end()) |
return; |
- UIResourceRequest request(UIResourceRequest::UI_RESOURCE_DELETE, uid); |
+ UIResourceRequest request(UIResourceRequest::UIResourceDelete, uid); |
ui_resource_request_queue_.push_back(request); |
ui_resource_client_map_.erase(iter); |
} |
@@ -1249,7 +1282,8 @@ void LayerTreeHost::RecreateUIResources() { |
UIResourceId uid = iter->first; |
const UIResourceClientData& data = iter->second; |
bool resource_lost = true; |
- UIResourceRequest request(UIResourceRequest::UI_RESOURCE_CREATE, uid, |
+ UIResourceRequest request(UIResourceRequest::UIResourceCreate, |
+ uid, |
data.client->GetBitmap(uid, resource_lost)); |
ui_resource_request_queue_.push_back(request); |
} |