Index: cc/ipc/struct_traits_unittest.cc |
diff --git a/cc/ipc/struct_traits_unittest.cc b/cc/ipc/struct_traits_unittest.cc |
index 02f1496a34fa4c1be88a32331a43cab2a30c5c0c..fccf2926d12749fddf920cf53eb8813821e0fb68 100644 |
--- a/cc/ipc/struct_traits_unittest.cc |
+++ b/cc/ipc/struct_traits_unittest.cc |
@@ -29,6 +29,12 @@ class StructTraitsTest : public testing::Test, public mojom::TraitsTestService { |
callback.Run(b); |
} |
+ void EchoCompositorFrameMetadata( |
+ const CompositorFrameMetadata& c, |
+ const EchoCompositorFrameMetadataCallback& callback) override { |
+ callback.Run(c); |
+ } |
+ |
void EchoRenderPassId(const RenderPassId& r, |
const EchoRenderPassIdCallback& callback) override { |
callback.Run(r); |
@@ -90,6 +96,88 @@ TEST_F(StructTraitsTest, BeginFrameArgs) { |
EXPECT_EQ(on_critical_path, output.on_critical_path); |
} |
+TEST_F(StructTraitsTest, CompositorFrameMetadata) { |
+ const float device_scale_factor = 2.6f; |
+ const gfx::Vector2dF root_scroll_offset(1234.5f, 6789.1f); |
+ const float page_scale_factor = 1337.5f; |
+ const gfx::SizeF scrollable_viewport_size(1337.7f, 1234.5f); |
+ const gfx::SizeF root_layer_size(1234.5f, 5432.1f); |
+ const float min_page_scale_factor = 3.5f; |
+ const float max_page_scale_factor = 4.6f; |
+ const bool root_overflow_x_hidden = true; |
+ const bool root_overflow_y_hidden = true; |
+ const gfx::Vector2dF location_bar_offset(1234.5f, 5432.1f); |
+ const gfx::Vector2dF location_bar_content_translation(1234.5f, 5432.1f); |
+ const uint32_t root_background_color = 1337; |
+ Selection<gfx::SelectionBound> selection; |
+ selection.start.SetEdge(gfx::PointF(1234.5f, 67891.f), |
+ gfx::PointF(5432.1f, 1987.6f)); |
+ selection.start.set_visible(true); |
+ selection.start.set_type(gfx::SelectionBound::CENTER); |
+ selection.end.SetEdge(gfx::PointF(1337.5f, 52124.f), |
+ gfx::PointF(1234.3f, 8765.6f)); |
+ selection.end.set_visible(false); |
+ selection.end.set_type(gfx::SelectionBound::RIGHT); |
+ selection.is_editable = true; |
+ selection.is_empty_text_form_control = true; |
+ ui::LatencyInfo latency_info; |
+ latency_info.AddLatencyNumber( |
+ ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT, 1337, 7331); |
+ std::vector<ui::LatencyInfo> latency_infos = {latency_info}; |
+ std::vector<uint32_t> satisfies_sequences = {1234, 1337}; |
+ std::vector<SurfaceId> referenced_surfaces; |
+ SurfaceId id(1234, 5678, 9101112); |
+ referenced_surfaces.push_back(id); |
+ |
+ CompositorFrameMetadata input; |
+ input.device_scale_factor = device_scale_factor; |
+ input.root_scroll_offset = root_scroll_offset; |
+ input.page_scale_factor = page_scale_factor; |
+ input.scrollable_viewport_size = scrollable_viewport_size; |
+ input.root_layer_size = root_layer_size; |
+ input.min_page_scale_factor = min_page_scale_factor; |
+ input.max_page_scale_factor = max_page_scale_factor; |
+ input.root_overflow_x_hidden = root_overflow_x_hidden; |
+ input.root_overflow_y_hidden = root_overflow_y_hidden; |
+ input.location_bar_offset = location_bar_offset; |
+ input.location_bar_content_translation = location_bar_content_translation; |
+ input.root_background_color = root_background_color; |
+ input.selection = selection; |
+ input.latency_info = latency_infos; |
+ input.satisfies_sequences = satisfies_sequences; |
+ input.referenced_surfaces = referenced_surfaces; |
+ |
+ mojom::TraitsTestServicePtr proxy = GetTraitsTestProxy(); |
+ CompositorFrameMetadata output; |
+ proxy->EchoCompositorFrameMetadata(input, &output); |
+ EXPECT_EQ(device_scale_factor, output.device_scale_factor); |
+ EXPECT_EQ(root_scroll_offset, output.root_scroll_offset); |
+ EXPECT_EQ(page_scale_factor, output.page_scale_factor); |
+ EXPECT_EQ(scrollable_viewport_size, output.scrollable_viewport_size); |
+ EXPECT_EQ(root_layer_size, output.root_layer_size); |
+ EXPECT_EQ(min_page_scale_factor, output.min_page_scale_factor); |
+ EXPECT_EQ(max_page_scale_factor, output.max_page_scale_factor); |
+ EXPECT_EQ(root_overflow_x_hidden, output.root_overflow_x_hidden); |
+ EXPECT_EQ(root_overflow_y_hidden, output.root_overflow_y_hidden); |
+ EXPECT_EQ(location_bar_offset, output.location_bar_offset); |
+ EXPECT_EQ(location_bar_content_translation, |
+ output.location_bar_content_translation); |
+ EXPECT_EQ(root_background_color, output.root_background_color); |
+ EXPECT_EQ(selection, output.selection); |
+ EXPECT_EQ(latency_infos.size(), output.latency_info.size()); |
+ ui::LatencyInfo::LatencyComponent component; |
+ EXPECT_TRUE(output.latency_info[0].FindLatency( |
+ ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT, 1337, |
+ &component)); |
+ EXPECT_EQ(7331, component.sequence_number); |
+ EXPECT_EQ(satisfies_sequences.size(), output.satisfies_sequences.size()); |
+ for (uint32_t i = 0; i < satisfies_sequences.size(); ++i) |
+ EXPECT_EQ(satisfies_sequences[i], output.satisfies_sequences[i]); |
+ EXPECT_EQ(referenced_surfaces.size(), output.referenced_surfaces.size()); |
+ for (uint32_t i = 0; i < referenced_surfaces.size(); ++i) |
+ EXPECT_EQ(referenced_surfaces[i], output.referenced_surfaces[i]); |
+} |
+ |
TEST_F(StructTraitsTest, RenderPassId) { |
const int layer_id = 1337; |
const uint32_t index = 0xdeadbeef; |