Index: cc/ipc/struct_traits_unittest.cc |
diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc |
index 00e401f02ab8e4f4adace3c4d1ff50ee64104e4d..9173d6b35121c4c6b56e34998726c5d288321ec8 100644 |
--- a/cc/ipc/struct_traits_unittest.cc |
+++ b/cc/ipc/struct_traits_unittest.cc |
@@ -16,6 +16,7 @@ |
#include "cc/quads/surface_draw_quad.h" |
#include "cc/quads/texture_draw_quad.h" |
#include "cc/quads/yuv_video_draw_quad.h" |
+#include "cc/test/begin_frame_args_test.h" |
#include "mojo/public/cpp/bindings/binding_set.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/skia/include/core/SkString.h" |
@@ -41,6 +42,11 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { |
callback.Run(b); |
} |
+ void EchoBeginFrameAck(const BeginFrameAck& b, |
+ const EchoBeginFrameAckCallback& callback) override { |
+ callback.Run(b); |
+ } |
+ |
void EchoCompositorFrame( |
CompositorFrame c, |
const EchoCompositorFrameCallback& callback) override { |
@@ -169,7 +175,11 @@ TEST_F(StructTraitsTest, BeginFrameArgs) { |
const base::TimeDelta interval = base::TimeDelta::FromMilliseconds(1337); |
const BeginFrameArgs::BeginFrameArgsType type = BeginFrameArgs::NORMAL; |
const bool on_critical_path = true; |
+ const uint32_t source_id = 5; |
+ const uint64_t sequence_number = 10; |
BeginFrameArgs input; |
+ input.source_id = source_id; |
+ input.sequence_number = sequence_number; |
input.frame_time = frame_time; |
input.deadline = deadline; |
input.interval = interval; |
@@ -178,6 +188,8 @@ TEST_F(StructTraitsTest, BeginFrameArgs) { |
mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
BeginFrameArgs output; |
proxy->EchoBeginFrameArgs(input, &output); |
+ EXPECT_EQ(source_id, output.source_id); |
+ EXPECT_EQ(sequence_number, output.sequence_number); |
EXPECT_EQ(frame_time, output.frame_time); |
EXPECT_EQ(deadline, output.deadline); |
EXPECT_EQ(interval, output.interval); |
@@ -185,6 +197,30 @@ TEST_F(StructTraitsTest, BeginFrameArgs) { |
EXPECT_EQ(on_critical_path, output.on_critical_path); |
} |
+TEST_F(StructTraitsTest, BeginFrameAck) { |
+ const uint32_t source_id = 5; |
+ const uint64_t sequence_number = 10; |
+ const uint64_t latest_confirmed_sequence_number = 8; |
+ const uint32_t remaining_frames = 1; |
+ const bool has_damage = true; |
+ BeginFrameAck input; |
+ input.source_id = source_id; |
+ input.sequence_number = sequence_number; |
+ input.latest_confirmed_sequence_number = latest_confirmed_sequence_number; |
+ input.remaining_frames = remaining_frames; |
+ input.has_damage = has_damage; |
+ mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
+ BeginFrameAck output; |
+ proxy->EchoBeginFrameAck(input, &output); |
+ EXPECT_EQ(source_id, output.source_id); |
+ EXPECT_EQ(sequence_number, output.sequence_number); |
+ EXPECT_EQ(latest_confirmed_sequence_number, |
+ output.latest_confirmed_sequence_number); |
+ // |remaining_frames| and |has_damage| are not transmitted. |
+ EXPECT_EQ(0u, output.remaining_frames); |
+ EXPECT_FALSE(output.has_damage); |
+} |
+ |
// Note that this is a fairly trivial test of CompositorFrame serialization as |
// most of the heavy lifting has already been done by CompositorFrameMetadata, |
// RenderPass, and QuadListBasic unit tests. |
@@ -243,6 +279,7 @@ TEST_F(StructTraitsTest, CompositorFrame) { |
const float page_scale_factor = 1337.5f; |
const gfx::SizeF scrollable_viewport_size(1337.7f, 1234.5f); |
const uint32_t content_source_id = 3; |
+ const BeginFrameAck begin_frame_ack(5, 10, 8, 0, false); |
CompositorFrame input; |
input.metadata.device_scale_factor = device_scale_factor; |
@@ -252,6 +289,7 @@ TEST_F(StructTraitsTest, CompositorFrame) { |
input.render_pass_list.push_back(std::move(render_pass)); |
input.resource_list.push_back(resource); |
input.metadata.content_source_id = content_source_id; |
+ input.metadata.begin_frame_ack = begin_frame_ack; |
mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
CompositorFrame output; |
@@ -262,6 +300,7 @@ TEST_F(StructTraitsTest, CompositorFrame) { |
EXPECT_EQ(page_scale_factor, output.metadata.page_scale_factor); |
EXPECT_EQ(scrollable_viewport_size, output.metadata.scrollable_viewport_size); |
EXPECT_EQ(content_source_id, output.metadata.content_source_id); |
+ EXPECT_EQ(begin_frame_ack, output.metadata.begin_frame_ack); |
ASSERT_EQ(1u, output.resource_list.size()); |
TransferableResource out_resource = output.resource_list[0]; |