Index: cc/trees/layer_tree_host_impl_unittest.cc |
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc |
index 19a11f90fff9639c5c30ebdc4e8d70755c028d4e..6bc92e0df0166a5debdb69f95631cc8e8beadf7f 100644 |
--- a/cc/trees/layer_tree_host_impl_unittest.cc |
+++ b/cc/trees/layer_tree_host_impl_unittest.cc |
@@ -5358,5 +5358,44 @@ TEST_F(LayerTreeHostImplTest, WheelFlingShouldBubble) { |
} |
} |
+// Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed |
+// to CompositorFrameMetadata after SwapBuffers(); |
+TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { |
+ scoped_ptr<SolidColorLayerImpl> root = |
+ SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); |
+ root->SetAnchorPoint(gfx::PointF()); |
+ root->SetPosition(gfx::PointF()); |
+ root->SetBounds(gfx::Size(10, 10)); |
+ root->SetContentBounds(gfx::Size(10, 10)); |
+ root->SetDrawsContent(true); |
+ |
+ host_impl_->active_tree()->SetRootLayer(root.PassAs<LayerImpl>()); |
+ |
+ FakeOutputSurface* fake_output_surface = |
+ static_cast<FakeOutputSurface*>(host_impl_->output_surface()); |
+ |
+ const ui::LatencyInfo& metadata_latency_before = |
+ fake_output_surface->last_sent_frame().metadata.latency_info; |
+ EXPECT_FALSE(metadata_latency_before.FindLatency( |
+ ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); |
+ |
+ ui::LatencyInfo latency_info; |
+ latency_info.AddLatencyNumber( |
+ ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, 0); |
+ host_impl_->SetLatencyInfoForInputEvent(latency_info); |
+ |
+ gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); |
+ LayerTreeHostImpl::FrameData frame; |
+ EXPECT_TRUE(host_impl_->PrepareToDraw(&frame, gfx::Rect())); |
+ host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
+ host_impl_->DidDrawAllLayers(frame); |
+ EXPECT_TRUE(host_impl_->SwapBuffers(frame)); |
+ |
+ const ui::LatencyInfo& metadata_latency_after = |
+ fake_output_surface->last_sent_frame().metadata.latency_info; |
+ EXPECT_TRUE(metadata_latency_after.FindLatency( |
+ ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); |
+} |
+ |
} // namespace |
} // namespace cc |