This commit:
* Sends the new `awesomebar.{engagement, abandonment}` events when the
user finishes interacting with the awesomebar. These events match
iOS's events of the same name, and Desktop's
`urlbar.{engagement, abandonment}` events.
* Removes the `engagement_abandoned` extra key for the
`awesomebar.{sponsored, non_sponsored}_suggestion_impressed` events,
since they're specific to AMP and Wikipedia suggestions, and are
subsumed by the new events.
This is the first step toward unifying our awesomebar search telemetry
on all our platforms.
The goal of this bug is to get a very basic initial `translate`
interaction using the default determined page language and default
determined user language and begin starting `Controller` and `Interactor`
files.
This bug also sets up `sessionId` as a navigation parameter for
translations.
Fenix currently reports AMP and Wikipedia impressions and clicks in the
`fx-suggest` ping, which intentionally omits the `client_id`. This
complicates experiment analysis, because our tooling relies on the
`client_id`.
This commit adds separate events for impressions and clicks on
sponsored and non-sponsored suggestions to the `events` ping.
* The new `awesomebar.{non_}sponsored_suggestion_clicked` events are
collected the same way as the existing `fx-suggest` ping, and in line
with the other `awesomebar.*_suggestion_clicked` events.
* The new `awesomebar.{non_}sponsored_suggestion_impressed` events are
collected for engaged and abandoned search sessions. In constrast,
the `fx-suggest` ping is only sent for engaged search sessions.
This commit adds a `handleSuggestExceptions` helper to
`FxSuggestStorage` that catches and reports `SuggestApiException`s from
the Suggest Rust component. `handleSuggestExceptions` works like the
existing `handle{Fxa, Places}Exceptions` helpers.
`FxSuggestIngestionWorker`'s retry behavior is unchanged: if ingestion
fails, the exception will now be reported, but the operation will still
be rescheduled using `WorkManager`'s retry mechanism, as before.
We weren't getting submissions for the font telemetry list
and eventually I traced it down to the metric having been expired.
We also need to bump the submission number, otherwise the work
request will be skipped.
Unfortunately, the data we got back was flawed; and I hadn't noticed:
the device information was present, but the font data was just populating
the errors array instead of the fonts array. The FileInputStream on
live devices doesn't support reset, so it's been replaced with two separate
FileInputStreams.
Also bump the integer to cause another resubmission from Nightly users,
and include the submission integer.