mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-15 18:12:54 +00:00
[fenix] For https://github.com/mozilla-mobile/fenix/issues/14565: Add telemetry for top sites
This commit is contained in:
parent
9b874e494b
commit
1a5a88be4b
@ -3195,6 +3195,66 @@ top_sites:
|
|||||||
notification_emails:
|
notification_emails:
|
||||||
- fenix-core@mozilla.com
|
- fenix-core@mozilla.com
|
||||||
expires: "2020-11-15"
|
expires: "2020-11-15"
|
||||||
|
open_frecency:
|
||||||
|
type: event
|
||||||
|
description: |
|
||||||
|
A user opened a frecency top site
|
||||||
|
bugs:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/issues/14565
|
||||||
|
data_reviews:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/pull/15136
|
||||||
|
data_sensitivity:
|
||||||
|
- interaction
|
||||||
|
notification_emails:
|
||||||
|
- fenix-core@mozilla.com
|
||||||
|
expires: "2021-03-15"
|
||||||
|
open_pinned:
|
||||||
|
type: event
|
||||||
|
description: |
|
||||||
|
A user opened a pinned top site
|
||||||
|
bugs:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/issues/14565
|
||||||
|
data_reviews:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/pull/15136
|
||||||
|
data_sensitivity:
|
||||||
|
- interaction
|
||||||
|
notification_emails:
|
||||||
|
- fenix-core@mozilla.com
|
||||||
|
expires: "2021-03-15"
|
||||||
|
swipe_carousel:
|
||||||
|
type: event
|
||||||
|
description: |
|
||||||
|
A user swiped to change the page of the top sites carousel
|
||||||
|
extra_keys:
|
||||||
|
page:
|
||||||
|
description: |
|
||||||
|
The page number the carousel is now on
|
||||||
|
bugs:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/issues/14565
|
||||||
|
data_reviews:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/pull/15136
|
||||||
|
data_sensitivity:
|
||||||
|
- interaction
|
||||||
|
notification_emails:
|
||||||
|
- fenix-core@mozilla.com
|
||||||
|
expires: "2021-03-15"
|
||||||
|
long_press:
|
||||||
|
type: event
|
||||||
|
description: |
|
||||||
|
A user long pressed on a top site
|
||||||
|
extra_keys:
|
||||||
|
type:
|
||||||
|
description: |
|
||||||
|
The type of top site. Options are: "FRECENCY," "DEFAULT," or "PINNED."
|
||||||
|
bugs:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/issues/14565
|
||||||
|
data_reviews:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/pull/15136
|
||||||
|
data_sensitivity:
|
||||||
|
- interaction
|
||||||
|
notification_emails:
|
||||||
|
- fenix-core@mozilla.com
|
||||||
|
expires: "2021-03-15"
|
||||||
open_in_new_tab:
|
open_in_new_tab:
|
||||||
type: event
|
type: event
|
||||||
description: |
|
description: |
|
||||||
|
@ -7,6 +7,7 @@ package org.mozilla.fenix.components.metrics
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import mozilla.components.browser.errorpages.ErrorType
|
import mozilla.components.browser.errorpages.ErrorType
|
||||||
import mozilla.components.browser.search.SearchEngine
|
import mozilla.components.browser.search.SearchEngine
|
||||||
|
import mozilla.components.feature.top.sites.TopSite
|
||||||
import org.mozilla.fenix.GleanMetrics.Addons
|
import org.mozilla.fenix.GleanMetrics.Addons
|
||||||
import org.mozilla.fenix.GleanMetrics.AppTheme
|
import org.mozilla.fenix.GleanMetrics.AppTheme
|
||||||
import org.mozilla.fenix.GleanMetrics.Autoplay
|
import org.mozilla.fenix.GleanMetrics.Autoplay
|
||||||
@ -21,6 +22,7 @@ import org.mozilla.fenix.GleanMetrics.ProgressiveWebApp
|
|||||||
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
|
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
|
||||||
import org.mozilla.fenix.GleanMetrics.Tip
|
import org.mozilla.fenix.GleanMetrics.Tip
|
||||||
import org.mozilla.fenix.GleanMetrics.ToolbarSettings
|
import org.mozilla.fenix.GleanMetrics.ToolbarSettings
|
||||||
|
import org.mozilla.fenix.GleanMetrics.TopSites
|
||||||
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
@ -121,6 +123,8 @@ sealed class Event {
|
|||||||
object NotificationMediaPlay : Event()
|
object NotificationMediaPlay : Event()
|
||||||
object NotificationMediaPause : Event()
|
object NotificationMediaPause : Event()
|
||||||
object TopSiteOpenDefault : Event()
|
object TopSiteOpenDefault : Event()
|
||||||
|
object TopSiteOpenFrecent : Event()
|
||||||
|
object TopSiteOpenPinned : Event()
|
||||||
object TopSiteOpenInNewTab : Event()
|
object TopSiteOpenInNewTab : Event()
|
||||||
object TopSiteOpenInPrivateTab : Event()
|
object TopSiteOpenInPrivateTab : Event()
|
||||||
object TopSiteRemoved : Event()
|
object TopSiteRemoved : Event()
|
||||||
@ -191,6 +195,16 @@ sealed class Event {
|
|||||||
|
|
||||||
// Interaction events with extras
|
// Interaction events with extras
|
||||||
|
|
||||||
|
data class TopSiteSwipeCarousel(val page: Int) : Event() {
|
||||||
|
override val extras: Map<TopSites.swipeCarouselKeys, String>?
|
||||||
|
get() = hashMapOf(TopSites.swipeCarouselKeys.page to page.toString())
|
||||||
|
}
|
||||||
|
|
||||||
|
data class TopSiteLongPress(val type: TopSite.Type) : Event() {
|
||||||
|
override val extras: Map<TopSites.longPressKeys, String>?
|
||||||
|
get() = hashMapOf(TopSites.longPressKeys.type to type.name)
|
||||||
|
}
|
||||||
|
|
||||||
data class ProgressiveWebAppForeground(val timeForegrounded: Long) : Event() {
|
data class ProgressiveWebAppForeground(val timeForegrounded: Long) : Event() {
|
||||||
override val extras: Map<ProgressiveWebApp.foregroundKeys, String>?
|
override val extras: Map<ProgressiveWebApp.foregroundKeys, String>?
|
||||||
get() = mapOf(ProgressiveWebApp.foregroundKeys.timeMs to timeForegrounded.toString())
|
get() = mapOf(ProgressiveWebApp.foregroundKeys.timeMs to timeForegrounded.toString())
|
||||||
|
@ -517,6 +517,12 @@ private val Event.wrapper: EventWrapper<*>?
|
|||||||
is Event.TopSiteOpenDefault -> EventWrapper<NoExtraKeys>(
|
is Event.TopSiteOpenDefault -> EventWrapper<NoExtraKeys>(
|
||||||
{ TopSites.openDefault.record(it) }
|
{ TopSites.openDefault.record(it) }
|
||||||
)
|
)
|
||||||
|
is Event.TopSiteOpenFrecent -> EventWrapper<NoExtraKeys>(
|
||||||
|
{ TopSites.openFrecency.record(it) }
|
||||||
|
)
|
||||||
|
is Event.TopSiteOpenPinned -> EventWrapper<NoExtraKeys>(
|
||||||
|
{ TopSites.openPinned.record(it) }
|
||||||
|
)
|
||||||
is Event.TopSiteOpenInNewTab -> EventWrapper<NoExtraKeys>(
|
is Event.TopSiteOpenInNewTab -> EventWrapper<NoExtraKeys>(
|
||||||
{ TopSites.openInNewTab.record(it) }
|
{ TopSites.openInNewTab.record(it) }
|
||||||
)
|
)
|
||||||
@ -526,6 +532,14 @@ private val Event.wrapper: EventWrapper<*>?
|
|||||||
is Event.TopSiteRemoved -> EventWrapper<NoExtraKeys>(
|
is Event.TopSiteRemoved -> EventWrapper<NoExtraKeys>(
|
||||||
{ TopSites.remove.record(it) }
|
{ TopSites.remove.record(it) }
|
||||||
)
|
)
|
||||||
|
is Event.TopSiteLongPress -> EventWrapper(
|
||||||
|
{ TopSites.longPress.record(it) },
|
||||||
|
{ TopSites.longPressKeys.valueOf(it) }
|
||||||
|
)
|
||||||
|
is Event.TopSiteSwipeCarousel -> EventWrapper(
|
||||||
|
{ TopSites.swipeCarousel.record(it) },
|
||||||
|
{ TopSites.swipeCarouselKeys.valueOf(it) }
|
||||||
|
)
|
||||||
is Event.SupportTapped -> EventWrapper<NoExtraKeys>(
|
is Event.SupportTapped -> EventWrapper<NoExtraKeys>(
|
||||||
{ AboutPage.supportTapped.record(it) }
|
{ AboutPage.supportTapped.record(it) }
|
||||||
)
|
)
|
||||||
|
@ -98,7 +98,7 @@ interface SessionControlController {
|
|||||||
/**
|
/**
|
||||||
* @see [TopSiteInteractor.onSelectTopSite]
|
* @see [TopSiteInteractor.onSelectTopSite]
|
||||||
*/
|
*/
|
||||||
fun handleSelectTopSite(url: String, isDefault: Boolean)
|
fun handleSelectTopSite(url: String, type: TopSite.Type)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see [OnboardingInteractor.onStartBrowsingClicked]
|
* @see [OnboardingInteractor.onStartBrowsingClicked]
|
||||||
@ -302,11 +302,14 @@ class DefaultSessionControlController(
|
|||||||
metrics.track(Event.CollectionRenamePressed)
|
metrics.track(Event.CollectionRenamePressed)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun handleSelectTopSite(url: String, isDefault: Boolean) {
|
override fun handleSelectTopSite(url: String, type: TopSite.Type) {
|
||||||
metrics.track(Event.TopSiteOpenInNewTab)
|
metrics.track(Event.TopSiteOpenInNewTab)
|
||||||
if (isDefault) {
|
when (type) {
|
||||||
metrics.track(Event.TopSiteOpenDefault)
|
TopSite.Type.DEFAULT -> metrics.track(Event.TopSiteOpenDefault)
|
||||||
|
TopSite.Type.FRECENT -> metrics.track(Event.TopSiteOpenFrecent)
|
||||||
|
TopSite.Type.PINNED -> metrics.track(Event.TopSiteOpenPinned)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (url == SupportUtils.POCKET_TRENDING_URL) {
|
if (url == SupportUtils.POCKET_TRENDING_URL) {
|
||||||
metrics.track(Event.PocketTopSiteClicked)
|
metrics.track(Event.PocketTopSiteClicked)
|
||||||
}
|
}
|
||||||
|
@ -167,9 +167,9 @@ interface TopSiteInteractor {
|
|||||||
* Selects the given top site. Called when a user clicks on a top site.
|
* Selects the given top site. Called when a user clicks on a top site.
|
||||||
*
|
*
|
||||||
* @param url The URL of the top site.
|
* @param url The URL of the top site.
|
||||||
* @param isDefault Whether or not the top site is a default one.
|
* @param type The type of the top site.
|
||||||
*/
|
*/
|
||||||
fun onSelectTopSite(url: String, isDefault: Boolean)
|
fun onSelectTopSite(url: String, type: TopSite.Type)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -218,8 +218,8 @@ class SessionControlInteractor(
|
|||||||
controller.handleRenameCollectionTapped(collection)
|
controller.handleRenameCollectionTapped(collection)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onSelectTopSite(url: String, isDefault: Boolean) {
|
override fun onSelectTopSite(url: String, type: TopSite.Type) {
|
||||||
controller.handleSelectTopSite(url, isDefault)
|
controller.handleSelectTopSite(url, type)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStartBrowsingClicked() {
|
override fun onStartBrowsingClicked() {
|
||||||
|
@ -11,6 +11,8 @@ import androidx.viewpager2.widget.ViewPager2
|
|||||||
import kotlinx.android.synthetic.main.component_top_sites_pager.view.*
|
import kotlinx.android.synthetic.main.component_top_sites_pager.view.*
|
||||||
import mozilla.components.feature.top.sites.TopSite
|
import mozilla.components.feature.top.sites.TopSite
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
|
import org.mozilla.fenix.components.metrics.Event
|
||||||
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.home.sessioncontrol.TopSiteInteractor
|
import org.mozilla.fenix.home.sessioncontrol.TopSiteInteractor
|
||||||
import org.mozilla.fenix.home.sessioncontrol.viewholders.topsites.TopSitesPagerAdapter
|
import org.mozilla.fenix.home.sessioncontrol.viewholders.topsites.TopSitesPagerAdapter
|
||||||
|
|
||||||
@ -21,10 +23,16 @@ class TopSitePagerViewHolder(
|
|||||||
|
|
||||||
private val topSitesPagerAdapter = TopSitesPagerAdapter(interactor)
|
private val topSitesPagerAdapter = TopSitesPagerAdapter(interactor)
|
||||||
private val pageIndicator = view.page_indicator
|
private val pageIndicator = view.page_indicator
|
||||||
|
private var currentPage = 0
|
||||||
|
|
||||||
private val topSitesPageChangeCallback = object : ViewPager2.OnPageChangeCallback() {
|
private val topSitesPageChangeCallback = object : ViewPager2.OnPageChangeCallback() {
|
||||||
override fun onPageSelected(position: Int) {
|
override fun onPageSelected(position: Int) {
|
||||||
|
if (currentPage != position) {
|
||||||
|
pageIndicator.context.components.analytics.metrics.track(Event.TopSiteSwipeCarousel(position))
|
||||||
|
}
|
||||||
|
|
||||||
pageIndicator.setSelection(position)
|
pageIndicator.setSelection(position)
|
||||||
|
currentPage = position
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,10 +14,10 @@ import kotlinx.android.synthetic.main.top_site_item.*
|
|||||||
import mozilla.components.browser.menu.BrowserMenuBuilder
|
import mozilla.components.browser.menu.BrowserMenuBuilder
|
||||||
import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
|
import mozilla.components.browser.menu.item.SimpleBrowserMenuItem
|
||||||
import mozilla.components.feature.top.sites.TopSite
|
import mozilla.components.feature.top.sites.TopSite
|
||||||
import mozilla.components.feature.top.sites.TopSite.Type.DEFAULT
|
|
||||||
import mozilla.components.feature.top.sites.TopSite.Type.FRECENT
|
import mozilla.components.feature.top.sites.TopSite.Type.FRECENT
|
||||||
import mozilla.components.feature.top.sites.TopSite.Type.PINNED
|
import mozilla.components.feature.top.sites.TopSite.Type.PINNED
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
|
import org.mozilla.fenix.components.metrics.Event
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
import org.mozilla.fenix.ext.loadIntoView
|
import org.mozilla.fenix.ext.loadIntoView
|
||||||
import org.mozilla.fenix.home.sessioncontrol.TopSiteInteractor
|
import org.mozilla.fenix.home.sessioncontrol.TopSiteInteractor
|
||||||
@ -32,10 +32,12 @@ class TopSiteItemViewHolder(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
top_site_item.setOnClickListener {
|
top_site_item.setOnClickListener {
|
||||||
interactor.onSelectTopSite(topSite.url, topSite.type === DEFAULT)
|
interactor.onSelectTopSite(topSite.url, topSite.type)
|
||||||
}
|
}
|
||||||
|
|
||||||
top_site_item.setOnLongClickListener {
|
top_site_item.setOnLongClickListener {
|
||||||
|
it.context.components.analytics.metrics.track(Event.TopSiteLongPress(topSite.type))
|
||||||
|
|
||||||
val topSiteMenu = TopSiteItemMenu(view.context, topSite.type != FRECENT) { item ->
|
val topSiteMenu = TopSiteItemMenu(view.context, topSite.type != FRECENT) { item ->
|
||||||
when (item) {
|
when (item) {
|
||||||
is TopSiteItemMenu.Item.OpenInPrivateTab -> interactor.onOpenInPrivateTabClicked(
|
is TopSiteItemMenu.Item.OpenInPrivateTab -> interactor.onOpenInPrivateTabClicked(
|
||||||
|
@ -18,6 +18,7 @@ import mozilla.components.browser.session.SessionManager
|
|||||||
import mozilla.components.concept.engine.Engine
|
import mozilla.components.concept.engine.Engine
|
||||||
import mozilla.components.feature.tab.collections.TabCollection
|
import mozilla.components.feature.tab.collections.TabCollection
|
||||||
import mozilla.components.feature.tabs.TabsUseCases
|
import mozilla.components.feature.tabs.TabsUseCases
|
||||||
|
import mozilla.components.feature.top.sites.TopSite
|
||||||
import mozilla.components.support.test.rule.MainCoroutineRule
|
import mozilla.components.support.test.rule.MainCoroutineRule
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
@ -279,7 +280,7 @@ class DefaultSessionControlControllerTest {
|
|||||||
fun handleSelectDefaultTopSite() {
|
fun handleSelectDefaultTopSite() {
|
||||||
val topSiteUrl = "mozilla.org"
|
val topSiteUrl = "mozilla.org"
|
||||||
|
|
||||||
controller.handleSelectTopSite(topSiteUrl, true)
|
controller.handleSelectTopSite(topSiteUrl, TopSite.Type.DEFAULT)
|
||||||
verify { metrics.track(Event.TopSiteOpenInNewTab) }
|
verify { metrics.track(Event.TopSiteOpenInNewTab) }
|
||||||
verify { metrics.track(Event.TopSiteOpenDefault) }
|
verify { metrics.track(Event.TopSiteOpenDefault) }
|
||||||
verify {
|
verify {
|
||||||
@ -296,7 +297,7 @@ class DefaultSessionControlControllerTest {
|
|||||||
fun handleSelectNonDefaultTopSite() {
|
fun handleSelectNonDefaultTopSite() {
|
||||||
val topSiteUrl = "mozilla.org"
|
val topSiteUrl = "mozilla.org"
|
||||||
|
|
||||||
controller.handleSelectTopSite(topSiteUrl, false)
|
controller.handleSelectTopSite(topSiteUrl, TopSite.Type.FRECENT)
|
||||||
verify { metrics.track(Event.TopSiteOpenInNewTab) }
|
verify { metrics.track(Event.TopSiteOpenInNewTab) }
|
||||||
verify {
|
verify {
|
||||||
tabsUseCases.addTab.invoke(
|
tabsUseCases.addTab.invoke(
|
||||||
|
@ -42,6 +42,6 @@ class TopSiteItemViewHolderTest {
|
|||||||
TopSiteItemViewHolder(view, interactor).bind(pocket)
|
TopSiteItemViewHolder(view, interactor).bind(pocket)
|
||||||
|
|
||||||
view.top_site_item.performClick()
|
view.top_site_item.performClick()
|
||||||
verify { interactor.onSelectTopSite("https://getpocket.com", isDefault = true) }
|
verify { interactor.onSelectTopSite("https://getpocket.com", TopSite.Type.DEFAULT) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -213,10 +213,14 @@ The following metrics are added to the ping:
|
|||||||
| tip.displayed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip was displayed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|<ul><li>identifier: The identifier of the tip displayed</li></ul>|2020-11-15 |2 |
|
| tip.displayed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip was displayed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|<ul><li>identifier: The identifier of the tip displayed</li></ul>|2020-11-15 |2 |
|
||||||
| tip.pressed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip's button was pressed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|<ul><li>identifier: The identifier of the tip the action was taken on</li></ul>|2020-11-15 |2 |
|
| tip.pressed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip's button was pressed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|<ul><li>identifier: The identifier of the tip the action was taken on</li></ul>|2020-11-15 |2 |
|
||||||
| toolbar_settings.changed_position |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user selected a new position for the toolbar |[1](https://github.com/mozilla-mobile/fenix/pull/6608)|<ul><li>position: A string that indicates the new position of the toolbar TOP or BOTTOM </li></ul>|2020-11-15 |2 |
|
| toolbar_settings.changed_position |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user selected a new position for the toolbar |[1](https://github.com/mozilla-mobile/fenix/pull/6608)|<ul><li>position: A string that indicates the new position of the toolbar TOP or BOTTOM </li></ul>|2020-11-15 |2 |
|
||||||
|
| top_sites.long_press |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user long pressed on a top site |[1](https://github.com/mozilla-mobile/fenix/pull/15136)|<ul><li>type: The type of top site. Options are: "FRECENCY," "DEFAULT," or "PINNED." </li></ul>|2021-03-15 |2 |
|
||||||
| top_sites.open_default |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a default top site |[1](https://github.com/mozilla-mobile/fenix/pull/10752)||2020-11-15 |2 |
|
| top_sites.open_default |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a default top site |[1](https://github.com/mozilla-mobile/fenix/pull/10752)||2020-11-15 |2 |
|
||||||
|
| top_sites.open_frecency |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a frecency top site |[1](https://github.com/mozilla-mobile/fenix/pull/15136)||2021-03-15 |2 |
|
||||||
| top_sites.open_in_new_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opens a new tab based on a top site item |[1](https://github.com/mozilla-mobile/fenix/pull/7523)||2020-11-15 |2 |
|
| top_sites.open_in_new_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opens a new tab based on a top site item |[1](https://github.com/mozilla-mobile/fenix/pull/7523)||2020-11-15 |2 |
|
||||||
| top_sites.open_in_private_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opens a new private tab based on a top site item |[1](https://github.com/mozilla-mobile/fenix/pull/7523)||2020-11-15 |2 |
|
| top_sites.open_in_private_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opens a new private tab based on a top site item |[1](https://github.com/mozilla-mobile/fenix/pull/7523)||2020-11-15 |2 |
|
||||||
|
| top_sites.open_pinned |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a pinned top site |[1](https://github.com/mozilla-mobile/fenix/pull/15136)||2021-03-15 |2 |
|
||||||
| top_sites.remove |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removes a top site item |[1](https://github.com/mozilla-mobile/fenix/pull/7523)||2020-11-15 |2 |
|
| top_sites.remove |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removes a top site item |[1](https://github.com/mozilla-mobile/fenix/pull/7523)||2020-11-15 |2 |
|
||||||
|
| top_sites.swipe_carousel |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user swiped to change the page of the top sites carousel |[1](https://github.com/mozilla-mobile/fenix/pull/15136)|<ul><li>page: The page number the carousel is now on </li></ul>|2021-03-15 |2 |
|
||||||
| tracking_protection.etp_setting_changed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user changed their tracking protection level setting to either strict, standard, or custom. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188), [2](https://github.com/mozilla-mobile/fenix/pull/11383)|<ul><li>etp_setting: The new setting for ETP: strict, standard, custom</li></ul>|2020-11-15 |2 |
|
| tracking_protection.etp_setting_changed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user changed their tracking protection level setting to either strict, standard, or custom. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188), [2](https://github.com/mozilla-mobile/fenix/pull/11383)|<ul><li>etp_setting: The new setting for ETP: strict, standard, custom</li></ul>|2020-11-15 |2 |
|
||||||
| tracking_protection.etp_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened tracking protection settings through settings. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-11-15 |2 |
|
| tracking_protection.etp_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened tracking protection settings through settings. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-11-15 |2 |
|
||||||
| tracking_protection.etp_shield |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the tracking protection shield icon in toolbar. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-11-15 |2 |
|
| tracking_protection.etp_shield |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the tracking protection shield icon in toolbar. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-11-15 |2 |
|
||||||
|
Loading…
Reference in New Issue
Block a user