Closed Bug 1676771 Opened 4 years ago Closed 4 years ago

Panning isn't smooth on some Android devices, for example on the Moto G5 - consider doing touch interpolation / resampling to reduce jitter

Categories

(Core :: Panning and Zooming, enhancement)

All
Android
enhancement

Tracking

()

RESOLVED FIXED
85 Branch
Tracking Status
firefox85 --- fixed

People

(Reporter: mstange, Assigned: mstange)

References

(Regressed 2 open bugs)

Details

Attachments

(5 files, 1 obsolete file)

When scrolling any page in Firefox on a Moto G5, the scroll motion that's rendered on the screen is jittery even when the finger moves in a very uniform motion. This makes it harder to read text during panning because it's harder to follow the jittery motion with one's eyes. It also gives the impression of bad performance.

Native Android scroll views display a similar jitter.
Scrolling in Chrome, however, is smooth.

See the two attached videos for a comparison.

This seems to be because the Moto G5 has a touch screen sampling rate of 100Hz and a display refresh rate of 60Hz. As a result, some frames take one touch sample into account and other frames take two touch samples into account. This leads to a sequence of "small step, big step, small step, big step".

I think it's worth doing touch resampling, to improve panning smoothness on these devices.

Attached video Firefox Moto G5 panning (deleted) —
Attached video Chrome Moto G5 panning (deleted) —

This is similar to GeckoTouchDispatcher from the B2G days:
https://hg.mozilla.org/mozilla-central/file/49bbfe7887d5739df62d6b8d05bc41cfe3161f08/widget/gonk/GeckoTouchDispatcher.cpp

There are some extra sources of complexity:

  • TouchResampler tries hard to generate one outgoing event per incoming event,
    so that theh result code tracking to the Java front-end code works properly.
  • TouchResampler tries hard to never lose any historicalData information, so
    that the velocity tracker has a maximum amount of information to work with.
  • TouchResampler has this "reset to non-resampled state" functionality so that
    overpredictions are corrected when the finger pauses or when a touch non-move
    event fires.

Depends on D96794

Depends on D96795

Assignee: nobody → mstange.moz
Status: NEW → ASSIGNED
Attached file Bug 1676771 - WIP: Add an AndroidVsync class. (obsolete) (deleted) —

This allows adding another vsync listener that gets called before the regular VsyncSource.
And it allows adding the listener on the Java UI thread.
The existing infrastructure is pretty adamant about being used on the main thread.

As an alternative, we could try to make VsyncSource thread-safe, but this will
probably require some changes to platform-specific code on all platforms.

Depends on D96796

Type: defect → enhancement
Depends on: 1677011
Depends on: 1677012

Comment on attachment 9187299 [details]
Bug 1676771 - WIP: Add an AndroidVsync class.

Revision D96797 was moved to bug 1677011. Setting attachment 9187299 [details] to obsolete.

Attachment #9187299 - Attachment is obsolete: true
Attachment #9187297 - Attachment description: Bug 1676771 - WIP: Add a TouchResampler class. → Bug 1676771 - Add a TouchResampler class. r=kats
Attachment #9187298 - Attachment description: Bug 1676771 - WIP: Break HandleMotionEvent into two parts. → Bug 1676771 - Break HandleMotionEvent into two parts. r=kats
Attachment #9187300 - Attachment description: Bug 1676771 - WIP: Resample touch events in Android widget before sending them to APZ. → Bug 1676771 - Resample touch events in Android widget before sending them to APZ. r=kats
Pushed by mstange@themasta.com: https://hg.mozilla.org/integration/autoland/rev/7f5daf9a6889 Add a TouchResampler class. r=kats https://hg.mozilla.org/integration/autoland/rev/7aa9b58c7916 Break HandleMotionEvent into two parts. r=geckoview-reviewers,kats,snorp https://hg.mozilla.org/integration/autoland/rev/88d4a2ac2cfc Resample touch events in Android widget before sending them to APZ. r=geckoview-reviewers,kats,snorp

Backed out 3 changesets (bug 1676771) for touchevents related failures.

Push with failure: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&fromchange=88d4a2ac2cfcb9bc2509b89c19d7f571bb7b9309&searchStr=android%2Cmochitest&tochange=9dd0b13d77b96a7e1fd6b48c23f5fed1363498d2&selectedTaskRun=QZhk5U3xT_-UjLp2KwPuAg.0

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

Failure log: https://treeherder.mozilla.org/logviewer?job_id=322084809&repo=autoland&lineNumber=3613

[task 2020-11-17T20:00:13.139Z] 20:00:13     INFO -  1517 INFO TEST-START | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html
[task 2020-11-17T20:00:13.140Z] 20:00:13     INFO -  Buffered messages logged at 20:00:03
[task 2020-11-17T20:00:13.140Z] 20:00:13     INFO -  1518 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | Check if TouchEvent is supported (it should be, the test harness forces it on everywhere)
[task 2020-11-17T20:00:13.141Z] 20:00:13     INFO -  1519 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | Starting subtest helper_touch_action.html
[task 2020-11-17T20:00:13.141Z] 20:00:13     INFO -  Buffered messages logged at 20:00:04
[task 2020-11-17T20:00:13.141Z] 20:00:13     INFO -  1520 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Synthesized native vertical drag (1), waiting for touch-end event...
[task 2020-11-17T20:00:13.142Z] 20:00:13     INFO -  1521 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After first vertical drag, with pan-y - x axis
[task 2020-11-17T20:00:13.142Z] 20:00:13     INFO -  Buffered messages finished
[task 2020-11-17T20:00:13.142Z] 20:00:13  WARNING -  1522 INFO TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After first vertical drag, with pan-y - y axis - got +0, expected 50
[task 2020-11-17T20:00:13.142Z] 20:00:13     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:500:14
[task 2020-11-17T20:00:13.143Z] 20:00:13     INFO -      spawnTest/w.is@gfx/layers/apz/test/mochitest/apz_test_utils.js:433:18
[task 2020-11-17T20:00:13.143Z] 20:00:13     INFO -      checkScroll@gfx/layers/apz/test/mochitest/helper_touch_action.html:14:5
[task 2020-11-17T20:00:13.143Z] 20:00:13     INFO -      test@gfx/layers/apz/test/mochitest/helper_touch_action.html:26:14
[task 2020-11-17T20:00:13.143Z] 20:00:13     INFO -      driveTest@gfx/layers/apz/test/mochitest/apz_test_utils.js:657:36
[task 2020-11-17T20:00:13.144Z] 20:00:13     INFO -  1523 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Waiting for pan-x to propagate...
[task 2020-11-17T20:00:13.144Z] 20:00:13     INFO -  1524 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Synthesized native vertical drag (2), waiting for touch-end event...
[task 2020-11-17T20:00:13.144Z] 20:00:13     INFO -  1525 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After second vertical drag, with pan-x - x axis
[task 2020-11-17T20:00:13.145Z] 20:00:13  WARNING -  1526 INFO TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After second vertical drag, with pan-x - y axis - got +0, expected 50
[task 2020-11-17T20:00:13.145Z] 20:00:13     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:500:14
[task 2020-11-17T20:00:13.146Z] 20:00:13     INFO -      spawnTest/w.is@gfx/layers/apz/test/mochitest/apz_test_utils.js:433:18
[task 2020-11-17T20:00:13.146Z] 20:00:13     INFO -      checkScroll@gfx/layers/apz/test/mochitest/helper_touch_action.html:14:5
[task 2020-11-17T20:00:13.146Z] 20:00:13     INFO -      test@gfx/layers/apz/test/mochitest/helper_touch_action.html:39:14
[task 2020-11-17T20:00:13.146Z] 20:00:13     INFO -      driveTest@gfx/layers/apz/test/mochitest/apz_test_utils.js:657:36
[task 2020-11-17T20:00:13.147Z] 20:00:13     INFO -  1527 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Synthesized horizontal drag (1), waiting for touch-end event...
[task 2020-11-17T20:00:13.147Z] 20:00:13     INFO -  1528 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After first horizontal drag, with pan-x - x axis
[task 2020-11-17T20:00:13.148Z] 20:00:13  WARNING -  1529 INFO TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After first horizontal drag, with pan-x - y axis - got +0, expected 50
[task 2020-11-17T20:00:13.148Z] 20:00:13     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:500:14
[task 2020-11-17T20:00:13.148Z] 20:00:13     INFO -      spawnTest/w.is@gfx/layers/apz/test/mochitest/apz_test_utils.js:433:18
[task 2020-11-17T20:00:13.148Z] 20:00:13     INFO -      checkScroll@gfx/layers/apz/test/mochitest/helper_touch_action.html:14:5
[task 2020-11-17T20:00:13.149Z] 20:00:13     INFO -      test@gfx/layers/apz/test/mochitest/helper_touch_action.html:45:14
[task 2020-11-17T20:00:13.149Z] 20:00:13     INFO -      driveTest@gfx/layers/apz/test/mochitest/apz_test_utils.js:657:36
[task 2020-11-17T20:00:13.149Z] 20:00:13     INFO -  1530 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Synthesized diagonal drag (1), waiting for touch-end event...
[task 2020-11-17T20:00:13.150Z] 20:00:13     INFO -  1531 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After first diagonal drag, with pan-x - x axis
[task 2020-11-17T20:00:13.150Z] 20:00:13  WARNING -  1532 INFO TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After first diagonal drag, with pan-x - y axis - got +0, expected 50
[task 2020-11-17T20:00:13.150Z] 20:00:13     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:500:14
[task 2020-11-17T20:00:13.151Z] 20:00:13     INFO -      spawnTest/w.is@gfx/layers/apz/test/mochitest/apz_test_utils.js:433:18
[task 2020-11-17T20:00:13.151Z] 20:00:13     INFO -      checkScroll@gfx/layers/apz/test/mochitest/helper_touch_action.html:14:5
[task 2020-11-17T20:00:13.151Z] 20:00:13     INFO -      test@gfx/layers/apz/test/mochitest/helper_touch_action.html:52:14
[task 2020-11-17T20:00:13.152Z] 20:00:13     INFO -      driveTest@gfx/layers/apz/test/mochitest/apz_test_utils.js:657:36
[task 2020-11-17T20:00:13.152Z] 20:00:13     INFO -  1533 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Waiting for pan-y to propagate...
[task 2020-11-17T20:00:13.152Z] 20:00:13     INFO -  1534 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Synthesized diagonal drag (2), waiting for touch-end event...
[task 2020-11-17T20:00:13.153Z] 20:00:13     INFO -  1535 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After second diagonal drag, with pan-y - x axis
[task 2020-11-17T20:00:13.153Z] 20:00:13  WARNING -  1536 INFO TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After second diagonal drag, with pan-y - y axis - got +0, expected 10
[task 2020-11-17T20:00:13.153Z] 20:00:13     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:500:14
[task 2020-11-17T20:00:13.154Z] 20:00:13     INFO -      spawnTest/w.is@gfx/layers/apz/test/mochitest/apz_test_utils.js:433:18
[task 2020-11-17T20:00:13.154Z] 20:00:13     INFO -      checkScroll@gfx/layers/apz/test/mochitest/helper_touch_action.html:14:5
[task 2020-11-17T20:00:13.154Z] 20:00:13     INFO -      test@gfx/layers/apz/test/mochitest/helper_touch_action.html:66:14
[task 2020-11-17T20:00:13.154Z] 20:00:13     INFO -      driveTest@gfx/layers/apz/test/mochitest/apz_test_utils.js:657:36
[task 2020-11-17T20:00:13.154Z] 20:00:13     INFO -  1537 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Waiting for none to propagate...
[task 2020-11-17T20:00:13.155Z] 20:00:13     INFO -  1538 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | Synthesized diagonal drag (3), waiting for touch-end event...
[task 2020-11-17T20:00:13.155Z] 20:00:13     INFO -  1539 INFO TEST-PASS | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After third diagonal drag, with none - x axis
[task 2020-11-17T20:00:13.155Z] 20:00:13  WARNING -  1540 INFO TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/test_group_touchevents-3.html | helper_touch_action.html | After third diagonal drag, with none - y axis - got +0, expected 10
[task 2020-11-17T20:00:13.155Z] 20:00:13     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:500:14
...
...
...
Flags: needinfo?(mstange.moz)

Oh.. I guess apart from changing the count of touch events, the patches also introduce more latency. Touch events don't get delivered immediately upon synthesization but may wait until the next vsync tick.. so a lot of APZ tests are going to want the pref disabled. It might be wise to disable the pref in all the test_group_touchevents-* tests.

Ah, that makes a lot of sense. I'll try that and then do a bunch of retriggers. Both test failures (test_group_touchevents-3.html and test_group_zoom-2.html) only happened some of the time.

Flags: needinfo?(mstange.moz)

I think what might happen in the test_group_zoom-2.html failure is that we're overpredicting during the zoom out gesture, and then resetting on touchend, but the reset results in a slight zoom in again. That's because the overpedicted zoom out was "absorbed" because there's a hard zoom out limit at 1.0.

Pushed by mstange@themasta.com: https://hg.mozilla.org/integration/autoland/rev/8700eb46bb8b Add a TouchResampler class. r=kats https://hg.mozilla.org/integration/autoland/rev/45736914b063 Break HandleMotionEvent into two parts. r=geckoview-reviewers,kats,snorp https://hg.mozilla.org/integration/autoland/rev/c01032316a72 Resample touch events in Android widget before sending them to APZ. r=geckoview-reviewers,kats,snorp

Backed out 3 changesets (bug 1676771) for TouchResampler.cpp linux debug bustage.

Push with failure: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&fromchange=e176bd45edd8b076190a341010aca3224cd47cd0&searchStr=linux%2Cx64%2Cdebug%2Cbuild-linux64-base-toolchains-clang%2Fdebug%2Cbbc&tochange=1e2b1c9b9c9e9283c22055cb5dfd003a061b878e&selectedTaskRun=CKZ2gPMmRJ6B5eNcusbk5Q.0

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

Failure log: https://treeherder.mozilla.org/logviewer?job_id=322134319&repo=autoland&lineNumber=55841

[task 2020-11-18T02:32:20.487Z] 02:32:20     INFO -  make[4]: Entering directory '/builds/worker/workspace/obj-build/widget'
[task 2020-11-18T02:32:20.487Z] 02:32:20     INFO -  /builds/worker/fetches/clang/bin/clang++ -std=gnu++17 -o Unified_cpp_widget0.o -c  -I/builds/worker/workspace/obj-build/dist/stl_wrappers -I/builds/worker/workspace/obj-build/dist/system_wrappers -include /builds/worker/checkouts/gecko/config/gcc_hidden.h -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -DDEBUG=1 -DMOZ_CROSS_PROCESS_IME -DOS_POSIX=1 -DOS_LINUX=1 -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -I/builds/worker/checkouts/gecko/widget -I/builds/worker/workspace/obj-build/widget -I/builds/worker/workspace/obj-build/ipc/ipdl/_ipdlheaders -I/builds/worker/checkouts/gecko/ipc/chromium/src -I/builds/worker/checkouts/gecko/ipc/glue -I/builds/worker/checkouts/gecko/dom/base -I/builds/worker/checkouts/gecko/dom/ipc -I/builds/worker/checkouts/gecko/gfx/2d -I/builds/worker/checkouts/gecko/layout/base -I/builds/worker/checkouts/gecko/layout/forms -I/builds/worker/checkouts/gecko/layout/generic -I/builds/worker/checkouts/gecko/layout/painting -I/builds/worker/checkouts/gecko/layout/xul -I/builds/worker/checkouts/gecko/layout/xul/tree -I/builds/worker/checkouts/gecko/view -I/builds/worker/checkouts/gecko/widget -I/builds/worker/checkouts/gecko/widget/headless -I/builds/worker/checkouts/gecko/third_party/cups/include -I/builds/worker/checkouts/gecko/widget/gtk -I/builds/worker/workspace/obj-build/dist/include -I/builds/worker/workspace/obj-build/dist/include/nspr -I/builds/worker/workspace/obj-build/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/obj-build/mozilla-config.h -Qunused-arguments -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wcomma -Wimplicit-fallthrough -Wunused-function -Wunused-variable -Werror=non-literal-null-conversion -Wstring-conversion -Wtautological-overlap-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=backend-plugin -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-missing-braces -Wno-unknown-warning-option -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -fno-aligned-new -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Os -fno-omit-frame-pointer -funwind-tables -Werror -I/builds/worker/checkouts/gecko/widget/gtk/compat-gtk3 -pthread -I/usr/include/gtk-3.0/unix-print -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libdrm  -MD -MP -MF .deps/Unified_cpp_widget0.o.pp   Unified_cpp_widget0.cpp
[task 2020-11-18T02:32:20.487Z] 02:32:20     INFO -  In file included from Unified_cpp_widget0.cpp:137:
[task 2020-11-18T02:32:20.488Z] 02:32:20    ERROR -  /builds/worker/checkouts/gecko/widget/TouchResampler.cpp:178:23: error: expected ')'
[task 2020-11-18T02:32:20.488Z] 02:32:20     INFO -              Span(touch.mHistoricalData).From(futureDataStart.GetIndex()));
[task 2020-11-18T02:32:20.488Z] 02:32:20     INFO -                        ^
[task 2020-11-18T02:32:20.488Z] 02:32:20     INFO -  /builds/worker/checkouts/gecko/widget/TouchResampler.cpp:178:17: note: to match this '('
[task 2020-11-18T02:32:20.488Z] 02:32:20     INFO -              Span(touch.mHistoricalData).From(futureDataStart.GetIndex()));
[task 2020-11-18T02:32:20.488Z] 02:32:20     INFO -                  ^
[task 2020-11-18T02:32:20.489Z] 02:32:20    ERROR -  /builds/worker/checkouts/gecko/widget/TouchResampler.cpp:178:13: error: use of class template 'Span' requires template arguments; argument deduction not allowed in function prototype
[task 2020-11-18T02:32:20.489Z] 02:32:20     INFO -              Span(touch.mHistoricalData).From(futureDataStart.GetIndex()));
[task 2020-11-18T02:32:20.489Z] 02:32:20     INFO -              ^~~~
[task 2020-11-18T02:32:20.489Z] 02:32:20     INFO -  /builds/worker/workspace/obj-build/dist/include/mozilla/Span.h:100:27: note: template is declared here
[task 2020-11-18T02:32:20.490Z] 02:32:20     INFO -    friend class ::mozilla::Span;
[task 2020-11-18T02:32:20.491Z] 02:32:20     INFO -                            ^
[task 2020-11-18T02:32:20.491Z] 02:32:20     INFO -  In file included from Unified_cpp_widget0.cpp:137:
[task 2020-11-18T02:32:20.492Z] 02:32:20    ERROR -  /builds/worker/checkouts/gecko/widget/TouchResampler.cpp:178:40: error: expected ')'
[task 2020-11-18T02:32:20.492Z] 02:32:20     INFO -              Span(touch.mHistoricalData).From(futureDataStart.GetIndex()));
[task 2020-11-18T02:32:20.492Z] 02:32:20     INFO -                                         ^
[task 2020-11-18T02:32:20.493Z] 02:32:20     INFO -  /builds/worker/checkouts/gecko/widget/TouchResampler.cpp:177:66: note: to match this '('
[task 2020-11-18T02:32:20.493Z] 02:32:20     INFO -          nsTArray<SingleTouchData::HistoricalTouchData> futureData(
[task 2020-11-18T02:32:20.494Z] 02:32:20     INFO -                                                                   ^
[task 2020-11-18T02:32:20.494Z] 02:32:20     INFO -  3 errors generated.
[task 2020-11-18T02:32:20.495Z] 02:32:20     INFO -  /builds/worker/checkouts/gecko/config/rules.mk:674: recipe for target 'Unified_cpp_widget0.o' failed
[task 2020-11-18T02:32:20.495Z] 02:32:20    ERROR -  make[4]: *** [Unified_cpp_widget0.o] Error 1
[task 2020-11-18T02:32:20.496Z] 02:32:20     INFO -  make[4]: Leaving directory '/builds/worker/workspace/obj-build/widget'
[task 2020-11-18T02:32:20.496Z] 02:32:20     INFO -  make[4]: *** Waiting for unfinished jobs....
Flags: needinfo?(mstange.moz)

Sounds like this job is using an older compiler. I'll work around it.

Flags: needinfo?(mstange.moz)
Pushed by mstange@themasta.com: https://hg.mozilla.org/integration/autoland/rev/a5ba00c79413 Add a TouchResampler class. r=kats https://hg.mozilla.org/integration/autoland/rev/9c8f524f9c43 Break HandleMotionEvent into two parts. r=geckoview-reviewers,kats,snorp https://hg.mozilla.org/integration/autoland/rev/97fd4f15e7e9 Resample touch events in Android widget before sending them to APZ. r=geckoview-reviewers,kats,snorp
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 85 Branch
Regressions: 1702504
Regressions: 1763038
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: