Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / cc / debug / rendering_stats.h
index bd3b7c7..73ca9c4 100644 (file)
@@ -5,45 +5,75 @@
 #ifndef CC_DEBUG_RENDERING_STATS_H_
 #define CC_DEBUG_RENDERING_STATS_H_
 
+#include <list>
+
 #include "base/basictypes.h"
+#include "base/debug/trace_event_argument.h"
 #include "base/time/time.h"
+#include "base/values.h"
 #include "cc/base/cc_export.h"
 #include "cc/debug/traced_value.h"
 
 namespace cc {
 
-struct CC_EXPORT MainThreadRenderingStats {
-  // Note: when adding new members, please remember to update EnumerateFields
-  // and Add in rendering_stats.cc.
+struct CC_EXPORT RenderingStats {
+  // Stores a sequence of TimeDelta objects.
+  class CC_EXPORT TimeDeltaList {
+   public:
+    TimeDeltaList();
+    ~TimeDeltaList();
 
-  int64 frame_count;
-  base::TimeDelta paint_time;
-  int64 painted_pixel_count;
-  base::TimeDelta record_time;
-  int64 recorded_pixel_count;
+    void Append(base::TimeDelta value);
+    void AddToTracedValue(base::debug::TracedValue* list_value) const;
 
-  MainThreadRenderingStats();
-  scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const;
-  void Add(const MainThreadRenderingStats& other);
-};
+    void Add(const TimeDeltaList& other);
 
-struct CC_EXPORT ImplThreadRenderingStats {
-  // Note: when adding new members, please remember to update EnumerateFields
-  // and Add in rendering_stats.cc.
+   private:
+    std::list<base::TimeDelta> values;
+  };
 
-  int64 frame_count;
-  base::TimeDelta rasterize_time;
-  base::TimeDelta analysis_time;
-  int64 rasterized_pixel_count;
-  int64 visible_content_area;
-  int64 approximated_visible_content_area;
+  struct CC_EXPORT MainThreadRenderingStats {
+    // Note: when adding new members, please remember to update Add in
+    // rendering_stats.cc.
 
-  ImplThreadRenderingStats();
-  scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const;
-  void Add(const ImplThreadRenderingStats& other);
-};
+    int64 frame_count;
+    base::TimeDelta paint_time;
+    int64 painted_pixel_count;
+    base::TimeDelta record_time;
+    int64 recorded_pixel_count;
+
+    MainThreadRenderingStats();
+    ~MainThreadRenderingStats();
+    scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData()
+        const;
+    void Add(const MainThreadRenderingStats& other);
+  };
+
+  struct CC_EXPORT ImplThreadRenderingStats {
+    // Note: when adding new members, please remember to update Add in
+    // rendering_stats.cc.
+
+    int64 frame_count;
+    base::TimeDelta rasterize_time;
+    base::TimeDelta analysis_time;
+    int64 rasterized_pixel_count;
+    int64 visible_content_area;
+    int64 approximated_visible_content_area;
+
+    TimeDeltaList draw_duration;
+    TimeDeltaList draw_duration_estimate;
+    TimeDeltaList begin_main_frame_to_commit_duration;
+    TimeDeltaList begin_main_frame_to_commit_duration_estimate;
+    TimeDeltaList commit_to_activate_duration;
+    TimeDeltaList commit_to_activate_duration_estimate;
+
+    ImplThreadRenderingStats();
+    ~ImplThreadRenderingStats();
+    scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData()
+        const;
+    void Add(const ImplThreadRenderingStats& other);
+  };
 
-struct CC_EXPORT RenderingStats {
   MainThreadRenderingStats main_stats;
   ImplThreadRenderingStats impl_stats;