This takes the TLS Error Reporting functionality used in the aboutNetError.xhtml
and aboutCertError.xhtml error pages and moves it to its own component. This
allows us to make use of this same error reporting functionality from elsewhere.
Notably, this allows us to send error reports for issues that occur when loading
subresources.
The xpcshell test included is in security/manager/ssl/tests because we need to
make use of tlsserver functionality from the PSM tests.
We also remove the special case for updating mSuggestClient when
search engines are modified during private browsing - this causes
a weird edge case where we potentially show history suggestions
after switching search engines (this seems to be because having
mSuggestClient == null avoids us even reaching the stage where
we usually recycle unneeded suggestions).
We also remove the special case for updating mSuggestClient when
search engines are modified during private browsing - this causes
a weird edge case where we potentially show history suggestions
after switching search engines (this seems to be because having
mSuggestClient == null avoids us even reaching the stage where
we usually recycle unneeded suggestions).
We generate the experiments in the TelemetryPingGenerator, rather than passing
them into the Intent, meaning that if the UploadSerivce gets killed and the
Intent gets redelivered, the experiments will be re-generated and there is a
chance the uploaded document won't be identical to the one that would have been
uploaded (or was uploaded, if the service is killed after the upload occurs).
The way to fix this is to pass the experiments into the Intent so it gets
redelivered identically.
However, it's not worth making the documents identical for the moment. It will
be fixed when we implement the functionality to reupload already-generated
documents which we believe to have failed to upload (which is necessary for us
to specify "counts since last ping").
DONTBUILD NPOTB
This is a convenience, and a look ahead to a Gradle-based future. The
reason to do this is that front-end builds don't (really) support
testing, so we set --disable-tests. However, this means that
mobile/android/tests/browser/robocop doesn't get processed at build
time, and that means the Robocop manifest doesn't get preprocessed.
Rather than hack generating the Robocop manifest in, let's skate to
where the puck is going and just use Gradle where appropriate.
The default configuration is now localDebug for API 21+, and
localOldDebug for <API 21. This actually paves the way nicely for
automation builds; previously, I was intending to use debug and
release to for local and automation builds, respectively, but this is
more clear.