| Index: cc/surfaces/display.cc
|
| diff --git a/cc/surfaces/display.cc b/cc/surfaces/display.cc
|
| index a9c5358eab4a693ee0e2fa439e19856e968ef6a1..ead51b6cd0c3fc22f92994b328dd8c89213244a0 100644
|
| --- a/cc/surfaces/display.cc
|
| +++ b/cc/surfaces/display.cc
|
| @@ -340,9 +340,15 @@ bool Display::DrawAndSwap() {
|
| if (have_damage && !size_matches)
|
| aggregator_->SetFullDamageForSurface(current_surface_id_);
|
| TRACE_EVENT_INSTANT0("cc", "Swap skipped.", TRACE_EVENT_SCOPE_THREAD);
|
| - stored_latency_info_.insert(stored_latency_info_.end(),
|
| - frame.metadata.latency_info.begin(),
|
| - frame.metadata.latency_info.end());
|
| +
|
| + // Do not store more that the allowed size.
|
| + if (ui::LatencyInfo::Verify(frame.metadata.latency_info,
|
| + "Display::DrawAndSwap")) {
|
| + stored_latency_info_.insert(stored_latency_info_.end(),
|
| + frame.metadata.latency_info.begin(),
|
| + frame.metadata.latency_info.end());
|
| + }
|
| +
|
| if (scheduler_) {
|
| scheduler_->DidSwapBuffers();
|
| scheduler_->DidReceiveSwapBuffersAck();
|
|
|