Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index bd77d844e629315d657d6cb4660bdb26e284b903..d4f0fa625dfea4ee7695e163745cb0b5b6a33cff 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -1640,12 +1640,19 @@ bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) { |
} |
CompositorFrameMetadata metadata = MakeCompositorFrameMetadata(); |
active_tree()->FinishSwapPromises(&metadata); |
- for (size_t i = 0; i < metadata.latency_info.size(); i++) { |
+ for (auto& latency : metadata.latency_info) { |
TRACE_EVENT_FLOW_STEP0( |
"input,benchmark", |
"LatencyInfo.Flow", |
- TRACE_ID_DONT_MANGLE(metadata.latency_info[i].trace_id), |
+ TRACE_ID_DONT_MANGLE(latency.trace_id), |
"SwapBuffers"); |
+ // Only add the latency component once for renderer swap, not the browser |
+ // swap. |
+ if (!latency.FindLatency(ui::INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT, |
+ 0, nullptr)) { |
+ latency.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT, |
+ 0, 0); |
+ } |
} |
renderer_->SwapBuffers(metadata); |
return true; |