For #22155 - Inactive tabs count telemetry

A quantity probe in the metrics ping means we'll loose the granularity events
provided but it will be easier to extract the values.

For reporting whether the inactive tabs feature is enabled or not we already
have the "preferences.inactive_tabs_enabled" probe so I didn't duplicate this.
upstream-sync
Mugurell 3 years ago committed by mergify[bot]
parent a46905b5e7
commit 207e85e59d

@ -1315,6 +1315,23 @@ metrics:
notification_emails:
- android-probes@mozilla.com
expires: "2022-02-01"
inactive_tabs_count:
type: quantity
lifetime: application
description: |
How many inactive tabs does the user have.
send_in_pings:
- metrics
bugs:
- https://github.com/mozilla-mobile/fenix/issues/22155
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/22163#issuecomment-957636802
data_sensitivity:
- interaction
notification_emails:
- android-probes@mozilla.com
expires: "2022-02-01"
unit: integer
customize_home:
most_visited_sites:

@ -81,6 +81,7 @@ import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MozillaProductDetector
import org.mozilla.fenix.components.toolbar.ToolbarPosition
import org.mozilla.fenix.perf.MarkersActivityLifecycleCallbacks
import org.mozilla.fenix.tabstray.ext.inactiveTabs
import org.mozilla.fenix.utils.Settings
/**
@ -627,6 +628,8 @@ open class FenixApplication : LocaleAwareApplication(), Provider {
tabViewSetting.set(settings.getTabViewPingString())
closeTabSetting.set(settings.getTabTimeoutPingString())
inactiveTabsCount.set(browserStore.state.inactiveTabs.size.toLong())
val installSourcePackage = if (SDK_INT >= Build.VERSION_CODES.R) {
packageManager.getInstallSourceInfo(packageName).installingPackageName
} else {

@ -11,6 +11,7 @@ import io.mockk.Runs
import io.mockk.every
import io.mockk.just
import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.spyk
import io.mockk.verify
import mozilla.components.browser.state.store.BrowserStore
@ -32,6 +33,7 @@ import org.mozilla.fenix.GleanMetrics.SearchDefaultEngine
import org.mozilla.fenix.components.metrics.MozillaProductDetector
import org.mozilla.fenix.components.toolbar.ToolbarPosition
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
import org.mozilla.fenix.tabstray.ext.inactiveTabs
import org.mozilla.fenix.utils.BrowsersCache
import org.mozilla.fenix.utils.Settings
import org.robolectric.annotation.Config
@ -141,8 +143,13 @@ class FenixApplicationTest {
every { settings.searchTermTabGroupsAreEnabled } returns true
every { application.reportHomeScreenMetrics(settings) } just Runs
every { settings.inactiveTabsAreEnabled } returns true
mockkStatic("org.mozilla.fenix.tabstray.ext.TabSelectorsKt") {
every { browserStore.state.inactiveTabs } returns listOf(mockk(), mockk())
application.setStartupMetrics(browserStore, settings, browsersCache, mozillaProductDetector)
application.setStartupMetrics(browserStore, settings, browsersCache, mozillaProductDetector)
assertEquals(2, Metrics.inactiveTabsCount.testGetValue())
}
// Verify that browser defaults metrics are set.
assertEquals("Mozilla", Metrics.distributionId.testGetValue())

Loading…
Cancel
Save