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 "base/logging.h" | 5 #include "base/logging.h" |
| 6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
| 7 #include "content/browser/frame_host/cross_site_transferring_request.h" | 7 #include "content/browser/frame_host/cross_site_transferring_request.h" |
| 8 #include "content/browser/frame_host/interstitial_page_impl.h" | 8 #include "content/browser/frame_host/interstitial_page_impl.h" |
| 9 #include "content/browser/frame_host/navigation_entry_impl.h" | 9 #include "content/browser/frame_host/navigation_entry_impl.h" |
| 10 #include "content/browser/renderer_host/render_view_host_impl.h" | 10 #include "content/browser/renderer_host/render_view_host_impl.h" |
| (...skipping 2412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2423 | 2423 |
| 2424 // Tests that some mouseehweel events get turned into browser zoom requests. | 2424 // Tests that some mouseehweel events get turned into browser zoom requests. |
| 2425 TEST_F(WebContentsImplTest, HandleWheelEvent) { | 2425 TEST_F(WebContentsImplTest, HandleWheelEvent) { |
| 2426 using blink::WebInputEvent; | 2426 using blink::WebInputEvent; |
| 2427 | 2427 |
| 2428 scoped_ptr<ContentsZoomChangedDelegate> delegate( | 2428 scoped_ptr<ContentsZoomChangedDelegate> delegate( |
| 2429 new ContentsZoomChangedDelegate()); | 2429 new ContentsZoomChangedDelegate()); |
| 2430 contents()->SetDelegate(delegate.get()); | 2430 contents()->SetDelegate(delegate.get()); |
| 2431 | 2431 |
| 2432 int modifiers = 0; | 2432 int modifiers = 0; |
| 2433 float dy = 1; | |
|
Daniel Erat
2014/04/22 17:40:12
deleted this since i didn't see much point for it
| |
| 2434 // Verify that normal mouse wheel events do nothing to change the zoom level. | 2433 // Verify that normal mouse wheel events do nothing to change the zoom level. |
| 2435 blink::WebMouseWheelEvent event = | 2434 blink::WebMouseWheelEvent event = |
| 2436 SyntheticWebMouseWheelEventBuilder::Build(0, dy, modifiers, false); | 2435 SyntheticWebMouseWheelEventBuilder::Build(0, 1, modifiers, false); |
| 2437 EXPECT_FALSE(contents()->HandleWheelEvent(event)); | 2436 EXPECT_FALSE(contents()->HandleWheelEvent(event)); |
| 2438 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | 2437 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2439 | 2438 |
| 2440 modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; | 2439 modifiers = WebInputEvent::ShiftKey | WebInputEvent::AltKey; |
| 2441 event = SyntheticWebMouseWheelEventBuilder::Build(0, dy, modifiers, false); | 2440 event = SyntheticWebMouseWheelEventBuilder::Build(0, 1, modifiers, false); |
| 2442 EXPECT_FALSE(contents()->HandleWheelEvent(event)); | 2441 EXPECT_FALSE(contents()->HandleWheelEvent(event)); |
| 2443 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | 2442 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2444 | 2443 |
| 2445 // But whenever the ctrl modifier is applied, they can increase/decrease zoom. | 2444 // But whenever the ctrl modifier is applied, they can increase/decrease zoom. |
| 2446 // Except on MacOS where we never want to adjust zoom with mousewheel. | 2445 // Except on MacOS where we never want to adjust zoom with mousewheel. |
| 2447 modifiers = WebInputEvent::ControlKey; | 2446 modifiers = WebInputEvent::ControlKey; |
| 2448 event = SyntheticWebMouseWheelEventBuilder::Build(0, dy, modifiers, false); | 2447 event = SyntheticWebMouseWheelEventBuilder::Build(0, 1, modifiers, false); |
| 2449 bool handled = contents()->HandleWheelEvent(event); | 2448 bool handled = contents()->HandleWheelEvent(event); |
| 2450 #if defined(OS_MACOSX) | 2449 #if defined(OS_MACOSX) |
| 2451 EXPECT_FALSE(handled); | 2450 EXPECT_FALSE(handled); |
| 2452 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | 2451 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2453 #else | 2452 #else |
| 2454 EXPECT_TRUE(handled); | 2453 EXPECT_TRUE(handled); |
| 2455 EXPECT_EQ(1, delegate->GetAndResetContentsZoomChangedCallCount()); | 2454 EXPECT_EQ(1, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2456 EXPECT_TRUE(delegate->last_zoom_in()); | 2455 EXPECT_TRUE(delegate->last_zoom_in()); |
| 2457 #endif | 2456 #endif |
| 2458 | 2457 |
| 2459 modifiers = WebInputEvent::ControlKey | WebInputEvent::ShiftKey | | 2458 modifiers = WebInputEvent::ControlKey | WebInputEvent::ShiftKey | |
| 2460 WebInputEvent::AltKey; | 2459 WebInputEvent::AltKey; |
| 2461 dy = -5; | 2460 event = SyntheticWebMouseWheelEventBuilder::Build(2, -5, modifiers, false); |
| 2462 event = SyntheticWebMouseWheelEventBuilder::Build(2, dy, modifiers, false); | |
| 2463 handled = contents()->HandleWheelEvent(event); | 2461 handled = contents()->HandleWheelEvent(event); |
| 2464 #if defined(OS_MACOSX) | 2462 #if defined(OS_MACOSX) |
| 2465 EXPECT_FALSE(handled); | 2463 EXPECT_FALSE(handled); |
| 2466 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | 2464 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2467 #else | 2465 #else |
| 2468 EXPECT_TRUE(handled); | 2466 EXPECT_TRUE(handled); |
| 2469 EXPECT_EQ(1, delegate->GetAndResetContentsZoomChangedCallCount()); | 2467 EXPECT_EQ(1, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2470 EXPECT_FALSE(delegate->last_zoom_in()); | 2468 EXPECT_FALSE(delegate->last_zoom_in()); |
| 2471 #endif | 2469 #endif |
| 2472 | 2470 |
| 2473 // Unless there is no vertical movement. | 2471 // Unless there is no vertical movement. |
| 2474 dy = 0; | 2472 event = SyntheticWebMouseWheelEventBuilder::Build(2, 0, modifiers, false); |
| 2475 event = SyntheticWebMouseWheelEventBuilder::Build(2, dy, modifiers, false); | |
| 2476 EXPECT_FALSE(contents()->HandleWheelEvent(event)); | 2473 EXPECT_FALSE(contents()->HandleWheelEvent(event)); |
| 2477 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | 2474 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2478 | 2475 |
| 2479 // Ensure pointers to the delegate aren't kept beyond it's lifetime. | 2476 // Events containing precise scrolling deltas also shouldn't result in the |
| 2477 // zoom being adjusted, to avoid accidental adjustments caused by | |
| 2478 // two-finger-scrolling on a touchpad. | |
| 2479 modifiers = WebInputEvent::ControlKey; | |
| 2480 event = SyntheticWebMouseWheelEventBuilder::Build(0, 5, modifiers, true); | |
| 2481 EXPECT_FALSE(contents()->HandleWheelEvent(event)); | |
| 2482 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | |
| 2483 | |
| 2484 // Ensure pointers to the delegate aren't kept beyond its lifetime. | |
| 2480 contents()->SetDelegate(NULL); | 2485 contents()->SetDelegate(NULL); |
| 2481 } | 2486 } |
| 2482 | 2487 |
| 2483 // Tests that trackpad GesturePinchUpdate events get turned into browser zoom. | 2488 // Tests that trackpad GesturePinchUpdate events get turned into browser zoom. |
| 2484 TEST_F(WebContentsImplTest, HandleGestureEvent) { | 2489 TEST_F(WebContentsImplTest, HandleGestureEvent) { |
| 2485 using blink::WebGestureEvent; | 2490 using blink::WebGestureEvent; |
| 2486 using blink::WebInputEvent; | 2491 using blink::WebInputEvent; |
| 2487 | 2492 |
| 2488 scoped_ptr<ContentsZoomChangedDelegate> delegate( | 2493 scoped_ptr<ContentsZoomChangedDelegate> delegate( |
| 2489 new ContentsZoomChangedDelegate()); | 2494 new ContentsZoomChangedDelegate()); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2524 WebInputEvent::GesturePinchUpdate, WebGestureEvent::Touchscreen); | 2529 WebInputEvent::GesturePinchUpdate, WebGestureEvent::Touchscreen); |
| 2525 event.data.pinchUpdate.scale = kZoomStepValue * 3; | 2530 event.data.pinchUpdate.scale = kZoomStepValue * 3; |
| 2526 EXPECT_FALSE(contents()->HandleGestureEvent(event)); | 2531 EXPECT_FALSE(contents()->HandleGestureEvent(event)); |
| 2527 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); | 2532 EXPECT_EQ(0, delegate->GetAndResetContentsZoomChangedCallCount()); |
| 2528 | 2533 |
| 2529 // Ensure pointers to the delegate aren't kept beyond it's lifetime. | 2534 // Ensure pointers to the delegate aren't kept beyond it's lifetime. |
| 2530 contents()->SetDelegate(NULL); | 2535 contents()->SetDelegate(NULL); |
| 2531 } | 2536 } |
| 2532 | 2537 |
| 2533 } // namespace content | 2538 } // namespace content |
| OLD | NEW |