Privacy/Reviews/Telemetry/Measurements
As Telemetry matures and we add more types of data we want to measure, it is important to keep track of what we're gathering and how we're respecting users' privacy. This page lists all of the types of data collected and links to any risk analysis done for the specific measurements.
The current list of histograms collected is in toolkit/components/telemetry/TelemetryHistograms.h
Instead of full reviews on each major type of measurement, a lightweight risk analysis should be performed to quickly document the question each measurement answers as well as actions taken to minimize privacy risks.
Histograms
Histograms that are collected by telemetry are listed in TelemetryHistograms.h, and ones that have review are also listed in the table below.
Relevant Strings
Privacy Policy: http://www.mozilla.com/en-US/legal/privacy/firefox.html#telemetry
Opt-in strings:
- 7-8
- Would you like to help improve Firefox by automatically reporting memory usage, performance, and responsiveness to Mozilla? (link to patch)
- 9+
- Will you help improve Firefox by sending anonymous information about performance, hardware characteristics, feature usage, and browser customizations to Mozilla? (link to patch)
Measurements flagged for Review
Data that's being collected potentially has privacy implications and must undergo a quick risk analysis. These measurements are listed below including any outcomes from the risk analysis.
Get the lightweight-review template here
Undeployed (Not yet in Nightly/Aurora/Beta/Release)
Not yet deployed Measurement | Review Status | Data Format Sample | Notes |
---|---|---|---|
Layers backend | [RESOLVED] in bug | ("Direct3D 9" "Direct3D 10" "OpenGL" "Basic") | bug 721785 |
Add telemetry for startup crash detection | [RESOLVED] covered by opt-in | bug 723802 | |
SSL Certificates and Errors | [ON TRACK] | bug 707275 - not yet landed | |
Encountered Plugin Types | [ON TRACK] open risks | not yet landed | |
Profile Age | [DROPPED] out of scope for telemetry | not yet landed | |
Default Browser Status | [RESOLVED] (19-Oct-2011) complete | bug 679938 - not yet landed | |
Mutation Event Listener Count | [RESOLVED] not needed | two counters | bug 694033 - window instance count and portion with MELs |
Image decode count (# of encoded images per tab) | [RESOLVED] | bug 684091 | |
createTopLevelWindow - timing | [RESOLVED] not needed | bug 686435 | |
cpuid Data - (list of capabilities) | [RESOLVED] in bug | bug 684038 | |
screen and window sizes | [RESOLVED] in bug | bug 683071 (no patch yet) | |
slow prepared statements (sqlite) | [RESOLVED] in bug | SQL prepared statements (without user data, just the structure) | bug 699051 |
Deployed (In Nightly/Aurora/Beta/Release)
Deployed Measurement | Data format/sample | Review Status | Train/Release | Notes |
---|---|---|---|---|
Character Encoding menu used | flag | 22 | bug 840476 | |
Character Encoding menu use situation | enumeration of usage situations (labeled page, unlabeled page, local file or not, etc.) | 22 | bug 840476 | |
Multipart XHR Usage | boolean | [RESOLVED] will determine fate of feature | bug 701361 Measurement removed in train 22 along with the feature whose usage was measured. | |
gfx hardware info | "adapterDescription":"", "adapterVendorID":"0x1002", "adapterDeviceID":"0x944a", "adapterRAM":"", "adapterDriver":"", "adapterDriverVersion":"", "adapterDriverDate":"" | [RESOLVED] needed for gfx regressions | 12 (patch) | bug 706340 |
info.reason | "idle-daily" | [RESOLVED] not needed | 7 | It's always the same string |
info.OS | "Darwin" | [RESOLVED] not needed | 7 (patch) | Short string (in UA) |
info.appID | GUID identifier | [RESOLVED] not needed | 7 (patch) | - |
info.locale | application locale (e.g., "en-US") | [RESOLVED] not needed | 7 (patch) | - |
info.appName | "Firefox" | [RESOLVED] not needed | 7 (patch) | (in UA) |
info.appVersion | "7.0" | [RESOLVED] not needed | 7 (patch) | (in UA) |
info.appBuildID | "20110624030724" | [RESOLVED] not needed | 7 (patch) | Identifies date/time of build |
info.platformBuildID | "20110624030724" | [RESOLVED] not needed | 7 (patch) | same as appBuildID |
info.cpucount | "2" | [RESOLVED] not needed | 7 | number of cores, etc. |
info.memsize | "2922" | [RESOLVED] not needed | 7 | RAM in megabytes |
info.arch | "x86-64" | [RESOLVED] not needed | 7 | cpu architecture |
info.version | "11.0.0" | [RESOLVED] not needed | 7 | os version (in UA) |
info.device | "N810" | [RESOLVED] not needed | 7 | present on mobile only |
info.manufacturer | "Nokia" | [RESOLVED] not needed | 7 | present on mobile only |
info.hardware | "smdkc210" | [RESOLVED] not needed | 7 | Android hardware description (mfr code-name) |
info.persona | "336461" (integer ID) | [RESOLVED] opt-in adjusted for 9 | 9 | Present when a persona is enabled |
info.addons | name/GUID/version of installed addons | [RESOLVED] opt-in adjusted for 9 | 9 | Always present |
simpleMeasurements.uptime | "22" | [RESOLVED] not needed | 7 | application uptime in minutes |
simpleMeasurements.main | "1000" | [RESOLVED] not needed | 7 | milliseconds from startup in main() |
simpleMeasurements.firstPaint | "2000" | [RESOLVED] not needed | 7 | milliseconds from startup to first paint |
simpleMasurements.sessionRestored | "3000" | [RESOLVED] not needed | 7 | milliseconds from startup to session restore |
simpleMeasurements.js.e4x | "0" | [RESOLVED] opt-in adjusted for 9 | 8 (patch) | number of e4x objects created since browser startup |
simpleMeasurements.js.setProto | "0" | [RESOLVED] opt-in adjusted for 9 | 8 (patch) | number of times the __proto__ property has been set |
simpleMeasurements.js.customIter | "0" | [RESOLVED] opt-in adjusted for 9 | 8 (patch) | number of times a custom __iterator__ was used |