Closed Bug 1500465 Opened 2 years ago Closed 6 months ago

Need APIs to measure touch scrolling input latency (Non-WebRender call path) on desktop and GeckoView

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla73
Tracking Status
firefox64 --- wontfix
firefox70 --- wontfix
firefox73 --- fixed

People

(Reporter: mstange, Assigned: sefeng)

References

(Blocks 1 open bug)

Details

(Whiteboard: [gfx-noted])

Attachments

(2 files, 6 obsolete files)

The performance team wants to add level 1 telemetry probes for touch scrolling latency, most importantly on Windows and Android/GeckoView. We may also want to have a Talos test that measures this latency.

We will need to have APIs to get the time that passes between the OS touch event and the composite that presents this touch move to the screen.
The touch events already have a timestamp on them (if not we can add one), so those can be used to track the time from when the OS gives us the event to the point where APZ uses that event to mutate the scroll position. However past that point there's a many-to-one collapsing where multiple touch events can have their effect show up on the screen in a single composite. So we'd somehow have to track all the touch events that were processed by APZ between samplings, and hand that bag of information to the compositor at sample time (or just expose it via an API to be read after a sampling). Then when the compositor presents the frame it can record the telemetry probes for those touch events.

This assumes we only care about touch events that are eventually processed by APZ, and not touch events that preventDefault()'d but then drive some JS scrolling. That would be much harder to track.
Priority: -- → P3
Whiteboard: [gfx-noted]
Blocks: 1505256

Depends on D34912

Depends on D34913

Attachment #9072253 - Attachment is obsolete: true
Attachment #9071953 - Attachment is obsolete: true
Attachment #9071954 - Attachment is obsolete: true
Attachment #9071955 - Attachment is obsolete: true
Attachment #9072258 - Attachment is obsolete: true
Assignee: mstange → ccheung256
Attachment #9075413 - Attachment is obsolete: true
Attachment #9074622 - Attachment description: Bug 1500465 - Measure touch scroll latency and connect to telemetry. r=mstange → Bug 1500465 - Measure touch scroll latency and connect to telemetry.
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/40010303c474
Measure touch scroll latency and connect to telemetry. r=kats
Status: NEW → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla70
Regressions: 1564995

Given the OOM crashes in both automation and affecting real-world users, I'd like to get this backed out unless a fix is forthcoming today. Anybody have objections?

(In reply to Kartikaya Gupta (email:kats@mozilla.com) (away 17-Jul-2019 to Feb-2020) from comment #11)

Given the OOM crashes in both automation and affecting real-world users, I'd like to get this backed out unless a fix is forthcoming today. Anybody have objections?

Yes, we will need to ask for a back out.

Backout by aiakab@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/c4b20b18bf97
Backed out changeset 40010303c474 on request of christina_ for causing OOM crashes in automation. a=backout

Thanks!

Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: mozilla70 → ---

Taking it to address the last review comments.

Assignee: ccheung256 → sefeng
Summary: Need APIs to measure touch scrolling input latency on desktop and GeckoView → Need APIs to measure touch scrolling input latency (Non-WebRender call path) on desktop and GeckoView
Blocks: 1600793
Attachment #9113058 - Flags: data-review?(tdsmith)
Comment on attachment 9113058 [details]
data_collection_review_1500465.txt

Thanks for flagging this for review.

DATA COLLECTION REVIEW RESPONSE:

    Is there or will there be documentation that describes the schema for the ultimate data set available publicly, complete and accurate?

Yes. This collection is Telemetry so is documented in its definitions file [Histograms.json](https://hg.mozilla.org/mozilla-central/file/tip/toolkit/components/telemetry/Histograms.json) and the [Probe Dictionary](https://telemetry.mozilla.org/probe-dictionary/).

    Is there a control mechanism that allows the user to turn the data collection on and off?

Yes. This collection is Telemetry so can be controlled through Firefox's Preferences.

    If the request is for permanent data collection, is there someone who will monitor the data over time?

Yes, :sefeng is responsible.

    Using the category system of data types on the Mozilla wiki, what collection type of data do the requested measurements fall under?

Category 1, Technical.

    Is the data collection request for default-on or default-off?

Default on for all channels.

    Does the instrumentation include the addition of any new identifiers?

No.

    Is the data collection covered by the existing Firefox privacy notice?

Yes.

    Does there need to be a check-in in the future to determine whether to renew the data?

No. This collection is permanent.
Attachment #9113058 - Flags: data-review?(tdsmith) → data-review+
Pushed by sefeng@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/283c7696cf3a
Measure touch scroll latency and connect to telemetry. r=mstange,botond
Status: REOPENED → RESOLVED
Closed: 11 months ago6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73
Regressions: 1606661
You need to log in before you can comment on or make changes to this bug.