Closed Bug 1507495 Opened 4 years ago Closed 3 years ago

Enable Pointer events on GeckoView by default


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




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


(Reporter: hsinyi, Assigned: smaug)


(Depends on 2 open bugs, Blocks 1 open bug)


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


(2 files, 3 obsolete files)

This is the bug for tracking the work.
Depends on: 1312791
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
Blocks: 1492775
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, can be used.
window.PointerEvent should be green.

Attachment #9079001 - Attachment is obsolete: true
Pushed by
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:

Backout link:

Failure log:

[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/
[task 2019-07-19T16:24:33.483Z] copying build/lib.linux-x86_64-2.7/psutil/ -> psutil
[task 2019-07-19T16:24:33.483Z] copying build/lib.linux-x86_64-2.7/psutil/ -> 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("") with ???????Services.prefs.getBoolPref(?????????""???????)????? (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
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:

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

Push with failure:

Failure log:

Backout link:

[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 :/ )

Pushed by
Enable Pointer events on GeckoView by default, r=droeh
Closed: 3 years 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.