Closed Bug 1618532 Opened 5 years ago Closed 5 years ago

Re-enable mouse retargeting (ui.mouse.radius.enabled) for Fenix

Categories

(Core :: Panning and Zooming, enhancement, P2)

All
Android
enhancement

Tracking

()

RESOLVED FIXED
mozilla75
Tracking Status
firefox75 --- fixed

People

(Reporter: kats, Assigned: kats)

References

(Depends on 1 open bug)

Details

Attachments

(1 file)

This will undo bug 1247095 because there's a lot of cases where mouse retargeting helps the user experience, in ways that nothing else can do. I expect that re-enabling mouse retargeting will hurt some cases (which is why it was turned off in the first place, see bugs duped to bug 1247095) but that we can selectively detect and disable retargeting in those cases to alleviate the regression.

Do you mean changing ui.mouse.radius.enabled back to true by default? As long as the user can set it to false again, this would not be much a problem.

FYI, the problem in my case was text selection with a long press: instead of text selection, an adjacent link was followed (even after zooming). I had reported bug 826601 in the past. But then the implementation changed, and as a consequence, the bug was closed to "invalid". I was asked to open a new bug, which was bug 1244498 (actually similar to bug 1233272, which became a duplicate of bug 1247095). And the solution was to set ui.mouse.radius.enabled to false, so that my bug was closed.

(In reply to Vincent Lefevre from comment #1)

Do you mean changing ui.mouse.radius.enabled back to true by default?

Yes

As long as the user can set it to false again, this would not be much a problem.

Yes, the user can still set it back to false via about:config

FYI, the problem in my case was text selection with a long press: instead of text selection, an adjacent link was followed (even after zooming). I had reported bug 826601 in the past. But then the implementation changed, and as a consequence, the bug was closed to "invalid". I was asked to open a new bug, which was bug 1244498 (actually similar to bug 1233272, which became a duplicate of bug 1247095). And the solution was to set ui.mouse.radius.enabled to false, so that my bug was closed.

I plan to address this by not retargeting long-press events. I'll probably reopen one of the bugs you listed and put the patch there.

Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ede88d07c59a Re-enable mouse event retargeting on Android. r=snorp
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75

This should not have just been turned on with out making it a GeckoView Runtime option. Firefox Reality definitely does not want this option turned on as it has a very precise pointer.

We discussed this on #GeckoView:mozilla.org - right now the GV layer doesn't have a good way to communicate different app requirements to Gecko. So if Fenix wants X and FxR wants not X then the only official way to do it is to add a GeckoRuntimeSetting thing for it, but :snorp doesn't want to do that in this case. There's an unofficial way that Randall will use for now to flip the pref back to false.

But also, we realized that in general this shouldn't actually affect FxR much. If the user has a super precise pointer, then they should (mostly) be already targeting the right element (link/button/whatever) correctly, and the event retargeting will be a no-op. The cases where it will make a difference is if the user is activating their pointer on an element that's not actually targetable, but is next to a targetable element. In that case they might expect nothing to happen when in fact the targetable element gets triggered. But if they're not expecting anything to happen they shouldn't even be activating their pointer, so in practice this should be rare.

Another solution suggested by :agi was to distinguish based on what pointer is being used, which seems like a good solution. FxR currently generates touch events but it really shouldn't because users are using some sort of virtual laser device and not touch. So if FxR generated a generic motion or pointer event then we wouldn't retarget the synthetic mouse events that get generated from that, because of this pref. Generating different kinds of events might break other things but those should be fixable too.

Regressions: 1632941
Regressions: 1666792
Regressions: 1685441
Regressions: 1683747
Regressions: 1688888
Depends on: 1753454
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: