gecko-dev/services/healthreport
Nick Alexander 0481627d39 Bug 848519 - Part 3: Replace services-common/preferences.js with gre/modules/Preferences.jsm in imports. r=gavin 2013-04-15 12:45:37 -07:00
..
modules-testing Bug 847662 - Part 1: Rename Metrics.Collector -> Metrics.ProviderManager; r=rnewman 2013-03-07 05:06:46 -08:00
tests Bug 848519 - Part 3: Replace services-common/preferences.js with gre/modules/Preferences.jsm in imports. r=gavin 2013-04-15 12:45:37 -07:00
HealthReport.jsm Bug 828540 - Part 1: Health Report provider for recording search counts; r=rnewman 2013-02-12 16:32:43 -08:00
HealthReportComponents.manifest Bug 853138 - Provide channel-specific provider categories. r=gps 2013-03-21 20:13:56 -07:00
Makefile.in Bug 853138 - Follow-up: don't include own prefs file. r=gps 2013-03-21 21:00:05 -07:00
README.rst Bug 842393 - Documentation for Firefox Health Report; r=rnewman 2013-02-18 16:11:50 -08:00
healthreport-prefs.js Bug 855860 - Preferences to control logging to terminal; r=rnewman 2013-03-28 20:06:05 -07:00
healthreporter.jsm Bug 848519 - Part 3: Replace services-common/preferences.js with gre/modules/Preferences.jsm in imports. r=gavin 2013-04-15 12:45:37 -07:00
moz.build Bug 855465 - Add emacs python mode comments to moz.build files; r=gps 2013-04-01 11:36:59 -07:00
profile.jsm Bug 841074 - Statically declare fields on FHR measurements; r=rnewman 2013-02-21 14:11:54 -08:00
providers.jsm Bug 848519 - Part 3: Replace services-common/preferences.js with gre/modules/Preferences.jsm in imports. r=gavin 2013-04-15 12:45:37 -07:00

README.rst

=====================
Firefox Health Report
=====================

This directory contains the implementation of the Firefox Health Report
(FHR).

Firefox Health Report is a background service that collects application
metrics and periodically submits them to a central server.

Implementation Notes
====================

healthreporter.jsm contains the main interface for FHR, the
*HealthReporter* type. An instance of this is created by the data
reporting service. See /services/datareporting/.

providers.jsm contains numerous Metrics.Provider and Metrics.Measurement
used for collecting application metrics. If you are looking for the FHR
probes, this is where they are.

Preferences
===========

Preferences controlling behavior of Firefox Health Report live in the
*datareporting.healthreport.* branch.

Some important preferences are:

* **service.enabled** - Controls whether the entire health report
  service runs. The overall service performs data collection, storing, and
  submission. This is the primary kill switch for Firefox Health Report
  outside of the build system variable. i.e. if you are using an
  official Firefox build and wish to disable FHR, this is what you
  should change.

* **uploadEnabled** - Whether uploading of data is enabled. This
  is the preference the checkbox in the UI reflects. If this is
  disabled, FHR still collects data - it just doesn't upload it.

If the entire service is disabled, you lose data collection. This means that
data analysis won't be available because there is no data to analyze!

Registering Providers
=====================

Firefox Health Report providers are registered via the category manager.
See HealthReportComponents.manifest for providers defined in this
directory.

Essentially, the category manager receives the name of a JS type and the
URI of a JSM to import that exports this symbol. At run-time, the
providers registered in the category manager are instantiated. This
allows for a loose coupling of providers which in turns makes managing
the code behind the providers much simpler.

Other Notes
===========

There are many legal and privacy concerns with this code, especially
around the data that is submitted. Changes to submitted data should be
signed off by responsible parties.