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 <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <tuple> | 10 #include <tuple> |
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 widget_host_->ShutdownAndDestroyWidget(true); | 505 widget_host_->ShutdownAndDestroyWidget(true); |
506 else | 506 else |
507 delete widget_host_; | 507 delete widget_host_; |
508 | 508 |
509 parent_view_->Destroy(); | 509 parent_view_->Destroy(); |
510 delete parent_host_; | 510 delete parent_host_; |
511 | 511 |
512 browser_context_.reset(); | 512 browser_context_.reset(); |
513 aura_test_helper_->TearDown(); | 513 aura_test_helper_->TearDown(); |
514 | 514 |
515 message_loop_.DeleteSoon(FROM_HERE, browser_context_.release()); | 515 message_loop_.task_runner()->DeleteSoon(FROM_HERE, |
516 message_loop_.RunUntilIdle(); | 516 browser_context_.release()); |
| 517 base::RunLoop().RunUntilIdle(); |
517 ImageTransportFactory::Terminate(); | 518 ImageTransportFactory::Terminate(); |
518 } | 519 } |
519 | 520 |
520 void SetUp() override { SetUpEnvironment(); } | 521 void SetUp() override { SetUpEnvironment(); } |
521 | 522 |
522 void TearDown() override { TearDownEnvironment(); } | 523 void TearDown() override { TearDownEnvironment(); } |
523 | 524 |
524 void set_widget_host_uses_shutdown_to_destroy(bool use) { | 525 void set_widget_host_uses_shutdown_to_destroy(bool use) { |
525 widget_host_uses_shutdown_to_destroy_ = use; | 526 widget_host_uses_shutdown_to_destroy_ = use; |
526 } | 527 } |
(...skipping 1925 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2452 // occur because all frames are visible. | 2453 // occur because all frames are visible. |
2453 for (size_t i = 0; i < renderer_count; ++i) { | 2454 for (size_t i = 0; i < renderer_count; ++i) { |
2454 views[i]->Show(); | 2455 views[i]->Show(); |
2455 views[i]->OnSwapCompositorFrame( | 2456 views[i]->OnSwapCompositorFrame( |
2456 1, MakeDelegatedFrame(1.f, frame_size, view_rect)); | 2457 1, MakeDelegatedFrame(1.f, frame_size, view_rect)); |
2457 EXPECT_TRUE(views[i]->HasFrameData()); | 2458 EXPECT_TRUE(views[i]->HasFrameData()); |
2458 } | 2459 } |
2459 | 2460 |
2460 // If we hide one, it should not get evicted. | 2461 // If we hide one, it should not get evicted. |
2461 views[0]->Hide(); | 2462 views[0]->Hide(); |
2462 message_loop_.RunUntilIdle(); | 2463 base::RunLoop().RunUntilIdle(); |
2463 EXPECT_TRUE(views[0]->HasFrameData()); | 2464 EXPECT_TRUE(views[0]->HasFrameData()); |
2464 // Using a lesser memory pressure event however, should evict. | 2465 // Using a lesser memory pressure event however, should evict. |
2465 SimulateMemoryPressure( | 2466 SimulateMemoryPressure( |
2466 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE); | 2467 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE); |
2467 message_loop_.RunUntilIdle(); | 2468 base::RunLoop().RunUntilIdle(); |
2468 EXPECT_FALSE(views[0]->HasFrameData()); | 2469 EXPECT_FALSE(views[0]->HasFrameData()); |
2469 | 2470 |
2470 // Check the same for a higher pressure event. | 2471 // Check the same for a higher pressure event. |
2471 views[1]->Hide(); | 2472 views[1]->Hide(); |
2472 message_loop_.RunUntilIdle(); | 2473 base::RunLoop().RunUntilIdle(); |
2473 EXPECT_TRUE(views[1]->HasFrameData()); | 2474 EXPECT_TRUE(views[1]->HasFrameData()); |
2474 SimulateMemoryPressure( | 2475 SimulateMemoryPressure( |
2475 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); | 2476 base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); |
2476 message_loop_.RunUntilIdle(); | 2477 base::RunLoop().RunUntilIdle(); |
2477 EXPECT_FALSE(views[1]->HasFrameData()); | 2478 EXPECT_FALSE(views[1]->HasFrameData()); |
2478 | 2479 |
2479 for (size_t i = 0; i < renderer_count; ++i) { | 2480 for (size_t i = 0; i < renderer_count; ++i) { |
2480 views[i]->Destroy(); | 2481 views[i]->Destroy(); |
2481 delete hosts[i]; | 2482 delete hosts[i]; |
2482 } | 2483 } |
2483 } | 2484 } |
2484 | 2485 |
2485 TEST_F(RenderWidgetHostViewAuraTest, SoftwareDPIChange) { | 2486 TEST_F(RenderWidgetHostViewAuraTest, SoftwareDPIChange) { |
2486 gfx::Rect view_rect(100, 100); | 2487 gfx::Rect view_rect(100, 100); |
(...skipping 826 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3313 EXPECT_EQ(0U, sink_->message_count()); | 3314 EXPECT_EQ(0U, sink_->message_count()); |
3314 | 3315 |
3315 // Let the timer for the debounce queue fire. That should release the queued | 3316 // Let the timer for the debounce queue fire. That should release the queued |
3316 // scroll-end event. Since overscroll has started, but there hasn't been | 3317 // scroll-end event. Since overscroll has started, but there hasn't been |
3317 // enough overscroll to complete the gesture, the overscroll controller | 3318 // enough overscroll to complete the gesture, the overscroll controller |
3318 // will reset the state. The scroll-end should therefore be dispatched to the | 3319 // will reset the state. The scroll-end should therefore be dispatched to the |
3319 // renderer, and the gesture-event-filter should await an ACK for it. | 3320 // renderer, and the gesture-event-filter should await an ACK for it. |
3320 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 3321 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
3321 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 3322 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
3322 base::TimeDelta::FromMilliseconds(15)); | 3323 base::TimeDelta::FromMilliseconds(15)); |
3323 base::MessageLoop::current()->Run(); | 3324 base::RunLoop().Run(); |
3324 | 3325 |
3325 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3326 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3326 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 3327 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3327 EXPECT_EQ(1U, sink_->message_count()); | 3328 EXPECT_EQ(1U, sink_->message_count()); |
3328 } | 3329 } |
3329 | 3330 |
3330 // Tests that when touch-events are dispatched to the renderer, the overscroll | 3331 // Tests that when touch-events are dispatched to the renderer, the overscroll |
3331 // gesture deals with them correctly. | 3332 // gesture deals with them correctly. |
3332 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollWithTouchEvents) { | 3333 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollWithTouchEvents) { |
3333 SetUpOverscrollEnvironmentWithDebounce(10); | 3334 SetUpOverscrollEnvironmentWithDebounce(10); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3420 ReleaseTouchPoint(0); | 3421 ReleaseTouchPoint(0); |
3421 SendTouchEvent(); | 3422 SendTouchEvent(); |
3422 AckLastSentInputEventIfNecessary(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); | 3423 AckLastSentInputEventIfNecessary(INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
3423 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3424 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3424 | 3425 |
3425 SimulateGestureEvent(blink::WebInputEvent::GestureScrollEnd, | 3426 SimulateGestureEvent(blink::WebInputEvent::GestureScrollEnd, |
3426 blink::WebGestureDeviceTouchscreen); | 3427 blink::WebGestureDeviceTouchscreen); |
3427 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 3428 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
3428 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 3429 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
3429 base::TimeDelta::FromMilliseconds(10)); | 3430 base::TimeDelta::FromMilliseconds(10)); |
3430 base::MessageLoop::current()->Run(); | 3431 base::RunLoop().Run(); |
3431 EXPECT_EQ(1U, sink_->message_count()); | 3432 EXPECT_EQ(1U, sink_->message_count()); |
3432 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3433 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3433 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 3434 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3434 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); | 3435 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); |
3435 } | 3436 } |
3436 | 3437 |
3437 // Tests that touch-gesture end is dispatched to the renderer at the end of a | 3438 // Tests that touch-gesture end is dispatched to the renderer at the end of a |
3438 // touch-gesture initiated overscroll. | 3439 // touch-gesture initiated overscroll. |
3439 TEST_F(RenderWidgetHostViewAuraOverscrollTest, | 3440 TEST_F(RenderWidgetHostViewAuraOverscrollTest, |
3440 TouchGestureEndDispatchedAfterOverscrollComplete) { | 3441 TouchGestureEndDispatchedAfterOverscrollComplete) { |
(...skipping 25 matching lines...) Expand all Loading... |
3466 EXPECT_EQ(5.f, overscroll_delegate()->delta_x()); | 3467 EXPECT_EQ(5.f, overscroll_delegate()->delta_x()); |
3467 EXPECT_EQ(-5.f, overscroll_delegate()->delta_y()); | 3468 EXPECT_EQ(-5.f, overscroll_delegate()->delta_y()); |
3468 | 3469 |
3469 // Send end event. | 3470 // Send end event. |
3470 SimulateGestureEvent(blink::WebInputEvent::GestureScrollEnd, | 3471 SimulateGestureEvent(blink::WebInputEvent::GestureScrollEnd, |
3471 blink::WebGestureDeviceTouchscreen); | 3472 blink::WebGestureDeviceTouchscreen); |
3472 EXPECT_EQ(0U, sink_->message_count()); | 3473 EXPECT_EQ(0U, sink_->message_count()); |
3473 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 3474 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
3474 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 3475 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
3475 base::TimeDelta::FromMilliseconds(10)); | 3476 base::TimeDelta::FromMilliseconds(10)); |
3476 base::MessageLoop::current()->Run(); | 3477 base::RunLoop().Run(); |
3477 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3478 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3478 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 3479 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3479 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); | 3480 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->completed_mode()); |
3480 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3481 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3481 | 3482 |
3482 // Start scrolling. Receive ACK as it being processed. | 3483 // Start scrolling. Receive ACK as it being processed. |
3483 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, | 3484 SimulateGestureEvent(WebInputEvent::GestureScrollBegin, |
3484 blink::WebGestureDeviceTouchscreen); | 3485 blink::WebGestureDeviceTouchscreen); |
3485 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); | 3486 EXPECT_EQ(1U, GetSentMessageCountAndResetSink()); |
3486 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3487 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
(...skipping 14 matching lines...) Expand all Loading... |
3501 EXPECT_EQ(185.f, overscroll_delegate()->delta_x()); | 3502 EXPECT_EQ(185.f, overscroll_delegate()->delta_x()); |
3502 EXPECT_EQ(-5.f, overscroll_delegate()->delta_y()); | 3503 EXPECT_EQ(-5.f, overscroll_delegate()->delta_y()); |
3503 | 3504 |
3504 // Send end event. | 3505 // Send end event. |
3505 SimulateGestureEvent(blink::WebInputEvent::GestureScrollEnd, | 3506 SimulateGestureEvent(blink::WebInputEvent::GestureScrollEnd, |
3506 blink::WebGestureDeviceTouchscreen); | 3507 blink::WebGestureDeviceTouchscreen); |
3507 EXPECT_EQ(0U, sink_->message_count()); | 3508 EXPECT_EQ(0U, sink_->message_count()); |
3508 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( | 3509 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( |
3509 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), | 3510 FROM_HERE, base::MessageLoop::QuitWhenIdleClosure(), |
3510 base::TimeDelta::FromMilliseconds(10)); | 3511 base::TimeDelta::FromMilliseconds(10)); |
3511 base::MessageLoop::current()->Run(); | 3512 base::RunLoop().Run(); |
3512 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); | 3513 EXPECT_EQ(OVERSCROLL_NONE, overscroll_mode()); |
3513 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); | 3514 EXPECT_EQ(OVERSCROLL_NONE, overscroll_delegate()->current_mode()); |
3514 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); | 3515 EXPECT_EQ(OVERSCROLL_EAST, overscroll_delegate()->completed_mode()); |
3515 EXPECT_EQ(1U, sink_->message_count()); | 3516 EXPECT_EQ(1U, sink_->message_count()); |
3516 } | 3517 } |
3517 | 3518 |
3518 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollDirectionChange) { | 3519 TEST_F(RenderWidgetHostViewAuraOverscrollTest, OverscrollDirectionChange) { |
3519 SetUpOverscrollEnvironmentWithDebounce(100); | 3520 SetUpOverscrollEnvironmentWithDebounce(100); |
3520 | 3521 |
3521 // Start scrolling. Receive ACK as it being processed. | 3522 // Start scrolling. Receive ACK as it being processed. |
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4573 | 4574 |
4574 // Retrieve the selected text from clipboard and verify it is as expected. | 4575 // Retrieve the selected text from clipboard and verify it is as expected. |
4575 base::string16 result_text; | 4576 base::string16 result_text; |
4576 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); | 4577 clipboard->ReadText(ui::CLIPBOARD_TYPE_SELECTION, &result_text); |
4577 EXPECT_EQ(expected_text, result_text); | 4578 EXPECT_EQ(expected_text, result_text); |
4578 } | 4579 } |
4579 } | 4580 } |
4580 #endif | 4581 #endif |
4581 | 4582 |
4582 } // namespace content | 4583 } // namespace content |
OLD | NEW |