// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_TREES_PROXY_TIMING_HISTORY_H_ #define CC_TREES_PROXY_TIMING_HISTORY_H_ #include "cc/base/rolling_time_delta_history.h" #include "cc/debug/rendering_stats_instrumentation.h" namespace cc { class ProxyTimingHistory { public: explicit ProxyTimingHistory( RenderingStatsInstrumentation* rendering_stats_instrumentation); ~ProxyTimingHistory(); base::TimeDelta DrawDurationEstimate() const; base::TimeDelta BeginMainFrameToCommitDurationEstimate() const; base::TimeDelta CommitToActivateDurationEstimate() const; void DidBeginMainFrame(); void DidCommit(); void DidActivateSyncTree(); void DidStartDrawing(); void DidFinishDrawing(); protected: void AddDrawDurationUMA(base::TimeDelta draw_duration, base::TimeDelta draw_duration_estimate); RollingTimeDeltaHistory draw_duration_history_; RollingTimeDeltaHistory begin_main_frame_to_commit_duration_history_; RollingTimeDeltaHistory commit_to_activate_duration_history_; base::TimeTicks begin_main_frame_sent_time_; base::TimeTicks commit_complete_time_; base::TimeTicks start_draw_time_; RenderingStatsInstrumentation* rendering_stats_instrumentation_; }; } // namespace cc #endif // CC_TREES_PROXY_TIMING_HISTORY_H_