Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/renderer_host/render_widget_host_view_aura.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/shared_memory.h" | 9 #include "base/memory/shared_memory.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 300 SetChildBoundsDirect(child, gfx::Rect(owner_->bounds().size())); | 300 SetChildBoundsDirect(child, gfx::Rect(owner_->bounds().size())); |
| 301 } | 301 } |
| 302 | 302 |
| 303 private: | 303 private: |
| 304 aura::Window* owner_; | 304 aura::Window* owner_; |
| 305 DISALLOW_COPY_AND_ASSIGN(FullscreenLayoutManager); | 305 DISALLOW_COPY_AND_ASSIGN(FullscreenLayoutManager); |
| 306 }; | 306 }; |
| 307 | 307 |
| 308 class MockWindowObserver : public aura::WindowObserver { | 308 class MockWindowObserver : public aura::WindowObserver { |
| 309 public: | 309 public: |
| 310 MOCK_METHOD2(OnWindowPaintScheduled, void(aura::Window*, const gfx::Rect&)); | 310 MOCK_METHOD2(OnDelegatedFrameDamage, void(aura::Window*, const gfx::Rect&)); |
|
enne (OOO)
2014/08/21 20:54:19
Changed this file to use OnDelegatedFrameDamage in
enne (OOO)
2014/08/21 20:54:19
Changed this file to expect OnDelegatedFrameDamage
| |
| 311 }; | 311 }; |
| 312 | 312 |
| 313 } // namespace | 313 } // namespace |
| 314 | 314 |
| 315 class RenderWidgetHostViewAuraTest : public testing::Test { | 315 class RenderWidgetHostViewAuraTest : public testing::Test { |
| 316 public: | 316 public: |
| 317 RenderWidgetHostViewAuraTest() | 317 RenderWidgetHostViewAuraTest() |
| 318 : browser_thread_for_ui_(BrowserThread::UI, &message_loop_) {} | 318 : browser_thread_for_ui_(BrowserThread::UI, &message_loop_) {} |
| 319 | 319 |
| 320 void SetUpEnvironment() { | 320 void SetUpEnvironment() { |
| (...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1224 view_->GetNativeView(), | 1224 view_->GetNativeView(), |
| 1225 parent_view_->GetNativeView()->GetRootWindow(), | 1225 parent_view_->GetNativeView()->GetRootWindow(), |
| 1226 gfx::Rect()); | 1226 gfx::Rect()); |
| 1227 view_->SetSize(view_size); | 1227 view_->SetSize(view_size); |
| 1228 view_->WasShown(); | 1228 view_->WasShown(); |
| 1229 | 1229 |
| 1230 MockWindowObserver observer; | 1230 MockWindowObserver observer; |
| 1231 view_->window_->AddObserver(&observer); | 1231 view_->window_->AddObserver(&observer); |
| 1232 | 1232 |
| 1233 // Delegated renderer path | 1233 // Delegated renderer path |
| 1234 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, view_rect)); | 1234 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1235 view_->OnSwapCompositorFrame( | 1235 view_->OnSwapCompositorFrame( |
| 1236 0, MakeDelegatedFrame(1.f, view_size, view_rect)); | 1236 0, MakeDelegatedFrame(1.f, view_size, view_rect)); |
| 1237 testing::Mock::VerifyAndClearExpectations(&observer); | 1237 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1238 | 1238 |
| 1239 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, | 1239 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, |
| 1240 gfx::Rect(5, 5, 5, 5))); | 1240 gfx::Rect(5, 5, 5, 5))); |
| 1241 view_->OnSwapCompositorFrame( | 1241 view_->OnSwapCompositorFrame( |
| 1242 0, MakeDelegatedFrame(1.f, view_size, gfx::Rect(5, 5, 5, 5))); | 1242 0, MakeDelegatedFrame(1.f, view_size, gfx::Rect(5, 5, 5, 5))); |
| 1243 testing::Mock::VerifyAndClearExpectations(&observer); | 1243 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1244 | 1244 |
| 1245 view_->window_->RemoveObserver(&observer); | 1245 view_->window_->RemoveObserver(&observer); |
| 1246 } | 1246 } |
| 1247 | 1247 |
| 1248 TEST_F(RenderWidgetHostViewAuraTest, Resize) { | 1248 TEST_F(RenderWidgetHostViewAuraTest, Resize) { |
| 1249 gfx::Size size1(100, 100); | 1249 gfx::Size size1(100, 100); |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1340 aura::client::ParentWindowWithContext( | 1340 aura::client::ParentWindowWithContext( |
| 1341 view_->GetNativeView(), | 1341 view_->GetNativeView(), |
| 1342 parent_view_->GetNativeView()->GetRootWindow(), | 1342 parent_view_->GetNativeView()->GetRootWindow(), |
| 1343 gfx::Rect()); | 1343 gfx::Rect()); |
| 1344 view_->SetSize(view_rect.size()); | 1344 view_->SetSize(view_rect.size()); |
| 1345 | 1345 |
| 1346 MockWindowObserver observer; | 1346 MockWindowObserver observer; |
| 1347 view_->window_->AddObserver(&observer); | 1347 view_->window_->AddObserver(&observer); |
| 1348 | 1348 |
| 1349 // A full frame of damage. | 1349 // A full frame of damage. |
| 1350 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, view_rect)); | 1350 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1351 view_->OnSwapCompositorFrame( | 1351 view_->OnSwapCompositorFrame( |
| 1352 0, MakeDelegatedFrame(1.f, frame_size, view_rect)); | 1352 0, MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 1353 testing::Mock::VerifyAndClearExpectations(&observer); | 1353 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1354 view_->RunOnCompositingDidCommit(); | 1354 view_->RunOnCompositingDidCommit(); |
| 1355 | 1355 |
| 1356 // A partial damage frame. | 1356 // A partial damage frame. |
| 1357 gfx::Rect partial_view_rect(30, 30, 20, 20); | 1357 gfx::Rect partial_view_rect(30, 30, 20, 20); |
| 1358 EXPECT_CALL(observer, | 1358 EXPECT_CALL(observer, |
| 1359 OnWindowPaintScheduled(view_->window_, partial_view_rect)); | 1359 OnDelegatedFrameDamage(view_->window_, partial_view_rect)); |
| 1360 view_->OnSwapCompositorFrame( | 1360 view_->OnSwapCompositorFrame( |
| 1361 0, MakeDelegatedFrame(1.f, frame_size, partial_view_rect)); | 1361 0, MakeDelegatedFrame(1.f, frame_size, partial_view_rect)); |
| 1362 testing::Mock::VerifyAndClearExpectations(&observer); | 1362 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1363 view_->RunOnCompositingDidCommit(); | 1363 view_->RunOnCompositingDidCommit(); |
| 1364 | 1364 |
| 1365 // Lock the compositor. Now we should drop frames. | 1365 // Lock the compositor. Now we should drop frames. |
| 1366 view_rect = gfx::Rect(150, 150); | 1366 view_rect = gfx::Rect(150, 150); |
| 1367 view_->SetSize(view_rect.size()); | 1367 view_->SetSize(view_rect.size()); |
| 1368 | 1368 |
| 1369 // This frame is dropped. | 1369 // This frame is dropped. |
| 1370 gfx::Rect dropped_damage_rect_1(10, 20, 30, 40); | 1370 gfx::Rect dropped_damage_rect_1(10, 20, 30, 40); |
| 1371 EXPECT_CALL(observer, OnWindowPaintScheduled(_, _)).Times(0); | 1371 EXPECT_CALL(observer, OnDelegatedFrameDamage(_, _)).Times(0); |
| 1372 view_->OnSwapCompositorFrame( | 1372 view_->OnSwapCompositorFrame( |
| 1373 0, MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect_1)); | 1373 0, MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect_1)); |
| 1374 testing::Mock::VerifyAndClearExpectations(&observer); | 1374 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1375 view_->RunOnCompositingDidCommit(); | 1375 view_->RunOnCompositingDidCommit(); |
| 1376 | 1376 |
| 1377 gfx::Rect dropped_damage_rect_2(40, 50, 10, 20); | 1377 gfx::Rect dropped_damage_rect_2(40, 50, 10, 20); |
| 1378 EXPECT_CALL(observer, OnWindowPaintScheduled(_, _)).Times(0); | 1378 EXPECT_CALL(observer, OnDelegatedFrameDamage(_, _)).Times(0); |
| 1379 view_->OnSwapCompositorFrame( | 1379 view_->OnSwapCompositorFrame( |
| 1380 0, MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect_2)); | 1380 0, MakeDelegatedFrame(1.f, frame_size, dropped_damage_rect_2)); |
| 1381 testing::Mock::VerifyAndClearExpectations(&observer); | 1381 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1382 view_->RunOnCompositingDidCommit(); | 1382 view_->RunOnCompositingDidCommit(); |
| 1383 | 1383 |
| 1384 // Unlock the compositor. This frame should damage everything. | 1384 // Unlock the compositor. This frame should damage everything. |
| 1385 frame_size = view_rect.size(); | 1385 frame_size = view_rect.size(); |
| 1386 | 1386 |
| 1387 gfx::Rect new_damage_rect(5, 6, 10, 10); | 1387 gfx::Rect new_damage_rect(5, 6, 10, 10); |
| 1388 EXPECT_CALL(observer, | 1388 EXPECT_CALL(observer, |
| 1389 OnWindowPaintScheduled(view_->window_, view_rect)); | 1389 OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1390 view_->OnSwapCompositorFrame( | 1390 view_->OnSwapCompositorFrame( |
| 1391 0, MakeDelegatedFrame(1.f, frame_size, new_damage_rect)); | 1391 0, MakeDelegatedFrame(1.f, frame_size, new_damage_rect)); |
| 1392 testing::Mock::VerifyAndClearExpectations(&observer); | 1392 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1393 view_->RunOnCompositingDidCommit(); | 1393 view_->RunOnCompositingDidCommit(); |
| 1394 | 1394 |
| 1395 // A partial damage frame, this should not be dropped. | 1395 // A partial damage frame, this should not be dropped. |
| 1396 EXPECT_CALL(observer, | 1396 EXPECT_CALL(observer, |
| 1397 OnWindowPaintScheduled(view_->window_, partial_view_rect)); | 1397 OnDelegatedFrameDamage(view_->window_, partial_view_rect)); |
| 1398 view_->OnSwapCompositorFrame( | 1398 view_->OnSwapCompositorFrame( |
| 1399 0, MakeDelegatedFrame(1.f, frame_size, partial_view_rect)); | 1399 0, MakeDelegatedFrame(1.f, frame_size, partial_view_rect)); |
| 1400 testing::Mock::VerifyAndClearExpectations(&observer); | 1400 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1401 view_->RunOnCompositingDidCommit(); | 1401 view_->RunOnCompositingDidCommit(); |
| 1402 | 1402 |
| 1403 | 1403 |
| 1404 // Resize to something empty. | 1404 // Resize to something empty. |
| 1405 view_rect = gfx::Rect(100, 0); | 1405 view_rect = gfx::Rect(100, 0); |
| 1406 view_->SetSize(view_rect.size()); | 1406 view_->SetSize(view_rect.size()); |
| 1407 | 1407 |
| 1408 // We're never expecting empty frames, resize to something non-empty. | 1408 // We're never expecting empty frames, resize to something non-empty. |
| 1409 view_rect = gfx::Rect(100, 100); | 1409 view_rect = gfx::Rect(100, 100); |
| 1410 view_->SetSize(view_rect.size()); | 1410 view_->SetSize(view_rect.size()); |
| 1411 | 1411 |
| 1412 // This frame should not be dropped. | 1412 // This frame should not be dropped. |
| 1413 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, view_rect)); | 1413 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1414 view_->OnSwapCompositorFrame( | 1414 view_->OnSwapCompositorFrame( |
| 1415 0, MakeDelegatedFrame(1.f, view_rect.size(), view_rect)); | 1415 0, MakeDelegatedFrame(1.f, view_rect.size(), view_rect)); |
| 1416 testing::Mock::VerifyAndClearExpectations(&observer); | 1416 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1417 view_->RunOnCompositingDidCommit(); | 1417 view_->RunOnCompositingDidCommit(); |
| 1418 | 1418 |
| 1419 view_->window_->RemoveObserver(&observer); | 1419 view_->window_->RemoveObserver(&observer); |
| 1420 } | 1420 } |
| 1421 | 1421 |
| 1422 TEST_F(RenderWidgetHostViewAuraTest, OutputSurfaceIdChange) { | 1422 TEST_F(RenderWidgetHostViewAuraTest, OutputSurfaceIdChange) { |
| 1423 gfx::Rect view_rect(100, 100); | 1423 gfx::Rect view_rect(100, 100); |
| 1424 gfx::Size frame_size = view_rect.size(); | 1424 gfx::Size frame_size = view_rect.size(); |
| 1425 | 1425 |
| 1426 view_->InitAsChild(NULL); | 1426 view_->InitAsChild(NULL); |
| 1427 aura::client::ParentWindowWithContext( | 1427 aura::client::ParentWindowWithContext( |
| 1428 view_->GetNativeView(), | 1428 view_->GetNativeView(), |
| 1429 parent_view_->GetNativeView()->GetRootWindow(), | 1429 parent_view_->GetNativeView()->GetRootWindow(), |
| 1430 gfx::Rect()); | 1430 gfx::Rect()); |
| 1431 view_->SetSize(view_rect.size()); | 1431 view_->SetSize(view_rect.size()); |
| 1432 | 1432 |
| 1433 MockWindowObserver observer; | 1433 MockWindowObserver observer; |
| 1434 view_->window_->AddObserver(&observer); | 1434 view_->window_->AddObserver(&observer); |
| 1435 | 1435 |
| 1436 // Swap a frame. | 1436 // Swap a frame. |
| 1437 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, view_rect)); | 1437 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1438 view_->OnSwapCompositorFrame( | 1438 view_->OnSwapCompositorFrame( |
| 1439 0, MakeDelegatedFrame(1.f, frame_size, view_rect)); | 1439 0, MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 1440 testing::Mock::VerifyAndClearExpectations(&observer); | 1440 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1441 view_->RunOnCompositingDidCommit(); | 1441 view_->RunOnCompositingDidCommit(); |
| 1442 | 1442 |
| 1443 // Swap a frame with a different surface id. | 1443 // Swap a frame with a different surface id. |
| 1444 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, view_rect)); | 1444 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1445 view_->OnSwapCompositorFrame( | 1445 view_->OnSwapCompositorFrame( |
| 1446 1, MakeDelegatedFrame(1.f, frame_size, view_rect)); | 1446 1, MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 1447 testing::Mock::VerifyAndClearExpectations(&observer); | 1447 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1448 view_->RunOnCompositingDidCommit(); | 1448 view_->RunOnCompositingDidCommit(); |
| 1449 | 1449 |
| 1450 // Swap an empty frame, with a different surface id. | 1450 // Swap an empty frame, with a different surface id. |
| 1451 view_->OnSwapCompositorFrame( | 1451 view_->OnSwapCompositorFrame( |
| 1452 2, MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect())); | 1452 2, MakeDelegatedFrame(1.f, gfx::Size(), gfx::Rect())); |
| 1453 testing::Mock::VerifyAndClearExpectations(&observer); | 1453 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1454 view_->RunOnCompositingDidCommit(); | 1454 view_->RunOnCompositingDidCommit(); |
| 1455 | 1455 |
| 1456 // Swap another frame, with a different surface id. | 1456 // Swap another frame, with a different surface id. |
| 1457 EXPECT_CALL(observer, OnWindowPaintScheduled(view_->window_, view_rect)); | 1457 EXPECT_CALL(observer, OnDelegatedFrameDamage(view_->window_, view_rect)); |
| 1458 view_->OnSwapCompositorFrame(3, | 1458 view_->OnSwapCompositorFrame(3, |
| 1459 MakeDelegatedFrame(1.f, frame_size, view_rect)); | 1459 MakeDelegatedFrame(1.f, frame_size, view_rect)); |
| 1460 testing::Mock::VerifyAndClearExpectations(&observer); | 1460 testing::Mock::VerifyAndClearExpectations(&observer); |
| 1461 view_->RunOnCompositingDidCommit(); | 1461 view_->RunOnCompositingDidCommit(); |
| 1462 | 1462 |
| 1463 view_->window_->RemoveObserver(&observer); | 1463 view_->window_->RemoveObserver(&observer); |
| 1464 } | 1464 } |
| 1465 | 1465 |
| 1466 TEST_F(RenderWidgetHostViewAuraTest, DiscardDelegatedFrames) { | 1466 TEST_F(RenderWidgetHostViewAuraTest, DiscardDelegatedFrames) { |
| 1467 size_t max_renderer_frames = | 1467 size_t max_renderer_frames = |
| (...skipping 1279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2747 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); | 2747 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); |
| 2748 | 2748 |
| 2749 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, | 2749 SimulateGestureEvent(WebInputEvent::GestureScrollEnd, |
| 2750 blink::WebGestureDeviceTouchscreen); | 2750 blink::WebGestureDeviceTouchscreen); |
| 2751 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 2751 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
| 2752 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); | 2752 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); |
| 2753 EXPECT_EQ(3U, sink_->message_count()); | 2753 EXPECT_EQ(3U, sink_->message_count()); |
| 2754 } | 2754 } |
| 2755 | 2755 |
| 2756 } // namespace content | 2756 } // namespace content |
| OLD | NEW |