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,
if (!::IsWindow(window) || !compositor || !event_target)
return nullptr;
if (!base::FeatureList::IsEnabled(features::kPrecisionTouchpad))
return nullptr;
// DM_POINTERHITTEST supported since Win10.
if (base::win::GetVersion() < base::win::Version::WIN10)
return nullptr;
......@@ -67,9 +64,6 @@ std::unique_ptr<DirectManipulationHelper>
DirectManipulationHelper::CreateInstanceForTesting(
ui::WindowEventTarget* event_target,
Microsoft::WRL::ComPtr<IDirectManipulationViewport> viewport) {
if (!base::FeatureList::IsEnabled(features::kPrecisionTouchpad))
return nullptr;
// DM_POINTERHITTEST supported since Win10.
if (base::win::GetVersion() < base::win::Version::WIN10)
return nullptr;
......
......@@ -71,35 +71,17 @@ class DirectManipulationBrowserTestBase : public ContentBrowserTest {
DISALLOW_COPY_AND_ASSIGN(DirectManipulationBrowserTestBase);
};
class DirectManipulationBrowserTest : public DirectManipulationBrowserTestBase,
public testing::WithParamInterface<bool> {
class DirectManipulationBrowserTest : public DirectManipulationBrowserTestBase {
public:
DirectManipulationBrowserTest() {
if (GetParam()) {
scoped_feature_list_.InitWithFeatures(
{features::kPrecisionTouchpad,
features::kPrecisionTouchpadScrollPhase},
{});
} else {
scoped_feature_list_.InitWithFeatures(
{features::kPrecisionTouchpad},
{features::kPrecisionTouchpadScrollPhase});
}
}
DirectManipulationBrowserTest() {}
private:
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(DirectManipulationBrowserTest);
};
INSTANTIATE_TEST_SUITE_P(WithScrollEventPhase,
DirectManipulationBrowserTest,
testing::Bool());
// Ensure the AnimationObserver is only created after direct manipulation
// interaction begin and destroyed after direct manipulation interaction end.
IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest,
IN_PROC_BROWSER_TEST_F(DirectManipulationBrowserTest,
ObserverDuringInteraction) {
if (base::win::GetVersion() < base::win::Version::WIN10)
return;
......@@ -152,7 +134,7 @@ class EventLogger : public ui::EventRewriter {
};
// 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)
return;
......@@ -176,21 +158,13 @@ IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) {
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
ASSERT_TRUE(event);
if (GetParam()) {
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kUpdate,
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);
}
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kUpdate,
scroll_event->scroll_event_phase());
}
{
......@@ -198,98 +172,65 @@ IN_PROC_BROWSER_TEST_P(DirectManipulationBrowserTest, EventConvert) {
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
ASSERT_TRUE(event);
if (GetParam()) {
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::INERTIAL_UPDATE,
scroll_event->momentum_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);
}
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::INERTIAL_UPDATE,
scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone, scroll_event->scroll_event_phase());
}
{
target->ApplyPanGestureScrollBegin(1, 2);
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) {
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_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);
}
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(1, scroll_event->x_offset());
EXPECT_EQ(2, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::NONE, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kBegan, scroll_event->scroll_event_phase());
}
{
target->ApplyPanGestureScrollEnd(true);
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) {
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::BLOCKED,
scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kEnd, scroll_event->scroll_event_phase());
} else {
ASSERT_FALSE(event);
}
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::BLOCKED, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kEnd, scroll_event->scroll_event_phase());
}
{
target->ApplyPanGestureFlingBegin();
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) {
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::BEGAN, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone,
scroll_event->scroll_event_phase());
} else {
ASSERT_FALSE(event);
}
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::BEGAN, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone, scroll_event->scroll_event_phase());
}
{
target->ApplyPanGestureFlingEnd();
std::unique_ptr<ui::Event> event = event_logger.ReleaseLastEvent();
if (GetParam()) {
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::END, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone,
scroll_event->scroll_event_phase());
} else {
ASSERT_FALSE(event);
}
ASSERT_TRUE(event);
EXPECT_EQ(ui::ET_SCROLL, event->type());
ui::ScrollEvent* scroll_event = event->AsScrollEvent();
EXPECT_EQ(0, scroll_event->x_offset());
EXPECT_EQ(0, scroll_event->y_offset());
EXPECT_EQ(ui::EventMomentumPhase::END, scroll_event->momentum_phase());
EXPECT_EQ(ui::ScrollEventPhase::kNone, scroll_event->scroll_event_phase());
}
{
......
......@@ -310,8 +310,6 @@ class MockWindowEventTarget : public ui::WindowEventTarget {
class DirectManipulationUnitTest : public testing::Test {
public:
DirectManipulationUnitTest() {
scoped_feature_list_.InitAndEnableFeature(features::kPrecisionTouchpad);
viewport_ = Microsoft::WRL::Make<MockDirectManipulationViewport>();
content_ = Microsoft::WRL::Make<MockDirectManipulationContent>();
direct_manipulation_helper_ =
......@@ -350,7 +348,6 @@ class DirectManipulationUnitTest : public testing::Test {
Microsoft::WRL::ComPtr<MockDirectManipulationViewport> viewport_;
Microsoft::WRL::ComPtr<MockDirectManipulationContent> content_;
MockWindowEventTarget event_target_;
base::test::ScopedFeatureList scoped_feature_list_;
DISALLOW_COPY_AND_ASSIGN(DirectManipulationUnitTest);
};
......
......@@ -103,18 +103,9 @@ bool IsUsingWMPointerForTouch() {
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.
const base::Feature kPrecisionTouchpadLogging{
"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)
#if defined(OS_WIN) || defined(OS_CHROMEOS)
......
......@@ -49,11 +49,7 @@ extern const base::Feature kInputPaneOnScreenKeyboard;
COMPONENT_EXPORT(UI_BASE_FEATURES)
extern const base::Feature kPointerEventsForTouch;
COMPONENT_EXPORT(UI_BASE_FEATURES)
extern const base::Feature kPrecisionTouchpad;
COMPONENT_EXPORT(UI_BASE_FEATURES)
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;
// Returns true if the system should use WM_POINTER events for touch events.
......
......@@ -422,9 +422,7 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate,
sent_window_size_changing_(false),
left_button_down_on_caption_(false),
background_fullscreen_hack_(false),
pointer_events_for_touch_(::features::IsUsingWMPointerForTouch()),
precision_touchpad_scroll_phase_enabled_(base::FeatureList::IsEnabled(
::features::kPrecisionTouchpadScrollPhase)) {}
pointer_events_for_touch_(::features::IsUsingWMPointerForTouch()) {}
HWNDMessageHandler::~HWNDMessageHandler() {
// Prevent calls back into this class via WNDPROC now that we've been
......@@ -1201,17 +1199,10 @@ void HWNDMessageHandler::ApplyPanGestureEvent(
int modifiers = ui::GetModifiersFromKeyState();
if (precision_touchpad_scroll_phase_enabled_) {
ui::ScrollEvent event(ui::ET_SCROLL, cursor_location, ui::EventTimeForNow(),
modifiers, scroll_x, scroll_y, scroll_x, scroll_y, 2,
momentum_phase, phase);
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);
}
ui::ScrollEvent event(ui::ET_SCROLL, cursor_location, ui::EventTimeForNow(),
modifiers, scroll_x, scroll_y, scroll_x, scroll_y, 2,
momentum_phase, phase);
delegate_->HandleScrollEvent(&event);
}
void HWNDMessageHandler::ApplyPanGestureScroll(int scroll_x, int scroll_y) {
......@@ -1233,9 +1224,6 @@ void HWNDMessageHandler::ApplyPanGestureScrollBegin(int scroll_x,
}
void HWNDMessageHandler::ApplyPanGestureScrollEnd(bool transitioning_to_pinch) {
if (!precision_touchpad_scroll_phase_enabled_)
return;
ApplyPanGestureEvent(0, 0,
transitioning_to_pinch ? ui::EventMomentumPhase::BLOCKED
: ui::EventMomentumPhase::NONE,
......@@ -1243,17 +1231,11 @@ void HWNDMessageHandler::ApplyPanGestureScrollEnd(bool transitioning_to_pinch) {
}
void HWNDMessageHandler::ApplyPanGestureFlingBegin() {
if (!precision_touchpad_scroll_phase_enabled_)
return;
ApplyPanGestureEvent(0, 0, ui::EventMomentumPhase::BEGAN,
ui::ScrollEventPhase::kNone);
}
void HWNDMessageHandler::ApplyPanGestureFlingEnd() {
if (!precision_touchpad_scroll_phase_enabled_)
return;
ApplyPanGestureEvent(0, 0, ui::EventMomentumPhase::END,
ui::ScrollEventPhase::kNone);
}
......
......@@ -773,10 +773,6 @@ class VIEWS_EXPORT HWNDMessageHandler : public gfx::WindowImpl,
// not WM_TOUCH events.
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
// necessary to avoid white flashing in the titlebar area around the
// 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