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

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_aura_unittest.cc

Issue 819993002: Revert of Explicitly suppress scrolling for wheel events that will trigger zooming (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years 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
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 "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 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 private: 301 private:
302 aura::Window* owner_; 302 aura::Window* owner_;
303 DISALLOW_COPY_AND_ASSIGN(FullscreenLayoutManager); 303 DISALLOW_COPY_AND_ASSIGN(FullscreenLayoutManager);
304 }; 304 };
305 305
306 class MockWindowObserver : public aura::WindowObserver { 306 class MockWindowObserver : public aura::WindowObserver {
307 public: 307 public:
308 MOCK_METHOD2(OnDelegatedFrameDamage, void(aura::Window*, const gfx::Rect&)); 308 MOCK_METHOD2(OnDelegatedFrameDamage, void(aura::Window*, const gfx::Rect&));
309 }; 309 };
310 310
311 const WebInputEvent* GetInputEventFromMessage(const IPC::Message& message) {
312 PickleIterator iter(message);
313 const char* data;
314 int data_length;
315 if (!iter.ReadData(&data, &data_length))
316 return NULL;
317 return reinterpret_cast<const WebInputEvent*>(data);
318 }
319
320 } // namespace 311 } // namespace
321 312
322 class RenderWidgetHostViewAuraTest : public testing::Test { 313 class RenderWidgetHostViewAuraTest : public testing::Test {
323 public: 314 public:
324 RenderWidgetHostViewAuraTest() 315 RenderWidgetHostViewAuraTest()
325 : widget_host_uses_shutdown_to_destroy_(false), 316 : widget_host_uses_shutdown_to_destroy_(false),
326 is_guest_view_hack_(false), 317 is_guest_view_hack_(false),
327 browser_thread_for_ui_(BrowserThread::UI, &message_loop_) {} 318 browser_thread_for_ui_(BrowserThread::UI, &message_loop_) {}
328 319
329 void SetUpEnvironment() { 320 void SetUpEnvironment() {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 // Here should be base::MemoryPressureListener::NotifyMemoryPressure, but 381 // Here should be base::MemoryPressureListener::NotifyMemoryPressure, but
391 // since the RendererFrameManager is installing a MemoryPressureListener 382 // since the RendererFrameManager is installing a MemoryPressureListener
392 // which uses ObserverListThreadSafe, which furthermore remembers the 383 // which uses ObserverListThreadSafe, which furthermore remembers the
393 // message loop for the thread it was created in. Between tests, the 384 // message loop for the thread it was created in. Between tests, the
394 // RendererFrameManager singleton survives and and the MessageLoop gets 385 // RendererFrameManager singleton survives and and the MessageLoop gets
395 // destroyed. The correct fix would be to have ObserverListThreadSafe look 386 // destroyed. The correct fix would be to have ObserverListThreadSafe look
396 // up the proper message loop every time (see crbug.com/443824.) 387 // up the proper message loop every time (see crbug.com/443824.)
397 RendererFrameManager::GetInstance()->OnMemoryPressure(level); 388 RendererFrameManager::GetInstance()->OnMemoryPressure(level);
398 } 389 }
399 390
400 void SendInputEventACK(WebInputEvent::Type type,
401 InputEventAckState ack_result) {
402 InputHostMsg_HandleInputEvent_ACK_Params ack;
403 ack.type = type;
404 ack.state = ack_result;
405 InputHostMsg_HandleInputEvent_ACK response(0, ack);
406 widget_host_->OnMessageReceived(response);
407 }
408
409 protected: 391 protected:
410 // If true, then calls RWH::Shutdown() instead of deleting RWH. 392 // If true, then calls RWH::Shutdown() instead of deleting RWH.
411 bool widget_host_uses_shutdown_to_destroy_; 393 bool widget_host_uses_shutdown_to_destroy_;
412 394
413 bool is_guest_view_hack_; 395 bool is_guest_view_hack_;
414 396
415 base::MessageLoopForUI message_loop_; 397 base::MessageLoopForUI message_loop_;
416 BrowserThreadImpl browser_thread_for_ui_; 398 BrowserThreadImpl browser_thread_for_ui_;
417 scoped_ptr<aura::test::AuraTestHelper> aura_test_helper_; 399 scoped_ptr<aura::test::AuraTestHelper> aura_test_helper_;
418 scoped_ptr<BrowserContext> browser_context_; 400 scoped_ptr<BrowserContext> browser_context_;
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 } 573 }
592 574
593 // Inject synthetic GestureFlingStart events. 575 // Inject synthetic GestureFlingStart events.
594 void SimulateGestureFlingStartEvent(float velocityX, 576 void SimulateGestureFlingStartEvent(float velocityX,
595 float velocityY, 577 float velocityY,
596 blink::WebGestureDevice sourceDevice) { 578 blink::WebGestureDevice sourceDevice) {
597 SimulateGestureEventCore(SyntheticWebGestureEventBuilder::BuildFling( 579 SimulateGestureEventCore(SyntheticWebGestureEventBuilder::BuildFling(
598 velocityX, velocityY, sourceDevice)); 580 velocityX, velocityY, sourceDevice));
599 } 581 }
600 582
583 void SendInputEventACK(WebInputEvent::Type type,
584 InputEventAckState ack_result) {
585 InputHostMsg_HandleInputEvent_ACK_Params ack;
586 ack.type = type;
587 ack.state = ack_result;
588 InputHostMsg_HandleInputEvent_ACK response(0, ack);
589 widget_host_->OnMessageReceived(response);
590 }
591
601 bool ScrollStateIsContentScrolling() const { 592 bool ScrollStateIsContentScrolling() const {
602 return scroll_state() == OverscrollController::STATE_CONTENT_SCROLLING; 593 return scroll_state() == OverscrollController::STATE_CONTENT_SCROLLING;
603 } 594 }
604 595
605 bool ScrollStateIsOverscrolling() const { 596 bool ScrollStateIsOverscrolling() const {
606 return scroll_state() == OverscrollController::STATE_OVERSCROLLING; 597 return scroll_state() == OverscrollController::STATE_OVERSCROLLING;
607 } 598 }
608 599
609 bool ScrollStateIsUnknown() const { 600 bool ScrollStateIsUnknown() const {
610 return scroll_state() == OverscrollController::STATE_UNKNOWN; 601 return scroll_state() == OverscrollController::STATE_UNKNOWN;
(...skipping 2462 matching lines...) Expand 10 before | Expand all | Expand 10 after
3073 3064
3074 const NativeWebKeyboardEvent* event = delegate_.last_event(); 3065 const NativeWebKeyboardEvent* event = delegate_.last_event();
3075 EXPECT_NE(nullptr, event); 3066 EXPECT_NE(nullptr, event);
3076 if (event) { 3067 if (event) {
3077 EXPECT_EQ(key_event.key_code(), event->windowsKeyCode); 3068 EXPECT_EQ(key_event.key_code(), event->windowsKeyCode);
3078 EXPECT_EQ(ui::KeycodeConverter::DomCodeToNativeKeycode(key_event.code()), 3069 EXPECT_EQ(ui::KeycodeConverter::DomCodeToNativeKeycode(key_event.code()),
3079 event->nativeKeyCode); 3070 event->nativeKeyCode);
3080 } 3071 }
3081 } 3072 }
3082 3073
3083 TEST_F(RenderWidgetHostViewAuraTest, SetCanScrollForWebMouseWheelEvent) {
3084 view_->InitAsChild(NULL);
3085 view_->Show();
3086
3087 sink_->ClearMessages();
3088
3089 // Simulates the mouse wheel event with ctrl modifier applied.
3090 ui::MouseWheelEvent event(gfx::Vector2d(1, 1),
3091 gfx::Point(), gfx::Point(),
3092 ui::EF_CONTROL_DOWN, 0);
3093 view_->OnMouseEvent(&event);
3094
3095 const WebInputEvent* input_event =
3096 GetInputEventFromMessage(*sink_->GetMessageAt(0));
3097 const WebMouseWheelEvent* wheel_event =
3098 static_cast<const WebMouseWheelEvent*>(input_event);
3099 // Check if the canScroll set to false when ctrl-scroll is generated from
3100 // mouse wheel event.
3101 EXPECT_FALSE(wheel_event->canScroll);
3102 sink_->ClearMessages();
3103
3104 // Ack'ing the outstanding event should flush the pending event queue.
3105 SendInputEventACK(blink::WebInputEvent::MouseWheel,
3106 INPUT_EVENT_ACK_STATE_CONSUMED);
3107
3108 // Simulates the mouse wheel event with no modifier applied.
3109 event = ui::MouseWheelEvent(gfx::Vector2d(1, 1), gfx::Point(), gfx::Point(),
3110 ui::EF_NONE, 0);
3111
3112 view_->OnMouseEvent(&event);
3113
3114 input_event = GetInputEventFromMessage(*sink_->GetMessageAt(0));
3115 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event);
3116 // Check if the canScroll set to true when no modifier is applied to the
3117 // mouse wheel event.
3118 EXPECT_TRUE(wheel_event->canScroll);
3119 sink_->ClearMessages();
3120
3121 SendInputEventACK(blink::WebInputEvent::MouseWheel,
3122 INPUT_EVENT_ACK_STATE_CONSUMED);
3123
3124 // Simulates the scroll event with ctrl modifier applied.
3125 ui::ScrollEvent scroll(ui::ET_SCROLL, gfx::Point(2, 2), ui::EventTimeForNow(),
3126 ui::EF_CONTROL_DOWN, 0, 5, 0, 5, 2);
3127 view_->OnScrollEvent(&scroll);
3128
3129 input_event = GetInputEventFromMessage(*sink_->GetMessageAt(0));
3130 wheel_event = static_cast<const WebMouseWheelEvent*>(input_event);
3131 // Check if the canScroll set to true when ctrl-touchpad-scroll is generated
3132 // from scroll event.
3133 EXPECT_TRUE(wheel_event->canScroll);
3134 }
3135
3136 } // namespace content 3074 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698