pingsOverdue is a telemetry-specific data field that is not used anymore.
Therefore it is being removed from both the docs and TelemetrySession.jsm
The logic that exports and computes the overdue pings count, and all related
code, is also removed.
Associated test failure (due to performing the above) is fixed by removing the
offending test code.
MozReview-Commit-ID: DZUapvZbC9U
This also removes any redundant Ci.nsISupports elements in the interface
lists.
This was done using the following script:
acecb401b7/processors/chromeutils-generateQI.jsm
MozReview-Commit-ID: AIx10P8GpZY
These issues were previously ignored due to the nature of our global import
rules. They need to be fixed before that rule can be updated.
MozReview-Commit-ID: DCChktTc5TW
We don't need or want cookies sent to incoming.tmo. It just throws them on the
floor, but we needn't waste clients' bandwidth on it.
MozReview-Commit-ID: F9WjcDyKFGN
bug 1397293 introduced a mechanism by which we would bail out early in trying
to send a ping if we were trying to send it after the network had been torn
down.
Unfortunately, it did so indistinguishably from the case where we weren't
allowed to send pings, so we neglected to save the ping (as "pending") and
just archived it.
This change cleanly rejects the ping, and correctly tests that the rejected
ping is persisted, not just ephemerally hanging in memory for but a few moments
longer.
MozReview-Commit-ID: 2g8cpeBEzSE
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
TelemetrySend may at any time be notified it can upload. This includes before
when setup() is called. Since setup will attempt to upload when it runs, we can
safely ignore a too-early notify.
MozReview-Commit-ID: 9aeYitCpcIJ
TelemetrySend may at any time be notified it can upload. This includes before
when setup() is called. Since setup will attempt to upload when it runs, we can
safely ignore a too-early notify.
MozReview-Commit-ID: 9aeYitCpcIJ
This adds an attribute 'noShell' to nsIProcess that is used to launch a process
using CreateProcess() if we are sure we are launching an executable and don't
require the extra work of the Windows shell service.
MozReview-Commit-ID: 7p0iHCZK1uX
Once networking starts tearing down, our attempts to use XHR to send pings
will fail. This might contibute to high intermittent send failures reported
in the wild. So let's not even try.
But, let's be sure to mention when we decide not to try so we can ensure the
numbers line up before and after.
MozReview-Commit-ID: 71QGM7Xk5oc
This patch uses the functionality introduced in bug 1366711 to launch the
pingsender without showing its console window nor a mouse throbber. This also
reverts the pingsender into a console application.
MozReview-Commit-ID: BTcqAkR9UKB
It schedules the ping to be sent on new profiles after 30 minutes
from the Firefox startup. The ping is eventually sent at shutdown
if the scheduled time wasn't reached.
To reliably prevent sending the ping more than once, the "session-state.json"
file is used to keep track of the "sent" state.
The "new-profile" ping is protected behind a pref, disabled by default
in this patch.
MozReview-Commit-ID: 4g4lPRXe9q6
Roughly one in three telemetry sends fail according to telemetry.mozilla.org.
Unfortunately, we have little idea about why.
This patch logs the failure paths in an effort to identify the worst offenders.
This is a temporary measure not meant to survive for long.
The data it gathers will be used to write appropriate longer-term error probes.
MozReview-Commit-ID: 9IMrLNH2AD
When sending the shutdown ping we launched the pingsender executable via
PR_CreateProcessDetached() which on both Linux and MacOS X would fork()
gecko's main process and then exec() the pingsender executable. On MacOS X
this seemed to trigger a race with the mozalloc shutdown procedure within the
forked process. This patch changes the telemetry logic to use nsIProcess
instead which relies on posix_spawnp() to launch the new executable making it
immune to issues related to mozalloc's shutdown.
Since we don't need C++ code anymore to run the pingsender the runPingSender()
method is also moved to TelemtrySend.
MozReview-Commit-ID: C7fZw1ZpVBO