Rewrite AndroidSyncSettings to be significantly simpler.
[chromium-blink-merge.git] / cc / debug / rendering_stats.cc
blob3a27c1d40f80ba9c9a4125335001c967ecb62ec2
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/debug/rendering_stats.h"
7 namespace cc {
9 RenderingStats::TimeDeltaList::TimeDeltaList() {
12 RenderingStats::TimeDeltaList::~TimeDeltaList() {
15 void RenderingStats::TimeDeltaList::Append(base::TimeDelta value) {
16 values.push_back(value);
19 void RenderingStats::TimeDeltaList::AddToTracedValue(
20 const char* name,
21 base::trace_event::TracedValue* list_value) const {
22 list_value->BeginArray(name);
23 for (const auto& value : values) {
24 list_value->AppendDouble(value.InMillisecondsF());
26 list_value->EndArray();
29 void RenderingStats::TimeDeltaList::Add(const TimeDeltaList& other) {
30 values.insert(values.end(), other.values.begin(), other.values.end());
33 base::TimeDelta RenderingStats::TimeDeltaList::GetLastTimeDelta() const {
34 return values.empty() ? base::TimeDelta() : values.back();
37 RenderingStats::RenderingStats()
38 : frame_count(0),
39 visible_content_area(0),
40 approximated_visible_content_area(0) {
43 RenderingStats::~RenderingStats() {
46 scoped_refptr<base::trace_event::ConvertableToTraceFormat>
47 RenderingStats::AsTraceableData() const {
48 scoped_refptr<base::trace_event::TracedValue> record_data =
49 new base::trace_event::TracedValue();
50 record_data->SetInteger("frame_count", frame_count);
51 record_data->SetInteger("visible_content_area", visible_content_area);
52 record_data->SetInteger("approximated_visible_content_area",
53 approximated_visible_content_area);
54 draw_duration.AddToTracedValue("draw_duration_ms", record_data.get());
56 draw_duration_estimate.AddToTracedValue("draw_duration_estimate_ms",
57 record_data.get());
59 begin_main_frame_to_commit_duration.AddToTracedValue(
60 "begin_main_frame_to_commit_duration_ms", record_data.get());
62 begin_main_frame_to_commit_duration_estimate.AddToTracedValue(
63 "begin_main_frame_to_commit_duration_estimate_ms", record_data.get());
65 commit_to_activate_duration.AddToTracedValue("commit_to_activate_duration_ms",
66 record_data.get());
68 commit_to_activate_duration_estimate.AddToTracedValue(
69 "commit_to_activate_duration_estimate_ms", record_data.get());
70 return record_data;
73 void RenderingStats::Add(const RenderingStats& other) {
74 frame_count += other.frame_count;
75 visible_content_area += other.visible_content_area;
76 approximated_visible_content_area += other.approximated_visible_content_area;
78 draw_duration.Add(other.draw_duration);
79 draw_duration_estimate.Add(other.draw_duration_estimate);
80 begin_main_frame_to_commit_duration.Add(
81 other.begin_main_frame_to_commit_duration);
82 begin_main_frame_to_commit_duration_estimate.Add(
83 other.begin_main_frame_to_commit_duration_estimate);
84 commit_to_activate_duration.Add(other.commit_to_activate_duration);
85 commit_to_activate_duration_estimate.Add(
86 other.commit_to_activate_duration_estimate);
89 } // namespace cc