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

Side by Side Diff: ui/events/blink/input_handler_proxy_unittest.cc

Issue 2650943004: Revert "UMA metrics for fractions of wheel and touch scrolls blocked on the main thread." (Closed)
Patch Set: Created 3 years, 11 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
« no previous file with comments | « ui/events/blink/input_handler_proxy.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ui/events/blink/input_handler_proxy.h" 5 #include "ui/events/blink/input_handler_proxy.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 point.position = WebFloatPoint(x, y); 320 point.position = WebFloatPoint(x, y);
321 return point; 321 return point;
322 } 322 }
323 323
324 const cc::InputHandler::ScrollStatus kImplThreadScrollState( 324 const cc::InputHandler::ScrollStatus kImplThreadScrollState(
325 cc::InputHandler::SCROLL_ON_IMPL_THREAD, 325 cc::InputHandler::SCROLL_ON_IMPL_THREAD,
326 cc::MainThreadScrollingReason::kNotScrollingOnMain); 326 cc::MainThreadScrollingReason::kNotScrollingOnMain);
327 327
328 const cc::InputHandler::ScrollStatus kMainThreadScrollState( 328 const cc::InputHandler::ScrollStatus kMainThreadScrollState(
329 cc::InputHandler::SCROLL_ON_MAIN_THREAD, 329 cc::InputHandler::SCROLL_ON_MAIN_THREAD,
330 cc::MainThreadScrollingReason::kHandlingScrollFromMainThread); 330 cc::MainThreadScrollingReason::kNotScrollingOnMain);
331 331
332 const cc::InputHandler::ScrollStatus kScrollIgnoredScrollState( 332 const cc::InputHandler::ScrollStatus kScrollIgnoredScrollState(
333 cc::InputHandler::SCROLL_IGNORED, 333 cc::InputHandler::SCROLL_IGNORED,
334 cc::MainThreadScrollingReason::kNotScrollable); 334 cc::MainThreadScrollingReason::kNotScrollable);
335 335
336 class TestInputHandlerProxy : public InputHandlerProxy { 336 class TestInputHandlerProxy : public InputHandlerProxy {
337 public: 337 public:
338 TestInputHandlerProxy(cc::InputHandler* input_handler, 338 TestInputHandlerProxy(cc::InputHandler* input_handler,
339 InputHandlerProxyClient* client) 339 InputHandlerProxyClient* client)
340 : InputHandlerProxy(input_handler, client) {} 340 : InputHandlerProxy(input_handler, client) {}
(...skipping 2663 matching lines...) Expand 10 before | Expand all | Expand 10 after
3004 input_handler_->RecordMainThreadScrollingReasonsForTest( 3004 input_handler_->RecordMainThreadScrollingReasonsForTest(
3005 blink::WebGestureDeviceTouchpad, 3005 blink::WebGestureDeviceTouchpad,
3006 cc::MainThreadScrollingReason::kHandlingScrollFromMainThread); 3006 cc::MainThreadScrollingReason::kHandlingScrollFromMainThread);
3007 3007
3008 EXPECT_THAT( 3008 EXPECT_THAT(
3009 histogram_tester().GetAllSamples("Renderer4.MainThreadWheelScrollReason"), 3009 histogram_tester().GetAllSamples("Renderer4.MainThreadWheelScrollReason"),
3010 testing::ElementsAre(base::Bucket(1, 1), base::Bucket(3, 1), 3010 testing::ElementsAre(base::Bucket(1, 1), base::Bucket(3, 1),
3011 base::Bucket(5, 1), base::Bucket(14, 1))); 3011 base::Bucket(5, 1), base::Bucket(14, 1)));
3012 } 3012 }
3013 3013
3014 TEST_P(InputHandlerProxyTest, GestureScrollingThreadStatusHistograms) {
3015 VERIFY_AND_RESET_MOCKS();
3016
3017 WebTouchEvent touch_start(WebInputEvent::TouchStart,
3018 WebInputEvent::NoModifiers,
3019 WebInputEvent::TimeStampForTesting);
3020 touch_start.touchesLength = 1;
3021 touch_start.touches[0] =
3022 CreateWebTouchPoint(WebTouchPoint::StatePressed, 10, 10);
3023
3024 gesture_.setType(WebInputEvent::GestureScrollBegin);
3025 gesture_.sourceDevice = blink::WebGestureDeviceTouchscreen;
3026
3027 // Touch start with passive event listener.
3028 EXPECT_CALL(mock_input_handler_,
3029 EventListenerTypeForTouchStartAt(
3030 testing::Property(&gfx::Point::x, testing::Gt(0))))
3031 .WillOnce(testing::Return(
3032 cc::InputHandler::TouchStartEventListenerType::NO_HANDLER));
3033 EXPECT_CALL(
3034 mock_input_handler_,
3035 GetEventListenerProperties(cc::EventListenerClass::kTouchStartOrMove))
3036 .WillOnce(testing::Return(cc::EventListenerProperties::kPassive));
3037
3038 expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
3039 EXPECT_EQ(expected_disposition_,
3040 input_handler_->HandleInputEvent(touch_start));
3041
3042 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3043 .WillOnce(testing::Return(kImplThreadScrollState));
3044 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
3045 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
3046
3047 EXPECT_THAT(histogram_tester().GetAllSamples(
3048 "Renderer4.GestureScrollingThreadStatus"),
3049 testing::ElementsAre(base::Bucket(0, 1)));
3050
3051 VERIFY_AND_RESET_MOCKS();
3052
3053 // Touch event with HANDLER_ON_SCROLLING_LAYER event listener.
3054 EXPECT_CALL(mock_input_handler_,
3055 EventListenerTypeForTouchStartAt(
3056 testing::Property(&gfx::Point::x, testing::Gt(0))))
3057 .WillOnce(testing::Return(cc::InputHandler::TouchStartEventListenerType::
3058 HANDLER_ON_SCROLLING_LAYER));
3059
3060 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
3061 EXPECT_EQ(expected_disposition_,
3062 input_handler_->HandleInputEvent(touch_start));
3063
3064 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3065 .WillOnce(testing::Return(kImplThreadScrollState));
3066 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
3067 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
3068
3069 EXPECT_THAT(histogram_tester().GetAllSamples(
3070 "Renderer4.GestureScrollingThreadStatus"),
3071 testing::ElementsAre(base::Bucket(0, 1), base::Bucket(1, 1)));
3072
3073 VERIFY_AND_RESET_MOCKS();
3074
3075 // Gesture scrolling on main thread.
3076 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3077 .WillOnce(testing::Return(kMainThreadScrollState));
3078 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
3079 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
3080
3081 EXPECT_THAT(histogram_tester().GetAllSamples(
3082 "Renderer4.GestureScrollingThreadStatus"),
3083 testing::ElementsAre(base::Bucket(0, 1), base::Bucket(1, 1),
3084 base::Bucket(2, 1)));
3085
3086 VERIFY_AND_RESET_MOCKS();
3087 }
3088
3089 TEST_P(InputHandlerProxyTest, WheelScrollingThreadStatusHistograms) {
3090 VERIFY_AND_RESET_MOCKS();
3091
3092 WebMouseWheelEvent wheel(WebInputEvent::MouseWheel, WebInputEvent::ControlKey,
3093 WebInputEvent::TimeStampForTesting);
3094
3095 gesture_.setType(WebInputEvent::GestureScrollBegin);
3096 gesture_.sourceDevice = blink::WebGestureDeviceTouchpad;
3097
3098 // Wheel event with passive event listener.
3099 EXPECT_CALL(mock_input_handler_,
3100 GetEventListenerProperties(cc::EventListenerClass::kMouseWheel))
3101 .WillOnce(testing::Return(cc::EventListenerProperties::kPassive));
3102 expected_disposition_ = InputHandlerProxy::DID_HANDLE_NON_BLOCKING;
3103 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
3104
3105 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3106 .WillOnce(testing::Return(kImplThreadScrollState));
3107 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
3108 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
3109
3110 EXPECT_THAT(
3111 histogram_tester().GetAllSamples("Renderer4.WheelScrollingThreadStatus"),
3112 testing::ElementsAre(base::Bucket(0, 1)));
3113
3114 VERIFY_AND_RESET_MOCKS();
3115
3116 // Wheel event with blocking event listener.
3117 EXPECT_CALL(mock_input_handler_,
3118 GetEventListenerProperties(cc::EventListenerClass::kMouseWheel))
3119 .WillOnce(testing::Return(cc::EventListenerProperties::kBlocking));
3120 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
3121 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(wheel));
3122
3123 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3124 .WillOnce(testing::Return(kImplThreadScrollState));
3125 expected_disposition_ = InputHandlerProxy::DID_HANDLE;
3126 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
3127
3128 EXPECT_THAT(
3129 histogram_tester().GetAllSamples("Renderer4.WheelScrollingThreadStatus"),
3130 testing::ElementsAre(base::Bucket(0, 1), base::Bucket(1, 1)));
3131
3132 VERIFY_AND_RESET_MOCKS();
3133
3134 // Wheel scrolling on main thread.
3135 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3136 .WillOnce(testing::Return(kMainThreadScrollState));
3137 expected_disposition_ = InputHandlerProxy::DID_NOT_HANDLE;
3138 EXPECT_EQ(expected_disposition_, input_handler_->HandleInputEvent(gesture_));
3139
3140 EXPECT_THAT(
3141 histogram_tester().GetAllSamples("Renderer4.WheelScrollingThreadStatus"),
3142 testing::ElementsAre(base::Bucket(0, 1), base::Bucket(1, 1),
3143 base::Bucket(2, 1)));
3144
3145 VERIFY_AND_RESET_MOCKS();
3146 }
3147
3148 TEST_F(InputHandlerProxyEventQueueTest, VSyncAlignedGestureScroll) { 3014 TEST_F(InputHandlerProxyEventQueueTest, VSyncAlignedGestureScroll) {
3149 base::HistogramTester histogram_tester; 3015 base::HistogramTester histogram_tester;
3150 3016
3151 // Handle scroll on compositor. 3017 // Handle scroll on compositor.
3152 cc::InputHandlerScrollResult scroll_result_did_scroll_; 3018 cc::InputHandlerScrollResult scroll_result_did_scroll_;
3153 scroll_result_did_scroll_.did_scroll = true; 3019 scroll_result_did_scroll_.did_scroll = true;
3154 3020
3155 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_)) 3021 EXPECT_CALL(mock_input_handler_, ScrollBegin(testing::_, testing::_))
3156 .WillOnce(testing::Return(kImplThreadScrollState)); 3022 .WillOnce(testing::Return(kImplThreadScrollState));
3157 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); 3023 EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1);
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
3374 EXPECT_EQ(WebInputEvent::GesturePinchEnd, event_queue()[6]->event().type()); 3240 EXPECT_EQ(WebInputEvent::GesturePinchEnd, event_queue()[6]->event().type());
3375 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); 3241 testing::Mock::VerifyAndClearExpectations(&mock_input_handler_);
3376 } 3242 }
3377 3243
3378 INSTANTIATE_TEST_CASE_P(AnimateInput, 3244 INSTANTIATE_TEST_CASE_P(AnimateInput,
3379 InputHandlerProxyTest, 3245 InputHandlerProxyTest,
3380 testing::ValuesIn(test_types)); 3246 testing::ValuesIn(test_types));
3381 3247
3382 } // namespace test 3248 } // namespace test
3383 } // namespace ui 3249 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/blink/input_handler_proxy.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698