Closed Bug 1259365 Opened 9 years ago Closed 7 years ago

Hit test doesn't work properly on FxOS 2.5 & 2.6 TV (nexus-player-l)

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: kikuo, Unassigned)

References

Details

(Whiteboard: [ft:conndevices])

After introducing patches from Bug 1242690, I've tested code based from Firefox_AURORA_44_BASE with meta-viewport enabled. The mouse-hover/click works correctly. But it doesn't work for latest b2g44_v2_5 / gaia_v2_5 on nexus-player. I applied patch from Bug 1082892 to draw cursor. And I found the cursor position provided by ScreenIntPoint from MultiInputData [1] is correct. But it seems to be transformed incorrectly to DOM (no matter meta-viewport enabled or not) [1] https://dxr.mozilla.org/mozilla-central/rev/6202ade0e6d688ffb67932398e56cfc6fa04ceb3/widget/gonk/nsWindow.cpp#219 The problem is demonstrated by the video attached.
Blocks: TV_FxOS2.5
Video is too huge to be attached, put on google/drive instead, https://drive.google.com/a/mozilla.com/file/d/0B7pa69fXQvU1Uml5ME00TmxMSVE/view?usp=sharing
Blocks: 1239940
No longer blocks: 1239940
Depends on: 1082892
Blocks: 1239940
Hi Kats, Do you have any ideas about what may happen in the video demonstrated ? (sounds in video) Because the ScreenIntPoint.{x,y} of mouse hover-move/click event are correct for device screen. I'm not sure which phase goes wrong after the conversion in WidgetTouchEvent [1] and ProcessUntransformedAPZEvent. Or could you point out where's the final place that CSS pixel coordinates are calculated ? So that I may have a look into it. Thanks. [1] https://dxr.mozilla.org/mozilla-central/rev/6202ade0e6d688ffb67932398e56cfc6fa04ceb3/widget/gonk/nsWindow.cpp#228 I'm gonna test it against TV 2.6 (which is now aligned with m-c latest) to see if this is still an issue for gonk platform on large screen.
Flags: needinfo?(bugmail.mozilla)
I looked at the patch in attachment 8724059 [details] [diff] [review] and all it does is draw the square at the screen position of the hover_move events. It doesn't impact any of the other events at all, so if clicking is busted on the nexus player it should also be broken on touchscreen phones like the flame. If that's not the case then I don't really know what's going on. There isn't one single place that the coordinates are converted to CSS pixels, it happens in a number of places in the APZ and layout code. For generating clicks from touch events, it happens at [1] and [2]. [1] http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/file/f1152951e613/gfx/layers/apz/src/AsyncPanZoomController.cpp#l1941 [2] http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/file/f1152951e613/gfx/layers/apz/util/APZEventState.cpp#l182
Flags: needinfo?(bugmail.mozilla)
Update, tested current m-c on nexus-player with a tentative drawn-cursor. The text-selecting effect (A long-press down from mouse, and there will be a green rectangle region overlapping the text) is displayed on correct position where I clicked down. But then mouse-up, the coordinates went wrong. I'm gonna check the code provided in Comment 3 further.
Whiteboard: [ft:conndevices]
Summary: Hit test doesn't work properly on FxOS 2.5 TV (nexus-player-l) → Hit test doesn't work properly on FxOS 2.5 & 2.6 TV (nexus-player-l)
Update, Tested on b2g48_v2_6, single-tap via mouse still doesn't work properly. Check the pixel conversion mentioned in Comment 3, the converted css positions dispatched for single-tap [1] or long-tap [2] are the same. Next, I will check the tree built for APZCTreeManager::UpdateHitTestingTree. But it won't be soon. [1] https://dxr.mozilla.org/mozilla-central/rev/369a5ee3a2880a4a98df3a00bf3db8d8f36b181b/gfx/layers/apz/util/APZCCallbackHelper.cpp#520 [2] https://dxr.mozilla.org/mozilla-central/rev/369a5ee3a2880a4a98df3a00bf3db8d8f36b181b/gfx/layers/apz/util/APZEventState.cpp#
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.