Commit 3358b413 authored by Ella Ge's avatar Ella Ge Committed by Commit Bot

Add flags for blink-side movementX/Y calculation

This CL renames the movementX/Y blink flag to kConsolidatedMovementXY,
and also adds a content flag to control the blink flag.
The content feature flag is going to be used in the following CL to guard
the moving movementX/Y calculation to blink in locked states.

Bug: 802067
Change-Id: I0de3dd6a23ac8d2615981e9c1c4a2f2458a31cfa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1618305
Commit-Queue: Ella Ge <eirage@chromium.org>
Reviewed-by: default avatarNavid Zolghadr <nzolghadr@chromium.org>
Reviewed-by: default avatarNico Weber <thakis@chromium.org>
Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Reviewed-by: default avatarMustaq Ahmed <mustaq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#669005}
parent 41fa4c10
...@@ -533,6 +533,9 @@ void SetIndividualRuntimeFeatures( ...@@ -533,6 +533,9 @@ void SetIndividualRuntimeFeatures(
features::kPauseExecutionContextOnBackgroundFreeze)) { features::kPauseExecutionContextOnBackgroundFreeze)) {
WebRuntimeFeatures::EnablePauseExecutionContextOnBackgroundFreeze(false); WebRuntimeFeatures::EnablePauseExecutionContextOnBackgroundFreeze(false);
} }
WebRuntimeFeatures::EnableConsolidatedMovementXY(
base::FeatureList::IsEnabled(features::kConsolidatedMovementXY));
} }
} // namespace } // namespace
......
...@@ -129,6 +129,10 @@ const base::Feature kCompositeOpaqueFixedPosition{ ...@@ -129,6 +129,10 @@ const base::Feature kCompositeOpaqueFixedPosition{
const base::Feature kCompositeOpaqueScrollers{"CompositeOpaqueScrollers", const base::Feature kCompositeOpaqueScrollers{"CompositeOpaqueScrollers",
base::FEATURE_ENABLED_BY_DEFAULT}; base::FEATURE_ENABLED_BY_DEFAULT};
// When enabled, event.movement is calculated in blink instead of in browser.
const base::Feature kConsolidatedMovementXY{"ConsolidatedMovementXY",
base::FEATURE_DISABLED_BY_DEFAULT};
// Show messages in the DevTools console about upcoming deprecations // Show messages in the DevTools console about upcoming deprecations
// that would affect sent/received cookies. // that would affect sent/received cookies.
const base::Feature kCookieDeprecationMessages{ const base::Feature kCookieDeprecationMessages{
......
...@@ -37,6 +37,7 @@ CONTENT_EXPORT extern const base::Feature kCacheInlineScriptCode; ...@@ -37,6 +37,7 @@ CONTENT_EXPORT extern const base::Feature kCacheInlineScriptCode;
CONTENT_EXPORT extern const base::Feature kCanvas2DImageChromium; CONTENT_EXPORT extern const base::Feature kCanvas2DImageChromium;
CONTENT_EXPORT extern const base::Feature kCompositeOpaqueFixedPosition; CONTENT_EXPORT extern const base::Feature kCompositeOpaqueFixedPosition;
CONTENT_EXPORT extern const base::Feature kCompositeOpaqueScrollers; CONTENT_EXPORT extern const base::Feature kCompositeOpaqueScrollers;
CONTENT_EXPORT extern const base::Feature kConsolidatedMovementXY;
CONTENT_EXPORT extern const base::Feature kCookieDeprecationMessages; CONTENT_EXPORT extern const base::Feature kCookieDeprecationMessages;
CONTENT_EXPORT extern const base::Feature kCrashReporting; CONTENT_EXPORT extern const base::Feature kCrashReporting;
CONTENT_EXPORT extern const base::Feature kDataSaverHoldback; CONTENT_EXPORT extern const base::Feature kDataSaverHoldback;
......
...@@ -245,6 +245,7 @@ class WebRuntimeFeatures { ...@@ -245,6 +245,7 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableDisplayLocking(bool); BLINK_PLATFORM_EXPORT static void EnableDisplayLocking(bool);
BLINK_PLATFORM_EXPORT static void BLINK_PLATFORM_EXPORT static void
EnablePauseExecutionContextOnBackgroundFreeze(bool); EnablePauseExecutionContextOnBackgroundFreeze(bool);
BLINK_PLATFORM_EXPORT static void EnableConsolidatedMovementXY(bool);
private: private:
WebRuntimeFeatures(); WebRuntimeFeatures();
......
...@@ -245,10 +245,10 @@ void MouseEvent::SetCoordinatesFromWebPointerProperties( ...@@ -245,10 +245,10 @@ void MouseEvent::SetCoordinatesFromWebPointerProperties(
initializer->setClientX(client_point.X()); initializer->setClientX(client_point.X());
initializer->setClientY(client_point.Y()); initializer->setClientY(client_point.Y());
// TODO(nzolghadr): We need to scale movement attrinutes as well. But if we if (!RuntimeEnabledFeatures::ConsolidatedMovementXYEnabled()) {
// do that here and round it to the int again it causes inconsistencies // TODO(nzolghadr): We need to scale movement attrinutes as well. But if we
// between screenX/Y and cumulative movementX/Y. // do that here and round it to the int again it causes inconsistencies
if (!RuntimeEnabledFeatures::MovementXYInBlinkEnabled()) { // between screenX/Y and cumulative movementX/Y.
initializer->setMovementX(web_pointer_properties.movement_x); initializer->setMovementX(web_pointer_properties.movement_x);
initializer->setMovementY(web_pointer_properties.movement_y); initializer->setMovementY(web_pointer_properties.movement_y);
} }
......
...@@ -94,7 +94,7 @@ void UpdateCommonPointerEventInit(const WebPointerEvent& web_pointer_event, ...@@ -94,7 +94,7 @@ void UpdateCommonPointerEventInit(const WebPointerEvent& web_pointer_event,
MouseEvent::SetCoordinatesFromWebPointerProperties( MouseEvent::SetCoordinatesFromWebPointerProperties(
web_pointer_event_in_root_frame, dom_window, pointer_event_init); web_pointer_event_in_root_frame, dom_window, pointer_event_init);
if (RuntimeEnabledFeatures::MovementXYInBlinkEnabled() && if (RuntimeEnabledFeatures::ConsolidatedMovementXYEnabled() &&
web_pointer_event.GetType() == WebInputEvent::kPointerMove) { web_pointer_event.GetType() == WebInputEvent::kPointerMove) {
// TODO(eirage): pointerrawupdate event's movements are not calculated. // TODO(eirage): pointerrawupdate event's movements are not calculated.
pointer_event_init->setMovementX(web_pointer_event.PositionInScreen().x - pointer_event_init->setMovementX(web_pointer_event.PositionInScreen().x -
......
...@@ -64,7 +64,7 @@ String CanvasRegionId(Node* node, const WebMouseEvent& mouse_event) { ...@@ -64,7 +64,7 @@ String CanvasRegionId(Node* node, const WebMouseEvent& mouse_event) {
void UpdateMouseMovementXY(const WebMouseEvent& mouse_event, void UpdateMouseMovementXY(const WebMouseEvent& mouse_event,
const FloatPoint* last_position, const FloatPoint* last_position,
MouseEventInit* initializer) { MouseEventInit* initializer) {
if (RuntimeEnabledFeatures::MovementXYInBlinkEnabled() && if (RuntimeEnabledFeatures::ConsolidatedMovementXYEnabled() &&
mouse_event.GetType() == WebInputEvent::kMouseMove && last_position) { mouse_event.GetType() == WebInputEvent::kMouseMove && last_position) {
if (RuntimeEnabledFeatures::FractionalMouseEventEnabled()) { if (RuntimeEnabledFeatures::FractionalMouseEventEnabled()) {
initializer->setMovementX(mouse_event.PositionInScreen().x - initializer->setMovementX(mouse_event.PositionInScreen().x -
......
...@@ -248,7 +248,7 @@ TEST_F(PointerEventManagerTest, PointerEventMovements) { ...@@ -248,7 +248,7 @@ TEST_F(PointerEventManagerTest, PointerEventMovements) {
{ {
// Turn on the flag for test. // Turn on the flag for test.
ScopedMovementXYInBlinkForTest scoped_feature(true); ScopedConsolidatedMovementXYForTest scoped_feature(true);
WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent(
CreateTestPointerEvent(WebInputEvent::kPointerMove, CreateTestPointerEvent(WebInputEvent::kPointerMove,
...@@ -290,7 +290,7 @@ TEST_F(PointerEventManagerTest, PointerEventMovements) { ...@@ -290,7 +290,7 @@ TEST_F(PointerEventManagerTest, PointerEventMovements) {
{ {
// When flag is off, movementX/Y follows the value in WebPointerProperties. // When flag is off, movementX/Y follows the value in WebPointerProperties.
ScopedMovementXYInBlinkForTest scoped_feature(false); ScopedConsolidatedMovementXYForTest scoped_feature(false);
WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent( WebView().MainFrameWidget()->HandleInputEvent(WebCoalescedInputEvent(
CreateTestPointerEvent(WebInputEvent::kPointerMove, CreateTestPointerEvent(WebInputEvent::kPointerMove,
......
...@@ -695,4 +695,8 @@ void WebRuntimeFeatures::EnablePauseExecutionContextOnBackgroundFreeze( ...@@ -695,4 +695,8 @@ void WebRuntimeFeatures::EnablePauseExecutionContextOnBackgroundFreeze(
enable); enable);
} }
void WebRuntimeFeatures::EnableConsolidatedMovementXY(bool enable) {
RuntimeEnabledFeatures::SetConsolidatedMovementXYEnabled(enable);
}
} // namespace blink } // namespace blink
...@@ -290,6 +290,9 @@ ...@@ -290,6 +290,9 @@
name: "ComputedAccessibilityInfo", name: "ComputedAccessibilityInfo",
status: "experimental", status: "experimental",
}, },
{
name: "ConsolidatedMovementXY",
},
{ {
name: "ContactsManager", name: "ContactsManager",
origin_trial_feature_name: "ContactsManager", origin_trial_feature_name: "ContactsManager",
...@@ -943,9 +946,6 @@ ...@@ -943,9 +946,6 @@
name: "MojoJSTest", name: "MojoJSTest",
status: "test", status: "test",
}, },
{
name: "MovementXYInBlink",
},
{ {
name: "MuteButton", name: "MuteButton",
depends_on: ["PictureInPictureAPI"], depends_on: ["PictureInPictureAPI"],
......
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