| Index: ui/events/blink/input_handler_proxy_unittest.cc
|
| diff --git a/ui/events/blink/input_handler_proxy_unittest.cc b/ui/events/blink/input_handler_proxy_unittest.cc
|
| index 6723a319952fa596f730a66cd20f0323523f6253..6ea2548eaba01440eac6f4efb8c18de82a5f1a64 100644
|
| --- a/ui/events/blink/input_handler_proxy_unittest.cc
|
| +++ b/ui/events/blink/input_handler_proxy_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "base/macros.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/test/histogram_tester.h"
|
| #include "cc/input/main_thread_scrolling_reason.h"
|
| #include "cc/trees/swap_promise_monitor.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| @@ -257,6 +258,17 @@ const cc::InputHandler::ScrollStatus kScrollIgnoredScrollState(
|
| cc::InputHandler::SCROLL_IGNORED,
|
| cc::MainThreadScrollingReason::kNotScrollable);
|
|
|
| +class TestInputHandlerProxy : public InputHandlerProxy {
|
| + public:
|
| + TestInputHandlerProxy(cc::InputHandler* input_handler,
|
| + InputHandlerProxyClient* client)
|
| + : InputHandlerProxy(input_handler, client) {}
|
| + void RecordMainThreadScrollingReasonsForTest(blink::WebInputEvent::Type type,
|
| + uint32_t reasons) {
|
| + RecordMainThreadScrollingReasons(type, reasons);
|
| + }
|
| +};
|
| +
|
| } // namespace
|
|
|
| class InputHandlerProxyTest
|
| @@ -270,7 +282,7 @@ class InputHandlerProxyTest
|
| GetParam() == CHILD_SCROLL_SYNCHRONOUS_HANDLER),
|
| expected_disposition_(InputHandlerProxy::DID_HANDLE) {
|
| input_handler_.reset(
|
| - new ui::InputHandlerProxy(
|
| + new TestInputHandlerProxy(
|
| &mock_input_handler_, &mock_client_));
|
| scroll_result_did_scroll_.did_scroll = true;
|
| scroll_result_did_not_scroll_.did_scroll = false;
|
| @@ -379,7 +391,7 @@ class InputHandlerProxyTest
|
| testing::StrictMock<MockInputHandler> mock_input_handler_;
|
| testing::StrictMock<MockSynchronousInputHandler>
|
| mock_synchronous_input_handler_;
|
| - scoped_ptr<ui::InputHandlerProxy> input_handler_;
|
| + scoped_ptr<TestInputHandlerProxy> input_handler_;
|
| testing::StrictMock<MockInputHandlerProxyClient> mock_client_;
|
| WebGestureEvent gesture_;
|
| InputHandlerProxy::EventDisposition expected_disposition_;
|
| @@ -2689,7 +2701,7 @@ TEST_P(InputHandlerProxyTest, DidReceiveInputEvent_ForFling) {
|
| testing::StrictMock<MockInputHandlerProxyClientWithDidAnimateForInput>
|
| mock_client;
|
| input_handler_.reset(
|
| - new ui::InputHandlerProxy(
|
| + new TestInputHandlerProxy(
|
| &mock_input_handler_, &mock_client));
|
| if (install_synchronous_handler_) {
|
| EXPECT_CALL(mock_input_handler_, RequestUpdateForSynchronousInputHandler())
|
| @@ -2788,6 +2800,22 @@ TEST(SynchronousInputHandlerProxyTest, SetOffset) {
|
| testing::Mock::VerifyAndClearExpectations(&mock_synchronous_input_handler);
|
| }
|
|
|
| +TEST_P(InputHandlerProxyTest, MainThreadScrollingMouseWheelHistograms) {
|
| + base::HistogramTester histogram_tester;
|
| + input_handler_->RecordMainThreadScrollingReasonsForTest(
|
| + WebInputEvent::MouseWheel,
|
| + cc::MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects |
|
| + cc::MainThreadScrollingReason::kThreadedScrollingDisabled |
|
| + cc::MainThreadScrollingReason::kPageOverlay |
|
| + cc::MainThreadScrollingReason::kAnimatingScrollOnMainThread);
|
| +
|
| + EXPECT_THAT(
|
| + histogram_tester.GetAllSamples("Renderer4.MainThreadWheelScrollReason"),
|
| + testing::ElementsAre(base::Bucket(1, 1), base::Bucket(3, 1),
|
| + base::Bucket(5, 1), base::Bucket(14, 1)));
|
| +}
|
| +
|
| +
|
| INSTANTIATE_TEST_CASE_P(AnimateInput,
|
| InputHandlerProxyTest,
|
| testing::ValuesIn(test_types));
|
|
|