Index: cc/output/begin_frame_args.cc |
diff --git a/cc/output/begin_frame_args.cc b/cc/output/begin_frame_args.cc |
index b45eee8c111e504518a90cd02f0f198d84efbe9d..05403f9ecf9fb6193af4c306f951ae7ced58fcd5 100644 |
--- a/cc/output/begin_frame_args.cc |
+++ b/cc/output/begin_frame_args.cc |
@@ -10,23 +10,27 @@ |
namespace cc { |
BeginFrameArgs::BeginFrameArgs() |
- : frame_time(base::TimeTicks()), |
- deadline(base::TimeTicks()), |
- interval(base::TimeDelta::FromMicroseconds(-1)) { |
+ : frame_time(base::TimeTicks()), |
+ deadline(base::TimeTicks()), |
+ interval(base::TimeDelta::FromMicroseconds(-1)), |
+ type(BeginFrameArgs::INVALID) { |
} |
BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time, |
base::TimeTicks deadline, |
- base::TimeDelta interval) |
- : frame_time(frame_time), |
- deadline(deadline), |
- interval(interval) |
-{} |
+ base::TimeDelta interval, |
+ BeginFrameArgs::BeginFrameArgsType type) |
+ : frame_time(frame_time), |
+ deadline(deadline), |
+ interval(interval), |
+ type(type) { |
+} |
BeginFrameArgs BeginFrameArgs::Create(base::TimeTicks frame_time, |
base::TimeTicks deadline, |
- base::TimeDelta interval) { |
- return BeginFrameArgs(frame_time, deadline, interval); |
+ base::TimeDelta interval, |
+ BeginFrameArgs::BeginFrameArgsType type) { |
+ return BeginFrameArgs(frame_time, deadline, interval, type); |
} |
scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue() |
@@ -39,6 +43,20 @@ scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue() |
void BeginFrameArgs::AsValueInto(base::debug::TracedValue* state) const { |
state->SetString("type", "BeginFrameArgs"); |
+ switch (type) { |
+ case BeginFrameArgs::INVALID: |
+ state->SetString("subtype", "INVALID"); |
+ break; |
+ case BeginFrameArgs::NORMAL: |
+ state->SetString("subtype", "NORMAL"); |
+ break; |
+ case BeginFrameArgs::SYNCHRONOUS: |
+ state->SetString("subtype", "SYNCHRONOUS"); |
+ break; |
+ case BeginFrameArgs::MISSED: |
+ state->SetString("subtype", "MISSED"); |
+ break; |
+ } |
state->SetDouble("frame_time_us", frame_time.ToInternalValue()); |
state->SetDouble("deadline_us", deadline.ToInternalValue()); |
state->SetDouble("interval_us", interval.InMicroseconds()); |
@@ -50,7 +68,8 @@ BeginFrameArgs BeginFrameArgs::CreateForSynchronousCompositor( |
// so we set the deadline to 0 and guess that the interval is 16 milliseconds. |
if (now.is_null()) |
now = gfx::FrameTime::Now(); |
- return BeginFrameArgs(now, base::TimeTicks(), DefaultInterval()); |
+ return BeginFrameArgs( |
+ now, base::TimeTicks(), DefaultInterval(), BeginFrameArgs::SYNCHRONOUS); |
} |
// This is a hard-coded deadline adjustment that assumes 60Hz, to be used in |