Closed Bug 1282974 Opened 8 years ago Closed 3 years ago

Display what data we collect for core ping

Categories

(Firefox for Android Graveyard :: General, defect, P5)

All
Android
defect

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: mcomella, Unassigned)

References

Details

Attachments

(1 file)

Like about:healthreport before it. bug 1244311 is to figure out what we should do with about:healthreport.

It's fairly trivial to create a sample ping payload to show via the TelemetryCorePingBuilder (don't forget to write a test!), but the UI is less so. fwiw, it'd also be fairly trivial to send the sample payload over to js.

Some UI options:
 * Repurpose about:healthreport (in which case, dupe)
 * Add data to about:telemetry
 * Create a new UI for the core ping
 * (if I implement, for efficiency) make a simple Java UI to display the data

Georg, do you think you could help me out by creating the UI for this? I can hook up the java end-points. Would you have a preference on the UI option? Or is there someone else we should consult?
Flags: needinfo?(gfritzsche)
I don't think i have the time right now to help with any nicer UI, although i'm happy to give feedback & help with showing something in about:telemetry.

Showing this in about:telemetry should be a good start (so this can be our one-stop-shop for Telemetry data).
That page is not really end-user friendly though, so we probably need to follow up on bug 1244311 or elsewhere on that UI part.
Maybe Barbara has a better opinion on that part or knows who has?
Flags: needinfo?(gfritzsche)
Flags: needinfo?(ellee)
The most important thing, from a legal / policy perspective, I guess, is to get it in there. I'm not too worried about the way it looks right now.

So Mike, can you take care of adding it to the about:telemetry page?
Georg, I can create a sample JSON blob of the core ping [1] and send it to Javascript – what would I have to do to get it into about:telemetry? We can jump on vidyo if it's easier.

[1]: potentially the most recent one
Flags: needinfo?(gfritzsche)
One simple way to show it now would be to:
* add a "Core ping data" entry to the "Ping data source:" list [0], visible only on Fennec
* we need to change PingPicker.update() to handle the new source [1]
  * e.g. changing the ping source triggers update() at [2]
  * we probably need to switch from the `viewCurrent` approach [3] to a "view type"
* we can just limit the "Ping data display:" choice to "Raw JSON" for the core ping (i.e. hitting [4])
* then we render the JSON into the <pre> "raw-ping-data", like [5]

I think that path would be relatively easy and hopefully doesn't break much (overall that page needs a good re-design later at some point).
I'd recommend doing this change on desktop with a fake "core" payload and then just hook it up with the Java part on Fennec.
I'm happy to jump onto Vidyo to clear things up from here.

0: https://dxr.mozilla.org/mozilla-central/rev/88bebcaca249aeaca9197382e89d35b02be8292e/toolkit/content/aboutTelemetry.xhtml#54
1: https://dxr.mozilla.org/mozilla-central/rev/88bebcaca249aeaca9197382e89d35b02be8292e/toolkit/content/aboutTelemetry.js#320
2: https://dxr.mozilla.org/mozilla-central/rev/88bebcaca249aeaca9197382e89d35b02be8292e/toolkit/content/aboutTelemetry.js#312
3: https://dxr.mozilla.org/mozilla-central/rev/88bebcaca249aeaca9197382e89d35b02be8292e/toolkit/content/aboutTelemetry.js#321
4: https://dxr.mozilla.org/mozilla-central/rev/88bebcaca249aeaca9197382e89d35b02be8292e/toolkit/content/aboutTelemetry.js#479
5: https://dxr.mozilla.org/mozilla-central/rev/88bebcaca249aeaca9197382e89d35b02be8292e/toolkit/content/aboutTelemetry.js#1847-1848
Flags: needinfo?(gfritzsche)
Attached image abouttelemetry.png
Flags: needinfo?(ellee)
I attached a picture of how desktop about:telemetry handles multiple ping types, in case you want to try to use a similar approach.
(In reply to Elvin Lee [:ellee] (use NI please) from comment #6)
> I attached a picture of how desktop about:telemetry handles multiple ping
> types, in case you want to try to use a similar approach.

Georg's solution sounds simplest from a coding perspective so I'm going to go with that.
(In reply to Barbara Bermes [:barbara] from comment #2)
> The most important thing, from a legal / policy perspective, I guess, is to
> get it in there. I'm not too worried about the way it looks right now.

Spoke with Barbara, Elvin, & Marshall via email – this is not actually required. An overview of the data we collect just has to be public, which is currently available for the core ping at [1].

We should include the core ping in about:telemetry, for consistencies' sake, when we have more cycles to spend on this. To be explicit, I'm unassigning to focus on other work.

---
If you wanted to get sample data from Java to implement this, you can either:
 * Use the TelemetryCorePingBuilder with dummy data to create a sample TelemetryPing. Trade-off: this can get out-of-date as new fields are added and the builder will throw if required fields are missing.
 * Record the latest upload in TelemetryCorePingDelegate.execute (or the called method, TelemetryDispatcher.queuePingForUpload since the builder is passed in there). You can record the sample ping in SharedPreferences. Trade-off: more complex code & we won't have a sample if we've never uploaded. Note that this should be the latest upload (e.g. and not the first) so the most recent fields are included. Also, the sample should be persisted so we can provide the data even if we don't try to upload on the current run.

In order to access the data, about:telemetry can send a message to Java once it is opened by the user, and the stored sample ping data can be returned in a response message.

[1]: https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/core-ping.html
Assignee: michael.l.comella → nobody
Hi Joe
Please let me know if we still need to do this
Flags: needinfo?(jcheng)
Based on "Spoke with Barbara, Elvin, & Marshall via email – this is not actually required. An overview of the data we collect just has to be public, which is currently available for the core ping at [1]." I think we are good

are you referring to this? We should include the core ping in about:telemetry, for consistencies' sake, when we have more cycles to spend on this. To be explicit, I'm unassigning to focus on other work.

I'd prioritize this lower than other work
Flags: needinfo?(jcheng)
Priority: -- → P5
Re-triaging per https://bugzilla.mozilla.org/show_bug.cgi?id=1473195

Needinfo :susheel if you think this bug should be re-triaged.
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: