summaryrefslogtreecommitdiffstats
path: root/cc/output
diff options
context:
space:
mode:
authormithro <mithro@mithis.com>2014-11-21 07:13:49 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-21 15:14:05 +0000
commitbfa0ec0ee961313f82c90a760dd36d18d9ffa0d4 (patch)
tree4bc4d3364b2f5fc8bf94bf8d4d10abe0d87bf991 /cc/output
parent9b471ee091c4bc68695e845e0f4482c1d0bde38c (diff)
downloadchromium_src-bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4.zip
chromium_src-bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4.tar.gz
chromium_src-bfa0ec0ee961313f82c90a760dd36d18d9ffa0d4.tar.bz2
cc: Small BeginFrameArgs cleanup.
* Rename BeginFrameArgs::CreateTyped to BeginFrameArgs::Create and remove other versions. * The other constructors where not used anywhere. * The non-typed version was accidentally being used to create a SYNCHRONOUS BeginFrameArgs. * Fixed testing methods to understand type information. * Create method for converting the type enum to string. BUG=346230 Review URL: https://codereview.chromium.org/742683002 Cr-Commit-Position: refs/heads/master@{#305218}
Diffstat (limited to 'cc/output')
-rw-r--r--cc/output/begin_frame_args.cc55
-rw-r--r--cc/output/begin_frame_args.h10
-rw-r--r--cc/output/begin_frame_args_unittest.cc35
3 files changed, 46 insertions, 54 deletions
diff --git a/cc/output/begin_frame_args.cc b/cc/output/begin_frame_args.cc
index fc7098f..0be9318 100644
--- a/cc/output/begin_frame_args.cc
+++ b/cc/output/begin_frame_args.cc
@@ -9,6 +9,21 @@
namespace cc {
+const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) {
+ switch (type) {
+ case BeginFrameArgs::INVALID:
+ return "INVALID";
+ case BeginFrameArgs::NORMAL:
+ return "NORMAL";
+ case BeginFrameArgs::SYNCHRONOUS:
+ return "SYNCHRONOUS";
+ case BeginFrameArgs::MISSED:
+ return "MISSED";
+ }
+ NOTREACHED();
+ return "???";
+}
+
BeginFrameArgs::BeginFrameArgs()
: frame_time(base::TimeTicks()),
deadline(base::TimeTicks()),
@@ -26,19 +41,12 @@ BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time,
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 CreateTyped(frame_time, deadline, interval, BeginFrameArgs::NORMAL);
+ base::TimeDelta interval,
+ BeginFrameArgs::BeginFrameArgsType type) {
+ DCHECK_NE(type, BeginFrameArgs::INVALID);
+ return BeginFrameArgs(frame_time, deadline, interval, type);
}
scoped_refptr<base::debug::ConvertableToTraceFormat> BeginFrameArgs::AsValue()
@@ -51,35 +59,12 @@ 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->SetString("subtype", TypeToString(type));
state->SetDouble("frame_time_us", frame_time.ToInternalValue());
state->SetDouble("deadline_us", deadline.ToInternalValue());
state->SetDouble("interval_us", interval.InMicroseconds());
}
-BeginFrameArgs BeginFrameArgs::CreateForSynchronousCompositor(
- base::TimeTicks now) {
- // For WebView/SynchronousCompositor, we always want to draw immediately,
- // so we set the deadline to 0 and guess that the interval is 16 milliseconds.
- if (now.is_null())
- now = gfx::FrameTime::Now();
- return CreateTyped(
- now, base::TimeTicks(), DefaultInterval(), BeginFrameArgs::SYNCHRONOUS);
-}
-
// This is a hard-coded deadline adjustment that assumes 60Hz, to be used in
// cases where a good estimated draw time is not known. Using 1/3 of the vsync
// as the default adjustment gives the Browser the last 1/3 of a frame to
diff --git a/cc/output/begin_frame_args.h b/cc/output/begin_frame_args.h
index c35a500..0be5241 100644
--- a/cc/output/begin_frame_args.h
+++ b/cc/output/begin_frame_args.h
@@ -26,6 +26,7 @@ struct CC_EXPORT BeginFrameArgs {
SYNCHRONOUS,
MISSED,
};
+ static const char* TypeToString(BeginFrameArgsType type);
// Creates an invalid set of values.
BeginFrameArgs();
@@ -34,13 +35,8 @@ struct CC_EXPORT BeginFrameArgs {
// created by searching for "BeginFrameArgs::Create".
static BeginFrameArgs Create(base::TimeTicks frame_time,
base::TimeTicks deadline,
- base::TimeDelta interval);
- static BeginFrameArgs CreateTyped(base::TimeTicks frame_time,
- base::TimeTicks deadline,
- base::TimeDelta interval,
- BeginFrameArgsType type);
- static BeginFrameArgs CreateForSynchronousCompositor(
- base::TimeTicks now = base::TimeTicks());
+ base::TimeDelta interval,
+ BeginFrameArgsType type);
// This is the default delta that will be used to adjust the deadline when
// proper draw-time estimations are not yet available.
diff --git a/cc/output/begin_frame_args_unittest.cc b/cc/output/begin_frame_args_unittest.cc
index e0c8b3e..9d77a45d 100644
--- a/cc/output/begin_frame_args_unittest.cc
+++ b/cc/output/begin_frame_args_unittest.cc
@@ -26,15 +26,29 @@ TEST(BeginFrameArgsTest, Helpers) {
EXPECT_EQ(1, args2.frame_time.ToInternalValue());
EXPECT_EQ(2, args2.deadline.ToInternalValue());
EXPECT_EQ(3, args2.interval.ToInternalValue());
+ EXPECT_EQ(BeginFrameArgs::NORMAL, args2.type);
BeginFrameArgs args3 = CreateExpiredBeginFrameArgsForTesting();
EXPECT_TRUE(args3.IsValid()) << args3;
EXPECT_GT(gfx::FrameTime::Now(), args3.deadline);
+ EXPECT_EQ(BeginFrameArgs::NORMAL, args3.type);
+
+ BeginFrameArgs args4 =
+ CreateBeginFrameArgsForTesting(1, 2, 3, BeginFrameArgs::MISSED);
+ EXPECT_TRUE(args4.IsValid()) << args4;
+ EXPECT_EQ(1, args4.frame_time.ToInternalValue());
+ EXPECT_EQ(2, args4.deadline.ToInternalValue());
+ EXPECT_EQ(3, args4.interval.ToInternalValue());
+ EXPECT_EQ(BeginFrameArgs::MISSED, args4.type);
// operator==
EXPECT_EQ(CreateBeginFrameArgsForTesting(4, 5, 6),
CreateBeginFrameArgsForTesting(4, 5, 6));
+ EXPECT_NONFATAL_FAILURE(
+ EXPECT_EQ(CreateBeginFrameArgsForTesting(7, 8, 9, BeginFrameArgs::MISSED),
+ CreateBeginFrameArgsForTesting(7, 8, 9)),
+ "");
EXPECT_NONFATAL_FAILURE(EXPECT_EQ(CreateBeginFrameArgsForTesting(4, 5, 6),
CreateBeginFrameArgsForTesting(7, 8, 9)),
"");
@@ -42,15 +56,15 @@ TEST(BeginFrameArgsTest, Helpers) {
// operator<<
std::stringstream out1;
out1 << args1;
- EXPECT_EQ("BeginFrameArgs(0, 0, -1us)", out1.str());
+ EXPECT_EQ("BeginFrameArgs(NORMAL, 0, 0, -1us)", out1.str());
std::stringstream out2;
out2 << args2;
- EXPECT_EQ("BeginFrameArgs(1, 2, 3us)", out2.str());
+ EXPECT_EQ("BeginFrameArgs(NORMAL, 1, 2, 3us)", out2.str());
// PrintTo
- EXPECT_EQ(std::string("BeginFrameArgs(0, 0, -1us)"),
+ EXPECT_EQ(std::string("BeginFrameArgs(NORMAL, 0, 0, -1us)"),
::testing::PrintToString(args1));
- EXPECT_EQ(std::string("BeginFrameArgs(1, 2, 3us)"),
+ EXPECT_EQ(std::string("BeginFrameArgs(NORMAL, 1, 2, 3us)"),
::testing::PrintToString(args2));
}
@@ -59,18 +73,15 @@ TEST(BeginFrameArgsTest, Create) {
BeginFrameArgs args1;
EXPECT_FALSE(args1.IsValid()) << args1;
- BeginFrameArgs args2 =
- BeginFrameArgs::Create(base::TimeTicks::FromInternalValue(1),
- base::TimeTicks::FromInternalValue(2),
- base::TimeDelta::FromInternalValue(3));
+ BeginFrameArgs args2 = BeginFrameArgs::Create(
+ base::TimeTicks::FromInternalValue(1),
+ base::TimeTicks::FromInternalValue(2),
+ base::TimeDelta::FromInternalValue(3), BeginFrameArgs::NORMAL);
EXPECT_TRUE(args2.IsValid()) << args2;
EXPECT_EQ(1, args2.frame_time.ToInternalValue()) << args2;
EXPECT_EQ(2, args2.deadline.ToInternalValue()) << args2;
EXPECT_EQ(3, args2.interval.ToInternalValue()) << args2;
-
- base::TimeTicks now = base::TimeTicks::FromInternalValue(1);
- EXPECT_EQ(CreateBeginFrameArgsForTesting(1, 0, 16666),
- BeginFrameArgs::CreateForSynchronousCompositor(now));
+ EXPECT_EQ(BeginFrameArgs::NORMAL, args2.type) << args2;
}
} // namespace