Matthew Finkel pushed to branch tor-browser-99.0.0b3-11.5-1 at The Tor Project / Applications / fenix
Commits:
-
7bdfdab5
by Pier Angelo Vendrame at 2022-05-18T12:16:05+02:00
-
3125a002
by Matthew Finkel at 2022-05-19T17:18:13+00:00
3 changed files:
- app/src/main/java/org/mozilla/fenix/FenixApplication.kt
- app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt
- app/src/main/java/org/mozilla/fenix/components/metrics/MetricController.kt
Changes:
... | ... | @@ -157,6 +157,10 @@ open class FenixApplication : LocaleAwareApplication(), Provider { |
157 | 157 | @OptIn(DelicateCoroutinesApi::class) // GlobalScope usage
|
158 | 158 | protected open fun initializeGlean() {
|
159 | 159 | val telemetryEnabled = settings().isTelemetryEnabled
|
160 | + if (!telemetryEnabled) {
|
|
161 | + logger.debug("Preventing Glean from initializing, since telemetry is disabled")
|
|
162 | + return
|
|
163 | + }
|
|
160 | 164 | |
161 | 165 | logger.debug("Initializing Glean (uploadEnabled=$telemetryEnabled, isFennec=${Config.channel.isFennec})")
|
162 | 166 |
... | ... | @@ -8,6 +8,7 @@ import android.content.Context |
8 | 8 | import mozilla.components.service.glean.Glean
|
9 | 9 | import mozilla.components.service.glean.private.NoExtraKeys
|
10 | 10 | import mozilla.components.support.base.log.logger.Logger
|
11 | +import org.mozilla.fenix.BuildConfig
|
|
11 | 12 | import org.mozilla.fenix.GleanMetrics.Addons
|
12 | 13 | import org.mozilla.fenix.GleanMetrics.AndroidAutofill
|
13 | 14 | import org.mozilla.fenix.GleanMetrics.AppTheme
|
... | ... | @@ -85,6 +86,9 @@ private class EventWrapper<T : Enum<T>>( |
85 | 86 | }
|
86 | 87 | |
87 | 88 | fun track(event: Event) {
|
89 | + if (BuildConfig.DATA_COLLECTION_DISABLED) {
|
|
90 | + return
|
|
91 | + }
|
|
88 | 92 | val extras = if (keyMapper != null) {
|
89 | 93 | event.extras?.mapKeys { (key) ->
|
90 | 94 | keyMapper.invoke(key.toString().asCamelCase())
|
... | ... | @@ -1002,6 +1006,12 @@ class GleanMetricsService( |
1002 | 1006 | private val installationPing = FirstSessionPing(context)
|
1003 | 1007 | |
1004 | 1008 | override fun start() {
|
1009 | + if (BuildConfig.DATA_COLLECTION_DISABLED) {
|
|
1010 | + Logger.debug("Data collection is disabled, not initializing Glean.")
|
|
1011 | + initialized = true
|
|
1012 | + return
|
|
1013 | + }
|
|
1014 | + |
|
1005 | 1015 | logger.debug("Enabling Glean.")
|
1006 | 1016 | // Initialization of Glean already happened in FenixApplication.
|
1007 | 1017 | Glean.setUploadEnabled(true)
|
... | ... | @@ -1029,10 +1039,12 @@ class GleanMetricsService( |
1029 | 1039 | }
|
1030 | 1040 | |
1031 | 1041 | override fun track(event: Event) {
|
1032 | - event.wrapper?.track(event)
|
|
1042 | + if (!BuildConfig.DATA_COLLECTION_DISABLED) {
|
|
1043 | + event.wrapper?.track(event)
|
|
1044 | + }
|
|
1033 | 1045 | }
|
1034 | 1046 | |
1035 | 1047 | override fun shouldTrack(event: Event): Boolean {
|
1036 | - return event.wrapper != null
|
|
1048 | + return !BuildConfig.DATA_COLLECTION_DISABLED && event.wrapper != null
|
|
1037 | 1049 | }
|
1038 | 1050 | } |
... | ... | @@ -151,7 +151,11 @@ internal class ReleaseMetricController( |
151 | 151 | |
152 | 152 | private fun isInitialized(type: MetricServiceType): Boolean = initialized.contains(type)
|
153 | 153 | |
154 | - private fun isTelemetryEnabled(@Suppress("UNUSED_PARAMETER") type: MetricServiceType): Boolean = false
|
|
154 | + private fun isTelemetryEnabled(type: MetricServiceType): Boolean =
|
|
155 | + !BuildConfig.DATA_COLLECTION_DISABLED && when (type) {
|
|
156 | + MetricServiceType.Data -> isDataTelemetryEnabled()
|
|
157 | + MetricServiceType.Marketing -> isMarketingDataTelemetryEnabled()
|
|
158 | + }
|
|
155 | 159 | |
156 | 160 | @Suppress("LongMethod", "MaxLineLength")
|
157 | 161 | private fun Fact.toEvent(): Event? = when {
|