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