LatencyInfo is a large data structure, with a fair bit of complexity. This makes it hard to reason about, and introduces some performance overhead. In the long term, we'd like to migrate to passing an identifier for each LatencyInfo around, instead of the object itself, eliminating the need to copy these objects.
Let's clean up LatencyInfo, as described in:
https://docs.google.com/document/d/10Ytvqz3CSKzE7ENdHaBv_zPvNuX7spPTuCQ-aDSqirE/edit#heading=h.x84l7x119ihf
Overall plan, which is subject to change:
1. Remove per component sequence_number (tdresser)
2. Remove support for multiple timestamps per component (nzolghadr)
3. Replace LatencyComponent with a single timestamp (nzolghadr)
4. Migrate non-renderer components to fields of LatencyInfo, deleting their component types.
5. Migrate renderer components to fields of a new RendererLatencyInfo struct, deleting their component types.
6. Prevent reading information out of a LatencyInfo except in RenderWidgetHostLatencyTracker and LatencyTracker.
Comment 1 by tdres...@chromium.org
, Aug 9 2017