| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/frame_host/render_widget_host_view_child_frame.h" | 5 #include "content/browser/frame_host/render_widget_host_view_child_frame.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 #endif | 164 #endif |
| 165 | 165 |
| 166 TEST_F(RenderWidgetHostViewChildFrameTest, MAYBE_VisibilityTest) { | 166 TEST_F(RenderWidgetHostViewChildFrameTest, MAYBE_VisibilityTest) { |
| 167 view_->Show(); | 167 view_->Show(); |
| 168 ASSERT_TRUE(view_->IsShowing()); | 168 ASSERT_TRUE(view_->IsShowing()); |
| 169 | 169 |
| 170 view_->Hide(); | 170 view_->Hide(); |
| 171 ASSERT_FALSE(view_->IsShowing()); | 171 ASSERT_FALSE(view_->IsShowing()); |
| 172 } | 172 } |
| 173 | 173 |
| 174 // Verify that OnSwapCompositorFrame behavior is correct when a delegated | 174 // Verify that SubmitCompositorFrame behavior is correct when a delegated |
| 175 // frame is received from a renderer process. | 175 // frame is received from a renderer process. |
| 176 TEST_F(RenderWidgetHostViewChildFrameTest, MAYBE_SwapCompositorFrame) { | 176 TEST_F(RenderWidgetHostViewChildFrameTest, MAYBE_SwapCompositorFrame) { |
| 177 gfx::Size view_size(100, 100); | 177 gfx::Size view_size(100, 100); |
| 178 gfx::Rect view_rect(view_size); | 178 gfx::Rect view_rect(view_size); |
| 179 float scale_factor = 1.f; | 179 float scale_factor = 1.f; |
| 180 cc::LocalSurfaceId local_surface_id(1, base::UnguessableToken::Create()); | 180 cc::LocalSurfaceId local_surface_id(1, base::UnguessableToken::Create()); |
| 181 | 181 |
| 182 view_->SetSize(view_size); | 182 view_->SetSize(view_size); |
| 183 view_->Show(); | 183 view_->Show(); |
| 184 | 184 |
| 185 view_->OnSwapCompositorFrame( | 185 view_->SubmitCompositorFrame( |
| 186 0, local_surface_id, | 186 local_surface_id, |
| 187 CreateDelegatedFrame(scale_factor, view_size, view_rect)); | 187 CreateDelegatedFrame(scale_factor, view_size, view_rect)); |
| 188 | 188 |
| 189 cc::SurfaceId id = GetSurfaceId(); | 189 cc::SurfaceId id = GetSurfaceId(); |
| 190 if (id.is_valid()) { | 190 if (id.is_valid()) { |
| 191 #if !defined(OS_ANDROID) | 191 #if !defined(OS_ANDROID) |
| 192 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); | 192 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
| 193 cc::SurfaceManager* manager = | 193 cc::SurfaceManager* manager = |
| 194 factory->GetContextFactoryPrivate()->GetSurfaceManager(); | 194 factory->GetContextFactoryPrivate()->GetSurfaceManager(); |
| 195 cc::Surface* surface = manager->GetSurfaceForId(id); | 195 cc::Surface* surface = manager->GetSurfaceForId(id); |
| 196 EXPECT_TRUE(surface); | 196 EXPECT_TRUE(surface); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 208 // Check that the same local surface id can be used after frame eviction. | 208 // Check that the same local surface id can be used after frame eviction. |
| 209 TEST_F(RenderWidgetHostViewChildFrameTest, FrameEviction) { | 209 TEST_F(RenderWidgetHostViewChildFrameTest, FrameEviction) { |
| 210 gfx::Size view_size(100, 100); | 210 gfx::Size view_size(100, 100); |
| 211 gfx::Rect view_rect(view_size); | 211 gfx::Rect view_rect(view_size); |
| 212 float scale_factor = 1.f; | 212 float scale_factor = 1.f; |
| 213 | 213 |
| 214 view_->SetSize(view_size); | 214 view_->SetSize(view_size); |
| 215 view_->Show(); | 215 view_->Show(); |
| 216 | 216 |
| 217 // Submit a frame. | 217 // Submit a frame. |
| 218 view_->OnSwapCompositorFrame( | 218 view_->SubmitCompositorFrame( |
| 219 0, kArbitraryLocalSurfaceId, | 219 kArbitraryLocalSurfaceId, |
| 220 CreateDelegatedFrame(scale_factor, view_size, view_rect)); | 220 CreateDelegatedFrame(scale_factor, view_size, view_rect)); |
| 221 | 221 |
| 222 EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId()); | 222 EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId()); |
| 223 EXPECT_TRUE(view_->has_frame()); | 223 EXPECT_TRUE(view_->has_frame()); |
| 224 | 224 |
| 225 // Evict the frame. has_frame() should return false. | 225 // Evict the frame. has_frame() should return false. |
| 226 ClearCompositorSurfaceIfNecessary(); | 226 ClearCompositorSurfaceIfNecessary(); |
| 227 EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId()); | 227 EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId()); |
| 228 EXPECT_FALSE(view_->has_frame()); | 228 EXPECT_FALSE(view_->has_frame()); |
| 229 | 229 |
| 230 // Submit another frame with the same local surface id. The same id should be | 230 // Submit another frame with the same local surface id. The same id should be |
| 231 // usable. | 231 // usable. |
| 232 view_->OnSwapCompositorFrame( | 232 view_->SubmitCompositorFrame( |
| 233 0, kArbitraryLocalSurfaceId, | 233 kArbitraryLocalSurfaceId, |
| 234 CreateDelegatedFrame(scale_factor, view_size, view_rect)); | 234 CreateDelegatedFrame(scale_factor, view_size, view_rect)); |
| 235 EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId()); | 235 EXPECT_EQ(kArbitraryLocalSurfaceId, GetLocalSurfaceId()); |
| 236 EXPECT_TRUE(view_->has_frame()); | 236 EXPECT_TRUE(view_->has_frame()); |
| 237 } | 237 } |
| 238 | 238 |
| 239 // Tests that BeginFrameAcks are forwarded correctly from the | 239 // Tests that BeginFrameAcks are forwarded correctly from the |
| 240 // SwapCompositorFrame and OnBeginFrameDidNotSwap IPCs through the | 240 // SwapCompositorFrame and OnBeginFrameDidNotSwap IPCs through the |
| 241 // CompositorFrameSinkSupport. | 241 // CompositorFrameSinkSupport. |
| 242 TEST_F(RenderWidgetHostViewChildFrameTest, ForwardsBeginFrameAcks) { | 242 TEST_F(RenderWidgetHostViewChildFrameTest, ForwardsBeginFrameAcks) { |
| 243 gfx::Size view_size(100, 100); | 243 gfx::Size view_size(100, 100); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 257 { | 257 { |
| 258 cc::BeginFrameArgs args = | 258 cc::BeginFrameArgs args = |
| 259 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 5u); | 259 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 5u); |
| 260 source.TestOnBeginFrame(args); | 260 source.TestOnBeginFrame(args); |
| 261 | 261 |
| 262 // Ack from CompositorFrame is forwarded. | 262 // Ack from CompositorFrame is forwarded. |
| 263 cc::BeginFrameAck ack(source_id, 5, 4, true); | 263 cc::BeginFrameAck ack(source_id, 5, 4, true); |
| 264 cc::CompositorFrame frame = | 264 cc::CompositorFrame frame = |
| 265 CreateDelegatedFrame(scale_factor, view_size, view_rect); | 265 CreateDelegatedFrame(scale_factor, view_size, view_rect); |
| 266 frame.metadata.begin_frame_ack = ack; | 266 frame.metadata.begin_frame_ack = ack; |
| 267 view_->OnSwapCompositorFrame(0, kArbitraryLocalSurfaceId, std::move(frame)); | 267 view_->SubmitCompositorFrame(kArbitraryLocalSurfaceId, std::move(frame)); |
| 268 EXPECT_EQ(ack, source.LastAckForObserver(view_->support_.get())); | 268 EXPECT_EQ(ack, source.LastAckForObserver(view_->support_.get())); |
| 269 } | 269 } |
| 270 | 270 |
| 271 { | 271 { |
| 272 cc::BeginFrameArgs args = | 272 cc::BeginFrameArgs args = |
| 273 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); | 273 cc::CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE, source_id, 6u); |
| 274 source.TestOnBeginFrame(args); | 274 source.TestOnBeginFrame(args); |
| 275 | 275 |
| 276 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. | 276 // Explicit ack through OnBeginFrameDidNotSwap is forwarded. |
| 277 cc::BeginFrameAck ack(source_id, 6, 4, false); | 277 cc::BeginFrameAck ack(source_id, 6, 4, false); |
| 278 view_->OnBeginFrameDidNotSwap(ack); | 278 view_->OnBeginFrameDidNotSwap(ack); |
| 279 EXPECT_EQ(ack, source.LastAckForObserver(view_->support_.get())); | 279 EXPECT_EQ(ack, source.LastAckForObserver(view_->support_.get())); |
| 280 } | 280 } |
| 281 | 281 |
| 282 view_->SetNeedsBeginFrames(false); | 282 view_->SetNeedsBeginFrames(false); |
| 283 } | 283 } |
| 284 | 284 |
| 285 } // namespace content | 285 } // namespace content |
| OLD | NEW |