These tests are for the testing of the telemetry client. The tests
spin up an http server to capture ping data sent from firefox. The test
test_ping_server_received_ping tests that the ping server is up and running
and that the harness properly waits for the ping data.
MozReview-Commit-ID: 5kIjqgX3YiW
Change the ExperimentsService to get the current value of the preferences (since it only uses them once or twice), so that they match the values in Experiments, and avoid differences causing promises to be rejected in the updateManifest call.
Also fix Experiments to correctly re-enable itself when toolkit.telemetry.enabled is changed from false to true (also fixes bug 1232648).
Finally, add a catch for a promise when calling updateManifest so that we don't get an uncaught promise exception.
MozReview-Commit-ID: GD6gfcRSgbx
This patch fixes the regex defined by IDENTIFIER_PATTERN in
toolkit/components/telemetry/parse_events.py to be less strict and fixes the
relative documentation.
To be precise, before this fix, the regex did not allow the category "ui" (which is described
in the documentation at the webpage
https://gecko.readthedocs.io/en/latest/toolkit/components/telemetry/telemetry/collection/events.html)
to be matched so the documentation was wrong.
The reason for that was that the regex required at least one extra character or
number to be in the string, so for example "uig" would have matched.
With this fix the category "ui" is allowed and matched by the new regex and the documentaion
(https://gecko.readthedocs.io/en/latest/toolkit/components/telemetry/telemetry/collection/events.html#limits)
is updated to reflect the change.
MozReview-Commit-ID: ID2aKOM1v7
The crashreporter client will send a crash ping autonomously only when it
finds a valid TelemetryServerUrl annotation. This patch makes this annotation
conditional on all the preferences that regulate sending pings (including
official telemetry flags) and prevents it from sending pings before the user
has been notified of the privacy policy.
This is achieved by adding a new _annotateCrashReport() method to the
TelemetrySend obejct which can be called before we've initialized the rest of
the components. It is invoked manually early in the startup process so that
startup crashes are properly annotated, then it's invoked again when the user
is informed of the privacy policy as well as when one of the relevant
preferences is altered. This ensures that the annotations are stripped if the
user disables uploading pings without having to restart Firefox.
MozReview-Commit-ID: 2DKnoWGT1Bp
This patch measures the time from an input event creation, to it been
dispatched to PresShell, but just before any handler been executed.
MozReview-Commit-ID: 6ZYra7YYICY
Also, avoid two entirely unused imports.
This avoids loading the various osfile jsms at startup.
The additional shim method for sysinfo is needed in
test_TelemetryEnvironment.js because delaying the intialization of
osfile results in loading osfile_shared_allthreads.jsm after the shim
sysinfo has been added, which initializes
Ci.nsIOSFileConstantsService, which calls into sysinfo in
InitOSFileConstants().
MozReview-Commit-ID: D7IWk20TRt1
This patch changes the crashreporter client code as well as the crash service
code to compute a SHA256 hash of a crash' minidump file and add it to the
crash ping. The crash service code computes the hash on the fly before handing
over the crash to the crash manager; the crash manager will then add it to the
crash ping. The crashreporter client on the other hand sends the hash via the
ping it generates but it also adds it to the event file so that the crash
manager can pick it up and send it along with its own crash ping. On Fennec
the crashreporter activity takes care of computing the hash.
SHA256 hash computation uses nsICryptoHash in the crash service, the
java.security.MessageDigest class in Fennec, the bundled NSS library in the
crashreporter when running on Windows and Mac and the system-provided NSS
library under Linux. The latter is required because the crashreporter client
uses the system curl library which is linked to NSS and which would thus clash
with the bundled one if used together.
This patch introduces two new methods for the nsICrashService interface:
|getMinidumpForID()| and |getExtraFileForID()|, these reliably retrieve the
.dmp and .extra files associated with a crash and ensure the files exist
before returning. These new methods are used in the CrashService for
processing and will become the only way to reliably retrieve those files
from a crash ID.
MozReview-Commit-ID: 8BKvqj6URcO
To gauge the impact of bug 1343995 on perceived shutdown times, we want to measure how long sanitising actually takes in practice on Android.
MozReview-Commit-ID: 3gSfT8IoO70
This patch enables flake8 rule E128:
"continuation line under-indented for visual indent" in toolkit/components/telemetry
by removing the relative E128 entry from toolkit/components/telemetry/.flake8
and fixing the files for which the E128 error was reported.
Precisely 10 errors violating E128 rule were found and solved.
MozReview-Commit-ID: 4sNXIxGFJQN