Chromium Code Reviews| Index: content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc |
| diff --git a/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc b/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc |
| index 3c04ce9d3ecccaa1d6ac5577194c939ab7e79e4d..4ce340d7f391d3976b4a6ab73c6a307a3b23a5cb 100644 |
| --- a/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc |
| +++ b/content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc |
| @@ -53,6 +53,8 @@ class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate { |
| void SelectAll() override {} |
| }; |
| +} // namespace |
| + |
| class MockCrossProcessFrameConnector : public CrossProcessFrameConnector { |
| public: |
| MockCrossProcessFrameConnector() : CrossProcessFrameConnector(nullptr) {} |
| @@ -63,6 +65,10 @@ class MockCrossProcessFrameConnector : public CrossProcessFrameConnector { |
| last_surface_info_ = surface_info; |
| } |
| + void SetViewportIntersection(gfx::Rect intersection) { |
|
dcheng
2017/05/30 19:54:11
Ditto: const ref
kenrb
2017/05/30 21:19:20
Done.
|
| + viewport_intersection_rect_ = intersection; |
| + } |
| + |
| RenderWidgetHostViewBase* GetParentRenderWidgetHostView() override { |
| return nullptr; |
| } |
| @@ -70,8 +76,6 @@ class MockCrossProcessFrameConnector : public CrossProcessFrameConnector { |
| cc::SurfaceInfo last_surface_info_; |
| }; |
| -} // namespace |
| - |
| class RenderWidgetHostViewChildFrameTest : public testing::Test { |
| public: |
| RenderWidgetHostViewChildFrameTest() |
| @@ -244,4 +248,25 @@ TEST_F(RenderWidgetHostViewChildFrameTest, FrameEviction) { |
| EXPECT_TRUE(view_->has_frame()); |
| } |
| +// Tests that the viewport intersection rect is dispatched to the RenderWidget |
| +// whenever screen rects are updated. |
| +TEST_F(RenderWidgetHostViewChildFrameTest, ViewportIntersectionUpdated) { |
| + gfx::Rect intersection_rect(5, 5, 100, 80); |
| + test_frame_connector_->SetViewportIntersection(intersection_rect); |
| + |
| + MockRenderProcessHost* process = |
| + static_cast<MockRenderProcessHost*>(widget_host_->GetProcess()); |
| + process->Init(); |
| + |
| + widget_host_->Init(); |
| + |
| + const IPC::Message* intersection_update = |
| + process->sink().GetUniqueMessageMatching( |
| + ViewMsg_SetViewportIntersection::ID); |
| + ASSERT_TRUE(intersection_update); |
| + std::tuple<gfx::Rect> sent_rect; |
| + ViewMsg_SetViewportIntersection::Read(intersection_update, &sent_rect); |
| + EXPECT_EQ(intersection_rect, std::get<0>(sent_rect)); |
| +} |
| + |
| } // namespace content |