* Bug 1820211 - Adds `tabKilled` event to track when a tab was killed with form data.
- Also includes if the tab was the active tab and whether the app was in the foreground.
* Bug 1820211 - Adds tests for TelemetryMiddleware and StoreLifecycleObserver
* Bug 1820211 - Renames CheckFormDataAction to UpdateHasFormData
- Removes @property hasFormData comment from sessionState
- Moves checking formdata from TabContentMiddleware to SessionPrioritizationMiddleware
---------
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Bug 1817245 - new Nimbus feature for controlling client-deduplication ping
This feature will enable/disable the sending of the `client-deduplication`
ping that will be added in a later PR.
* Bug 1817029 - Add the client-deduplication ping
The `client-deduplication` ping will be used to determine if
client IDs are being regenerated erroneously. This ping uses
the lifecycle observers to (almost) replicate the same scheduling
as the baseline ping.
* Bug 1817029 - Suggested changes
changelog
- add `reason` for new ping
- update the unit test for the new ping
- add new metrics
- allow for custom salt when hashing the Ad ID
- move the Nimbus check to the lifecycle observer
- record the new metrics
* Bug 1817029 - Update fenix/.experimenter.yaml
Co-authored-by: Alessio Placitelli <alessio.placitelli@gmail.com>
* Bug 1817029 - remove unnecessary pass-through function
* Bug 1817029 - add the GleanTestRule for tests
* Bug 1817029 - Update fenix/app/src/test/java/org/mozilla/fenix/components/metrics/clientdeduplication/ClientDeduplicationPingTest.kt
Co-authored-by: Travis Long <tlong@mozilla.com>
* Bug 1817029 - remove unnecessary call to main thread
* Bug 1817029 - update comment about hashing
---------
Co-authored-by: Alessio Placitelli <alessio.placitelli@gmail.com>
Co-authored-by: Travis Long <tlong@mozilla.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Since topic specific search engines, like amazon, ebay, etc...
will only show results from those specific websites, they will be filtered
out of the default search engines list.
Re-enable storage maintenance call by introducing WorkManager worker on A-C side and consuming it from Fenix.
The work request is periodic and the repeat interval is 24h. It requires the device to be idle and not to have
low battery. This feature is available only for Nightly for now.
There are three issues here that we have uncovered while investigating
this bug:
1. Settings.kt has a lazy block around `enabledTotalCookieProtection`
which ends up caching the first result it evaluates.
3. The `FeatureHolder` within FxNimbus caches the incorrectly
evaluated value and returns this value hence forth.
4. Nimbus is not ready to return a result for an engine experiment
when we need it early on in the dependency tree initialization.
There are multiple systems that require engine to be initialized for
them to work (e.g. Glean, Profiler, concept-fetch). In our TCP,
experiment, we need to apply these engine settings during the engine
initialization. So when we try and evaluate Nimbus that early on, it
has not had time to initialize itself correctly or even use the
engine's concept-fetch client to return the correct experiment result.
This bug is made worse because of the first two caching bugs where we
are always holding onto a cached value of the wrong result.
Our temporary solution is to:
1. Remove the `lazy` around `Settings.enabledTotalCookieProtection`.
2. Set the `FxNimbus.api` value right after we are done initializing
`FxNimbus` and `NimbusApi` so that all future queries to FxNimbus
will be made against a real instance of `NimbusApi`. This is a
short-term fix for the `FeatureHolder` caching bug.
3. Set a new TrackingProtectionPolicy that will evaluate Nimbus now
that it is in the correct state when receive the
`NimbusInterface.Observer.onUpdatesApplied`.
Co-authored-by: jhugman <jhugman@users.noreply.github.com>
Co-authored-by: Christian Sadilek <christian.sadilek@gmail.com>