Closed Bug 1815023 Opened 2 years ago Closed 2 years ago

Send minimal install provenance data via Telemetry

Categories

(Firefox :: Installer, task, P3)

Unspecified
Windows
task

Tracking

()

RESOLVED FIXED
112 Branch
Tracking Status
firefox112 --- fixed

People

(Reporter: bytesized, Assigned: bytesized)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [fidedi-ope])

Attachments

(3 files, 1 obsolete file)

Using the data that we read into AttributionCode (Bug 1815021), we ought to send some metadata via Telemetry.

Initially, this will be very limited. Likely something like this:

  • Whether the file system supports Alternate Data Streams at all, and potentially the file system (e.g. NTFS, FAT, remote SMB/CIFS, other)
  • Whether :Zone.Identifier exists, and if so, what ZoneId is
  • Whether ReferrerURL exists
  • Whether HostURL exists
  • Whether “mozilla.org” and other known fragments/prefixes are in ReferrerURL and/or HostURL

This might be a separate ticket, but can we also try to send this in at least the full installer ping? (The stub installer ping might not be sensible due to https://bugzilla.mozilla.org/show_bug.cgi?id=1811648.) It may be too annoying to parse what we want in a re-usable manner for use in both contexts, but let's at least investigate.

(In reply to Nick Alexander :nalexander [he/him] from comment #1)

This might be a separate ticket, but can we also try to send this in at least the full installer ping? (The stub installer ping might not be sensible due to https://bugzilla.mozilla.org/show_bug.cgi?id=1811648.) It may be too annoying to parse what we want in a re-usable manner for use in both contexts, but let's at least investigate.

I was really hoping to avoid this. If we want to read the provenance data from the INI via NSIS, that's relatively straightforward. But making determinations like "Is this a mozilla URL" from NSIS would actually be quite difficult. And I'm not particularly excited about putting the data in "main ping" telemetry and "full installer ping" telemetry using different parsing mechanisms. Potentially we could make some sort of NSIS plugin that could use code that could be shared with Firefox. But it would probably be very difficult to include any existing code from Firefox without including all of XUL.

Is it going to be a problem not to have it in the full installer ping?

Flags: needinfo?(nalexander)

(In reply to Robin Steuber (they/them) [:bytesized] from comment #2)

(In reply to Nick Alexander :nalexander [he/him] from comment #1)

This might be a separate ticket, but can we also try to send this in at least the full installer ping? (The stub installer ping might not be sensible due to https://bugzilla.mozilla.org/show_bug.cgi?id=1811648.) It may be too annoying to parse what we want in a re-usable manner for use in both contexts, but let's at least investigate.

I was really hoping to avoid this. If we want to read the provenance data from the INI via NSIS, that's relatively straightforward. But making determinations like "Is this a mozilla URL" from NSIS would actually be quite difficult. And I'm not particularly excited about putting the data in "main ping" telemetry and "full installer ping" telemetry using different parsing mechanisms. Potentially we could make some sort of NSIS plugin that could use code that could be shared with Firefox. But it would probably be very difficult to include any existing code from Firefox without including all of XUL.

Yeah, it's going to be unpleasant. And yes, I was thinking of sharing some C++ via an NSIS plugin.

Is it going to be a problem not to have it in the full installer ping?

How about we plan to do this in stages? We don't know if we're going to get valuable data here. Let's do this at first for just Firefox main pings to see if there's a signal. If there is, we'll consider lifting the functionality into the installers, potentially by rewriting as a shared C++ component.

This delays some work that may not, in fact, be necessary. The downside is that there is some drop-off between "install" and "running Firefox (and submitting a new-profile ping)" that we won't see immediately. But that seems a reasonable trade-off.

Flags: needinfo?(nalexander)

This will be most helpful if it's in the new-profile ping and the installation.first_seen event, which we're unifying (a bit) over in Bug 1811374.

Add a function that sets scalars to convey what kind of data is present in the :Zone.Identifier Alternate Data Stream. Also adds testing that the scalars get set correctly.

Does not actually call the function that sends the telemetry. This will be done in the next patch since we need to call it in some slightly different places than we usually would since we want to be sure it is included in the new-profile ping and in the ping with the installation.first_seen event.

Depends on D171817

Assignee: nobody → bytesized
Status: NEW → ASSIGNED

Make sure the the attribution telemetry gets sent in the new-profile ping and the installation.first_seen event.In other cases, send the telemetry when the browser is idle.

Depends on D171818

Attachment #9321539 - Flags: data-review?(chutten)
Attachment #9321539 - Flags: data-review?(chutten) → data-review?(tlong)

Comment on attachment 9321539 [details]
Bug 1815023 data review.md

Data Review

  1. Is there or will there be documentation that describes the schema for the ultimate data set in a public, complete, and accurate way?

Yes, through the Scalars.yaml file and the Probe Dictionary.

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

Yes, through the telemetry preference in the application settings.

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

N/A, collection to end in v121 or be renewed

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

Category 2, Interaction Data

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

Default-on

  1. Does the instrumentation include the addition of any new identifiers (whether anonymous or otherwise; e.g., username, random IDs, etc. See the appendix for more details)?

No

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

Yes

  1. Does the data collection use a third-party collection tool?

No

Result

data-review+

Attachment #9321539 - Flags: data-review?(tlong) → data-review+
Pushed by rsteuber@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fc0d63d3404b Add support for sending attribution provenance data via telemetry r=nalexander,chutten https://hg.mozilla.org/integration/autoland/rev/e9af7f1b2a01 Call function to send attribution provenance telemetry r=nalexander,chutten
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 112 Branch
Blocks: 1821406

Comment on attachment 9322003 [details]
WIP: Bug 1815023 - testProvenance calls should be awaited upon a=testonly

Revision D172074 was moved to bug 1821406. Setting attachment 9322003 [details] to obsolete.

Attachment #9322003 - Attachment is obsolete: true
Duplicate of this bug: 1851624
See Also: → 1855604
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: