Bug 1364478 - Add edge case documentation for the 'new-profile' ping. r?gfritzsche
MozReview-Commit-ID: 2sJuJuLELf2
--- a/toolkit/components/telemetry/docs/data/new-profile-ping.rst
+++ b/toolkit/components/telemetry/docs/data/new-profile-ping.rst
@@ -32,8 +32,30 @@ startup. If it contains ``shutdown``, th
ping was scheduled. In the latter case, the ping is generated during shutdown and sent
using the :doc:`../internals/pingsender`.
Duplicate pings
---------------
We expect a low fraction of duplicates of this ping, mostly due to crashes happening
right after sending the ping and before the telemetry state gets flushed to the disk. This should
be fairly low in practice and manageable during the analysis phase.
+
+Expected behaviours
+-------------------
+The following is a list of conditions and expected behaviours for the ``new-profile`` ping:
+
+- **The ping is generated at the browser shutdown on a new profile, after the privacy policy is displayed:**
+
+ - *for an user initiated browser shutdown*, ``new-profile`` is sent immediately using the :doc:`../internals/pingsender`;
+ - *for a browser shutdown triggered by OS shutdown*, ``new-profile`` is saved to disk and sent next time the browser restarts.
+- **The ping is generated before the privacy policy is displayed**: ``new-profile`` is saved to disk and sent
+ next time the browser restarts.
+- **The ping is set to be generated and Telemetry is disabled**: ``new-profile`` is never sent, even if Telemetry is
+ turned back on later.
+- **Firefox crashes before the ping can be generated**: ``new-profile`` will be scheduled to be generated and
+ sent again on the next restart.
+- **User performs a profile refresh**:
+
+ - *the ping was already sent*: ``new-profile`` will not be sent again.
+ - *the ping was not sent*: ``new-profile`` will be generated and sent.
+ - *the refresh happens immediately after the profile creation, before the policy is shown*: ``new-profile`` will not be sent again.
+- **Firefox is run with an old profile that already sent Telemetry data**: ``new-profile`` will not be generated
+ nor sent.