Closed Bug 1029656 Opened 5 years ago Closed 5 years ago

Impossible touch start warnings printed during APZC gtests

Categories

(Core :: Panning and Zooming, defect)

x86
macOS
defect
Not set

Tracking

()

RESOLVED DUPLICATE of bug 1039979

People

(Reporter: kats, Unassigned)

References

Details

Attachments

(1 file)

From a recent m-c tbpl log, which I can repro locally:

TEST-START | AsyncPanZoomControllerTester.Pinch_UseGestureDetector_TouchActionNone
[67489] WARNING: Received impossible touch in OnTouchStart: file /builds/slave/m-cen-osx64-d-0000000000000000/build/gfx/layers/apz/src/AsyncPanZoomController.cpp, line 838
TEST-PASS | AsyncPanZoomControllerTester.Pinch_UseGestureDetector_TouchActionNone | test completed (time: 0ms)
TEST-START | AsyncPanZoomControllerTester.Pinch_UseGestureDetector_TouchActionZoom
TEST-PASS | AsyncPanZoomControllerTester.Pinch_UseGestureDetector_TouchActionZoom | test completed (time: 0ms)
TEST-START | AsyncPanZoomControllerTester.Pinch_UseGestureDetector_TouchActionNotAllowZoom
[67489] WARNING: Received impossible touch in OnTouchStart: file /builds/slave/m-cen-osx64-d-0000000000000000/build/gfx/layers/apz/src/AsyncPanZoomController.cpp, line 838
TEST-PASS | AsyncPanZoomControllerTester.Pinch_UseGestureDetector_TouchActionNotAllowZoom | test completed (time: 0ms)

Most likely what's happening here is that the touch-action code is preventing zooming, so the second touchstart gets delivered to the APZC OnTouchStart method while it is in the TOUCHING state, and that's resulting in this warning.
Based on my initial investigation this appears to be due to bug 1013378. Specifically the OnScaleEnd function returns nsEventStatus_eIgnore on the first pinch for these tests (because the touch-action behaviour disables zooming). However, the GestureEventListener code ignores that return code and returns nsEventStatus_eConsumeNoDefault, which means the touch-end events for the pinch are never processed in the APZC. This leaves the APZC in state touching after the first pinch and so when the second pinch starts it spits out the warning because it gets a touch-start in the TOUCHING state.
Blocks: 1013378
Attached patch Possible fixSplinter Review
This patch fixes it, but I'm not yet sure if it breaks other things. I'll look into these nsEventStatus return codes in some more detail and see if it all makes sense.
This is fixed with the patches on bug 1039979.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1039979
You need to log in before you can comment on or make changes to this bug.