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
This additionally introduces a new pref (toolkit.telemetry.isGeckoViewMode)
to discriminate, at runtime, between Fennec and GV in JavaScript code.
Moreover, this disables TelemetryController initialization from content
processes, which was left enabled.
MozReview-Commit-ID: 7VoDorxAhvD
On macOS, the paths for the special directories `GreD` (Resources) vs. `GreBinD`
(MacOS) are different. On other platforms, they are the same.
With scalar loading for artifact builds, we need to load a file from
`Resources`, so `GreD` should be used for this case.
MozReview-Commit-ID: 91JFwOISQCk
On macOS, the paths for the special directories `GreD` (Resources) vs. `GreBinD`
(MacOS) are different. On other platforms, they are the same.
With scalar loading for artifact builds, we need to load a file from
`Resources`, so `GreD` should be used for this case.
MozReview-Commit-ID: 91JFwOISQCk
Before Firefox 58 we collected extended collection from users on nightly,
aurora, and beta. Then we had to change things (see bug 1406391).
In doing so, we accidentally stopped receiving data from "release candidate"
beta builds. This patch resumes that collection by detecting an RC build as
having a MOZ_UPDATE_CHANNEL of "release", but an app.update.channel of "beta"
MozReview-Commit-ID: 3EzzDtQj8Kw
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
This patch enables generating a JSON file that mirrors the scalar definitions
in Scalars.yaml. On local developer builds, this file is loaded when Firefox
starts to register all the scalars. If some change was introduced in the
definition files, the new scalar will be dynamically added.
The JSON definition file will be regenerated every time an artifact build
is performed or the build faster command is invoked.
MozReview-Commit-ID: Do3WjE38aIK
This patch enables generating a JSON file that mirrors the scalar definitions
in Scalars.yaml. On local developer builds, this file is loaded when Firefox
starts to register all the scalars. If some change was introduced in the
definition files, the new scalar will be dynamically added.
The JSON definition file will be regenerated every time an artifact build
is performed or the build faster command is invoked.
MozReview-Commit-ID: Do3WjE38aIK
It seems as though pre-Firefox 40 we did a proto-experiment about what a world
without 3rd-party cookies would look like. Near as I can tell, we never looked
at the results of this exploration.
We have much better experimentation and data exploration techniques now that
would allow us to do something better than this, easier. So at least there's
that.
MozReview-Commit-ID: KaOyB87YjGA
This changes the Telemetry enabling logic so that extended telemetry
gets enabled when MOZILLA_OFFICIAL is not defined and the update
channel is "default", which is the case for local developer builds.
MozReview-Commit-ID: 19vlItyHsKp
This ping will be sent as soon as an update is ready to be applied, after
it's downloaded. This is currently enabled but protected behind the
'toolkit.telemetry.updatePing.enabled' preference.
MozReview-Commit-ID: 4TuM0e5MzBl
Added "TELEMETRY_PENDING_LOAD_MS" & "TELEMETRY_ARCHIVE_LOAD_MS" as exponential histograms.
Added the functionality to save in these histograms the time it takes to load pending/archived pings respectively.
Added the file |test_TelemetryStorage.js| with tests for the added functionality.
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
Currently we hand over a crash ping to the pingsender via a pipe; if the
pingsender fails to send the ping we rely on the CrashManager assembling and
sending one instead. Since the crashmanager is not aware of whether the ping
was sent or not this causes duplication on the server side. To solve this
problem we save the ping to disk instead, read it from the pingsender and
delete the file only if the ping was sent. In this scenario the CrashManager
will know that a ping was already sent and will not send a new one.
This patch removes all the code used to deal with pipes between the telemetry,
crashreporter and pingsender code and also tries to cut down the amount of
platform-specific code we have in this machinery.
MozReview-Commit-ID: ASm2jnDagCK
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
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