From 74eb9b9c1bd7ad5863c84d216fb511fd880df7bd Mon Sep 17 00:00:00 2001 From: mcarare Date: Tue, 8 Mar 2022 18:16:46 +0200 Subject: [PATCH] For #24148: Remove wrapper from tracking protection metrics. --- app/metrics.yaml | 1 + .../mozilla/fenix/components/metrics/Event.kt | 13 ------------ .../components/metrics/GleanMetricsService.kt | 21 +------------------ .../fenix/settings/SettingsFragment.kt | 4 +++- .../settings/TrackingProtectionFragment.kt | 15 ++----------- .../quicksettings/QuickSettingsController.kt | 6 +++--- .../TrackingProtectionPanelDialogFragment.kt | 6 +++--- .../TrackingProtectionPanelView.kt | 6 +++--- 8 files changed, 16 insertions(+), 56 deletions(-) diff --git a/app/metrics.yaml b/app/metrics.yaml index 6c629cdb8..ea22e8ef3 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -4394,6 +4394,7 @@ tracking_protection: extra_keys: etp_setting: description: "The new setting for ETP: strict, standard, custom" + type: string bugs: - https://github.com/mozilla-mobile/fenix/issues/5312 - https://github.com/mozilla-mobile/fenix/issues/11063 diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt index e6a8f06da..bf3774ff8 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Event.kt @@ -23,7 +23,6 @@ import org.mozilla.fenix.GleanMetrics.SearchShortcuts import org.mozilla.fenix.GleanMetrics.SearchTerms import org.mozilla.fenix.GleanMetrics.ToolbarSettings import org.mozilla.fenix.GleanMetrics.TopSites -import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.R import org.mozilla.fenix.ext.name import java.util.Locale @@ -141,11 +140,6 @@ sealed class Event { object TopSiteContilePrivacy : Event() object GoogleTopSiteRemoved : Event() object BaiduTopSiteRemoved : Event() - object TrackingProtectionTrackerList : Event() - object TrackingProtectionIconPressed : Event() - object TrackingProtectionSettingsPanel : Event() - object TrackingProtectionSettings : Event() - object TrackingProtectionException : Event() object OpenLogins : Event() object OpenOneLogin : Event() object CopyLogin : Event() @@ -406,13 +400,6 @@ sealed class Event { get() = hashMapOf(Events.openedLinkKeys.mode to mode.name) } - data class TrackingProtectionSettingChanged(val setting: Setting) : Event() { - enum class Setting { STRICT, STANDARD, CUSTOM } - - override val extras: Map? - get() = hashMapOf(TrackingProtection.etpSettingChangedKeys.etpSetting to setting.name) - } - data class SaveLoginsSettingChanged(val setting: Setting) : Event() { enum class Setting { NEVER_SAVE, ASK_TO_SAVE } diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt index 85b5c3b9b..10bd8e3ed 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt @@ -54,7 +54,6 @@ import org.mozilla.fenix.GleanMetrics.Tab import org.mozilla.fenix.GleanMetrics.Tabs import org.mozilla.fenix.GleanMetrics.ToolbarSettings import org.mozilla.fenix.GleanMetrics.TopSites -import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.GleanMetrics.VoiceSearch import org.mozilla.fenix.GleanMetrics.Wallpapers import org.mozilla.fenix.ext.components @@ -455,25 +454,7 @@ private val Event.wrapper: EventWrapper<*>? is Event.NotificationMediaPause -> EventWrapper( { MediaNotification.pause.record(it) } ) - is Event.TrackingProtectionTrackerList -> EventWrapper( - { TrackingProtection.etpTrackerList.record(it) } - ) - is Event.TrackingProtectionIconPressed -> EventWrapper( - { TrackingProtection.etpShield.record(it) } - ) - is Event.TrackingProtectionSettingsPanel -> EventWrapper( - { TrackingProtection.panelSettings.record(it) } - ) - is Event.TrackingProtectionSettings -> EventWrapper( - { TrackingProtection.etpSettings.record(it) } - ) - is Event.TrackingProtectionException -> EventWrapper( - { TrackingProtection.exceptionAdded.record(it) } - ) - is Event.TrackingProtectionSettingChanged -> EventWrapper( - { TrackingProtection.etpSettingChanged.record(it) }, - { TrackingProtection.etpSettingChangedKeys.valueOf(it) } - ) + is Event.OpenedLink -> EventWrapper( { Events.openedLink.record(it) }, { Events.openedLinkKeys.valueOf(it) } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt index b1df94e88..ee0ffec7c 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -34,8 +34,10 @@ import mozilla.components.concept.sync.AuthType import mozilla.components.concept.sync.OAuthAccount import mozilla.components.concept.sync.Profile import mozilla.components.support.ktx.android.view.showKeyboard +import mozilla.telemetry.glean.private.NoExtras import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.Config +import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event @@ -248,7 +250,7 @@ class SettingsFragment : PreferenceFragmentCompat() { SettingsFragmentDirections.actionSettingsFragmentToSearchEngineFragment() } resources.getString(R.string.pref_key_tracking_protection_settings) -> { - requireContext().metrics.track(Event.TrackingProtectionSettings) + TrackingProtection.etpSettings.record(NoExtras()) SettingsFragmentDirections.actionSettingsFragmentToTrackingProtectionFragment() } resources.getString(R.string.pref_key_site_permissions) -> { diff --git a/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt index e4bf34cfe..a71c06900 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/TrackingProtectionFragment.kt @@ -13,12 +13,11 @@ import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreference import org.mozilla.fenix.BrowserDirection +import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R -import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav -import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.trackingprotection.TrackingProtectionMode @@ -106,20 +105,10 @@ class TrackingProtectionFragment : PreferenceFragmentCompat() { val radio = requirePreference(mode.preferenceKey) radio.contentDescription = getString(mode.contentDescriptionRes) - val metrics = requireComponents.analytics.metrics radio.onClickListener { updateCustomOptionsVisibility() updateTrackingProtectionPolicy() - when (mode) { - TrackingProtectionMode.STANDARD -> - Event.TrackingProtectionSettingChanged.Setting.STANDARD - TrackingProtectionMode.STRICT -> - Event.TrackingProtectionSettingChanged.Setting.STRICT - TrackingProtectionMode.CUSTOM -> - Event.TrackingProtectionSettingChanged.Setting.CUSTOM - }.let { setting -> - metrics.track(Event.TrackingProtectionSettingChanged(setting)) - } + TrackingProtection.etpSettingChanged.record(TrackingProtection.EtpSettingChangedExtra(mode.name)) } radio.onInfoClickListener { diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt index efbc1531e..76d51862d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsController.kt @@ -17,11 +17,11 @@ import mozilla.components.feature.session.SessionUseCases.ReloadUrlUseCase import mozilla.components.feature.tabs.TabsUseCases.AddNewTabUseCase import mozilla.components.support.base.feature.OnNeedToRequestPermissions import mozilla.components.support.ktx.kotlin.getOrigin +import mozilla.telemetry.glean.private.NoExtras +import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.components.PermissionStorage -import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.settings.PhoneFeature import org.mozilla.fenix.settings.quicksettings.ext.shouldBeEnabled import org.mozilla.fenix.settings.toggle @@ -194,7 +194,7 @@ class DefaultQuickSettingsController( if (isEnabled) { trackingProtectionUseCases.removeException(session.id) } else { - context.metrics.track(Event.TrackingProtectionException) + TrackingProtection.exceptionAdded.record(NoExtras()) trackingProtectionUseCases.addException(session.id) } diff --git a/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelDialogFragment.kt index 1e1452548..7bb32edae 100644 --- a/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelDialogFragment.kt @@ -36,13 +36,13 @@ import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.log.logger.Logger import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifAnyChanged import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifChanged +import mozilla.telemetry.glean.private.NoExtras import org.mozilla.fenix.BrowserDirection +import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.components.StoreProvider -import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.databinding.FragmentTrackingProtectionBinding -import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.settings.SupportUtils @@ -143,7 +143,7 @@ class TrackingProtectionPanelDialogFragment : AppCompatDialogFragment(), UserInt } private fun openTrackingProtectionSettings() { - requireContext().metrics.track(Event.TrackingProtectionSettingsPanel) + TrackingProtection.panelSettings.record(NoExtras()) nav( R.id.trackingProtectionPanelDialogFragment, TrackingProtectionPanelDialogFragmentDirections.actionGlobalTrackingProtectionFragment() diff --git a/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelView.kt b/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelView.kt index 0c7570be0..6c157d6eb 100644 --- a/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelView.kt +++ b/app/src/main/java/org/mozilla/fenix/trackingprotection/TrackingProtectionPanelView.kt @@ -20,11 +20,11 @@ import androidx.core.view.isVisible import mozilla.components.browser.state.state.CustomTabSessionState import mozilla.components.concept.engine.content.blocking.TrackerLog import mozilla.components.support.ktx.kotlin.tryGetHostFromUrl +import mozilla.telemetry.glean.private.NoExtras +import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.R -import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.databinding.ComponentTrackingProtectionPanelBinding import org.mozilla.fenix.ext.addUnderline -import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.trackingprotection.TrackingProtectionCategory.CROSS_SITE_TRACKING_COOKIES import org.mozilla.fenix.trackingprotection.TrackingProtectionCategory.CRYPTOMINERS import org.mozilla.fenix.trackingprotection.TrackingProtectionCategory.FINGERPRINTERS @@ -258,7 +258,7 @@ class TrackingProtectionPanelView( override fun onClick(v: View) { val category = getCategory(v) ?: return - v.context.metrics.track(Event.TrackingProtectionTrackerList) + TrackingProtection.etpTrackerList.record(NoExtras()) shouldFocusAccessibilityView = true interactor.openDetails(category, categoryBlocked = !isLoaded(v)) }