Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / cc / output / begin_frame_args.cc
index b45eee8..fc7098f 100644 (file)
 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::CreateTyped(
+    base::TimeTicks frame_time,
+    base::TimeTicks deadline,
+    base::TimeDelta interval,
+    BeginFrameArgs::BeginFrameArgsType type) {
+  DCHECK_NE(type, BeginFrameArgs::INVALID);
+  return BeginFrameArgs(frame_time, deadline, interval, type);
+}
 
 BeginFrameArgs BeginFrameArgs::Create(base::TimeTicks frame_time,
                                       base::TimeTicks deadline,
                                       base::TimeDelta interval) {
-  return BeginFrameArgs(frame_time, deadline, interval);
+  return CreateTyped(frame_time, deadline, interval, BeginFrameArgs::NORMAL);
 }
 
 scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue()
@@ -39,6 +51,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 +76,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 CreateTyped(
+      now, base::TimeTicks(), DefaultInterval(), BeginFrameArgs::SYNCHRONOUS);
 }
 
 // This is a hard-coded deadline adjustment that assumes 60Hz, to be used in