Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(735)

Unified Diff: content/browser/frame_host/render_widget_host_view_child_frame_unittest.cc

Issue 2910023002: Ensure RemoteViewportIntersection rect persists across frame navigations (Closed)
Patch Set: dcheng comments addressed Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..d589fd24a098eb977a834671bf9527a60c53c084 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(const gfx::Rect& intersection) {
+ 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

Powered by Google App Engine
This is Rietveld 408576698