Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Side by Side Diff: content/browser/web_contents/web_contents_impl_unittest.cc

Issue 242733008: Prevent Control+two-finger-scroll from zooming the page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor change Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.cc ('k') | content/common/input/synthetic_web_input_event_builders.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698