|  | // 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_ |