| 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 bdd44705f882b5d0eb074d785e801ff64c5ce282..80d781f5a5713d475f31710e5353c79d25815c90 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
|
| @@ -33,6 +33,11 @@
|
|
|
| namespace content {
|
| namespace {
|
| +
|
| +const cc::LocalSurfaceId kArbitraryLocalSurfaceId(
|
| + 1,
|
| + base::UnguessableToken::Deserialize(2, 3));
|
| +
|
| class MockRenderWidgetHostDelegate : public RenderWidgetHostDelegate {
|
| public:
|
| MockRenderWidgetHostDelegate() {}
|
| @@ -107,6 +112,10 @@ class RenderWidgetHostViewChildFrameTest : public testing::Test {
|
| return cc::SurfaceId(view_->frame_sink_id_, view_->local_surface_id_);
|
| }
|
|
|
| + cc::LocalSurfaceId GetLocalSurfaceId() const {
|
| + return view_->local_surface_id_;
|
| + }
|
| +
|
| void ClearCompositorSurfaceIfNecessary() {
|
| view_->ClearCompositorSurfaceIfNecessary();
|
| }
|
| @@ -164,12 +173,14 @@ TEST_F(RenderWidgetHostViewChildFrameTest, MAYBE_SwapCompositorFrame) {
|
| gfx::Size view_size(100, 100);
|
| gfx::Rect view_rect(view_size);
|
| float scale_factor = 1.f;
|
| + cc::LocalSurfaceId local_surface_id(1, base::UnguessableToken::Create());
|
|
|
| view_->SetSize(view_size);
|
| view_->Show();
|
|
|
| view_->OnSwapCompositorFrame(
|
| - 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
| + 0, local_surface_id,
|
| + CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
|
|
| cc::SurfaceId id = GetSurfaceId();
|
| if (id.is_valid()) {
|
| @@ -190,10 +201,8 @@ TEST_F(RenderWidgetHostViewChildFrameTest, MAYBE_SwapCompositorFrame) {
|
| }
|
| }
|
|
|
| -// Check that frame eviction does not trigger allocation of a new local surface
|
| -// id.
|
| -TEST_F(RenderWidgetHostViewChildFrameTest,
|
| - MAYBE_FrameEvictionKeepsLocalSurfaceId) {
|
| +// Check that the same local surface id can be used after frame eviction.
|
| +TEST_F(RenderWidgetHostViewChildFrameTest, FrameEviction) {
|
| gfx::Size view_size(100, 100);
|
| gfx::Rect view_rect(view_size);
|
| float scale_factor = 1.f;
|
| @@ -201,26 +210,25 @@ TEST_F(RenderWidgetHostViewChildFrameTest,
|
| view_->SetSize(view_size);
|
| view_->Show();
|
|
|
| - // Submit a frame. Remember the local surface id and check that has_frame()
|
| - // returns true.
|
| + // Submit a frame.
|
| view_->OnSwapCompositorFrame(
|
| - 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
| + 0, kArbitraryLocalSurfaceId,
|
| + CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
|
|
| - cc::SurfaceId surface_id = GetSurfaceId();
|
| - EXPECT_TRUE(surface_id.is_valid());
|
| + EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId());
|
| EXPECT_TRUE(view_->has_frame());
|
|
|
| - // Evict the frame. The surface id must remain the same but has_frame() should
|
| - // return false.
|
| + // Evict the frame. has_frame() should return false.
|
| ClearCompositorSurfaceIfNecessary();
|
| - EXPECT_EQ(surface_id, GetSurfaceId());
|
| + EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId());
|
| EXPECT_FALSE(view_->has_frame());
|
|
|
| - // Submit another frame. Since it has the same size and scale as the first
|
| - // one, the same surface id must be used. has_frame() must return true.
|
| + // Submit another frame with the same local surface id. The same id should be
|
| + // usable.
|
| view_->OnSwapCompositorFrame(
|
| - 0, CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
| - EXPECT_EQ(surface_id, GetSurfaceId());
|
| + 0, kArbitraryLocalSurfaceId,
|
| + CreateDelegatedFrame(scale_factor, view_size, view_rect));
|
| + EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId());
|
| EXPECT_TRUE(view_->has_frame());
|
| }
|
|
|
|
|