Closed Bug 1507495 Opened 1 year ago Closed 1 year ago

Enable Pointer events on GeckoView by default

Categories

(Core :: DOM: Events, enhancement, P3)

Unspecified
Android
enhancement

Tracking

()

RESOLVED FIXED
mozilla70
Webcompat Priority ?
Tracking Status
firefox-esr68 --- wontfix
firefox69 --- wontfix
firefox70 --- fixed

People

(Reporter: hsinyi, Assigned: smaug)

References

(Depends on 3 open bugs, Blocks 1 open bug, Regressed 1 open bug)

Details

(Keywords: dev-doc-needed, Whiteboard: [geckoview:p3])

Attachments

(2 files, 3 obsolete files)

This is the bug for tracking the work.
This depends, as far as I see, on GeckoView. With GeckoView we should get pointer events on Android pretty much for free, in child processes.
Duplicate of this bug: 1426786
Depends on: 1435948

Adding [geckoview] whiteboard tag so the GV team will triage this bug.

OS: Unspecified → Android
Whiteboard: [geckoview]
Depends on: 1542191
Whiteboard: [geckoview] → [geckoview:p3]
Webcompat Priority: --- → ?
Flags: webcompat?
Summary: Enable Pointer events on Android by default → Enable Pointer events on GeckoView by default

We've had pointer events enabled on desktop quite awhile and several touchscreen related issues were fixed earlier this year.
Personally I've had pointer events enabled on Fenix since May. (at the short time when it was still possible to use about:config - no idea how to enable prefs these days)

I'd like to get bug 1539497 fixed first, but it has a patch waiting for review.

Getting pointer events enabled in 70 would hopefully give some time for testing - although nightly gecko testing on Fenix doesn't really happen too actively, I've been told.

For manual testing, https://patrickhlauke.github.io/touch/tests/pointer-multitouch-detect.html can be used.
window.PointerEvent should be green.

Attachment #9079001 - Attachment is obsolete: true
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/db7b66954bde
Enable Pointer events on GeckoView by default, r=droeh

Backed out changeset db7b66954bde (Bug 1507495) for ES lint failure on geckoview.js

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=257411777&revision=db7b66954bde221d0b91fd6b2bf90cf9d8b89a0a

Backout link: https://hg.mozilla.org/integration/autoland/rev/ff8deccc9772cedf2e7f59fede49ac7454cca314

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=257411777&repo=autoland&lineNumber=280

[task 2019-07-19T16:24:33.483Z] building 'psutil._psutil_posix' extension
[task 2019-07-19T16:24:33.483Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_common.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_common.o
[task 2019-07-19T16:24:33.483Z] x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DPSUTIL_POSIX=1 -DPSUTIL_VERSION=543 -DPSUTIL_LINUX=1 -I/usr/include/python2.7 -c psutil/_psutil_posix.c -o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o
[task 2019-07-19T16:24:33.483Z] x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wl,-Bsymbolic-functions -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/psutil/_psutil_common.o build/temp.linux-x86_64-2.7/psutil/_psutil_posix.o -o build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so
[task 2019-07-19T16:24:33.483Z] copying build/lib.linux-x86_64-2.7/psutil/_psutil_linux.so -> psutil
[task 2019-07-19T16:24:33.483Z] copying build/lib.linux-x86_64-2.7/psutil/_psutil_posix.so -> psutil
[task 2019-07-19T16:24:33.483Z]
[task 2019-07-19T16:24:33.483Z] Error processing command. Ignoring because optional. (optional:packages.txt:comm/build/virtualenv_packages.txt)
[task 2019-07-19T16:39:22.969Z] TEST-UNEXPECTED-ERROR | /builds/worker/checkouts/gecko/mobile/android/chrome/geckoview/geckoview.js:434:9 | Replace Services.prefs???????????.getBoolPref("dom.w3c_pointer_events.multiprocess.android.enabled") with ???????Services.prefs.getBoolPref(?????????"dom.w3c_pointer_events.multiprocess.android.enabled"???????)????? (prettier/prettier)
[taskcluster 2019-07-19 16:39:23.548Z] === Task Finished ===
[taskcluster 2019-07-19 16:39:24.409Z] Unsuccessful task run with exit code: 1 completed in 1226.874 seconds

Flags: needinfo?(bugs)

ok, what is that now... :/

Flags: needinfo?(bugs)

aha, need to ./mach lint --fix
The end result looks super ugly, but that is prettier requires.

Attachment #9079097 - Attachment is obsolete: true
Attachment #9079453 - Attachment is obsolete: true
Attachment #9079453 - Attachment is obsolete: false
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e9cc61207fb8
Enable Pointer events on GeckoView by default,

Release Note Request (optional, but appreciated)
[Why is this notable]: Feature parity. Chrome (Android and desktop) and desktop Firefox already support PointerEvent. Fennec is the last to support it.
[Affects Firefox for Android]: Yes. Desktop Firefox has supported PointerEvent since Firefox 59.
[Suggested wording]: The PointerEvent API provides web developers better support for handling input devices like touch screens and pens.
[Links (documentation, blog post, etc)]: MDN's PointerEvent API documentation: https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent

Backed out changeset e9cc61207fb8 (Bug 1507495) for mochitest failure at dom/tests/mochitest/general/test_interfaces.html.

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=257452023&resultStatus=testfailed%2Cbusted%2Cexception&revision=e9cc61207fb85c1e98689fddaf76a562a370f43d

Failure log:
Mochitest: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=257452023&repo=autoland&lineNumber=3761
WPT: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=257460378&repo=autoland&lineNumber=4760

Backout link:https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&revision=d82871b98206b0f3c25f74e78e5ef52426570106

[task 2019-07-19T20:26:31.747Z] 20:26:31     INFO -  864 INFO TEST-PASS | dom/tests/mochitest/general/test_interfaces.html | SVGTransformList is exposed as an own property on the window but has no property descriptor in the global scope
[task 2019-07-19T20:26:31.747Z] 20:26:31     INFO -  Buffered messages finished
[task 2019-07-19T20:26:31.747Z] 20:26:31     INFO -  865 INFO TEST-UNEXPECTED-FAIL | dom/tests/mochitest/general/test_interfaces.html | If this is failing: DANGER, are you sure you want to expose the new interface PointerEvent to all webpages as a property on the window? Do not make a change to this file without a  review from a DOM peer for that specific change!!! (or a JS peer for changes to ecmaGlobals)
[task 2019-07-19T20:26:31.748Z] 20:26:31     INFO -      SimpleTest.ok@SimpleTest/SimpleTest.js:275:18
[task 2019-07-19T20:26:31.748Z] 20:26:31     INFO -      runTest@dom/tests/mochitest/general/test_interfaces.js:1456:5
[task 2019-07-19T20:26:31.748Z] 20:26:31     INFO -      @dom/tests/mochitest/general/test_interfaces.js:1495:1
[task 2019-07-19T20:26:31.748Z] 20:26:31     INFO -  866 INFO TEST-PASS | dom/tests/mochitest/general/test_interfaces.html | PointerEvent is exposed as an own property on the window but tests false for "in" in the global scope
Attachment #9079453 - Attachment is obsolete: true
Regressions: 1557467
Assignee: nobody → bugs

(and there had been a wpt merge where some of the relevant changes were refactored :/
https://treeherder.mozilla.org/#/jobs?repo=try&revision=e07df37109cdc520db4e4b7e9dc0e25840c1a787 )

Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/87bac112ff97
Enable Pointer events on GeckoView by default, r=droeh
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70

69=wontfix because we don't want to uplift Pointer Events to Beta. They can ride the trains with GeckoView 70.

Regressions: 1591250
You need to log in before you can comment on or make changes to this bug.