Commit 23e3babc authored by Liviu Tinta's avatar Liviu Tinta Committed by Commit Bot

Remove kPrecisionTouchpad, kPrecisionTouchpadScrollPhase feature flags

Bug: 1006394
Change-Id: I522b48fc93f03b295928133bc4e647b92d262c26
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2016356Reviewed-by: default avatarSadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Liviu Tinta <liviutinta@chromium.org>
Cr-Commit-Position: refs/heads/master@{#735140}
parent f70f5690
...@@ -46,9 +46,6 @@ DirectManipulationHelper::CreateInstance(HWND window, ...@@ -46,9 +46,6 @@ DirectManipulationHelper::CreateInstance(HWND window,
if (!::IsWindow(window) || !compositor || !event_target) if (!::IsWindow(window) || !compositor || !event_target)
return nullptr; return nullptr;
if (!base::FeatureList::IsEnabled(features::kPrecisionTouchpad))
return nullptr;
// DM_POINTERHITTEST supported since Win10. // DM_POINTERHITTEST supported since Win10.
if (base::win::GetVersion() < base::win::Version::WIN10) if (base::win::GetVersion() < base::win::Version::WIN10)
return nullptr; return nullptr;
...@@ -67,9 +64,6 @@ std::unique_ptr<DirectManipulationHelper> ...@@ -67,9 +64,6 @@ std::unique_ptr<DirectManipulationHelper>
DirectManipulationHelper::CreateInstanceForTesting( DirectManipulationHelper::CreateInstanceForTesting(
ui::WindowEventTarget* event_target, ui::WindowEventTarget* event_target,
Microsoft::WRL::ComPtr<IDirectManipulationViewport> viewport) { Microsoft::WRL::ComPtr<IDirectManipulationViewport> viewport) {
if (!base::FeatureList::IsEnabled(features::kPrecisionTouchpad))
return nullptr;
// DM_POINTERHITTEST supported since Win10. // DM_POINTERHITTEST supported since Win10.
if (base::win::GetVersion() < base::win::Version::WIN10) if (base::win::GetVersion() < base::win::Version::WIN10)
return nullptr; return nullptr;
......
...@@ -71,35 +71,17 @@ class DirectManipulationBrowserTestBase : public ContentBrowserTest { ...@@ -71,35 +71,17 @@ class DirectManipulationBrowserTestBase : public ContentBrowserTest {
DISALLOW_COPY_AND_ASSIGN(DirectManipulationBrowserTestBase); DISALLOW_COPY_AND_ASSIGN(DirectManipulationBrowserTestBase);
}; };
class DirectManipulationBrowserTest : public DirectManipulationBrowserTestBase, class DirectManipulationBrowserTest : public DirectManipulationBrowserTestBase {
public testing::WithParamInterface<bool> {
public: public:
DirectManipulationBrowserTest() { DirectManipulationBrowserTest() {}
if (GetParam()) {
scoped_feature_list_.InitWithFeatures(
{features::kPrecisionTouchpad,
features::kPrecisionTouchpadScrollPhase},
{});
} else {
scoped_feature_list_.InitWithFeatures(
{features::kPrecisionTouchpad},
{features::kPrecisionTouchpadScrollPhase});
}
}
private: private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(DirectManipulationBrowserTest); DISALLOW_COPY_AND_ASSIGN(DirectManipulationBrowserTest);
}; };
INSTANTIATE_TEST_SUITE_P(WithScrollEventPhase,
DirectManipulationBrowserTest,
testing::Bool());
// Ensure the AnimationObserver is only created after direct manipulation // Ensure the AnimationObserver is only created after direct manipulation
// interaction begin and destroyed after direct manipulation interaction end. // interaction begin and destroyed after direct manipulation interaction end.
IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, IN_PROC_BROWSER_TEST_F(DirectManipulationBrowserTest,
ObserverDuringInteraction) { ObserverDuringInteraction) {
if (base::win::GetVersion() < base::win::Version::WIN10) if (base::win::GetVersion() < base::win::Version::WIN10)
return; return;
...@@ -152,7 +134,7 @@ class EventLogger : public ui::EventRewriter { ...@@ -152,7 +134,7 @@ class EventLogger : public ui::EventRewriter {
}; };
// Check DirectManipulation events convert to ui::event correctly. // Check DirectManipulation events convert to ui::event correctly.
IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) { IN_PROC_BROWSER_TEST_F(DirectManipulationBrowserTest, EventConvert) {
if (base::win::GetVersion() < base::win::Version::WIN10) if (base::win::GetVersion() < base::win::Version::WIN10)
return; return;
...@@ -176,21 +158,13 @@ IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) { ...@@ -176,21 +158,13 @@ IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) {
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent(); std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
ASSERT_TRUE(event); ASSERT_TRUE(event);
if (GetParam()) { EXPECT_EQ(ui::ET_SCROLL, event->type());
EXPECT_EQ(ui::ET_SCROLL, event->type()); ui::ScrollEvent* scroll_event = event->AsScrollEvent();
ui::ScrollEvent* scroll_event = event->AsScrollEvent(); EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(1, scroll_event->x_offset()); EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(2, scroll_event->y_offset()); EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase());
EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase()); EXPECT_EQ(ui::ScrollEventPhase::kUpdate,
EXPECT_EQ(ui::ScrollEventPhase::kUpdate, scroll_event->scroll_event_phase());
scroll_event->scroll_event_phase());
} else {
EXPECT_EQ(ui::ET_MOUSEWHEEL, event->type());
ui::MouseWheelEvent* wheel_event = event->AsMouseWheelEvent();
EXPECT_EQ(1, wheel_event->x_offset());
EXPECT_EQ(2, wheel_event->y_offset());
EXPECT_TRUE(wheel_event->flags() & ui::EF_PRECISION_SCROLLING_DELTA);
}
} }
{ {
...@@ -198,98 +172,65 @@ IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) { ...@@ -198,98 +172,65 @@ IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) {
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent(); std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
ASSERT_TRUE(event); ASSERT_TRUE(event);
if (GetParam()) { EXPECT_EQ(ui::ET_SCROLL, event->type());
EXPECT_EQ(ui::ET_SCROLL, event->type()); ui::ScrollEvent* scroll_event = event->AsScrollEvent();
ui::ScrollEvent* scroll_event = event->AsScrollEvent(); EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(1, scroll_event->x_offset()); EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(2, scroll_event->y_offset()); EXPECT_EQ(ui::EventMomentumPhase::INERTIAL_UPDATE,
EXPECT_EQ(ui::EventMomentumPhase::INERTIAL_UPDATE, scroll_event->momentum_phase());
scroll_event->momentum_phase()); EXPECT_EQ(ui::ScrollEventPhase::kNone, scroll_event->scroll_event_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone,
scroll_event->scroll_event_phase());
} else {
EXPECT_EQ(ui::ET_MOUSEWHEEL, event->type());
ui::MouseWheelEvent* wheel_event = event->AsMouseWheelEvent();
EXPECT_EQ(1, wheel_event->x_offset());
EXPECT_EQ(2, wheel_event->y_offset());
EXPECT_TRUE(wheel_event->flags() & ui::EF_PRECISION_SCROLLING_DELTA);
}
} }
{ {
target->ApplyPanGestureScrollBegin(1, 2); target->ApplyPanGestureScrollBegin(1, 2);
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent(); std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) { ASSERT_TRUE(event);
ASSERT_TRUE(event); EXPECT_EQ(ui::ET_SCROLL, event->type());
EXPECT_EQ(ui::ET_SCROLL, event->type()); ui::ScrollEvent* scroll_event = event->AsScrollEvent();
ui::ScrollEvent* scroll_event = event->AsScrollEvent(); EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(1, scroll_event->x_offset()); EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(2, scroll_event->y_offset()); EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase());
EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase()); EXPECT_EQ(ui::ScrollEventPhase::kBegan, scroll_event->scroll_event_phase());
EXPECT_EQ(ui::ScrollEventPhase::kBegan,
scroll_event->scroll_event_phase());
} else {
EXPECT_EQ(ui::ET_MOUSEWHEEL, event->type());
ui::MouseWheelEvent* wheel_event = event->AsMouseWheelEvent();
EXPECT_EQ(1, wheel_event->x_offset());
EXPECT_EQ(2, wheel_event->y_offset());
EXPECT_TRUE(wheel_event->flags() & ui::EF_PRECISION_SCROLLING_DELTA);
}
} }
{ {
target->ApplyPanGestureScrollEnd(true); target->ApplyPanGestureScrollEnd(true);
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent(); std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) { ASSERT_TRUE(event);
ASSERT_TRUE(event); EXPECT_EQ(ui::ET_SCROLL, event->type());
EXPECT_EQ(ui::ET_SCROLL, event->type()); ui::ScrollEvent* scroll_event = event->AsScrollEvent();
ui::ScrollEvent* scroll_event = event->AsScrollEvent(); EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->x_offset()); EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(0, scroll_event->y_offset()); EXPECT_EQ(ui::EventMomentumPhase::BLOCKED, scroll_event->momentum_phase());
EXPECT_EQ(ui::EventMomentumPhase::BLOCKED, EXPECT_EQ(ui::ScrollEventPhase::kEnd, scroll_event->scroll_event_phase());
scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kEnd, scroll_event->scroll_event_phase());
} else {
ASSERT_FALSE(event);
}
} }
{ {
target->ApplyPanGestureFlingBegin(); target->ApplyPanGestureFlingBegin();
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent(); std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) { ASSERT_TRUE(event);
ASSERT_TRUE(event); EXPECT_EQ(ui::ET_SCROLL, event->type());
EXPECT_EQ(ui::ET_SCROLL, event->type()); ui::ScrollEvent* scroll_event = event->AsScrollEvent();
ui::ScrollEvent* scroll_event = event->AsScrollEvent(); EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->x_offset()); EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(0, scroll_event->y_offset()); EXPECT_EQ(ui::EventMomentumPhase::BEGAN, scroll_event->momentum_phase());
EXPECT_EQ(ui::EventMomentumPhase::BEGAN, scroll_event->momentum_phase()); EXPECT_EQ(ui::ScrollEventPhase::kNone, scroll_event->scroll_event_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone,
scroll_event->scroll_event_phase());
} else {
ASSERT_FALSE(event);
}
} }
{ {
target->ApplyPanGestureFlingEnd(); target->ApplyPanGestureFlingEnd();
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent(); std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) { ASSERT_TRUE(event);
ASSERT_TRUE(event); EXPECT_EQ(ui::ET_SCROLL, event->type());
EXPECT_EQ(ui::ET_SCROLL, event->type()); ui::ScrollEvent* scroll_event = event->AsScrollEvent();
ui::ScrollEvent* scroll_event = event->AsScrollEvent(); EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->x_offset()); EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(0, scroll_event->y_offset()); EXPECT_EQ(ui::EventMomentumPhase::END, scroll_event->momentum_phase());
EXPECT_EQ(ui::EventMomentumPhase::END, scroll_event->momentum_phase()); EXPECT_EQ(ui::ScrollEventPhase::kNone, scroll_event->scroll_event_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone,
scroll_event->scroll_event_phase());
} else {
ASSERT_FALSE(event);
}
} }
{ {
......
...@@ -310,8 +310,6 @@ class MockWindowEventTarget : public ui::WindowEventTarget { ...@@ -310,8 +310,6 @@ class MockWindowEventTarget : public ui::WindowEventTarget {
class DirectManipulationUnitTest : public testing::Test { class DirectManipulationUnitTest : public testing::Test {
public: public:
DirectManipulationUnitTest() { DirectManipulationUnitTest() {
scoped_feature_list_.InitAndEnableFeature(features::kPrecisionTouchpad);
viewport_ = Microsoft::WRL::Make<MockDirectManipulationViewport>(); viewport_ = Microsoft::WRL::Make<MockDirectManipulationViewport>();
content_ = Microsoft::WRL::Make<MockDirectManipulationContent>(); content_ = Microsoft::WRL::Make<MockDirectManipulationContent>();
direct_manipulation_helper_ = direct_manipulation_helper_ =
...@@ -350,7 +348,6 @@ class DirectManipulationUnitTest : public testing::Test { ...@@ -350,7 +348,6 @@ class DirectManipulationUnitTest : public testing::Test {
Microsoft::WRL::ComPtr<MockDirectManipulationViewport> viewport_; Microsoft::WRL::ComPtr<MockDirectManipulationViewport> viewport_;
Microsoft::WRL::ComPtr<MockDirectManipulationContent> content_; Microsoft::WRL::ComPtr<MockDirectManipulationContent> content_;
MockWindowEventTarget event_target_; MockWindowEventTarget event_target_;
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(DirectManipulationUnitTest); DISALLOW_COPY_AND_ASSIGN(DirectManipulationUnitTest);
}; };
......
...@@ -103,18 +103,9 @@ bool IsUsingWMPointerForTouch() { ...@@ -103,18 +103,9 @@ bool IsUsingWMPointerForTouch() {
base::FeatureList::IsEnabled(kPointerEventsForTouch); base::FeatureList::IsEnabled(kPointerEventsForTouch);
} }
// Enables DirectManipulation API for processing Precision Touchpad events.
const base::Feature kPrecisionTouchpad{"PrecisionTouchpad",
base::FEATURE_ENABLED_BY_DEFAULT};
// Enables Logging for DirectManipulation. // Enables Logging for DirectManipulation.
const base::Feature kPrecisionTouchpadLogging{ const base::Feature kPrecisionTouchpadLogging{
"PrecisionTouchpadLogging", base::FEATURE_DISABLED_BY_DEFAULT}; "PrecisionTouchpadLogging", base::FEATURE_DISABLED_BY_DEFAULT};
// Enables Swipe left/right to navigation back/forward API for processing
// Precision Touchpad events.
const base::Feature kPrecisionTouchpadScrollPhase{
"PrecisionTouchpadScrollPhase", base::FEATURE_ENABLED_BY_DEFAULT};
#endif // defined(OS_WIN) #endif // defined(OS_WIN)
#if defined(OS_WIN) || defined(OS_CHROMEOS) #if defined(OS_WIN) || defined(OS_CHROMEOS)
......
...@@ -49,11 +49,7 @@ extern const base::Feature kInputPaneOnScreenKeyboard; ...@@ -49,11 +49,7 @@ extern const base::Feature kInputPaneOnScreenKeyboard;
COMPONENT_EXPORT(UI_BASE_FEATURES) COMPONENT_EXPORT(UI_BASE_FEATURES)
extern const base::Feature kPointerEventsForTouch; extern const base::Feature kPointerEventsForTouch;
COMPONENT_EXPORT(UI_BASE_FEATURES) COMPONENT_EXPORT(UI_BASE_FEATURES)
extern const base::Feature kPrecisionTouchpad;
COMPONENT_EXPORT(UI_BASE_FEATURES)
extern const base::Feature kPrecisionTouchpadLogging; extern const base::Feature kPrecisionTouchpadLogging;
COMPONENT_EXPORT(UI_BASE_FEATURES)
extern const base::Feature kPrecisionTouchpadScrollPhase;
COMPONENT_EXPORT(UI_BASE_FEATURES) extern const base::Feature kTSFImeSupport; COMPONENT_EXPORT(UI_BASE_FEATURES) extern const base::Feature kTSFImeSupport;
// Returns true if the system should use WM_POINTER events for touch events. // Returns true if the system should use WM_POINTER events for touch events.
......
...@@ -422,9 +422,7 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate, ...@@ -422,9 +422,7 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate,
sent_window_size_changing_(false), sent_window_size_changing_(false),
left_button_down_on_caption_(false), left_button_down_on_caption_(false),
background_fullscreen_hack_(false), background_fullscreen_hack_(false),
pointer_events_for_touch_(::features::IsUsingWMPointerForTouch()), pointer_events_for_touch_(::features::IsUsingWMPointerForTouch()) {}
precision_touchpad_scroll_phase_enabled_(base::FeatureList::IsEnabled(
::features::kPrecisionTouchpadScrollPhase)) {}
HWNDMessageHandler::~HWNDMessageHandler() { HWNDMessageHandler::~HWNDMessageHandler() {
// Prevent calls back into this class via WNDPROC now that we've been // Prevent calls back into this class via WNDPROC now that we've been
...@@ -1201,17 +1199,10 @@ void HWNDMessageHandler::ApplyPanGestureEvent( ...@@ -1201,17 +1199,10 @@ void HWNDMessageHandler::ApplyPanGestureEvent(
int modifiers = ui::GetModifiersFromKeyState(); int modifiers = ui::GetModifiersFromKeyState();
if (precision_touchpad_scroll_phase_enabled_) { ui::ScrollEvent event(ui::ET_SCROLL, cursor_location, ui::EventTimeForNow(),
ui::ScrollEvent event(ui::ET_SCROLL, cursor_location, ui::EventTimeForNow(), modifiers, scroll_x, scroll_y, scroll_x, scroll_y, 2,
modifiers, scroll_x, scroll_y, scroll_x, scroll_y, 2, momentum_phase, phase);
momentum_phase, phase); delegate_->HandleScrollEvent(&event);
delegate_->HandleScrollEvent(&event);
} else {
ui::MouseWheelEvent wheel_event(
offset, cursor_location, cursor_root_location, base::TimeTicks::Now(),
modifiers | ui::EF_PRECISION_SCROLLING_DELTA, ui::EF_NONE);
delegate_->HandleMouseEvent(&wheel_event);
}
} }
void HWNDMessageHandler::ApplyPanGestureScroll(int scroll_x, int scroll_y) { void HWNDMessageHandler::ApplyPanGestureScroll(int scroll_x, int scroll_y) {
...@@ -1233,9 +1224,6 @@ void HWNDMessageHandler::ApplyPanGestureScrollBegin(int scroll_x, ...@@ -1233,9 +1224,6 @@ void HWNDMessageHandler::ApplyPanGestureScrollBegin(int scroll_x,
} }
void HWNDMessageHandler::ApplyPanGestureScrollEnd(bool transitioning_to_pinch) { void HWNDMessageHandler::ApplyPanGestureScrollEnd(bool transitioning_to_pinch) {
if (!precision_touchpad_scroll_phase_enabled_)
return;
ApplyPanGestureEvent(0, 0, ApplyPanGestureEvent(0, 0,
transitioning_to_pinch ? ui::EventMomentumPhase::BLOCKED transitioning_to_pinch ? ui::EventMomentumPhase::BLOCKED
: ui::EventMomentumPhase::NONE, : ui::EventMomentumPhase::NONE,
...@@ -1243,17 +1231,11 @@ void HWNDMessageHandler::ApplyPanGestureScrollEnd(bool transitioning_to_pinch) { ...@@ -1243,17 +1231,11 @@ void HWNDMessageHandler::ApplyPanGestureScrollEnd(bool transitioning_to_pinch) {
} }
void HWNDMessageHandler::ApplyPanGestureFlingBegin() { void HWNDMessageHandler::ApplyPanGestureFlingBegin() {
if (!precision_touchpad_scroll_phase_enabled_)
return;
ApplyPanGestureEvent(0, 0, ui::EventMomentumPhase::BEGAN, ApplyPanGestureEvent(0, 0, ui::EventMomentumPhase::BEGAN,
ui::ScrollEventPhase::kNone); ui::ScrollEventPhase::kNone);
} }
void HWNDMessageHandler::ApplyPanGestureFlingEnd() { void HWNDMessageHandler::ApplyPanGestureFlingEnd() {
if (!precision_touchpad_scroll_phase_enabled_)
return;
ApplyPanGestureEvent(0, 0, ui::EventMomentumPhase::END, ApplyPanGestureEvent(0, 0, ui::EventMomentumPhase::END,
ui::ScrollEventPhase::kNone); ui::ScrollEventPhase::kNone);
} }
......
...@@ -773,10 +773,6 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl, ...@@ -773,10 +773,6 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
// not WM_TOUCH events. // not WM_TOUCH events.
bool pointer_events_for_touch_; bool pointer_events_for_touch_;
// True if we enable feature kPrecisionTouchpadScrollPhase. Indicate we will
// report the scroll phase information or not.
bool precision_touchpad_scroll_phase_enabled_;
// True if DWM frame should be cleared on next WM_ERASEBKGND message. This is // True if DWM frame should be cleared on next WM_ERASEBKGND message. This is
// necessary to avoid white flashing in the titlebar area around the // necessary to avoid white flashing in the titlebar area around the
// minimize/maximize/close buttons. Clearing the frame on every WM_ERASEBKGND // minimize/maximize/close buttons. Clearing the frame on every WM_ERASEBKGND
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment