From 2cbd969e34082c526b59090dd4a2795ce82061ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hakk=C4=B1=20Kaan=20=C3=87al=C4=B1=C5=9Fkan?= Date: Tue, 16 Jun 2020 18:42:59 +0300 Subject: [PATCH 01/22] For #11641: Update synced tabs view --- .../main/res/layout/component_sync_tabs.xml | 4 +-- .../main/res/layout/sync_tabs_list_item.xml | 36 ++++++++----------- .../res/layout/view_synced_tabs_group.xml | 35 +++++++++++------- app/src/main/res/values-night/colors.xml | 3 ++ app/src/main/res/values/attrs.xml | 1 + app/src/main/res/values/colors.xml | 5 +++ app/src/main/res/values/styles.xml | 2 +- 7 files changed, 49 insertions(+), 37 deletions(-) diff --git a/app/src/main/res/layout/component_sync_tabs.xml b/app/src/main/res/layout/component_sync_tabs.xml index 6b82ef336..0ec378aad 100644 --- a/app/src/main/res/layout/component_sync_tabs.xml +++ b/app/src/main/res/layout/component_sync_tabs.xml @@ -6,7 +6,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/history_wrapper" + android:id="@+id/synced_tabs_wrapper" android:layout_width="match_parent" android:layout_height="match_parent"> + tools:listitem="@layout/sync_tabs_list_item"/> diff --git a/app/src/main/res/layout/sync_tabs_list_item.xml b/app/src/main/res/layout/sync_tabs_list_item.xml index 693892370..99e776393 100644 --- a/app/src/main/res/layout/sync_tabs_list_item.xml +++ b/app/src/main/res/layout/sync_tabs_list_item.xml @@ -8,34 +8,31 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="60dp" - android:paddingEnd="20dp" - android:minHeight="@dimen/library_item_height" android:background="?android:attr/selectableItemBackground"> + app:layout_constraintTop_toBottomOf="@+id/synced_tab_item_title" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/synced_tab_item_url" /> diff --git a/app/src/main/res/layout/view_synced_tabs_group.xml b/app/src/main/res/layout/view_synced_tabs_group.xml index 5543f4960..1f8172ce1 100644 --- a/app/src/main/res/layout/view_synced_tabs_group.xml +++ b/app/src/main/res/layout/view_synced_tabs_group.xml @@ -2,30 +2,39 @@ - + android:layout_marginTop="8dp"> - + + + diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 97585a80e..e9446bc67 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -64,6 +64,9 @@ @color/top_site_border_dark_theme @color/top_site_title_text_dark_theme + + @color/synced_tabs_separator_dark_theme + @color/collection_icon_color_violet_dark_theme @color/collection_icon_color_blue_dark_theme diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 3c6241eba..87849a68d 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -51,6 +51,7 @@ + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b31fb08d0..9501623c0 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -47,6 +47,7 @@ #0015141A @android:color/white @color/light_grey_30 + @color/light_grey_30 @color/light_grey_80 #7542E5 #0250BB @@ -104,6 +105,7 @@ #F515141A @color/dark_grey_50 @color/dark_grey_10 + @color/dark_grey_10 @color/light_grey_90 #AB71FF #00B3F4 @@ -250,6 +252,9 @@ @color/top_site_border_light_theme @color/top_site_title_text_light_theme + + @color/synced_tabs_separator_light_theme + @color/collection_icon_color_violet_light_theme @color/collection_icon_color_blue_light_theme diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3d2ffb4a5..0639fc523 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -75,7 +75,7 @@ @color/prompt_login_edit_text_cursor_color_normal_theme @color/readermode_start_gradient_normal_theme @color/readermode_end_gradient_normal_theme - + @color/synced_tabs_separator @color/tab_tray_item_background_normal_theme @color/tab_tray_item_selected_background_normal_theme From df49db6adbb844ccbd520c68d912963cae544cf4 Mon Sep 17 00:00:00 2001 From: ekager Date: Fri, 26 Jun 2020 17:56:27 -0400 Subject: [PATCH 02/22] For #11294 - Enable Synced Tabs for all builds --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index c79af795d..de660bbef 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -23,7 +23,7 @@ object FeatureFlags { /** * Enable tab sync feature */ - val syncedTabs = Config.channel.isNightlyOrDebug + const val syncedTabs = true /** * Enables new tab tray pref From 4f6f0785c5d9b02cf7f842a36c19e1f912cd0c67 Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Fri, 26 Jun 2020 15:42:53 -0700 Subject: [PATCH 03/22] For #11943: Fix intermittent coroutine failure (#12027) --- .../collections/CollectionCreationController.kt | 17 ++++++++++++----- .../collections/CollectionCreationFragment.kt | 4 +++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationController.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationController.kt index 808cd37da..eecb1f761 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationController.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationController.kt @@ -8,7 +8,6 @@ package org.mozilla.fenix.collections import androidx.annotation.VisibleForTesting import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.launch import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager @@ -62,13 +61,21 @@ fun List.toSessionBundle(sessionManager: SessionManager): List { return this.mapNotNull { sessionManager.findSessionById(it.sessionId) } } +/** + * @param store Store used to hold in-memory collection state. + * @param dismiss Callback to dismiss the collection creation dialog. + * @param metrics Controller that handles telemetry events. + * @param tabCollectionStorage Storage used to save tab collections to disk. + * @param sessionManager Used to query and serialize tabs. + * @param ioScope Coroutine scope that launches on the IO thread. + */ class DefaultCollectionCreationController( private val store: CollectionCreationStore, private val dismiss: () -> Unit, private val metrics: MetricController, private val tabCollectionStorage: TabCollectionStorage, private val sessionManager: SessionManager, - private val scope: CoroutineScope + private val ioScope: CoroutineScope ) : CollectionCreationController { companion object { @@ -80,7 +87,7 @@ class DefaultCollectionCreationController( dismiss() val sessionBundle = tabs.toSessionBundle(sessionManager) - scope.launch(IO) { + ioScope.launch { tabCollectionStorage.createCollection(name, sessionBundle) } @@ -91,7 +98,7 @@ class DefaultCollectionCreationController( override fun renameCollection(collection: TabCollection, name: String) { dismiss() - scope.launch(IO) { + ioScope.launch { tabCollectionStorage.renameCollection(collection, name) } metrics.track(Event.CollectionRenamed) @@ -121,7 +128,7 @@ class DefaultCollectionCreationController( override fun selectCollection(collection: TabCollection, tabs: List) { dismiss() val sessionBundle = tabs.toList().toSessionBundle(sessionManager) - scope.launch(IO) { + ioScope.launch { tabCollectionStorage .addTabsToCollection(collection, sessionBundle) } diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationFragment.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationFragment.kt index 8c32f3cb0..2149d6bc3 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationFragment.kt @@ -14,7 +14,9 @@ import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.navArgs import kotlinx.android.synthetic.main.fragment_create_collection.view.* +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.plus import mozilla.components.browser.session.SessionManager import mozilla.components.browser.state.store.BrowserStore import mozilla.components.lib.publicsuffixlist.PublicSuffixList @@ -77,7 +79,7 @@ class CollectionCreationFragment : DialogFragment() { requireComponents.analytics.metrics, requireComponents.core.tabCollectionStorage, requireComponents.core.sessionManager, - scope = lifecycleScope + ioScope = lifecycleScope + Dispatchers.IO ) ) collectionCreationView = CollectionCreationView( From e71e7fb9c6dd2768dc80a3030d5aa30532f17075 Mon Sep 17 00:00:00 2001 From: mozilla-l10n-automation-bot <54512241+mozilla-l10n-automation-bot@users.noreply.github.com> Date: Fri, 26 Jun 2020 18:44:57 -0400 Subject: [PATCH 04/22] Import l10n. (#12022) --- app/src/main/res/values-trs/strings.xml | 151 ++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/app/src/main/res/values-trs/strings.xml b/app/src/main/res/values-trs/strings.xml index d81ed3401..9afcbc3d9 100644 --- a/app/src/main/res/values-trs/strings.xml +++ b/app/src/main/res/values-trs/strings.xml @@ -1062,24 +1062,139 @@ Gāyì\'ì sēsiûn ngà si kamarât Gārāsun si kōrreôt si lūgaj + + Dūnâj Firefox si nāgi\'iaj nūguàn\'anj si kuentât, sanī si dure\'ej nej datô râj sunt ngà aché nunt riña aga\' nan. + + Dūnâj %s si nāgi\'iaj nūguàn\'anj si kuentât, sanī si dure\'ej nej datô râj sunt ngà aché nunt riña aga\' nan. Gāhuī riña internet Dūyichin\' + + Sī ga\'ue nādūnāt sa mà riña nej karpetâ ngà nīka \'naj + + + + Riña gā\'ue nāgi\'iát riña sa dugumî sò\' + + Sa huā hue\'ê doj guendâ nārán riña sa naga\'nāj a + + Nitāj gà\' \'ngō ganikò\' sò\' si gāchē nunt + + Duguminj nej si datôt. %s naran rayi\'ît riña nej sa naga\'nāj sa \'iát nga aché nunt. Gāhuin chrūn doj + + Sa huā chre\' (dàj huaj \'naj) + + Riña dòj sa naga\'nāj a naran. Dàj rû\' nayi\'nïnj riña pâjina nāyi\'nïn nīñanj. + + Ahuin si riñā narán sa dugumî sò\' \'na\' niñā guendâ nej sa naga\'nāj a Sa nùkuaj doj + + Narán man riña doj sa naga\'nāj a, nej nuguan\' nata\'a nī nej bēntanâ narugui\' man\'an. Hìo doj nayî\'nïnj riña nej pâjina, sanī huā sa sī ga\'ue gi\'iaj sun hue\'e. + + Ahuin si riñā narán sa nùkuaj doj dugumî sò\' \'na\' niñā guendâ nej sa naga\'nāj a + + Nāgi\'iaj mun\'ûn\' + + Nāguī nej sa naga\'nāj a asi a\'ngô sa riñā ruhuât naránt. + + Nan huin sa riñā narán sa dugumî sò\' \'na\' niñā guendâ nej sa naga\'nāj a Nej kôki + + Sa naga\'nāj riña nej sîtio nī nej rêd sociâl + + Si kokî nej sitiô nu atûjt + + Daran\' nej kokî ânej e (ga\'ue gī\'iaj sun a\'nan\' web gī\'ia) + + Daran\' nej kokî (ga\'ue dūre\'ej dā\'āj sîtio) + + Sa nīkāj sa naga\'nāj a + + Riña daran\' nej rakïj ñanj + + Màn riña nej rakïj ñanj huìi + + Màn riña nej rakïj ñanj nagi\'iaj mān\'ânt + + Nej kriptominêro + + Nej da\'nga\' rā\'a Nitāj si hūaj nāyi\'nïn Gā\'ue + + Nej sa naga\'nāj nej rêd sosiâl + + + Sī ga\'nïnjt riña nej rêd sōsiâl da\' nāga\'nāj nìko sa \'iát ngà aché nunt. + + Nej kokî naga\'nāj riña nej dūguì\' nej sîtio + + + Nārán riña nej kokî arâj sun nej rêd duyinga\' sa ane\'e nī nej dukuâ sun nadigi\'ñûn sa anïn ruhuâ guìi da\' si naga\'nāj nìko man nej sa \'iát nga aché nunt. + + Nej kriptominêro + + Nu â\'nïn riña nej skripts yi\'ìi da\' gātū nej man riña si āgâ\'t nī gīrī nej man san\'ānj nānèe. + + Nej sa nani\'in nej da\'nga\' rā\'a + + Nu â\'nïn da\' sī nari a\'ngô sa yi\'ìi nej nuguan\' nīkāj si āgâ\'t nī ga\'ue nāga\'nāj nej man sò\'. + + Sa nīkāj sa naga\'nāj a + + + Naran riña nej nuguan\' duyinga\' nej sa ane\'e, sa ni\'io\' nī riña nej nuguan\' nīkāj sa naga\'nāj a. Ga\'ue gā\'uì\' yī\'ij dàj \'iaj sun nej sîtio. + + Da\' nanûn kolô dînda riña eskûdo, ngà narán %s sa naga\'nāj riña \'ngō sitio. Gūru\'man ra\'a da\' gīni\'înt doj sa huā rayi\'î man. + + Ngà \'IAJ SUN nej sa dugumî sò\' riña sitiô nan + + NITĀJ SI \'IAJ SUN nej sa dugumî sò\' riña sitiô nan + + + Nitāj si \'iaj sun sa nùkuaj narán riña sa naga\'nāj a riña nej sitiô nan + + Gūij ne\' rūkùu + + Nej nuguan\' tna\'uēj rayi\'ît + + Dukuâ ñanj nīkāj kodigô huā nî\'nïnj arân sun ñûnj + + Sa nākà doj huā riña %s + + %s Dukuâ ñanj OSS + + + Sa rugûñu\'ūnj un + + Nej sa gahui a\'nan\' + + Nuguan\' huì huin si dūkuan + + + Gīni\'in nej nuguan\' tna\'uēj rayi\'ît + + Si nùguàn\' līsênsia + + Nej dukuâ ñanj arâj sun ñûnj + + Menû nagi\'aj hìo: gūru\'man ra\'a %1$d da\' nāchrūnt + Menû nagi\'aj hìo ngà \'iaj sun + 1 rakïj ñanj @@ -1088,22 +1203,58 @@ Gūxūn nī nāchrūnt a\'ngô hiūj u + + Gāchrūn & Gūij Gāchrūn + + URL ngà nachîn riña portapapeles + + + Gāchrūn man riña pantâya Dūyichin\' Nūtà\' + + Ginu ngè riña sitiô nan + + Si yūgui aksêso dīrêkto + + + Gā\'ue nāchrūnt sitiô nan riña pajinâ ayi\'ìt riña aga\' a\'min nīkājt da\' ga\'ue hìo gātūt riñanj dàj rû\' \'iaj \'ngō aplikāsiûn + + + Nej riña gayi\'ìt sēsiûn nī nej da\'nga\' huìi + + Nā\'nïnj sà\' nej riña gayi\'ìt sēsiûn nī nej da\'nga\' huìi + + Gāchìnj nì\'iaj nā\'nïnj sà\'t + + Nitāj āmān nā\'nïnj sà\'t + + Nāchra man\'an + + Nāgi\'iaj nūguàn\'àn nej riña ayì\'ìt sēsiûn Nāchrūn Dūnâ\’àj + + Gānātū ñû + + Gāyi\'ì sēsiûn riña Sync + + Sa gayi\'ìt sesiûn ngà naginu sà\' Gāhuin chrūn doj + + Nā\'nïnj sà\' + Nūtà\' From 7287b5579f8a1de4a66e5b320c4162b175f522ec Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Fri, 26 Jun 2020 15:53:30 -0700 Subject: [PATCH 05/22] Test settings about/advanced (#12023) --- ...reference.kt => SecretSettingsFragment.kt} | 3 +- .../fenix/settings/about/AboutFragment.kt | 16 ++--- .../mozilla/fenix/settings/about/AboutItem.kt | 4 +- .../fenix/settings/about/AboutPageAdapter.kt | 9 +-- .../about/viewholders/AboutItemViewHolder.kt | 4 +- .../fenix/settings/advanced/LocaleAdapter.kt | 5 +- .../settings/quicksettings/WebsiteInfoView.kt | 33 ++++++----- app/src/main/res/navigation/nav_graph.xml | 2 +- .../settings/about/AboutPageAdapterTest.kt | 15 ++--- .../viewholders/AboutItemViewHolderTest.kt | 2 +- .../account/AccountSettingsInteractorTest.kt | 25 +++++++- .../quicksettings/WebsiteInfoViewTest.kt | 59 +++++++++++++++++++ 12 files changed, 128 insertions(+), 49 deletions(-) rename app/src/main/java/org/mozilla/fenix/settings/{SecretSettingsPreference.kt => SecretSettingsFragment.kt} (92%) create mode 100644 app/src/test/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoViewTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt similarity index 92% rename from app/src/main/java/org/mozilla/fenix/settings/SecretSettingsPreference.kt rename to app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index aa0a7498f..6e128b7fe 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -12,7 +12,8 @@ import org.mozilla.fenix.ext.showToolbar /** * Lets the user customize Private browsing options. */ -class SecretSettingsPreference : PreferenceFragmentCompat() { +class SecretSettingsFragment : PreferenceFragmentCompat() { + override fun onResume() { super.onResume() showToolbar(getString(R.string.preferences_debug_settings)) diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt index 21c71a471..363bf901c 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt @@ -25,13 +25,13 @@ import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.crashes.CrashListActivity import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.settings -import org.mozilla.fenix.utils.Do import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.settings.about.AboutItemType.LICENSING_INFO import org.mozilla.fenix.settings.about.AboutItemType.PRIVACY_NOTICE import org.mozilla.fenix.settings.about.AboutItemType.RIGHTS import org.mozilla.fenix.settings.about.AboutItemType.SUPPORT import org.mozilla.fenix.settings.about.AboutItemType.WHATS_NEW +import org.mozilla.fenix.utils.Do import org.mozilla.fenix.whatsnew.WhatsNew import org.mozilla.geckoview.BuildConfig as GeckoViewBuildConfig @@ -145,39 +145,39 @@ class AboutFragment : Fragment(), AboutPageListener { val context = requireContext() return listOf( - AboutPageItem.Item( + AboutPageItem( AboutItem.ExternalLink( WHATS_NEW, SupportUtils.getWhatsNewUrl(context) ), getString(R.string.about_whats_new, getString(R.string.app_name)) ), - AboutPageItem.Item( + AboutPageItem( AboutItem.ExternalLink( SUPPORT, SupportUtils.getSumoURLForTopic(context, SupportUtils.SumoTopic.HELP) ), getString(R.string.about_support) ), - AboutPageItem.Item( + AboutPageItem( AboutItem.Crashes, getString(R.string.about_crashes) ), - AboutPageItem.Item( + AboutPageItem( AboutItem.ExternalLink( PRIVACY_NOTICE, SupportUtils.getMozillaPageUrl(SupportUtils.MozillaPage.PRIVATE_NOTICE) ), getString(R.string.about_privacy_notice) ), - AboutPageItem.Item( + AboutPageItem( AboutItem.ExternalLink( RIGHTS, SupportUtils.getSumoURLForTopic(context, SupportUtils.SumoTopic.YOUR_RIGHTS) ), getString(R.string.about_know_your_rights) ), - AboutPageItem.Item( + AboutPageItem( AboutItem.ExternalLink(LICENSING_INFO, ABOUT_LICENSE_URL), getString(R.string.about_licensing_information) ), - AboutPageItem.Item( + AboutPageItem( AboutItem.Libraries, getString(R.string.about_other_open_source_libraries) ) diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt b/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt index e8cf2a79c..95e221ee4 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt @@ -14,6 +14,4 @@ enum class AboutItemType { WHATS_NEW, SUPPORT, PRIVACY_NOTICE, RIGHTS, LICENSING_INFO } -sealed class AboutPageItem { - data class Item(val type: AboutItem, val title: String) : AboutPageItem() -} +data class AboutPageItem(val type: AboutItem, val title: String) diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/AboutPageAdapter.kt b/app/src/main/java/org/mozilla/fenix/settings/about/AboutPageAdapter.kt index e4b418dd7..e4355655a 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/AboutPageAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/AboutPageAdapter.kt @@ -20,19 +20,16 @@ class AboutPageAdapter(private val listener: AboutPageListener) : } override fun onBindViewHolder(holder: AboutItemViewHolder, position: Int) { - holder.bind(getItem(position) as AboutPageItem.Item) + holder.bind(getItem(position)) } private object DiffCallback : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem: AboutPageItem, newItem: AboutPageItem) = - oldItem === newItem + oldItem.title == newItem.title override fun areContentsTheSame(oldItem: AboutPageItem, newItem: AboutPageItem) = - when (oldItem) { - is AboutPageItem.Item -> - newItem is AboutPageItem.Item && oldItem.title == newItem.title - } + oldItem == newItem } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolder.kt index 90cdbcfa7..d42ee1a97 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolder.kt @@ -17,7 +17,7 @@ class AboutItemViewHolder( ) : RecyclerView.ViewHolder(view) { private val title = view.about_item_title - private lateinit var item: AboutPageItem.Item + private lateinit var item: AboutPageItem init { itemView.setOnClickListener { @@ -25,7 +25,7 @@ class AboutItemViewHolder( } } - fun bind(item: AboutPageItem.Item) { + fun bind(item: AboutPageItem) { this.item = item title.text = item.title } diff --git a/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleAdapter.kt b/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleAdapter.kt index 4020893ed..57648d87d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/advanced/LocaleAdapter.kt @@ -23,9 +23,8 @@ class LocaleAdapter(private val interactor: LocaleSettingsViewInteractor) : private var selectedLocale: Locale = Locale.getDefault() override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseLocaleViewHolder { - val view = - LayoutInflater.from(parent.context) - .inflate(R.layout.locale_settings_item, parent, false) + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.locale_settings_item, parent, false) return when (viewType) { ItemType.DEFAULT.ordinal -> SystemLocaleViewHolder( diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt index 235024cc9..1c2d5098c 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoView.kt @@ -10,7 +10,7 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat.getColor import androidx.core.view.isVisible import kotlinx.android.extensions.LayoutContainer -import kotlinx.android.synthetic.main.quicksettings_website_info.view.* +import kotlinx.android.synthetic.main.quicksettings_website_info.* import mozilla.components.support.ktx.android.content.getDrawableWithTint import org.mozilla.fenix.R @@ -19,13 +19,14 @@ import org.mozilla.fenix.R * * Currently it does not support any user interaction. * - * @param containerView [ViewGroup] in which this View will inflate itself. + * @param container [ViewGroup] in which this View will inflate itself. */ class WebsiteInfoView( - override val containerView: ViewGroup + container: ViewGroup ) : LayoutContainer { - val view: View = LayoutInflater.from(containerView.context) - .inflate(R.layout.quicksettings_website_info, containerView, true) + + override val containerView: View = LayoutInflater.from(container.context) + .inflate(R.layout.quicksettings_website_info, container, true) /** * Allows changing what this View displays. @@ -39,25 +40,25 @@ class WebsiteInfoView( bindCertificateName(state.certificateName) } - private fun bindUrl(url: String) { - view.url.text = url + private fun bindUrl(websiteUrl: String) { + url.text = websiteUrl } - private fun bindTitle(title: String) { - view.title.text = title + private fun bindTitle(websiteTitle: String) { + title.text = websiteTitle } private fun bindCertificateName(cert: String) { - val certificateLabel = view.context.getString(R.string.certificate_info_verified_by, cert) - view.certificateInfo.text = certificateLabel - view.certificateInfo.isVisible = cert.isNotEmpty() + val certificateLabel = containerView.context.getString(R.string.certificate_info_verified_by, cert) + certificateInfo.text = certificateLabel + certificateInfo.isVisible = cert.isNotEmpty() } private fun bindSecurityInfo(uiValues: WebsiteSecurityUiValues) { - val tint = getColor(view.context, uiValues.iconTintRes) - view.securityInfo.setText(uiValues.securityInfoRes) - view.securityInfoIcon.setImageDrawable( - view.context.getDrawableWithTint(uiValues.iconRes, tint) + val tint = getColor(containerView.context, uiValues.iconTintRes) + securityInfo.setText(uiValues.securityInfoRes) + securityInfoIcon.setImageDrawable( + containerView.context.getDrawableWithTint(uiValues.iconRes, tint) ) } } diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 64b1caf45..77eba73a6 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -544,7 +544,7 @@ android:name="org.mozilla.fenix.settings.about.AboutFragment"/> = - mutableListOf( - AboutPageItem.Item( + private val aboutList: List = + listOf( + AboutPageItem( AboutItem.ExternalLink( AboutItemType.WHATS_NEW, "https://mozilla.org" ), "Libraries" ), - AboutPageItem.Item(AboutItem.Libraries, "Libraries") + AboutPageItem(AboutItem.Libraries, "Libraries"), + AboutPageItem(AboutItem.Crashes, "Crashes") ) private val listener: AboutPageListener = mockk(relaxed = true) @@ -47,7 +48,7 @@ class AboutPageAdapterTest { adapter.submitList(aboutList) - assertEquals(2, adapter.itemCount) + assertEquals(3, adapter.itemCount) } @Test @@ -78,6 +79,6 @@ class AboutPageAdapterTest { adapter.submitList(aboutList) adapter.bindViewHolder(viewHolder, 1) - verify { viewHolder.bind(aboutList[1] as AboutPageItem.Item) } + verify { viewHolder.bind(aboutList[1]) } } } diff --git a/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt b/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt index a2e1e4253..87b120dbf 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt @@ -22,7 +22,7 @@ import org.mozilla.fenix.settings.about.AboutPageListener @RunWith(FenixRobolectricTestRunner::class) class AboutItemViewHolderTest { - private val item = AboutPageItem.Item(AboutItem.Libraries, "Libraries") + private val item = AboutPageItem(AboutItem.Libraries, "Libraries") private lateinit var view: View private lateinit var listener: AboutPageListener diff --git a/app/src/test/java/org/mozilla/fenix/settings/account/AccountSettingsInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/settings/account/AccountSettingsInteractorTest.kt index fe637735f..78e4b6063 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/account/AccountSettingsInteractorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/account/AccountSettingsInteractorTest.kt @@ -6,10 +6,13 @@ package org.mozilla.fenix.settings.account import androidx.navigation.NavController import androidx.navigation.NavDestination +import io.mockk.Called import io.mockk.every import io.mockk.mockk import io.mockk.verify import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue import org.junit.Test import org.mozilla.fenix.R @@ -34,6 +37,7 @@ class AccountSettingsInteractorTest { @Test fun onChangeDeviceName() { val store: AccountSettingsFragmentStore = mockk(relaxed = true) + val invalidNameResponse = mockk<() -> Unit>(relaxed = true) val interactor = AccountSettingsInteractor( mockk(), @@ -42,9 +46,28 @@ class AccountSettingsInteractorTest { store ) - interactor.onChangeDeviceName("New Name") {} + assertTrue(interactor.onChangeDeviceName("New Name", invalidNameResponse)) verify { store.dispatch(AccountSettingsFragmentAction.UpdateDeviceName("New Name")) } + verify { invalidNameResponse wasNot Called } + } + + @Test + fun onChangeDeviceNameSyncFalse() { + val store: AccountSettingsFragmentStore = mockk(relaxed = true) + val invalidNameResponse = mockk<() -> Unit>(relaxed = true) + + val interactor = AccountSettingsInteractor( + mockk(), + mockk(), + { false }, + store + ) + + assertFalse(interactor.onChangeDeviceName("New Name", invalidNameResponse)) + + verify { store wasNot Called } + verify { invalidNameResponse() } } @Test diff --git a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoViewTest.kt b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoViewTest.kt new file mode 100644 index 000000000..a623a34a6 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/WebsiteInfoViewTest.kt @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.settings.quicksettings + +import android.widget.FrameLayout +import androidx.core.view.isVisible +import kotlinx.android.synthetic.main.library_site_item.title +import kotlinx.android.synthetic.main.library_site_item.url +import kotlinx.android.synthetic.main.quicksettings_website_info.* +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mozilla.fenix.helpers.FenixRobolectricTestRunner + +@RunWith(FenixRobolectricTestRunner::class) +class WebsiteInfoViewTest { + + private lateinit var view: WebsiteInfoView + + @Before + fun setup() { + view = WebsiteInfoView(FrameLayout(testContext)) + } + + @Test + fun bindUrlAndTitle() { + view.update(WebsiteInfoState( + websiteUrl = "https://mozilla.org", + websiteTitle = "Mozilla", + websiteSecurityUiValues = WebsiteSecurityUiValues.SECURE, + certificateName = "" + )) + + assertEquals("https://mozilla.org", view.url.text) + assertEquals("Mozilla", view.title.text) + assertEquals("Secure Connection", view.securityInfo.text) + assertFalse(view.certificateInfo.isVisible) + } + + @Test + fun bindCert() { + view.update(WebsiteInfoState( + websiteUrl = "https://mozilla.org", + websiteTitle = "Mozilla", + websiteSecurityUiValues = WebsiteSecurityUiValues.INSECURE, + certificateName = "Certificate" + )) + + assertEquals("Insecure Connection", view.securityInfo.text) + assertEquals("Verified By: Certificate", view.certificateInfo.text) + assertTrue(view.certificateInfo.isVisible) + } +} From 101ecfbf66681ce50ab53cd3ef21d00a73c4d9f0 Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Fri, 26 Jun 2020 16:37:07 -0700 Subject: [PATCH 06/22] For #11273: Add tabs tray telemetry (#12036) --- app/metrics.yaml | 137 ++++++++++++++++++ .../components/metrics/GleanMetricsService.kt | 40 ++++- .../fenix/components/metrics/Metrics.kt | 13 ++ .../fenix/tabtray/TabTrayDialogFragment.kt | 6 + .../org/mozilla/fenix/tabtray/TabTrayView.kt | 26 ++++ docs/metrics.md | 12 ++ 6 files changed, 232 insertions(+), 2 deletions(-) diff --git a/app/metrics.yaml b/app/metrics.yaml index 952ab58c3..ebf33eb58 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -1608,6 +1608,143 @@ reader_mode: - fenix-core@mozilla.com expires: "2020-09-01" +tabs_tray: + opened: + type: event + description: | + A user opened the tabs tray + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + closed: + type: event + description: | + A user closed the tabs tray + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + opened_existing_tab: + type: event + description: | + A user opened an existing tab + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + closed_existing_tab: + type: event + description: | + A user closed an existing tab + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + private_mode_tapped: + type: event + description: | + A user switched to private mode + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + normal_mode_tapped: + type: event + description: | + A user switched to normal mode + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + new_tab_tapped: + type: event + description: | + A user opened a new tab + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + new_private_tab_tapped: + type: event + description: | + A user opened a new private tab + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + menu_opened: + type: event + description: | + A user opened three three dot menu in the tabs tray + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + save_to_collection: + type: event + description: | + A user tapped the save to collection button in the + three dot menu within the tabs tray + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + share_all_tabs: + type: event + description: | + A user tapped the share all tabs button in the + three dot menu within the tabs tray + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + close_all_tabs: + type: event + description: | + A user tapped the close all tabs button in the + three dot menu within the tabs tray + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11273 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12036 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + collections: renamed: type: event 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 882e63fd3..e6627603b 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 @@ -22,16 +22,15 @@ import org.mozilla.fenix.GleanMetrics.CustomTab import org.mozilla.fenix.GleanMetrics.DownloadNotification import org.mozilla.fenix.GleanMetrics.ErrorPage import org.mozilla.fenix.GleanMetrics.Events -import org.mozilla.fenix.GleanMetrics.Events.preferenceToggled import org.mozilla.fenix.GleanMetrics.FindInPage import org.mozilla.fenix.GleanMetrics.History import org.mozilla.fenix.GleanMetrics.Logins import org.mozilla.fenix.GleanMetrics.MediaNotification import org.mozilla.fenix.GleanMetrics.MediaState import org.mozilla.fenix.GleanMetrics.Metrics +import org.mozilla.fenix.GleanMetrics.Onboarding import org.mozilla.fenix.GleanMetrics.Pings import org.mozilla.fenix.GleanMetrics.Pocket -import org.mozilla.fenix.GleanMetrics.Onboarding import org.mozilla.fenix.GleanMetrics.Preferences import org.mozilla.fenix.GleanMetrics.PrivateBrowsingMode import org.mozilla.fenix.GleanMetrics.PrivateBrowsingShortcut @@ -602,6 +601,43 @@ private val Event.wrapper: EventWrapper<*>? { ContextualHintTrackingProtection.outsideTap.record(it) } ) + is Event.TabsTrayOpened -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.opened.record(it) } + ) + is Event.TabsTrayClosed -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.closed.record(it) } + ) + is Event.OpenedExistingTab -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.openedExistingTab.record(it) } + ) + is Event.ClosedExistingTab -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.closedExistingTab.record(it) } + ) + is Event.TabsTrayPrivateModeTapped -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.privateModeTapped.record(it) } + ) + is Event.TabsTrayNormalModeTapped -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.normalModeTapped.record(it) } + ) + is Event.NewTabTapped -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.newTabTapped.record(it) } + ) + is Event.NewPrivateTabTapped -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.newPrivateTabTapped.record(it) } + ) + is Event.TabsTrayMenuOpened -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.menuOpened.record(it) } + ) + is Event.TabsTraySaveToCollectionPressed -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.saveToCollection.record(it) } + ) + is Event.TabsTrayShareAllTabsPressed -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.shareAllTabs.record(it) } + ) + is Event.TabsTrayCloseAllTabsPressed -> EventWrapper( + { org.mozilla.fenix.GleanMetrics.TabsTray.closeAllTabs.record(it) } + ) + // Don't record other events in Glean: is Event.AddBookmark -> null is Event.OpenedBookmark -> null diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt index 46b1ea9e1..50da78067 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt @@ -185,6 +185,19 @@ sealed class Event { object ContextualHintETPOutsideTap : Event() object ContextualHintETPInsideTap : Event() + object TabsTrayOpened : Event() + object TabsTrayClosed : Event() + object OpenedExistingTab : Event() + object ClosedExistingTab : Event() + object TabsTrayPrivateModeTapped : Event() + object TabsTrayNormalModeTapped : Event() + object NewTabTapped : Event() + object NewPrivateTabTapped : Event() + object TabsTrayMenuOpened : Event() + object TabsTraySaveToCollectionPressed : Event() + object TabsTrayShareAllTabsPressed : Event() + object TabsTrayCloseAllTabsPressed : Event() + // Interaction events with extras data class OnboardingToolbarPosition(val position: Position) : Event() { enum class Position { TOP, BOTTOM } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt index 21f416e1e..1416b247b 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt @@ -31,6 +31,7 @@ import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.TabCollectionStorage +import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.utils.allowUndo @@ -54,11 +55,13 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { private val selectTabUseCase = object : TabsUseCases.SelectTabUseCase { override fun invoke(tabId: String) { + requireContext().components.analytics.metrics.track(Event.OpenedExistingTab) requireComponents.useCases.tabsUseCases.selectTab(tabId) navigateToBrowser() } override fun invoke(session: Session) { + requireContext().components.analytics.metrics.track(Event.OpenedExistingTab) requireComponents.useCases.tabsUseCases.selectTab(session) navigateToBrowser() } @@ -66,11 +69,13 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { private val removeTabUseCase = object : TabsUseCases.RemoveTabUseCase { override fun invoke(sessionId: String) { + requireContext().components.analytics.metrics.track(Event.ClosedExistingTab) showUndoSnackbarForTab(sessionId) requireComponents.useCases.tabsUseCases.removeTab(sessionId) } override fun invoke(session: Session) { + requireContext().components.analytics.metrics.track(Event.ClosedExistingTab) showUndoSnackbarForTab(session.id) requireComponents.useCases.tabsUseCases.removeTab(session) } @@ -134,6 +139,7 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { ) tabLayout.setOnClickListener { + requireContext().components.analytics.metrics.track(Event.TabsTrayClosed) dismissAllowingStateLoss() } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt index cf7ece6a5..0562f2fba 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt @@ -30,6 +30,7 @@ import mozilla.components.browser.state.state.BrowserState import mozilla.components.browser.state.state.TabSessionState import mozilla.components.browser.tabstray.BrowserTabsTray import org.mozilla.fenix.R +import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings @@ -64,6 +65,8 @@ class TabTrayView( get() = container init { + container.context.components.analytics.metrics.track(Event.TabsTrayOpened) + val hasAccessibilityEnabled = view.context.settings().accessibilityServicesEnabled toggleFabText(isPrivate) @@ -81,6 +84,7 @@ class TabTrayView( override fun onStateChanged(bottomSheet: View, newState: Int) { if (newState == BottomSheetBehavior.STATE_HIDDEN) { + container.context.components.analytics.metrics.track(Event.TabsTrayClosed) interactor.onTabTrayDismissed() } } @@ -154,6 +158,7 @@ class TabTrayView( } view.tab_tray_overflow.setOnClickListener { + container.context.components.analytics.metrics.track(Event.TabsTrayMenuOpened) menu = tabTrayItemMenu.menuBuilder.build(container.context) menu?.show(it) ?.also { pu -> @@ -167,6 +172,7 @@ class TabTrayView( view.tab_tray_new_tab.apply { isVisible = hasAccessibilityEnabled setOnClickListener { + sendNewTabEvent(isPrivateModeSelected) interactor.onNewTabTapped(isPrivateModeSelected) } } @@ -174,11 +180,22 @@ class TabTrayView( fabView.new_tab_button.apply { isVisible = !hasAccessibilityEnabled setOnClickListener { + sendNewTabEvent(isPrivateModeSelected) interactor.onNewTabTapped(isPrivateModeSelected) } } } + private fun sendNewTabEvent(isPrivateModeSelected: Boolean) { + val eventToSend = if (isPrivateModeSelected) { + Event.NewPrivateTabTapped + } else { + Event.NewTabTapped + } + + container.context.components.analytics.metrics.track(eventToSend) + } + fun expand() { behavior.state = BottomSheetBehavior.STATE_EXPANDED } @@ -195,6 +212,12 @@ class TabTrayView( updateState(view.context.components.core.store.state) scrollToSelectedTab() + + if (isPrivateModeSelected) { + container.context.components.analytics.metrics.track(Event.TabsTrayPrivateModeTapped) + } else { + container.context.components.analytics.metrics.track(Event.TabsTrayNormalModeTapped) + } } override fun onTabReselected(tab: TabLayout.Tab?) { /*noop*/ } @@ -294,6 +317,7 @@ class TabTrayItemMenu( context.getString(R.string.tab_tray_menu_item_save), textColorResource = R.color.primary_text_normal_theme ) { + context.components.analytics.metrics.track(Event.TabsTraySaveToCollectionPressed) onItemTapped.invoke(Item.SaveToCollection) }.apply { visible = shouldShowSaveToCollection }, @@ -301,6 +325,7 @@ class TabTrayItemMenu( context.getString(R.string.tab_tray_menu_item_share), textColorResource = R.color.primary_text_normal_theme ) { + context.components.analytics.metrics.track(Event.TabsTrayShareAllTabsPressed) onItemTapped.invoke(Item.ShareAllTabs) }, @@ -308,6 +333,7 @@ class TabTrayItemMenu( context.getString(R.string.tab_tray_menu_item_close), textColorResource = R.color.primary_text_normal_theme ) { + context.components.analytics.metrics.track(Event.TabsTrayCloseAllTabsPressed) onItemTapped.invoke(Item.CloseAllTabs) } ) diff --git a/docs/metrics.md b/docs/metrics.md index 68ebc7c3a..43ae931bc 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -183,6 +183,18 @@ The following metrics are added to the ping: | sync_auth.use_email_problem |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user chose to use their email to sign in after an account problem |[1](https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844)||2020-09-01 | | tab.media_pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pause icon on a tab from the home screen |[1](https://github.com/mozilla-mobile/fenix/pull/5266)||2020-09-01 | | tab.media_play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the play icon on a tab from the home screen |[1](https://github.com/mozilla-mobile/fenix/pull/5266)||2020-09-01 | +| tabs_tray.close_all_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the close all tabs button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.closed_existing_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed an existing tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.menu_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened three three dot menu in the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.new_private_tab_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a new private tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.new_tab_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a new tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.normal_mode_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user switched to normal mode |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.opened_existing_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened an existing tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.private_mode_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user switched to private mode |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.save_to_collection |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the save to collection button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | +| tabs_tray.share_all_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the share all tabs button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | | tip.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip was closed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|
  • identifier: The identifier of the tip closed
|2020-09-01 | | 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)|
  • identifier: The identifier of the tip displayed
|2020-09-01 | | 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)|
  • identifier: The identifier of the tip the action was taken on
|2020-09-01 | From ff5d00362b80ae8d13b3ccfceffba3f266fe28f8 Mon Sep 17 00:00:00 2001 From: Marc Leclair Date: Fri, 26 Jun 2020 18:36:06 -0400 Subject: [PATCH 07/22] Added A-C version 48.0.20200626213814 --- app/build.gradle | 1 + .../mozilla/fenix/IntentReceiverActivity.kt | 18 +++++------ .../java/org/mozilla/fenix/components/Core.kt | 2 +- .../customtabs/FennecWebAppIntentProcessor.kt | 31 +++++++++++-------- .../FennecBookmarkShortcutsIntentProcessor.kt | 2 +- .../shortcut/NewTabShortcutIntentProcessor.kt | 2 +- .../components/IntentProcessorTypeTest.kt | 2 +- buildSrc/src/main/java/AndroidComponents.kt | 2 +- 8 files changed, 31 insertions(+), 29 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4f29b5e47..3a3d0deba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,6 +42,7 @@ android { } def releaseTemplate = { + signingConfig signingConfigs.debug shrinkResources true minifyEnabled true proguardFiles 'proguard-android-optimize-3.5.0-modified.txt', 'proguard-rules.pro' diff --git a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt index 268426dba..033a4827e 100644 --- a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt @@ -9,8 +9,6 @@ import android.content.Intent import android.os.Bundle import android.os.StrictMode import androidx.annotation.VisibleForTesting -import kotlinx.coroutines.MainScope -import kotlinx.coroutines.launch import mozilla.components.feature.intent.processing.IntentProcessor import org.mozilla.fenix.components.IntentProcessorType import org.mozilla.fenix.components.getType @@ -33,19 +31,17 @@ class IntentReceiverActivity : Activity() { super.onCreate(savedInstanceState) } - MainScope().launch { - // The intent property is nullable, but the rest of the code below - // assumes it is not. If it's null, then we make a new one and open - // the HomeActivity. - val intent = intent?.let { Intent(it) } ?: Intent() - intent.stripUnwantedFlags() - processIntent(intent) - } + // The intent property is nullable, but the rest of the code below + // assumes it is not. If it's null, then we make a new one and open + // the HomeActivity. + val intent = intent?.let { Intent(it) } ?: Intent() + intent.stripUnwantedFlags() + processIntent(intent) StartupTimeline.onActivityCreateEndIntentReceiver() } - suspend fun processIntent(intent: Intent) { + fun processIntent(intent: Intent) { // Call process for side effects, short on the first that returns true val processor = getIntentProcessors().firstOrNull { it.process(intent) } val intentProcessorType = components.intentProcessors.getType(processor) diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index 3f2b0dbf3..9bfe78f1c 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -188,7 +188,7 @@ class Core(private val context: Context) { WebNotificationFeature( context, engine, icons, R.drawable.ic_status_logo, - HomeActivity::class.java + permissionStorage.permissionsStorage, HomeActivity::class.java ) } } diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt index f890dcc3b..c7f9e2860 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt @@ -9,6 +9,7 @@ import android.content.Intent import android.content.Intent.FLAG_ACTIVITY_NEW_DOCUMENT import androidx.annotation.VisibleForTesting import androidx.core.content.ContextCompat +import kotlinx.coroutines.runBlocking import mozilla.components.browser.session.Session import mozilla.components.browser.session.Session.Source import mozilla.components.browser.session.SessionManager @@ -52,28 +53,32 @@ class FennecWebAppIntentProcessor( * A custom tab config is also set so a custom tab toolbar can be shown when the user leaves * the scope defined in the manifest. */ - override suspend fun process(intent: Intent): Boolean { + override fun process(intent: Intent): Boolean { val safeIntent = intent.toSafeIntent() val url = safeIntent.dataString return if (!url.isNullOrEmpty() && matches(intent)) { - val webAppManifest = loadManifest(safeIntent, url) + runBlocking { - val session = Session(url, private = false, source = Source.HOME_SCREEN) - session.webAppManifest = webAppManifest - session.customTabConfig = webAppManifest?.toCustomTabConfig() ?: createFallbackCustomTabConfig() + val webAppManifest = loadManifest(safeIntent, url) - sessionManager.add(session) - loadUrlUseCase(url, session, EngineSession.LoadUrlFlags.external()) + val session = Session(url, private = false, source = Source.HOME_SCREEN) + session.webAppManifest = webAppManifest + session.customTabConfig = + webAppManifest?.toCustomTabConfig() ?: createFallbackCustomTabConfig() - intent.putSessionId(session.id) + sessionManager.add(session) + loadUrlUseCase(url, session, EngineSession.LoadUrlFlags.external()) - if (webAppManifest != null) { - intent.flags = FLAG_ACTIVITY_NEW_DOCUMENT - intent.putWebAppManifest(webAppManifest) + intent.putSessionId(session.id) + + if (webAppManifest != null) { + intent.flags = FLAG_ACTIVITY_NEW_DOCUMENT + intent.putWebAppManifest(webAppManifest) + } + + true } - - true } else { false } diff --git a/app/src/main/java/org/mozilla/fenix/home/intent/FennecBookmarkShortcutsIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/home/intent/FennecBookmarkShortcutsIntentProcessor.kt index 686347b10..fa51bcc37 100644 --- a/app/src/main/java/org/mozilla/fenix/home/intent/FennecBookmarkShortcutsIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/home/intent/FennecBookmarkShortcutsIntentProcessor.kt @@ -35,7 +35,7 @@ class FennecBookmarkShortcutsIntentProcessor( * If this is an Intent for a Fennec pinned website shortcut * prepare it for opening website's URL in a new tab. */ - override suspend fun process(intent: Intent): Boolean { + override fun process(intent: Intent): Boolean { val safeIntent = intent.toSafeIntent() val url = safeIntent.dataString diff --git a/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt index 94463aa53..a54809a43 100644 --- a/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/shortcut/NewTabShortcutIntentProcessor.kt @@ -28,7 +28,7 @@ class NewTabShortcutIntentProcessor : IntentProcessor { * @param intent The intent to process. * @return True if the intent was processed, otherwise false. */ - override suspend fun process(intent: Intent): Boolean { + override fun process(intent: Intent): Boolean { val safeIntent = SafeIntent(intent) val (searchExtra, startPrivateMode) = when (safeIntent.action) { ACTION_OPEN_TAB -> StartSearchIntentProcessor.STATIC_SHORTCUT_NEW_TAB to false diff --git a/app/src/test/java/org/mozilla/fenix/components/IntentProcessorTypeTest.kt b/app/src/test/java/org/mozilla/fenix/components/IntentProcessorTypeTest.kt index 50274af81..76523c7ea 100644 --- a/app/src/test/java/org/mozilla/fenix/components/IntentProcessorTypeTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/IntentProcessorTypeTest.kt @@ -100,7 +100,7 @@ class IntentProcessorTypeTest { @Test fun `get type for generic intent processor`() { val processor = object : IntentProcessor { - override suspend fun process(intent: Intent) = true + override fun process(intent: Intent) = true } val type = testContext.components.intentProcessors.getType(processor) diff --git a/buildSrc/src/main/java/AndroidComponents.kt b/buildSrc/src/main/java/AndroidComponents.kt index eb09f595f..0b2276e7f 100644 --- a/buildSrc/src/main/java/AndroidComponents.kt +++ b/buildSrc/src/main/java/AndroidComponents.kt @@ -3,5 +3,5 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ object AndroidComponents { - const val VERSION = "48.0.20200626130049" + const val VERSION = "48.0.20200626213814" } From b7d989a588d39a80bf5c256f60a9d25f06288de3 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Fri, 26 Jun 2020 02:25:10 -0400 Subject: [PATCH 08/22] Fix breaking API in WebNotificationFeature --- app/build.gradle | 1 - .../customtabs/FennecWebAppIntentProcessor.kt | 29 +++++++++---------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3a3d0deba..4f29b5e47 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,6 @@ android { } def releaseTemplate = { - signingConfig signingConfigs.debug shrinkResources true minifyEnabled true proguardFiles 'proguard-android-optimize-3.5.0-modified.txt', 'proguard-rules.pro' diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt index c7f9e2860..de67a087d 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/FennecWebAppIntentProcessor.kt @@ -58,27 +58,24 @@ class FennecWebAppIntentProcessor( val url = safeIntent.dataString return if (!url.isNullOrEmpty() && matches(intent)) { - runBlocking { + val webAppManifest = runBlocking { loadManifest(safeIntent, url) } - val webAppManifest = loadManifest(safeIntent, url) + val session = Session(url, private = false, source = Source.HOME_SCREEN) + session.webAppManifest = webAppManifest + session.customTabConfig = + webAppManifest?.toCustomTabConfig() ?: createFallbackCustomTabConfig() - val session = Session(url, private = false, source = Source.HOME_SCREEN) - session.webAppManifest = webAppManifest - session.customTabConfig = - webAppManifest?.toCustomTabConfig() ?: createFallbackCustomTabConfig() + sessionManager.add(session) + loadUrlUseCase(url, session, EngineSession.LoadUrlFlags.external()) - sessionManager.add(session) - loadUrlUseCase(url, session, EngineSession.LoadUrlFlags.external()) + intent.putSessionId(session.id) - intent.putSessionId(session.id) - - if (webAppManifest != null) { - intent.flags = FLAG_ACTIVITY_NEW_DOCUMENT - intent.putWebAppManifest(webAppManifest) - } - - true + if (webAppManifest != null) { + intent.flags = FLAG_ACTIVITY_NEW_DOCUMENT + intent.putWebAppManifest(webAppManifest) } + + true } else { false } From c6415ce18fa6faecd48eb0c42e2f5addfbbe7564 Mon Sep 17 00:00:00 2001 From: MarcLeclair Date: Fri, 26 Jun 2020 20:10:22 -0400 Subject: [PATCH 09/22] For 11616: removed black flicker with placeholder animation (#11796) Increasing duration removed second "light" flicker --- app/src/main/res/anim/placeholder_animation.xml | 9 +++++++++ app/src/main/res/values/styles.xml | 1 + .../java/org/mozilla/fenix/MigrationDecisionActivity.kt | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/anim/placeholder_animation.xml diff --git a/app/src/main/res/anim/placeholder_animation.xml b/app/src/main/res/anim/placeholder_animation.xml new file mode 100644 index 000000000..80c254842 --- /dev/null +++ b/app/src/main/res/anim/placeholder_animation.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 0639fc523..567f6ade1 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -20,6 +20,7 @@ @style/DialogStyleNormal @style/DialogStyleNormal false + @android:color/transparent false Date: Fri, 26 Jun 2020 17:15:43 -0700 Subject: [PATCH 10/22] For #11479: Record open tabs count in metrics ping (#12024) --- app/metrics.yaml | 32 +++++++++++++++++++ .../fenix/browser/UriOpenedObserver.kt | 8 +++++ .../components/metrics/GleanMetricsService.kt | 6 ++++ .../java/org/mozilla/fenix/utils/Settings.kt | 13 ++++++++ app/src/main/res/values/preference_keys.xml | 2 ++ .../browser/TelemetrySessionObserverTest.kt | 4 ++- .../fenix/browser/UriOpenedObserverTest.kt | 6 ++-- docs/metrics.md | 2 ++ 8 files changed, 70 insertions(+), 3 deletions(-) diff --git a/app/metrics.yaml b/app/metrics.yaml index ebf33eb58..e61bdcc16 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -689,6 +689,38 @@ metrics: notification_emails: - fenix-core@mozilla.com expires: "2020-09-01" + tabs_open_count: + type: counter + lifetime: application + description: | + A counter that indicates how many NORMAL tabs a user has open. This + value will only be set if the user has at least *one* open tab. If they + have 0, this ping will not get sent, resulting in a null value. To + disambiguate between a failed `tabs_open_count` ping and 0 open tabs, + please see `has_open_tabs`. + send_in_pings: + - metrics + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11479 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12024 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" + has_open_tabs: + type: boolean + lifetime: application + description: | + A boolean that indicates if the user has any open NORMAL tabs. + send_in_pings: + - metrics + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11479 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/12024 + notification_emails: + - fenix-core@mozilla.com + expires: "2020-09-01" preferences: show_search_suggestions: diff --git a/app/src/main/java/org/mozilla/fenix/browser/UriOpenedObserver.kt b/app/src/main/java/org/mozilla/fenix/browser/UriOpenedObserver.kt index fb48418a7..213bec6a9 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/UriOpenedObserver.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/UriOpenedObserver.kt @@ -12,9 +12,12 @@ import mozilla.components.browser.session.SessionManager import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.metrics +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.search.telemetry.ads.AdsTelemetry +import org.mozilla.fenix.utils.Settings class UriOpenedObserver( + private val settings: Settings, private val owner: LifecycleOwner, private val sessionManager: SessionManager, metrics: MetricController, @@ -22,6 +25,7 @@ class UriOpenedObserver( ) : SessionManager.Observer { constructor(activity: FragmentActivity) : this( + activity.applicationContext.settings(), activity, activity.components.core.sessionManager, activity.metrics, @@ -41,20 +45,24 @@ class UriOpenedObserver( } override fun onAllSessionsRemoved() { + settings.setOpenTabsCount(sessionManager.sessions.filter { !it.private }.size) sessionManager.sessions.forEach { it.unregister(singleSessionObserver) } } override fun onSessionAdded(session: Session) { + settings.setOpenTabsCount(sessionManager.sessions.filter { !it.private }.size) session.register(singleSessionObserver, owner) } override fun onSessionRemoved(session: Session) { + settings.setOpenTabsCount(sessionManager.sessions.filter { !it.private }.size) session.unregister(singleSessionObserver) } override fun onSessionsRestored() { + settings.setOpenTabsCount(sessionManager.sessions.filter { !it.private }.size) sessionManager.sessions.forEach { it.register(singleSessionObserver, owner) } 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 e6627603b..6ad4107f0 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 @@ -697,6 +697,12 @@ class GleanMetricsService(private val context: Context) : MetricsService { searchWidgetInstalled.set(context.settings().searchWidgetInstalled) + val openTabsCount = context.settings().openTabsCount + hasOpenTabs.set(openTabsCount > 0) + if (openTabsCount > 0) { + tabsOpenCount.add(openTabsCount) + } + val topSitesSize = context.settings().topSitesSize hasTopSites.set(topSitesSize > 0) if (topSitesSize > 0) { diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 727e8d0a1..8d741fac8 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -775,6 +775,19 @@ class Settings private constructor( default = 0 ) + fun setOpenTabsCount(count: Int) { + preferences.edit().putInt( + appContext.getPreferenceKey(R.string.pref_key_open_tabs_count), + count + ).apply() + } + + val openTabsCount: Int + get() = preferences.getInt( + appContext.getPreferenceKey(R.string.pref_key_open_tabs_count), + 0 + ) + private var savedLoginsSortingStrategyString by stringPreference( appContext.getPreferenceKey(R.string.pref_key_saved_logins_sorting_strategy), default = SavedLoginsFragment.SORTING_STRATEGY_ALPHABETICALLY diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 2a5dd38f2..7e2c43baa 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -177,6 +177,8 @@ pref_key_debug_settings + pref_key_open_tabs_count + pref_key_search_count pref_key_search_widget_cfr_display_count pref_key_search_widget_cfr_dismiss_count diff --git a/app/src/test/java/org/mozilla/fenix/browser/TelemetrySessionObserverTest.kt b/app/src/test/java/org/mozilla/fenix/browser/TelemetrySessionObserverTest.kt index 9987ae88f..517d1cb24 100644 --- a/app/src/test/java/org/mozilla/fenix/browser/TelemetrySessionObserverTest.kt +++ b/app/src/test/java/org/mozilla/fenix/browser/TelemetrySessionObserverTest.kt @@ -16,9 +16,11 @@ import org.junit.Test import org.mozilla.fenix.components.metrics.Event import org.mozilla.fenix.components.metrics.MetricController import org.mozilla.fenix.search.telemetry.ads.AdsTelemetry +import org.mozilla.fenix.utils.Settings class TelemetrySessionObserverTest { + private val settings: Settings = mockk(relaxed = true) private val owner: LifecycleOwner = mockk(relaxed = true) private val sessionManager: SessionManager = mockk(relaxed = true) private val metrics: MetricController = mockk(relaxed = true) @@ -29,7 +31,7 @@ class TelemetrySessionObserverTest { @Before fun setup() { singleSessionObserver = - UriOpenedObserver(owner, sessionManager, metrics, ads).singleSessionObserver + UriOpenedObserver(settings, owner, sessionManager, metrics, ads).singleSessionObserver } @Test diff --git a/app/src/test/java/org/mozilla/fenix/browser/UriOpenedObserverTest.kt b/app/src/test/java/org/mozilla/fenix/browser/UriOpenedObserverTest.kt index 43a7f8334..2b1224ba4 100644 --- a/app/src/test/java/org/mozilla/fenix/browser/UriOpenedObserverTest.kt +++ b/app/src/test/java/org/mozilla/fenix/browser/UriOpenedObserverTest.kt @@ -11,11 +11,13 @@ import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import org.junit.Before import org.junit.Test -import org.mozilla.fenix.search.telemetry.ads.AdsTelemetry import org.mozilla.fenix.components.metrics.MetricController +import org.mozilla.fenix.search.telemetry.ads.AdsTelemetry +import org.mozilla.fenix.utils.Settings class UriOpenedObserverTest { + private val settings: Settings = mockk(relaxed = true) private val owner: LifecycleOwner = mockk(relaxed = true) private val sessionManager: SessionManager = mockk(relaxed = true) private val metrics: MetricController = mockk() @@ -24,7 +26,7 @@ class UriOpenedObserverTest { @Before fun setup() { - observer = UriOpenedObserver(owner, sessionManager, metrics, ads) + observer = UriOpenedObserver(settings, owner, sessionManager, metrics, ads) } @Test diff --git a/docs/metrics.md b/docs/metrics.md index 43ae931bc..aa17d6773 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -263,12 +263,14 @@ The following metrics are added to the ping: | metrics.adjust_network |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust network ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-09-01 | | metrics.default_browser |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Is Fenix the default browser? |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)||2020-09-01 | | metrics.default_moz_browser |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the default browser on device if and only if it's a Mozilla owned product |[1](https://github.com/mozilla-mobile/fenix/pull/1953/), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | +| metrics.has_open_tabs |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has any open NORMAL tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/12024)||2020-09-01 | | metrics.has_recent_pwas |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has recently used PWAs. See recently_used_pwa_count for the actual count. |[1](https://github.com/mozilla-mobile/fenix/pull/11982#pullrequestreview-437963817)||2020-12-01 | | metrics.has_top_sites |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has top sites |[1](https://github.com/mozilla-mobile/fenix/pull/9556)||2020-09-01 | | metrics.mozilla_products |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all the Mozilla products installed on device. We currently scan for: Firefox, Firefox Beta, Firefox Aurora, Firefox Nightly, Firefox Fdroid, Firefox Lite, Reference Browser, Reference Browser Debug, Fenix, Focus, and Lockwise. |[1](https://github.com/mozilla-mobile/fenix/pull/1953/), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | | metrics.recently_used_pwa_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many PWAs a user has recently used. Threshold for "recency" set in HomeActivity#PWA_RECENTLY_USED_THRESHOLD. Currently we are not told by the OS when a PWA is removed by the user, so we use the "recently used" heuristic to judge how many PWAs are still active, as a proxy for "installed". This value will only be set if the user has at least *one* recently used PWA. If they have 0, this metric will not be sent, resulting in a null value during analysis on the server-side. To disambiguate between a failed `recently_used_pwa_count` metric and 0 recent PWAs, please see `has_recent_pwas`. |[1](https://github.com/mozilla-mobile/fenix/pull/11982#pullrequestreview-437963817)||2020-12-01 | | metrics.search_count |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |The labels for this counter are `.`. If the search engine is bundled with Fenix `search-engine-name` will be the name of the search engine. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be `custom`. `source` will be: `action`, `suggestion`, `widget` or `shortcut` (depending on the source from which the search started). Also added the `other` option for the source but it should never enter on this case. |[1](https://github.com/mozilla-mobile/fenix/pull/1677), [2](https://github.com/mozilla-mobile/fenix/pull/5216), [3](https://github.com/mozilla-mobile/fenix/pull/7310)||2020-09-01 | | metrics.search_widget_installed |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the search widget is installed |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-09-01 | +| metrics.tabs_open_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many NORMAL tabs a user has open. This value will only be set if the user has at least *one* open tab. If they have 0, this ping will not get sent, resulting in a null value. To disambiguate between a failed `tabs_open_count` ping and 0 open tabs, please see `has_open_tabs`. |[1](https://github.com/mozilla-mobile/fenix/pull/12024)||2020-09-01 | | metrics.toolbar_position |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string that indicates the new position of the toolbar TOP or BOTTOM |[1](https://github.com/mozilla-mobile/fenix/pull/6608)||2020-09-01 | | metrics.top_sites_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many top sites a user has. This value will only be set if the user has at least *one* top site. If they have 0, this ping will not get sent, resulting in a null value. To disambiguate between a failed `top_sites_count` ping and 0 top sites, please see `has_top_sites`. |[1](https://github.com/mozilla-mobile/fenix/pull/9556)||2020-09-01 | | perf.awesomebar.bookmark_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a bookmarks awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | From 61b1b5a8953c20cfae8c473e1b9238270a7155ed Mon Sep 17 00:00:00 2001 From: Sawyer Blatz Date: Fri, 26 Jun 2020 17:19:58 -0700 Subject: [PATCH 11/22] No issue: update experiments when experiments updated (#12032) --- app/src/main/java/org/mozilla/fenix/FenixApplication.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 0a5f9c77b..0d9a3b2c0 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -173,6 +173,9 @@ open class FenixApplication : LocaleAwareApplication() { taskQueue.runIfReadyOrQueue { Experiments.initialize( applicationContext = applicationContext, + onExperimentsUpdated = { + ExperimentsManager.initSearchWidgetExperiment(this) + }, configuration = mozilla.components.service.experiments.Configuration( httpClient = components.core.client, kintoEndpoint = KINTO_ENDPOINT_PROD From 4b9cc954fa670f14bfec4c81617d44f65c849a40 Mon Sep 17 00:00:00 2001 From: Sachin Date: Fri, 26 Jun 2020 17:38:08 -0700 Subject: [PATCH 12/22] for #11830 added new metric for collecting startup method from all startup phases (#11940) * for #11830 added new metric for collecting startup method move all source startup telemetry into its own logic and added an UNKOWN state * switched back to onNewIntent solution * renamed the metric --- app/metrics.yaml | 26 +++++++++++++++++++ .../java/org/mozilla/fenix/HomeActivity.kt | 25 ++++++++++++++++-- .../components/metrics/GleanMetricsService.kt | 4 +++ .../fenix/components/metrics/Metrics.kt | 7 +++++ .../customtabs/ExternalAppBrowserActivity.kt | 2 ++ docs/metrics.md | 1 + 6 files changed, 63 insertions(+), 2 deletions(-) diff --git a/app/metrics.yaml b/app/metrics.yaml index e61bdcc16..ab66f5cae 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -8,6 +8,32 @@ no_lint: - CATEGORY_GENERIC events: + app_received_intent: + type: event + description: | + The system received an Intent for the HomeActivity. An intent + is received an external entity wants to the app to display + content. Intents can be received when the app is closed – at + which point the app will be opened – or when the app is + already opened – at which point the already open app will make + changes such as loading a url. This can be used loosely as a + heuristic for when the user requested to open the app. The + HomeActivity encompasses the home screen and browser screen but + may include other screens. This differs from the app_opened + probe because it measures all startups, not just cold startup. + extra_keys: + source: + description: | + The method used to open Fenix. Possible values are `app_icon`, + `custom_tab`, `link` or `unknown` + bugs: + - https://github.com/mozilla-mobile/fenix/issues/11830 + data_reviews: + - https://github.com/mozilla-mobile/fenix/pull/11940/ + notification_emails: + - esmyth@mozilla.com + - perf-android-fe@mozilla.com + expires: "2020-12-01" app_opened: type: event description: | diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index a80def5b0..d8c5c7124 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -174,10 +174,14 @@ open class HomeActivity : LocaleAwareAppCompatActivity() { lifecycle.addObserver(BreadcrumbsRecorder(components.analytics.crashReporter, navHost.navController, ::getBreadcrumbMessage)) - intent - ?.toSafeIntent() + val safeIntent = intent?.toSafeIntent() + safeIntent ?.let(::getIntentSource) ?.also { components.analytics.metrics.track(Event.OpenedApp(it)) } + // record on cold startup + safeIntent + ?.let(::getIntentAllSource) + ?.also { components.analytics.metrics.track(Event.AppRecievedIntent(it)) } } supportActionBar?.hide() @@ -250,6 +254,15 @@ open class HomeActivity : LocaleAwareAppCompatActivity() { ?.let { it as? TabTrayDialogFragment } ?.also { it.dismissAllowingStateLoss() } } + + // If there is a warm or hot startup, onNewIntent method is always called first. + // Note: This does not work in case of an user sending an intent with ACTION_VIEW + // for example, launch the application, and than use adb to send an intent with + // ACTION_VIEW to open a link. In this case, we will get multiple telemetry events. + intent + .toSafeIntent() + .let(::getIntentAllSource) + ?.also { components.analytics.metrics.track(Event.AppRecievedIntent(it)) } } /** @@ -320,6 +333,14 @@ open class HomeActivity : LocaleAwareAppCompatActivity() { } } + protected open fun getIntentAllSource(intent: SafeIntent): Event.AppRecievedIntent.Source? { + return when { + intent.isLauncherIntent -> Event.AppRecievedIntent.Source.APP_ICON + intent.action == Intent.ACTION_VIEW -> Event.AppRecievedIntent.Source.LINK + else -> Event.AppRecievedIntent.Source.UNKNOWN + } + } + /** * External sources such as 3rd party links and shortcuts use this function to enter * private mode directly before the content view is created. Returns the mode set by the intent 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 6ad4107f0..043cfed25 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 @@ -97,6 +97,10 @@ private val Event.wrapper: EventWrapper<*>? { Events.appOpened.record(it) }, { Events.appOpenedKeys.valueOf(it) } ) + is Event.AppRecievedIntent -> EventWrapper( + { Events.appReceivedIntent.record(it) }, + { Events.appReceivedIntentKeys.valueOf(it) } + ) is Event.SearchBarTapped -> EventWrapper( { Events.searchBarTapped.record(it) }, { Events.searchBarTappedKeys.valueOf(it) } diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt index 50da78067..007dd1536 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt @@ -309,6 +309,13 @@ sealed class Event { get() = hashMapOf(Events.appOpenedKeys.source to source.name) } + data class AppRecievedIntent(val source: Source) : Event() { + enum class Source { APP_ICON, LINK, CUSTOM_TAB, UNKNOWN } + + override val extras: Map? + get() = hashMapOf(Events.appReceivedIntentKeys.source to source.name) + } + data class CollectionSaveButtonPressed(val fromScreen: String) : Event() { override val extras: Map? get() = mapOf(Collections.saveButtonKeys.fromScreen to fromScreen) diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt index 7e1e20c6c..2914f7326 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt @@ -41,6 +41,8 @@ open class ExternalAppBrowserActivity : HomeActivity() { final override fun getIntentSource(intent: SafeIntent) = Event.OpenedApp.Source.CUSTOM_TAB + final override fun getIntentAllSource(intent: SafeIntent) = Event.AppRecievedIntent.Source.CUSTOM_TAB + final override fun getIntentSessionId(intent: SafeIntent) = intent.getSessionId() override fun getNavDirections( diff --git a/docs/metrics.md b/docs/metrics.md index aa17d6773..22c7f6dbb 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -100,6 +100,7 @@ The following metrics are added to the ping: | download_notification.try_again |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on try again when a download fails in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | | error_page.visited_error |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user encountered an error page |[1](https://github.com/mozilla-mobile/fenix/pull/2491#issuecomment-492414486)|
  • error_type: The error type of the error page encountered
|2020-09-01 | | events.app_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the app (from cold start, to the homescreen or browser) |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • source: The method used to open Fenix. Possible values are: `app_icon`, `custom_tab` or `link`
|2020-09-01 | +| events.app_opened_all_startup |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the app to the HomeActivity. The HomeActivity encompasses the home screen and browser screen but may include other screens. This differs from the app_opened probe because it measures all startups, not just cold startup. |[1](https://github.com/mozilla-mobile/fenix/pull/11940/)|
  • source: The method used to open Fenix. Possible values are `app_icon`, `custom_tab`, `link` or `unknown`
|2020-12-01 | | events.browser_menu_action |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A browser menu item was tapped |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708), [2](https://github.com/mozilla-mobile/fenix/pull/5098#issuecomment-529658996), [3](https://github.com/mozilla-mobile/fenix/pull/6310)|
  • item: A string containing the name of the item the user tapped. These items include: Settings, Help, Desktop Site toggle on/off, Find in Page, New Tab, Private Tab, Share, Report Site Issue, Back/Forward button, Reload Button, Quit, Reader Mode On, Reader Mode Off, Open In app, Add To Top Sites, Add-ons Manager, Bookmarks, History
|2020-09-01 | | events.entered_url |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user entered a url |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • autocomplete: A boolean that tells us whether the URL was autofilled by an Autocomplete suggestion
|2020-09-01 | | events.opened_link |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a link with Fenix |[1](https://github.com/mozilla-mobile/fenix/pull/5975)|
  • mode: The mode the link was opened in. Either 'PRIVATE' or 'NORMAL'.
|2020-09-01 | From f89b157c234621c4e219e4a527f89b0526cb2ac1 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Fri, 26 Jun 2020 20:46:23 -0400 Subject: [PATCH 13/22] For #12002: Show default tab background when thumbnail not available (#12041) --- app/src/main/res/layout/tab_tray_item.xml | 10 ++++++++++ app/src/main/res/values-night/colors.xml | 2 ++ app/src/main/res/values/attrs.xml | 2 ++ app/src/main/res/values/colors.xml | 6 ++++++ app/src/main/res/values/styles.xml | 4 ++++ 5 files changed, 24 insertions(+) diff --git a/app/src/main/res/layout/tab_tray_item.xml b/app/src/main/res/layout/tab_tray_item.xml index 338631345..0a465794e 100644 --- a/app/src/main/res/layout/tab_tray_item.xml +++ b/app/src/main/res/layout/tab_tray_item.xml @@ -29,10 +29,20 @@ android:layout_height="69dp" android:layout_marginStart="16dp" android:layout_marginTop="8dp" + android:backgroundTint="?tabTrayThumbnailItemBackground" app:cardBackgroundColor="@color/photonWhite" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> + + @color/tab_tray_item_media_background_dark_theme @color/tab_tray_heading_icon_dark_theme @color/tab_tray_heading_icon_inactive_dark_theme + @color/tab_tray_item_thumbnail_background_dark_theme + @color/tab_tray_item_thumbnail_icon_dark_theme @color/top_site_background_dark_theme diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 87849a68d..305e19826 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -60,6 +60,8 @@ + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 9501623c0..2efbf79d8 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -83,6 +83,8 @@ #312A65 @color/ink_20 @color/ink_20_48a + @color/light_grey_10 + @color/light_grey_60 #FBFBFE @@ -140,6 +142,8 @@ #9059FF @color/violet_50 @color/violet_50_48a + @color/dark_grey_50 + @color/dark_grey_05 #FBFBFE @@ -243,6 +247,8 @@ @color/tab_tray_item_media_background_light_theme @color/tab_tray_heading_icon_light_theme @color/tab_tray_heading_icon_inactive_light_theme + @color/tab_tray_item_thumbnail_background_light_theme + @color/tab_tray_item_thumbnail_icon_light_theme #DFDFE3 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 567f6ade1..961374f94 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -84,6 +84,8 @@ @color/tab_tray_item_media_background_normal_theme @color/tab_tray_heading_icon_normal_theme @color/tab_tray_heading_icon_inactive_normal_theme + @color/tab_tray_item_thumbnail_background_normal_theme + @color/tab_tray_item_thumbnail_icon_normal_theme @drawable/ic_logo_wordmark_normal @@ -209,6 +211,8 @@ @color/tab_tray_item_media_background_private_theme @color/tab_tray_heading_icon_dark_theme @color/tab_tray_heading_icon_inactive_dark_theme + @color/tab_tray_item_thumbnail_background_normal_theme + @color/tab_tray_item_thumbnail_icon_normal_theme @drawable/ic_logo_wordmark_private From a18c1befd1a7f174e3dbc022ff844f713cc8ae4b Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Fri, 26 Jun 2020 17:56:56 -0700 Subject: [PATCH 14/22] For #11044 - Sets the anchorView of the snackbar to be the new tab fab (#11930) --- .../mozilla/fenix/tabtray/TabTrayDialogFragment.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt index 1416b247b..d3272be44 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayDialogFragment.kt @@ -10,11 +10,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AppCompatDialogFragment +import androidx.core.view.isVisible import androidx.core.view.updatePadding import androidx.fragment.app.FragmentManager import androidx.lifecycle.lifecycleScope import androidx.navigation.fragment.findNavController import kotlinx.android.synthetic.main.component_tabstray.view.* +import kotlinx.android.synthetic.main.component_tabstray_fab.view.* import kotlinx.android.synthetic.main.fragment_tab_tray_dialog.* import kotlinx.android.synthetic.main.fragment_tab_tray_dialog.view.* import mozilla.components.browser.session.Session @@ -43,6 +45,10 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { private val tabTrayView: TabTrayView get() = _tabTrayView!! + private val snackbarAnchor: View? + get() = if (tabTrayView.fabView.new_tab_button.isVisible) tabTrayView.fabView.new_tab_button + else null + private val collectionStorageObserver = object : TabCollectionStorage.Observer { override fun onCollectionCreated(title: String, sessions: List) { showCollectionSnackbar() @@ -188,7 +194,8 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { sessionManager.add(snapshot.session, isSelected, engineSessionState = state) }, operation = { }, - elevation = ELEVATION + elevation = ELEVATION, + anchorView = snackbarAnchor ) } } @@ -232,7 +239,8 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { context?.components?.core?.sessionManager?.restore(snapshot) }, operation = { }, - elevation = ELEVATION + elevation = ELEVATION, + anchorView = snackbarAnchor ) } } @@ -245,6 +253,7 @@ class TabTrayDialogFragment : AppCompatDialogFragment() { isDisplayedWithBrowserToolbar = true, view = (view as View) ) + .setAnchorView(snackbarAnchor) .setText(requireContext().getString(R.string.create_collection_tabs_saved)) .setAction(requireContext().getString(R.string.create_collection_view)) { dismissAllowingStateLoss() From 2ac849631593d5cbe61b2f8d704687fc26802934 Mon Sep 17 00:00:00 2001 From: Kate Glazko Date: Fri, 26 Jun 2020 15:53:51 -0700 Subject: [PATCH 15/22] For #12025: Set Search Shortcuts Off By Default --- .../java/org/mozilla/fenix/ui/SearchTest.kt | 12 ++++++++++++ .../fenix/ui/robots/SettingsSubMenuSearchRobot.kt | 12 ++++++++++++ .../main/java/org/mozilla/fenix/utils/Settings.kt | 2 +- .../fenix/search/DefaultSearchControllerTest.kt | 8 ++++++++ .../java/org/mozilla/fenix/utils/SettingsTest.kt | 2 +- 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index 5454e78b6..a57ec57c7 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -50,6 +50,12 @@ class SearchTest { @Test fun shortcutButtonTest() { homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.openSearchSubMenu { + enableShowSearchShortcuts() + }.goBack { + }.goBack { }.openSearch { verifySearchWithText() clickSearchEngineButton("DuckDuckGo") @@ -63,6 +69,12 @@ class SearchTest { @Test fun shortcutSearchEngineSettingsTest() { homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.openSearchSubMenu { + enableShowSearchShortcuts() + }.goBack { + }.goBack { }.openSearch { scrollToSearchEngineSettings() clickSearchEngineSettings() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt index b50e5aae2..9a9ced7e5 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuSearchRobot.kt @@ -36,6 +36,7 @@ class SettingsSubMenuSearchRobot { selectDefaultSearchEngine(searchEngineName) fun disableShowSearchSuggestions() = toggleShowSearchSuggestions() + fun enableShowSearchShortcuts() = toggleShowSearchShortcuts() class Transition { val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) @@ -142,5 +143,16 @@ private fun toggleShowSearchSuggestions() { .perform(click()) } +private fun toggleShowSearchShortcuts() { + onView(withId(androidx.preference.R.id.recycler_view)).perform( + RecyclerViewActions.scrollTo( + hasDescendant(withText("Show search shortcuts")) + ) + ) + + onView(withText("Show search shortcuts")) + .perform(click()) +} + private fun goBackButton() = onView(CoreMatchers.allOf(withContentDescription("Navigate up"))) diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 8d741fac8..fbf5b28e3 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -309,7 +309,7 @@ class Settings private constructor( val shouldShowSearchShortcuts by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_show_search_shortcuts), - default = true + default = false ) val shouldUseDarkTheme by booleanPreference( diff --git a/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt b/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt index b2bc035e2..314468d2c 100644 --- a/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/DefaultSearchControllerTest.kt @@ -150,6 +150,10 @@ class DefaultSearchControllerTest { @Test fun `show search shortcuts when setting enabled AND query empty`() { val text = "" + testContext.settings().preferences + .edit() + .putBoolean(testContext.getString(R.string.pref_key_show_search_shortcuts), true) + .apply() controller.handleTextChanged(text) @@ -160,6 +164,10 @@ class DefaultSearchControllerTest { fun `show search shortcuts when setting enabled AND query equals url`() { val text = "mozilla.org" every { session?.url } returns "mozilla.org" + testContext.settings().preferences + .edit() + .putBoolean(testContext.getString(R.string.pref_key_show_search_shortcuts), true) + .apply() assertEquals(text, session?.url) diff --git a/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt b/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt index 65640776a..79f90813e 100644 --- a/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt +++ b/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt @@ -254,7 +254,7 @@ class SettingsTest { fun shouldShowSearchShortcuts() { // When just created // Then - assertTrue(settings.shouldShowSearchShortcuts) + assertFalse(settings.shouldShowSearchShortcuts) } @Test From c4a4beb6b98d5531eff72fb91881a33cbfcfc49b Mon Sep 17 00:00:00 2001 From: David Walsh Date: Thu, 11 Jun 2020 19:06:19 -0500 Subject: [PATCH 16/22] For 11468 - Show tab tray after opening links from history and bookmarks --- .../org/mozilla/fenix/ui/BookmarksTest.kt | 4 +-- .../java/org/mozilla/fenix/ui/HistoryTest.kt | 4 +-- ...rySubMenusMultipleSelectionToolbarRobot.kt | 27 ++++++++++--------- .../mozilla/fenix/ui/robots/TabDrawerRobot.kt | 17 ++++++++++++ .../library/bookmarks/BookmarkFragment.kt | 4 +-- .../fenix/library/history/HistoryFragment.kt | 4 +-- 6 files changed, 40 insertions(+), 20 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt index 6c352d07c..216562458 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt @@ -340,7 +340,7 @@ class BookmarksTest { } multipleSelectionToolbar { - }.clickOpenNewTab { }.openTabDrawer { + }.clickOpenNewTab { verifyNormalModeSelected() verifyExistingTabList() } @@ -363,7 +363,7 @@ class BookmarksTest { } multipleSelectionToolbar { - }.clickOpenPrivateTab { }.openTabDrawer { + }.clickOpenPrivateTab { verifyPrivateModeSelected() verifyExistingTabList() } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt index 0538540dc..30ab196ef 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt @@ -216,7 +216,7 @@ class HistoryTest { } multipleSelectionToolbar { - }.clickOpenNewTab { }.openTabDrawer { + }.clickOpenNewTab { verifyExistingTabList() verifyNormalModeSelected() } @@ -236,7 +236,7 @@ class HistoryTest { } multipleSelectionToolbar { - }.clickOpenPrivateTab { }.openTabDrawer { + }.clickOpenPrivateTab { verifyPrivateModeSelected() verifyExistingTabList() } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt index 50fe18522..e12c5242f 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/LibrarySubMenusMultipleSelectionToolbarRobot.kt @@ -85,23 +85,26 @@ class LibrarySubMenusMultipleSelectionToolbarRobot { return BookmarksRobot.Transition() } - fun clickOpenNewTab(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { + fun clickOpenNewTab(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { openInNewTabButton().click() - mDevice.waitNotNull(Until.findObject(By.text("Collections")), waitingTime) - - HomeScreenRobot().interact() - return HomeScreenRobot.Transition() - } - - fun clickOpenPrivateTab(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { - openInPrivateTabButton().click() mDevice.waitNotNull( - Until.findObject(By.text(PRIVATE_SESSION_MESSAGE)), + Until.findObject(By.res("org.mozilla.fenix.debug:id/tab_layout")), waitingTime ) - HomeScreenRobot().interact() - return HomeScreenRobot.Transition() + TabDrawerRobot().interact() + return TabDrawerRobot.Transition() + } + + fun clickOpenPrivateTab(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + openInPrivateTabButton().click() + mDevice.waitNotNull( + Until.findObject(By.res("org.mozilla.fenix.debug:id/tab_layout")), + waitingTime + ) + + TabDrawerRobot().interact() + return TabDrawerRobot.Transition() } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt index 6af77c343..5ac8bf2d4 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/TabDrawerRobot.kt @@ -26,6 +26,7 @@ import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.By import androidx.test.uiautomator.By.text import androidx.test.uiautomator.UiDevice +import androidx.test.uiautomator.Until import androidx.test.uiautomator.Until.findObject import org.hamcrest.CoreMatchers.allOf import org.mozilla.fenix.R @@ -104,6 +105,20 @@ class TabDrawerRobot { return ThreeDotMenuMainRobot.Transition() } + fun openTabDrawer(interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { + org.mozilla.fenix.ui.robots.mDevice.waitForIdle() + + tabsCounter().click() + + org.mozilla.fenix.ui.robots.mDevice.waitNotNull( + Until.findObject(By.res("org.mozilla.fenix.debug:id/tab_layout")), + waitingTime + ) + + TabDrawerRobot().interact() + return TabDrawerRobot.Transition() + } + fun openHomeScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { mDevice.waitForIdle() @@ -196,3 +211,5 @@ private fun tab(title: String) = withText(title) ) ) + +private fun tabsCounter() = onView(withId(R.id.tab_button)) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt index eecd9923e..6507c8668 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt @@ -204,14 +204,14 @@ class BookmarkFragment : LibraryPageFragment(), UserInteractionHan R.id.open_bookmarks_in_new_tabs_multi_select -> { openItemsInNewTab { node -> node.url } - navigate(BookmarkFragmentDirections.actionGlobalHome()) + navigate(BookmarkFragmentDirections.actionGlobalTabTrayDialogFragment()) metrics?.track(Event.OpenedBookmarksInNewTabs) true } R.id.open_bookmarks_in_private_tabs_multi_select -> { openItemsInNewTab(private = true) { node -> node.url } - navigate(BookmarkFragmentDirections.actionGlobalHome()) + navigate(BookmarkFragmentDirections.actionGlobalTabTrayDialogFragment()) metrics?.track(Event.OpenedBookmarksInPrivateTabs) true } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index f5fdd9027..a6796f1d6 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -183,7 +183,7 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandl nav( R.id.historyFragment, - HistoryFragmentDirections.actionGlobalHome() + HistoryFragmentDirections.actionGlobalTabTrayDialogFragment() ) true } @@ -199,7 +199,7 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandl } nav( R.id.historyFragment, - HistoryFragmentDirections.actionGlobalHome() + HistoryFragmentDirections.actionGlobalTabTrayDialogFragment() ) true } From f9b756c8c948d0d5922687ac9b583d51c59f0ce7 Mon Sep 17 00:00:00 2001 From: Chenxia Liu Date: Fri, 26 Jun 2020 17:42:19 -0700 Subject: [PATCH 17/22] Issue #12044 - Bump expiry by 1mo for release --- app/metrics.yaml | 448 +++++++++++++++++++++++----------------------- docs/metrics.md | 450 +++++++++++++++++++++++------------------------ 2 files changed, 449 insertions(+), 449 deletions(-) diff --git a/app/metrics.yaml b/app/metrics.yaml index ab66f5cae..8f7e414e7 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -51,7 +51,7 @@ events: notification_emails: - telemetry-client-dev@mozilla.com - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_bar_tapped: type: event description: | @@ -67,7 +67,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" entered_url: type: event description: | @@ -83,7 +83,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" performed_search: type: event description: | @@ -105,7 +105,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/1677 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" browser_menu_action: type: event description: | @@ -128,7 +128,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/6310 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" total_uri_count: type: counter description: | @@ -147,7 +147,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/8314 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" preference_toggled: type: event description: | @@ -185,7 +185,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/6746 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" whats_new_tapped: type: event description: | @@ -196,7 +196,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/5090 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" opened_link: type: event description: | @@ -211,7 +211,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/5975 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tab_counter_menu_action: type: event description: @@ -229,7 +229,7 @@ events: - https://github.com/mozilla-mobile/fenix/pull/11533 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" onboarding: fxa_auto_signin: @@ -243,7 +243,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" fxa_manual_signin: type: event description: @@ -255,7 +255,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" privacy_notice: type: event description: @@ -267,7 +267,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pref_toggled_private_browsing: type: event description: @@ -279,7 +279,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pref_toggled_toolbar_position: type: event description: @@ -296,7 +296,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pref_toggled_tracking_prot: type: event description: @@ -313,7 +313,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" whats_new: type: event description: @@ -325,7 +325,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pref_toggled_theme_picker: type: event description: @@ -342,7 +342,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" finish: type: event description: @@ -354,7 +354,7 @@ onboarding: notification_emails: - fenix-core@mozilla.com - erichards@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_shortcuts: selected: @@ -371,7 +371,7 @@ search_shortcuts: - https://github.com/mozilla-mobile/fenix/pull/1202#issuecomment-476870449 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" toolbar_settings: changed_position: @@ -388,7 +388,7 @@ toolbar_settings: - https://github.com/mozilla-mobile/fenix/pull/6608 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" crash_reporter: opened: @@ -401,7 +401,7 @@ crash_reporter: - https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -417,7 +417,7 @@ crash_reporter: - https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" context_menu: item_tapped: @@ -439,7 +439,7 @@ context_menu: - https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" find_in_page: opened: @@ -452,7 +452,7 @@ find_in_page: - https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -463,7 +463,7 @@ find_in_page: - https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" searched_page: type: event description: | @@ -474,7 +474,7 @@ find_in_page: - https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" metrics: default_browser: @@ -490,7 +490,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" top_sites_count: type: counter lifetime: application @@ -508,7 +508,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/9556 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" has_top_sites: type: boolean lifetime: application @@ -522,7 +522,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/9556 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" recently_used_pwa_count: type: counter lifetime: application @@ -584,7 +584,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/7310 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" mozilla_products: type: string_list lifetime: application @@ -602,7 +602,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/5216 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" default_moz_browser: type: string lifetime: application @@ -618,7 +618,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/5216 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" adjust_campaign: type: string lifetime: application @@ -635,7 +635,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/5579 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" adjust_ad_group: type: string lifetime: application @@ -652,7 +652,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/9253 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" adjust_creative: type: string lifetime: application @@ -669,7 +669,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/9253 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" adjust_network: type: string lifetime: application @@ -686,7 +686,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/9253 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" toolbar_position: type: string lifetime: application @@ -700,7 +700,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/6608 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_widget_installed: type: boolean lifetime: application @@ -714,7 +714,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/10958 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tabs_open_count: type: counter lifetime: application @@ -732,7 +732,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/12024 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" has_open_tabs: type: boolean lifetime: application @@ -746,7 +746,7 @@ metrics: - https://github.com/mozilla-mobile/fenix/pull/12024 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" preferences: show_search_suggestions: @@ -762,7 +762,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" remote_debugging: type: string_list description: > @@ -776,7 +776,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" telemetry: type: string_list description: > @@ -792,7 +792,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tracking_protection: type: string_list description: > @@ -807,7 +807,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_bookmarks: type: string_list description: > @@ -821,7 +821,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_browsing_history: type: string_list description: > @@ -835,7 +835,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" show_clipboard_suggestions: type: string_list description: > @@ -849,7 +849,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" show_search_shortcuts: type: string_list description: > @@ -863,7 +863,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_links_in_a_private_tab: type: string_list description: > @@ -877,7 +877,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sync: type: string_list description: > @@ -891,7 +891,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sync_items: type: string_list description: > @@ -907,7 +907,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" show_voice_search: type: string_list description: > @@ -921,7 +921,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_suggestions_private: type: string_list description: > @@ -936,7 +936,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" toolbar_position: type: string_list description: > @@ -950,7 +950,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" accessibility_services: type: string_list description: > @@ -965,7 +965,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11211 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_links_in_app: type: string_list description: > @@ -979,7 +979,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11446 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" theme: type: string_list description: > @@ -993,7 +993,7 @@ preferences: - https://github.com/mozilla-mobile/fenix/pull/11446 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search.default_engine: code: @@ -1013,7 +1013,7 @@ search.default_engine: - https://github.com/mozilla-mobile/fenix/pull/5216 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" name: type: string lifetime: application @@ -1031,7 +1031,7 @@ search.default_engine: - https://github.com/mozilla-mobile/fenix/pull/5216 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" submission_url: type: string lifetime: application @@ -1050,7 +1050,7 @@ search.default_engine: - https://github.com/mozilla-mobile/fenix/pull/5216 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" bookmarks_management: open_in_new_tab: @@ -1063,7 +1063,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_in_new_tabs: type: event description: | @@ -1074,7 +1074,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_in_private_tab: type: event description: | @@ -1085,7 +1085,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_in_private_tabs: type: event description: | @@ -1096,7 +1096,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" edited: type: event description: | @@ -1107,7 +1107,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" moved: type: event description: | @@ -1118,7 +1118,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" removed: type: event description: | @@ -1129,7 +1129,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" multi_removed: type: event description: | @@ -1140,7 +1140,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" shared: type: event description: | @@ -1151,7 +1151,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" copied: type: event description: | @@ -1162,7 +1162,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" folder_add: type: event description: | @@ -1173,7 +1173,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/1708 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" folder_remove: type: event description: | @@ -1184,7 +1184,7 @@ bookmarks_management: - https://github.com/mozilla-mobile/fenix/pull/3724 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" custom_tab: closed: @@ -1197,7 +1197,7 @@ custom_tab: - https://github.com/mozilla-mobile/fenix/pull/1697 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" action_button: type: event description: | @@ -1208,7 +1208,7 @@ custom_tab: - https://github.com/mozilla-mobile/fenix/pull/1697 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" menu: type: event description: | @@ -1219,7 +1219,7 @@ custom_tab: - https://github.com/mozilla-mobile/fenix/pull/1697 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" activation: identifier: @@ -1237,7 +1237,7 @@ activation: - https://github.com/mozilla-mobile/fenix/pull/1707#issuecomment-486972209 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" activation_id: type: uuid lifetime: user @@ -1252,7 +1252,7 @@ activation: - https://github.com/mozilla-mobile/fenix/pull/1707#issuecomment-486972209 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" no_lint: - USER_LIFETIME_EXPIRATION @@ -1267,7 +1267,7 @@ qr_scanner: - https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" prompt_displayed: type: event description: | @@ -1279,7 +1279,7 @@ qr_scanner: - https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" navigation_allowed: type: event description: | @@ -1291,7 +1291,7 @@ qr_scanner: - https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" navigation_denied: type: event description: | @@ -1303,7 +1303,7 @@ qr_scanner: - https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" error_page: visited_error: @@ -1319,7 +1319,7 @@ error_page: - https://github.com/mozilla-mobile/fenix/pull/2491#issuecomment-492414486 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sync_auth: opened: @@ -1332,7 +1332,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -1343,7 +1343,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" use_email: type: event description: | @@ -1355,7 +1355,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" use_email_problem: type: event description: | @@ -1366,7 +1366,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sign_in: type: event description: | @@ -1378,7 +1378,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sign_out: type: event description: | @@ -1390,7 +1390,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sign_up: type: event description: | @@ -1401,7 +1401,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" paired: type: event description: | @@ -1413,7 +1413,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" auto_login: type: event description: | @@ -1425,7 +1425,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" recovered: type: event description: | @@ -1437,7 +1437,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" other_external: type: event description: | @@ -1449,7 +1449,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" scan_pairing: type: event description: | @@ -1460,7 +1460,7 @@ sync_auth: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sync_account: opened: @@ -1473,7 +1473,7 @@ sync_account: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -1484,7 +1484,7 @@ sync_account: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sync_now: type: event description: | @@ -1495,7 +1495,7 @@ sync_account: - https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" send_tab: type: event description: | @@ -1506,7 +1506,7 @@ sync_account: - https://github.com/mozilla-mobile/fenix/pull/5106 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" sign_in_to_send_tab: type: event description: | @@ -1517,7 +1517,7 @@ sync_account: - https://github.com/mozilla-mobile/fenix/pull/5106 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" history: opened: @@ -1530,7 +1530,7 @@ history: - https://github.com/mozilla-mobile/fenix/pull/3940 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" removed: type: event description: | @@ -1541,7 +1541,7 @@ history: - https://github.com/mozilla-mobile/fenix/pull/3940 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" removed_all: type: event description: | @@ -1552,7 +1552,7 @@ history: - https://github.com/mozilla-mobile/fenix/pull/3940 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" shared: type: event description: | @@ -1563,7 +1563,7 @@ history: - https://github.com/mozilla-mobile/fenix/pull/3940 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" opened_item: type: event description: | @@ -1574,7 +1574,7 @@ history: - https://github.com/mozilla-mobile/fenix/pull/3940 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tip: displayed: @@ -1590,7 +1590,7 @@ tip: - https://github.com/mozilla-mobile/fenix/pull/9836 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pressed: type: event description: | @@ -1604,7 +1604,7 @@ tip: - https://github.com/mozilla-mobile/fenix/pull/9836 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -1618,7 +1618,7 @@ tip: - https://github.com/mozilla-mobile/fenix/pull/9836 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" reader_mode: available: @@ -1631,7 +1631,7 @@ reader_mode: - https://github.com/mozilla-mobile/fenix/pull/3941 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" opened: type: event description: | @@ -1642,7 +1642,7 @@ reader_mode: - https://github.com/mozilla-mobile/fenix/pull/3941 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -1653,7 +1653,7 @@ reader_mode: - https://github.com/mozilla-mobile/fenix/pull/4328 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" appearance: type: event description: | @@ -1664,7 +1664,7 @@ reader_mode: - https://github.com/mozilla-mobile/fenix/pull/3941 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tabs_tray: opened: @@ -1677,7 +1677,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed: type: event description: | @@ -1688,7 +1688,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" opened_existing_tab: type: event description: | @@ -1699,7 +1699,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" closed_existing_tab: type: event description: | @@ -1710,7 +1710,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" private_mode_tapped: type: event description: | @@ -1721,7 +1721,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" normal_mode_tapped: type: event description: | @@ -1732,7 +1732,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" new_tab_tapped: type: event description: | @@ -1743,7 +1743,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" new_private_tab_tapped: type: event description: | @@ -1754,7 +1754,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" menu_opened: type: event description: | @@ -1765,7 +1765,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" save_to_collection: type: event description: | @@ -1777,7 +1777,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" share_all_tabs: type: event description: | @@ -1789,7 +1789,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" close_all_tabs: type: event description: | @@ -1801,7 +1801,7 @@ tabs_tray: - https://github.com/mozilla-mobile/fenix/pull/12036 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" collections: renamed: @@ -1814,7 +1814,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tab_restored: type: event description: | @@ -1825,7 +1825,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" all_tabs_restored: type: event description: | @@ -1836,7 +1836,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tab_removed: type: event description: | @@ -1847,7 +1847,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" shared: type: event description: | @@ -1858,7 +1858,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" removed: type: event description: | @@ -1869,7 +1869,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" saved: type: event description: | @@ -1885,7 +1885,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tabs_added: type: event description: | @@ -1901,7 +1901,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tab_select_opened: type: event description: | @@ -1913,7 +1913,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/3935 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" add_tab_button: type: event description: | @@ -1924,7 +1924,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/4358 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" long_press: type: event description: | @@ -1935,7 +1935,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/4358 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" save_button: type: event description: | @@ -1948,7 +1948,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/4358 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" extra_keys: from_screen: description: | @@ -1964,7 +1964,7 @@ collections: - https://github.com/mozilla-mobile/fenix/pull/4539 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_widget: new_tab_button: @@ -1978,7 +1978,7 @@ search_widget: - https://github.com/mozilla-mobile/fenix/pull/4714 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" voice_button: type: event description: | @@ -1989,7 +1989,7 @@ search_widget: - https://github.com/mozilla-mobile/fenix/pull/4714 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_widget_cfr: displayed: @@ -2002,7 +2002,7 @@ search_widget_cfr: - https://github.com/mozilla-mobile/fenix/pull/10958 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" add_widget_pressed: type: event description: | @@ -2013,7 +2013,7 @@ search_widget_cfr: - https://github.com/mozilla-mobile/fenix/pull/10958 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" not_now_pressed: type: event description: | @@ -2024,7 +2024,7 @@ search_widget_cfr: - https://github.com/mozilla-mobile/fenix/pull/10958 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" canceled: type: event description: | @@ -2036,7 +2036,7 @@ search_widget_cfr: - https://github.com/mozilla-mobile/fenix/pull/10958 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" private_browsing_mode: garbage_icon: @@ -2050,7 +2050,7 @@ private_browsing_mode: - https://github.com/mozilla-mobile/fenix/pull/4968 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" snackbar_undo: type: event description: | @@ -2062,7 +2062,7 @@ private_browsing_mode: - https://github.com/mozilla-mobile/fenix/pull/4968 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" notification_tapped: type: event description: | @@ -2073,7 +2073,7 @@ private_browsing_mode: - https://github.com/mozilla-mobile/fenix/pull/4968 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" notification_open: type: event description: | @@ -2084,7 +2084,7 @@ private_browsing_mode: - https://github.com/mozilla-mobile/fenix/pull/4968 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" notification_delete: type: event description: | @@ -2096,7 +2096,7 @@ private_browsing_mode: - https://github.com/mozilla-mobile/fenix/pull/4968 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" contextual_hint.tracking_protection: display: @@ -2110,7 +2110,7 @@ contextual_hint.tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/11923 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" dismiss: type: event description: | @@ -2123,7 +2123,7 @@ contextual_hint.tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/11923 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" outside_tap: type: event description: | @@ -2135,7 +2135,7 @@ contextual_hint.tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/11923 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" inside_tap: type: event description: | @@ -2147,7 +2147,7 @@ contextual_hint.tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/11923 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tracking_protection: exception_added: @@ -2161,7 +2161,7 @@ tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" panel_settings: type: event description: | @@ -2172,7 +2172,7 @@ tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" etp_shield: type: event description: | @@ -2183,7 +2183,7 @@ tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" etp_tracker_list: type: event description: | @@ -2195,7 +2195,7 @@ tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" etp_settings: type: event description: | @@ -2206,7 +2206,7 @@ tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" etp_setting_changed: type: event description: | @@ -2223,7 +2223,7 @@ tracking_protection: - https://github.com/mozilla-mobile/fenix/pull/11383 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" private_browsing_shortcut: create_shortcut: @@ -2236,7 +2236,7 @@ private_browsing_shortcut: - https://github.com/mozilla-mobile/fenix/pull/5194 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" cfr_add_shortcut: type: event description: | @@ -2248,7 +2248,7 @@ private_browsing_shortcut: - https://github.com/mozilla-mobile/fenix/pull/5194 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" cfr_cancel: type: event description: | @@ -2260,7 +2260,7 @@ private_browsing_shortcut: - https://github.com/mozilla-mobile/fenix/pull/5194 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pinned_shortcut_priv: type: event description: | @@ -2272,7 +2272,7 @@ private_browsing_shortcut: - https://github.com/mozilla-mobile/fenix/pull/5194 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" static_shortcut_tab: type: event description: | @@ -2284,7 +2284,7 @@ private_browsing_shortcut: - https://github.com/mozilla-mobile/fenix/pull/5194 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" static_shortcut_priv: type: event description: | @@ -2296,7 +2296,7 @@ private_browsing_shortcut: - https://github.com/mozilla-mobile/fenix/pull/5194 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" tab: media_play: @@ -2309,7 +2309,7 @@ tab: - https://github.com/mozilla-mobile/fenix/pull/5266 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" no_lint: - COMMON_PREFIX media_pause: @@ -2322,7 +2322,7 @@ tab: - https://github.com/mozilla-mobile/fenix/pull/5266 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" media_notification: play: @@ -2335,7 +2335,7 @@ media_notification: - https://github.com/mozilla-mobile/fenix/pull/5520 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pause: type: event description: | @@ -2346,7 +2346,7 @@ media_notification: - https://github.com/mozilla-mobile/fenix/pull/5520 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" media_state: play: @@ -2359,7 +2359,7 @@ media_state: - https://github.com/mozilla-mobile/fenix/pull/6463 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pause: type: event description: | @@ -2370,7 +2370,7 @@ media_state: - https://github.com/mozilla-mobile/fenix/pull/6463 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" stop: type: event description: | @@ -2381,7 +2381,7 @@ media_state: - https://github.com/mozilla-mobile/fenix/pull/6463 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" logins: open_logins: @@ -2394,7 +2394,7 @@ logins: - https://github.com/mozilla-mobile/fenix/pull/6352 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_individual_login: type: event description: | @@ -2405,7 +2405,7 @@ logins: - https://github.com/mozilla-mobile/fenix/pull/6352 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" copy_login: type: event description: | @@ -2416,7 +2416,7 @@ logins: - https://github.com/mozilla-mobile/fenix/pull/6352 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" view_password_login: type: event description: | @@ -2427,7 +2427,7 @@ logins: - https://github.com/mozilla-mobile/fenix/pull/6352 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" save_logins_setting_changed: type: event description: | @@ -2443,7 +2443,7 @@ logins: - https://github.com/mozilla-mobile/fenix/pull/7767 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" download_notification: resume: @@ -2456,7 +2456,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pause: type: event description: | @@ -2467,7 +2467,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" cancel: type: event description: | @@ -2478,7 +2478,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" try_again: type: event description: | @@ -2490,7 +2490,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open: type: event description: | @@ -2501,7 +2501,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" in_app_open: type: event description: | @@ -2512,7 +2512,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" in_app_try_again: type: event description: | @@ -2524,7 +2524,7 @@ download_notification: - https://github.com/mozilla-mobile/fenix/pull/6554 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" user_specified_search_engines: custom_engine_added: @@ -2537,7 +2537,7 @@ user_specified_search_engines: - https://github.com/mozilla-mobile/fenix/pull/6918 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" no_lint: - COMMON_PREFIX custom_engine_deleted: @@ -2551,7 +2551,7 @@ user_specified_search_engines: - https://github.com/mozilla-mobile/fenix/pull/6918 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" search_suggestions: enable_in_private: @@ -2564,7 +2564,7 @@ search_suggestions: - https://github.com/mozilla-mobile/fenix/pull/6746 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" voice_search: tapped: @@ -2577,7 +2577,7 @@ voice_search: - https://github.com/mozilla-mobile/fenix/pull/10785 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" top_sites: open_default: @@ -2590,7 +2590,7 @@ top_sites: - https://github.com/mozilla-mobile/fenix/pull/10752 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_in_new_tab: type: event description: | @@ -2601,7 +2601,7 @@ top_sites: - https://github.com/mozilla-mobile/fenix/pull/7523 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_in_private_tab: type: event description: | @@ -2612,7 +2612,7 @@ top_sites: - https://github.com/mozilla-mobile/fenix/pull/7523 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" remove: type: event description: | @@ -2623,7 +2623,7 @@ top_sites: - https://github.com/mozilla-mobile/fenix/pull/7523 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" about_page: support_tapped: @@ -2636,7 +2636,7 @@ about_page: - https://github.com/mozilla-mobile/fenix/pull/8047 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" privacy_notice_tapped: type: event description: | @@ -2647,7 +2647,7 @@ about_page: - https://github.com/mozilla-mobile/fenix/pull/8047 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" rights_tapped: type: event description: | @@ -2658,7 +2658,7 @@ about_page: - https://github.com/mozilla-mobile/fenix/pull/8047 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" licensing_tapped: type: event description: | @@ -2669,7 +2669,7 @@ about_page: - https://github.com/mozilla-mobile/fenix/pull/8047 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" libraries_tapped: type: event description: | @@ -2680,7 +2680,7 @@ about_page: - https://github.com/mozilla-mobile/fenix/pull/8047 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" app_theme: dark_theme_selected: @@ -2698,7 +2698,7 @@ app_theme: - https://github.com/mozilla-mobile/fenix/pull/7968 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" pocket: pocket_top_site_clicked: @@ -2711,7 +2711,7 @@ pocket: - https://github.com/mozilla-mobile/fenix/pull/8098 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" no_lint: - COMMON_PREFIX @@ -2725,7 +2725,7 @@ pocket: - https://github.com/mozilla-mobile/fenix/pull/8098 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" first_session: campaign: @@ -2740,7 +2740,7 @@ first_session: - https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" network: type: string send_in_pings: @@ -2753,7 +2753,7 @@ first_session: - https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" adgroup: type: string send_in_pings: @@ -2766,7 +2766,7 @@ first_session: - https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586480836 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" creative: send_in_pings: - first-session @@ -2779,7 +2779,7 @@ first_session: - https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" timestamp: send_in_pings: - first-session @@ -2794,7 +2794,7 @@ first_session: - https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" browser.search: with_ads: @@ -2810,7 +2810,7 @@ browser.search: - https://github.com/mozilla-mobile/fenix/pull/10112 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" ad_clicks: type: labeled_counter description: | @@ -2824,7 +2824,7 @@ browser.search: - https://github.com/mozilla-mobile/fenix/pull/10112 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" in_content: type: labeled_counter description: | @@ -2837,7 +2837,7 @@ browser.search: - https://github.com/mozilla-mobile/fenix/pull/10167 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" addons: open_addons_in_settings: @@ -2850,7 +2850,7 @@ addons: - https://github.com/mozilla-mobile/fenix/pull/8318 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" open_addon_in_toolbar_menu: type: event description: | @@ -2865,7 +2865,7 @@ addons: - https://github.com/mozilla-mobile/fenix/pull/8318 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" has_installed_addons: type: boolean description: | @@ -2878,7 +2878,7 @@ addons: - https://github.com/mozilla-mobile/fenix/pull/8318 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" has_enabled_addons: type: boolean description: | @@ -2891,7 +2891,7 @@ addons: - https://github.com/mozilla-mobile/fenix/pull/8318 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" installed_addons: type: string_list description: | @@ -2904,7 +2904,7 @@ addons: - https://github.com/mozilla-mobile/fenix/pull/11080 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" enabled_addons: type: string_list description: | @@ -2917,7 +2917,7 @@ addons: - https://github.com/mozilla-mobile/fenix/pull/11080 notification_emails: - fenix-core@mozilla.com - expires: "2020-09-01" + expires: "2020-10-01" startup.timeline: framework_start: @@ -2942,7 +2942,7 @@ startup.timeline: notification_emails: - perf-android-fe@mozilla.com - mcomella@mozilla.com - expires: "2020-07-15" + expires: "2020-10-01" framework_start_error: send_in_pings: - startup-timeline @@ -2958,7 +2958,7 @@ startup.timeline: notification_emails: - perf-android-fe@mozilla.com - mcomella@mozilla.com - expires: "2020-07-15" + expires: "2020-10-01" framework_start_read_error: send_in_pings: - startup-timeline @@ -2974,7 +2974,7 @@ startup.timeline: notification_emails: - perf-android-fe@mozilla.com - mcomella@mozilla.com - expires: "2020-07-15" + expires: "2020-10-01" clock_ticks_per_second: send_in_pings: - startup-timeline @@ -2990,7 +2990,7 @@ startup.timeline: notification_emails: - perf-android-fe@mozilla.com - mcomella@mozilla.com - expires: "2020-07-15" + expires: "2020-10-01" perf.awesomebar: history_suggestions: @@ -3007,7 +3007,7 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" bookmark_suggestions: send_in_pings: - metrics @@ -3022,7 +3022,7 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" search_engine_suggestions: send_in_pings: - metrics @@ -3037,7 +3037,7 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" session_suggestions: send_in_pings: - metrics @@ -3052,7 +3052,7 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" synced_tabs_suggestions: send_in_pings: - metrics @@ -3067,7 +3067,7 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" clipboard_suggestions: send_in_pings: - metrics @@ -3082,7 +3082,7 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" shortcuts_suggestions: send_in_pings: - metrics @@ -3097,4 +3097,4 @@ perf.awesomebar: notification_emails: - fenix-core@mozilla.com - gkruglov@mozilla.com - expires: "2020-09-15" + expires: "2020-10-01" diff --git a/docs/metrics.md b/docs/metrics.md index 22c7f6dbb..912b814ad 100644 --- a/docs/metrics.md +++ b/docs/metrics.md @@ -35,8 +35,8 @@ The following metrics are added to the ping: | Name | Type | Description | Data reviews | Extras | Expiration | | --- | --- | --- | --- | --- | --- | -| activation.activation_id |[uuid](https://mozilla.github.io/glean/book/user/metrics/uuid.html) |An alternate identifier, not correlated with the client_id, generated once and only sent with the activation ping. |[1](https://github.com/mozilla-mobile/fenix/pull/1707#issuecomment-486972209)||2020-09-01 | -| activation.identifier |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A hashed and salted version of the Google Advertising ID from the device. This will never be sent in a ping that also contains the client_id. |[1](https://github.com/mozilla-mobile/fenix/pull/1707#issuecomment-486972209)||2020-09-01 | +| activation.activation_id |[uuid](https://mozilla.github.io/glean/book/user/metrics/uuid.html) |An alternate identifier, not correlated with the client_id, generated once and only sent with the activation ping. |[1](https://github.com/mozilla-mobile/fenix/pull/1707#issuecomment-486972209)||2020-10-01 | +| activation.identifier |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A hashed and salted version of the Google Advertising ID from the device. This will never be sent in a ping that also contains the client_id. |[1](https://github.com/mozilla-mobile/fenix/pull/1707#issuecomment-486972209)||2020-10-01 | ## events @@ -48,171 +48,171 @@ The following metrics are added to the ping: | Name | Type | Description | Data reviews | Extras | Expiration | | --- | --- | --- | --- | --- | --- | -| about_page.libraries_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Libraries that we use" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-09-01 | -| about_page.licensing_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Licensing information" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-09-01 | -| about_page.privacy_notice_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Privacy notice" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-09-01 | -| about_page.rights_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Know your rights" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-09-01 | -| about_page.support_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Support" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-09-01 | -| addons.open_addon_in_toolbar_menu |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user interacted with an installed add-on in the toolbar menu |[1](https://github.com/mozilla-mobile/fenix/pull/8318)|
  • addon_id: The id of the add-on that was interacted with in the toolbar menu
|2020-09-01 | -| addons.open_addons_in_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user accessed "Add-ons" from the Settings |[1](https://github.com/mozilla-mobile/fenix/pull/8318)||2020-09-01 | -| app_theme.dark_theme_selected |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected Dark Theme |[1](https://github.com/mozilla-mobile/fenix/pull/7968)|
  • source: The source from where dark theme was selected. The source can be 'SETTINGS' or 'ONBOARDING'
|2020-09-01 | -| bookmarks_management.copied |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user copied a bookmark. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.edited |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user edited the title and/or URL of an existing bookmark. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.folder_add |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a new bookmark folder. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.folder_remove |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed a bookmark folder. |[1](https://github.com/mozilla-mobile/fenix/pull/3724)||2020-09-01 | -| bookmarks_management.moved |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user moved an existing bookmark or folder to another folder. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.multi_removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed multiple bookmarks at once. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.open_in_new_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a bookmark in a new tab. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.open_in_new_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened multiple bookmarks at once in new tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.open_in_private_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a bookmark in a new private tab. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.open_in_private_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened multiple bookmarks at once in new private tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed a bookmark item. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| bookmarks_management.shared |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user shared a bookmark. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-09-01 | -| collections.add_tab_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the "add tab" button in the three dot menu of collections |[1](https://github.com/mozilla-mobile/fenix/pull/4358)||2020-09-01 | -| collections.all_tabs_restored |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped "open tabs" from collection menu |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.long_press |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user long pressed on a tab, triggering the collection creation screen |[1](https://github.com/mozilla-mobile/fenix/pull/4358)||2020-09-01 | -| collections.removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped delete collection from collection menu |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.rename_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "rename collection" button in the three dot menu |[1](https://github.com/mozilla-mobile/fenix/pull/4539)||2020-09-01 | -| collections.renamed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user renamed a collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.save_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "save to collection" button on either the home or browser screen, triggering the collection creation screen to open (tab_select_opened) |[1](https://github.com/mozilla-mobile/fenix/pull/4358)|
  • from_screen: A string representing the screen from which the user pressed the save button. Currently one of: `browserMenu`, `homeMenu` or `home`
|2020-09-01 | -| collections.saved |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user saved a list of tabs to a new collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)|
  • tabs_open: The number of tabs open in the current session
  • tabs_selected: The number of tabs added to the collection
|2020-09-01 | -| collections.shared |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped share collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.tab_removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped remove tab from collection tab list |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.tab_restored |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user restored a tab from collection tab list |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.tab_select_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the select tabs screen (the first step of the collection creation flow) |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-09-01 | -| collections.tabs_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user saved a list of tabs to an existing collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)|
  • tabs_open: The number of tabs open in the current session
  • tabs_selected: The number of tabs added to the collection
|2020-09-01 | -| context_menu.item_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped an item in the browsers context menu |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)|
  • named: The name of the item that was tapped. Available items are: ``` open_in_new_tab, open_in_private_tab, open_image_in_new_tab, save_image, share_link, copy_link, copy_image_location ```
|2020-09-01 | -| contextual_hint.tracking_protection.dismiss |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The enhanced tracking protection contextual hint was dismissed by pressing the close button |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-09-01 | -| contextual_hint.tracking_protection.display |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The enhanced tracking protection contextual hint was displayed. |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-09-01 | -| contextual_hint.tracking_protection.inside_tap |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user tapped inside of the etp contextual hint (which brings up the etp panel for this site). |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-09-01 | -| contextual_hint.tracking_protection.outside_tap |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user tapped outside of the etp contextual hint (which has no effect). |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-09-01 | -| crash_reporter.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The crash reporter was closed |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708)|
  • crash_submitted: A boolean that tells us whether or not the user submitted a crash report
|2020-09-01 | -| crash_reporter.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The crash reporter was displayed |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708)||2020-09-01 | -| custom_tab.action_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the action button provided by the launching app |[1](https://github.com/mozilla-mobile/fenix/pull/1697)||2020-09-01 | -| custom_tab.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the custom tab |[1](https://github.com/mozilla-mobile/fenix/pull/1697)||2020-09-01 | -| custom_tab.menu |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the custom tabs menu |[1](https://github.com/mozilla-mobile/fenix/pull/1697)||2020-09-01 | -| download_notification.cancel |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user cancelled a download in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| download_notification.in_app_open |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a downloaded file in the in-app notification link |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| download_notification.in_app_try_again |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on try again when a download fails in the in-app notification link |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| download_notification.open |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a downloaded file in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| download_notification.pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user paused a download in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| download_notification.resume |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user resumed a download in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| download_notification.try_again |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on try again when a download fails in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-09-01 | -| error_page.visited_error |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user encountered an error page |[1](https://github.com/mozilla-mobile/fenix/pull/2491#issuecomment-492414486)|
  • error_type: The error type of the error page encountered
|2020-09-01 | -| events.app_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the app (from cold start, to the homescreen or browser) |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • source: The method used to open Fenix. Possible values are: `app_icon`, `custom_tab` or `link`
|2020-09-01 | -| events.app_opened_all_startup |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the app to the HomeActivity. The HomeActivity encompasses the home screen and browser screen but may include other screens. This differs from the app_opened probe because it measures all startups, not just cold startup. |[1](https://github.com/mozilla-mobile/fenix/pull/11940/)|
  • source: The method used to open Fenix. Possible values are `app_icon`, `custom_tab`, `link` or `unknown`
|2020-12-01 | -| events.browser_menu_action |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A browser menu item was tapped |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708), [2](https://github.com/mozilla-mobile/fenix/pull/5098#issuecomment-529658996), [3](https://github.com/mozilla-mobile/fenix/pull/6310)|
  • item: A string containing the name of the item the user tapped. These items include: Settings, Help, Desktop Site toggle on/off, Find in Page, New Tab, Private Tab, Share, Report Site Issue, Back/Forward button, Reload Button, Quit, Reader Mode On, Reader Mode Off, Open In app, Add To Top Sites, Add-ons Manager, Bookmarks, History
|2020-09-01 | -| events.entered_url |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user entered a url |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • autocomplete: A boolean that tells us whether the URL was autofilled by an Autocomplete suggestion
|2020-09-01 | -| events.opened_link |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a link with Fenix |[1](https://github.com/mozilla-mobile/fenix/pull/5975)|
  • mode: The mode the link was opened in. Either 'PRIVATE' or 'NORMAL'.
|2020-09-01 | -| events.performed_search |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user performed a search |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673), [2](https://github.com/mozilla-mobile/fenix/pull/1677)|
  • source: A string that tells us how the user performed the search. Possible values are: * default.action * default.suggestion * shortcut.action * shortcut.suggestion
|2020-09-01 | -| events.preference_toggled |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user toggled a boolean preference in settings |[1](https://github.com/mozilla-mobile/fenix/pull/1896), [2](https://github.com/mozilla-mobile/fenix/pull/5704), [3](https://github.com/mozilla-mobile/fenix/pull/5886), [4](https://github.com/mozilla-mobile/fenix/pull/5975), [5](https://github.com/mozilla-mobile/fenix/pull/6352), [6](https://github.com/mozilla-mobile/fenix/pull/6601), [7](https://github.com/mozilla-mobile/fenix/pull/6746)|
  • enabled: Whether or not the preference is *now* enabled
  • preference_key: The preference key for the boolean (true/false) preference the user toggled. We currently track: show_search_suggestions, remote_debugging, telemetry, tracking_protection, search_bookmarks, search_browsing_history, show_clipboard_suggestions, show_search_shortcuts, open_links_in_a_private_tab (bug in implementation https://github.com/mozilla-mobile/fenix/issues/7384), pref_key_sync_logins, pref_key_sync_bookmarks, pref_key_sync_history, pref_key_show_voice_search, and pref_key_show_search_suggestions_in_private.
|2020-09-01 | -| events.search_bar_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the search bar |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • source: The view the user was on when they initiated the search (For example: `Home` or `Browser`)
|2020-09-01 | -| events.tab_counter_menu_action |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A tab counter menu item was tapped |[1](https://github.com/mozilla-mobile/fenix/pull/11533)|
  • item: A string containing the name of the item the user tapped. These items are: New tab, New private tab, Close tab
|2020-09-01 | -| events.whats_new_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the "what's new" page button |[1](https://github.com/mozilla-mobile/fenix/pull/5090)||2020-09-01 | -| find_in_page.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the find in page UI |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)||2020-09-01 | -| find_in_page.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the find in page UI |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)||2020-09-01 | -| find_in_page.searched_page |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user searched the page |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)||2020-09-01 | -| history.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the history screen |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-09-01 | -| history.opened_item |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a history item |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-09-01 | -| history.removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed a history item |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-09-01 | -| history.removed_all |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed all history items |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-09-01 | -| history.shared |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user shared a history item |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-09-01 | -| logins.copy_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user copied a piece of a login in saved logins |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-09-01 | -| logins.open_individual_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user accessed an individual login in saved logins |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-09-01 | -| logins.open_logins |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user accessed Logins in Settings |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-09-01 | -| logins.save_logins_setting_changed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user changed their setting for asking to save logins |[1](https://github.com/mozilla-mobile/fenix/pull/7767)|
  • setting: The new setting for saving logins the user selected. Either `ask_to_save` or `never_save`
|2020-09-01 | -| logins.view_password_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user viewed a password in an individual saved login |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-09-01 | -| media_notification.pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pause icon on the media notification |[1](https://github.com/mozilla-mobile/fenix/pull/5520)||2020-09-01 | -| media_notification.play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the play icon on the media notification |[1](https://github.com/mozilla-mobile/fenix/pull/5520)||2020-09-01 | -| media_state.pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Media playback was paused. |[1](https://github.com/mozilla-mobile/fenix/pull/6463)||2020-09-01 | -| media_state.play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Media started playing. |[1](https://github.com/mozilla-mobile/fenix/pull/6463)||2020-09-01 | -| media_state.stop |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Media playback has ended. |[1](https://github.com/mozilla-mobile/fenix/pull/6463)||2020-09-01 | -| onboarding.finish |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user taps starts browsing and ends the onboarding experience. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-09-01 | -| onboarding.fxa_auto_signin |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding automatic sign in card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-09-01 | -| onboarding.fxa_manual_signin |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding manual sign in card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-09-01 | -| onboarding.pref_toggled_private_browsing |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The private browsing preference was selected from the onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-09-01 | -| onboarding.pref_toggled_theme_picker |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The device theme was chosen using the theme picker onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)|
  • theme: A string that indicates the theme LIGHT, DARK, or FOLLOW DEVICE. Default: FOLLOW DEVICE
|2020-09-01 | -| onboarding.pref_toggled_toolbar_position |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The toolbar position preference was chosen from the onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)|
  • position: A string that indicates the position of the toolbar TOP or BOTTOM. Default: BOTTOM
|2020-09-01 | -| onboarding.pref_toggled_tracking_prot |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tracking protection preference was chosen from the onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)|
  • setting: A string that indicates the Tracking Protection policy STANDARD or STRICT. Default: Toggle ON, STANDARD
|2020-09-01 | -| onboarding.privacy_notice |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding privacy notice card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-09-01 | -| onboarding.whats_new |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding What\'s New card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-09-01 | -| pocket.pocket_top_site_clicked |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user clicked on the trending Pocket top site |[1](https://github.com/mozilla-mobile/fenix/pull/8098)||2020-09-01 | -| pocket.pocket_top_site_removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed the trending Pocket top site |[1](https://github.com/mozilla-mobile/fenix/pull/8098)||2020-09-01 | -| private_browsing_mode.garbage_icon |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the garbage can icon on the private browsing home page, deleting all private tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-09-01 | -| private_browsing_mode.notification_delete |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the private browsing mode notification's "Delete and Open" button. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-09-01 | -| private_browsing_mode.notification_open |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the private browsing mode notification's "Open" button. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-09-01 | -| private_browsing_mode.notification_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the private browsing mode notification itself. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-09-01 | -| private_browsing_mode.snackbar_undo |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "undo" button in the snackbar that is shown when the garbage icon is tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-09-01 | -| private_browsing_shortcut.cfr_add_shortcut |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "Add shortcut" button when the contextual feature recommender appeared. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-09-01 | -| private_browsing_shortcut.cfr_cancel |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "No thanks" button when the contextual feature recommender appeared. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-09-01 | -| private_browsing_shortcut.create_shortcut |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "Add private browsing shortcut" button in settings. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-09-01 | -| private_browsing_shortcut.pinned_shortcut_priv |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pinned private shortcut in Android home screen, opening up a new private search. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-09-01 | -| private_browsing_shortcut.static_shortcut_priv |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the long-press shortcut "Open new private tab", opening up a new private search. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-09-01 | -| private_browsing_shortcut.static_shortcut_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the long-press shortcut "Open new tab", opening up a new search. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-09-01 | -| qr_scanner.navigation_allowed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped "allow" on the prompt, directing the user to the website scanned |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-09-01 | -| qr_scanner.navigation_denied |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped "deny" on the prompt, putting the user back to the scanning view |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-09-01 | -| qr_scanner.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the QR scanner |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-09-01 | -| qr_scanner.prompt_displayed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user scanned a QR code, causing a confirmation prompt to display asking if they want to navigate to the page |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-09-01 | -| reader_mode.appearance |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the appearance button |[1](https://github.com/mozilla-mobile/fenix/pull/3941)||2020-09-01 | -| reader_mode.available |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Reader mode is available for the current page |[1](https://github.com/mozilla-mobile/fenix/pull/3941)||2020-09-01 | -| reader_mode.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed reader mode |[1](https://github.com/mozilla-mobile/fenix/pull/4328)||2020-09-01 | -| reader_mode.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened reader mode |[1](https://github.com/mozilla-mobile/fenix/pull/3941)||2020-09-01 | -| search_shortcuts.selected |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected a search shortcut engine to use |[1](https://github.com/mozilla-mobile/fenix/pull/1202#issuecomment-476870449)|
  • engine: The name of the built-in search engine the user selected as a string
|2020-09-01 | -| search_suggestions.enable_in_private |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user enabled receiving search suggestions in private sessions |[1](https://github.com/mozilla-mobile/fenix/pull/6746)||2020-09-01 | -| search_widget.new_tab_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed anywhere from the Firefox logo until the start of the microphone icon, opening a new tab search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/4714)||2020-09-01 | -| search_widget.voice_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the microphone icon, opening a new voice search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/4714)||2020-09-01 | -| search_widget_cfr.add_widget_pressed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user pressed the "add widget" button. |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-09-01 | -| search_widget_cfr.canceled |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user dismissed the search widget cfr by tapping outside of the prompt |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-09-01 | -| search_widget_cfr.displayed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The search widget cfr was displayed. |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-09-01 | -| search_widget_cfr.not_now_pressed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user pressed the "not now" button. |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-09-01 | -| sync_account.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the sync account page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_account.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the sync account page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_account.send_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user sent the current tab to another FxA device |[1](https://github.com/mozilla-mobile/fenix/pull/5106)||2020-09-01 | -| sync_account.sign_in_to_send_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "sign in to send tab" button inside the share tab menu |[1](https://github.com/mozilla-mobile/fenix/pull/5106)||2020-09-01 | -| sync_account.sync_now |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the sync now button on the sync account page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_auth.auto_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User signed into FxA via an account shared from another locally installed Mozilla application (e.g. Fennec) |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-09-01 | -| sync_auth.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the sync page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_auth.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the sync authentication page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_auth.other_external |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User authenticated via FxA using an unknown mechanism. "Known" mechanisms are currently sign-in, sign-up and pairing |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-09-01 | -| sync_auth.paired |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User signed into FxA by pairing with a different Firefox browser, using a QR code |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-09-01 | -| sync_auth.recovered |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Account manager automatically recovered FxA authentication state without direct user involvement |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-09-01 | -| sync_auth.scan_pairing |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the scan pairing button on the sync authentication page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_auth.sign_in |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the sign in button on the sync authentication page and was successfully signed in to FxA |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_auth.sign_out |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the sign out button on the sync account page and was successfully signed out of FxA |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-09-01 | -| sync_auth.sign_up |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User registered a new Firefox Account, and was signed into it |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-09-01 | -| sync_auth.use_email |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user chose to use their email to sign in instead of scanning a QR code, counterpart to "scan_pairing" |[1](https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844)||2020-09-01 | -| sync_auth.use_email_problem |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user chose to use their email to sign in after an account problem |[1](https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844)||2020-09-01 | -| tab.media_pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pause icon on a tab from the home screen |[1](https://github.com/mozilla-mobile/fenix/pull/5266)||2020-09-01 | -| tab.media_play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the play icon on a tab from the home screen |[1](https://github.com/mozilla-mobile/fenix/pull/5266)||2020-09-01 | -| tabs_tray.close_all_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the close all tabs button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.closed_existing_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed an existing tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.menu_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened three three dot menu in the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.new_private_tab_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a new private tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.new_tab_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a new tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.normal_mode_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user switched to normal mode |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.opened_existing_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened an existing tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.private_mode_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user switched to private mode |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.save_to_collection |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the save to collection button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tabs_tray.share_all_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the share all tabs button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-09-01 | -| tip.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip was closed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|
  • identifier: The identifier of the tip closed
|2020-09-01 | -| 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)|
  • identifier: The identifier of the tip displayed
|2020-09-01 | -| 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)|
  • identifier: The identifier of the tip the action was taken on
|2020-09-01 | -| 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)|
  • position: A string that indicates the new position of the toolbar TOP or BOTTOM
|2020-09-01 | -| 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-09-01 | -| 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-09-01 | -| 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-09-01 | -| 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-09-01 | -| 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)|
  • etp_setting: The new setting for ETP: strict, standard, custom
|2020-09-01 | -| 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-09-01 | -| 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-09-01 | -| tracking_protection.etp_tracker_list |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed into a list of categorized trackers in tracking protection panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-09-01 | -| tracking_protection.exception_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a tracking protection exception through the TP toggle in the panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-09-01 | -| tracking_protection.panel_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened tracking protection settings from the panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-09-01 | -| user_specified_search_engines.custom_engine_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a new custom search engine |[1](https://github.com/mozilla-mobile/fenix/pull/6918)||2020-09-01 | -| user_specified_search_engines.custom_engine_deleted |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user deleted a custom search engine |[1](https://github.com/mozilla-mobile/fenix/pull/6918)||2020-09-01 | -| voice_search.tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected the voice search button on the search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/10785)||2020-09-01 | +| about_page.libraries_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Libraries that we use" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-10-01 | +| about_page.licensing_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Licensing information" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-10-01 | +| about_page.privacy_notice_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Privacy notice" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-10-01 | +| about_page.rights_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Know your rights" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-10-01 | +| about_page.support_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on "Support" item from About page |[1](https://github.com/mozilla-mobile/fenix/pull/8047)||2020-10-01 | +| addons.open_addon_in_toolbar_menu |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user interacted with an installed add-on in the toolbar menu |[1](https://github.com/mozilla-mobile/fenix/pull/8318)|
  • addon_id: The id of the add-on that was interacted with in the toolbar menu
|2020-10-01 | +| addons.open_addons_in_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user accessed "Add-ons" from the Settings |[1](https://github.com/mozilla-mobile/fenix/pull/8318)||2020-10-01 | +| app_theme.dark_theme_selected |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected Dark Theme |[1](https://github.com/mozilla-mobile/fenix/pull/7968)|
  • source: The source from where dark theme was selected. The source can be 'SETTINGS' or 'ONBOARDING'
|2020-10-01 | +| bookmarks_management.copied |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user copied a bookmark. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.edited |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user edited the title and/or URL of an existing bookmark. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.folder_add |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a new bookmark folder. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.folder_remove |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed a bookmark folder. |[1](https://github.com/mozilla-mobile/fenix/pull/3724)||2020-10-01 | +| bookmarks_management.moved |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user moved an existing bookmark or folder to another folder. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.multi_removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed multiple bookmarks at once. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.open_in_new_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a bookmark in a new tab. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.open_in_new_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened multiple bookmarks at once in new tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.open_in_private_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a bookmark in a new private tab. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.open_in_private_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened multiple bookmarks at once in new private tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed a bookmark item. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| bookmarks_management.shared |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user shared a bookmark. |[1](https://github.com/mozilla-mobile/fenix/pull/1708)||2020-10-01 | +| collections.add_tab_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the "add tab" button in the three dot menu of collections |[1](https://github.com/mozilla-mobile/fenix/pull/4358)||2020-10-01 | +| collections.all_tabs_restored |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped "open tabs" from collection menu |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.long_press |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user long pressed on a tab, triggering the collection creation screen |[1](https://github.com/mozilla-mobile/fenix/pull/4358)||2020-10-01 | +| collections.removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped delete collection from collection menu |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.rename_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "rename collection" button in the three dot menu |[1](https://github.com/mozilla-mobile/fenix/pull/4539)||2020-10-01 | +| collections.renamed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user renamed a collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.save_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "save to collection" button on either the home or browser screen, triggering the collection creation screen to open (tab_select_opened) |[1](https://github.com/mozilla-mobile/fenix/pull/4358)|
  • from_screen: A string representing the screen from which the user pressed the save button. Currently one of: `browserMenu`, `homeMenu` or `home`
|2020-10-01 | +| collections.saved |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user saved a list of tabs to a new collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)|
  • tabs_open: The number of tabs open in the current session
  • tabs_selected: The number of tabs added to the collection
|2020-10-01 | +| collections.shared |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped share collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.tab_removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped remove tab from collection tab list |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.tab_restored |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user restored a tab from collection tab list |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.tab_select_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the select tabs screen (the first step of the collection creation flow) |[1](https://github.com/mozilla-mobile/fenix/pull/3935)||2020-10-01 | +| collections.tabs_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user saved a list of tabs to an existing collection |[1](https://github.com/mozilla-mobile/fenix/pull/3935)|
  • tabs_open: The number of tabs open in the current session
  • tabs_selected: The number of tabs added to the collection
|2020-10-01 | +| context_menu.item_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped an item in the browsers context menu |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)|
  • named: The name of the item that was tapped. Available items are: ``` open_in_new_tab, open_in_private_tab, open_image_in_new_tab, save_image, share_link, copy_link, copy_image_location ```
|2020-10-01 | +| contextual_hint.tracking_protection.dismiss |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The enhanced tracking protection contextual hint was dismissed by pressing the close button |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-10-01 | +| contextual_hint.tracking_protection.display |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The enhanced tracking protection contextual hint was displayed. |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-10-01 | +| contextual_hint.tracking_protection.inside_tap |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user tapped inside of the etp contextual hint (which brings up the etp panel for this site). |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-10-01 | +| contextual_hint.tracking_protection.outside_tap |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user tapped outside of the etp contextual hint (which has no effect). |[1](https://github.com/mozilla-mobile/fenix/pull/11923)||2020-10-01 | +| crash_reporter.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The crash reporter was closed |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708)|
  • crash_submitted: A boolean that tells us whether or not the user submitted a crash report
|2020-10-01 | +| crash_reporter.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The crash reporter was displayed |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708)||2020-10-01 | +| custom_tab.action_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the action button provided by the launching app |[1](https://github.com/mozilla-mobile/fenix/pull/1697)||2020-10-01 | +| custom_tab.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the custom tab |[1](https://github.com/mozilla-mobile/fenix/pull/1697)||2020-10-01 | +| custom_tab.menu |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the custom tabs menu |[1](https://github.com/mozilla-mobile/fenix/pull/1697)||2020-10-01 | +| download_notification.cancel |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user cancelled a download in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| download_notification.in_app_open |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a downloaded file in the in-app notification link |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| download_notification.in_app_try_again |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on try again when a download fails in the in-app notification link |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| download_notification.open |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a downloaded file in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| download_notification.pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user paused a download in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| download_notification.resume |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user resumed a download in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| download_notification.try_again |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped on try again when a download fails in the download notification |[1](https://github.com/mozilla-mobile/fenix/pull/6554)||2020-10-01 | +| error_page.visited_error |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user encountered an error page |[1](https://github.com/mozilla-mobile/fenix/pull/2491#issuecomment-492414486)|
  • error_type: The error type of the error page encountered
|2020-10-01 | +| events.app_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the app (from cold start, to the homescreen or browser) |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • source: The method used to open Fenix. Possible values are: `app_icon`, `custom_tab` or `link`
|2020-10-01 | +| events.app_received_intent |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The system received an Intent for the HomeActivity. An intent is received an external entity wants to the app to display content. Intents can be received when the app is closed – at which point the app will be opened – or when the app is already opened – at which point the already open app will make changes such as loading a url. This can be used loosely as a heuristic for when the user requested to open the app. The HomeActivity encompasses the home screen and browser screen but may include other screens. This differs from the app_opened probe because it measures all startups, not just cold startup. |[1](https://github.com/mozilla-mobile/fenix/pull/11940/)|
  • source: The method used to open Fenix. Possible values are `app_icon`, `custom_tab`, `link` or `unknown`
|2020-12-01 | +| events.browser_menu_action |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A browser menu item was tapped |[1](https://github.com/mozilla-mobile/fenix/pull/1214#issue-264756708), [2](https://github.com/mozilla-mobile/fenix/pull/5098#issuecomment-529658996), [3](https://github.com/mozilla-mobile/fenix/pull/6310)|
  • item: A string containing the name of the item the user tapped. These items include: Settings, Help, Desktop Site toggle on/off, Find in Page, New Tab, Private Tab, Share, Report Site Issue, Back/Forward button, Reload Button, Quit, Reader Mode On, Reader Mode Off, Open In app, Add To Top Sites, Add-ons Manager, Bookmarks, History
|2020-10-01 | +| events.entered_url |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user entered a url |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • autocomplete: A boolean that tells us whether the URL was autofilled by an Autocomplete suggestion
|2020-10-01 | +| events.opened_link |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a link with Fenix |[1](https://github.com/mozilla-mobile/fenix/pull/5975)|
  • mode: The mode the link was opened in. Either 'PRIVATE' or 'NORMAL'.
|2020-10-01 | +| events.performed_search |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user performed a search |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673), [2](https://github.com/mozilla-mobile/fenix/pull/1677)|
  • source: A string that tells us how the user performed the search. Possible values are: * default.action * default.suggestion * shortcut.action * shortcut.suggestion
|2020-10-01 | +| events.preference_toggled |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user toggled a boolean preference in settings |[1](https://github.com/mozilla-mobile/fenix/pull/1896), [2](https://github.com/mozilla-mobile/fenix/pull/5704), [3](https://github.com/mozilla-mobile/fenix/pull/5886), [4](https://github.com/mozilla-mobile/fenix/pull/5975), [5](https://github.com/mozilla-mobile/fenix/pull/6352), [6](https://github.com/mozilla-mobile/fenix/pull/6601), [7](https://github.com/mozilla-mobile/fenix/pull/6746)|
  • enabled: Whether or not the preference is *now* enabled
  • preference_key: The preference key for the boolean (true/false) preference the user toggled. We currently track: show_search_suggestions, remote_debugging, telemetry, tracking_protection, search_bookmarks, search_browsing_history, show_clipboard_suggestions, show_search_shortcuts, open_links_in_a_private_tab (bug in implementation https://github.com/mozilla-mobile/fenix/issues/7384), pref_key_sync_logins, pref_key_sync_bookmarks, pref_key_sync_history, pref_key_show_voice_search, and pref_key_show_search_suggestions_in_private.
|2020-10-01 | +| events.search_bar_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the search bar |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)|
  • source: The view the user was on when they initiated the search (For example: `Home` or `Browser`)
|2020-10-01 | +| events.tab_counter_menu_action |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A tab counter menu item was tapped |[1](https://github.com/mozilla-mobile/fenix/pull/11533)|
  • item: A string containing the name of the item the user tapped. These items are: New tab, New private tab, Close tab
|2020-10-01 | +| events.whats_new_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the "what's new" page button |[1](https://github.com/mozilla-mobile/fenix/pull/5090)||2020-10-01 | +| find_in_page.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the find in page UI |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)||2020-10-01 | +| find_in_page.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the find in page UI |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)||2020-10-01 | +| find_in_page.searched_page |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user searched the page |[1](https://github.com/mozilla-mobile/fenix/pull/1344#issuecomment-479285010)||2020-10-01 | +| history.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the history screen |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-10-01 | +| history.opened_item |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a history item |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-10-01 | +| history.removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed a history item |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-10-01 | +| history.removed_all |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed all history items |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-10-01 | +| history.shared |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user shared a history item |[1](https://github.com/mozilla-mobile/fenix/pull/3940)||2020-10-01 | +| logins.copy_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user copied a piece of a login in saved logins |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-10-01 | +| logins.open_individual_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user accessed an individual login in saved logins |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-10-01 | +| logins.open_logins |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user accessed Logins in Settings |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-10-01 | +| logins.save_logins_setting_changed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user changed their setting for asking to save logins |[1](https://github.com/mozilla-mobile/fenix/pull/7767)|
  • setting: The new setting for saving logins the user selected. Either `ask_to_save` or `never_save`
|2020-10-01 | +| logins.view_password_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user viewed a password in an individual saved login |[1](https://github.com/mozilla-mobile/fenix/pull/6352)||2020-10-01 | +| media_notification.pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pause icon on the media notification |[1](https://github.com/mozilla-mobile/fenix/pull/5520)||2020-10-01 | +| media_notification.play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the play icon on the media notification |[1](https://github.com/mozilla-mobile/fenix/pull/5520)||2020-10-01 | +| media_state.pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Media playback was paused. |[1](https://github.com/mozilla-mobile/fenix/pull/6463)||2020-10-01 | +| media_state.play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Media started playing. |[1](https://github.com/mozilla-mobile/fenix/pull/6463)||2020-10-01 | +| media_state.stop |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Media playback has ended. |[1](https://github.com/mozilla-mobile/fenix/pull/6463)||2020-10-01 | +| onboarding.finish |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user taps starts browsing and ends the onboarding experience. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-10-01 | +| onboarding.fxa_auto_signin |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding automatic sign in card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-10-01 | +| onboarding.fxa_manual_signin |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding manual sign in card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-10-01 | +| onboarding.pref_toggled_private_browsing |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The private browsing preference was selected from the onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-10-01 | +| onboarding.pref_toggled_theme_picker |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The device theme was chosen using the theme picker onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)|
  • theme: A string that indicates the theme LIGHT, DARK, or FOLLOW DEVICE. Default: FOLLOW DEVICE
|2020-10-01 | +| onboarding.pref_toggled_toolbar_position |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The toolbar position preference was chosen from the onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)|
  • position: A string that indicates the position of the toolbar TOP or BOTTOM. Default: BOTTOM
|2020-10-01 | +| onboarding.pref_toggled_tracking_prot |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tracking protection preference was chosen from the onboarding card. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)|
  • setting: A string that indicates the Tracking Protection policy STANDARD or STRICT. Default: Toggle ON, STANDARD
|2020-10-01 | +| onboarding.privacy_notice |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding privacy notice card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-10-01 | +| onboarding.whats_new |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The onboarding What\'s New card was tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/11867)||2020-10-01 | +| pocket.pocket_top_site_clicked |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user clicked on the trending Pocket top site |[1](https://github.com/mozilla-mobile/fenix/pull/8098)||2020-10-01 | +| pocket.pocket_top_site_removed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user removed the trending Pocket top site |[1](https://github.com/mozilla-mobile/fenix/pull/8098)||2020-10-01 | +| private_browsing_mode.garbage_icon |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the garbage can icon on the private browsing home page, deleting all private tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-10-01 | +| private_browsing_mode.notification_delete |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the private browsing mode notification's "Delete and Open" button. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-10-01 | +| private_browsing_mode.notification_open |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the private browsing mode notification's "Open" button. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-10-01 | +| private_browsing_mode.notification_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the private browsing mode notification itself. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-10-01 | +| private_browsing_mode.snackbar_undo |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "undo" button in the snackbar that is shown when the garbage icon is tapped. |[1](https://github.com/mozilla-mobile/fenix/pull/4968)||2020-10-01 | +| private_browsing_shortcut.cfr_add_shortcut |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "Add shortcut" button when the contextual feature recommender appeared. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-10-01 | +| private_browsing_shortcut.cfr_cancel |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "No thanks" button when the contextual feature recommender appeared. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-10-01 | +| private_browsing_shortcut.create_shortcut |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "Add private browsing shortcut" button in settings. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-10-01 | +| private_browsing_shortcut.pinned_shortcut_priv |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pinned private shortcut in Android home screen, opening up a new private search. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-10-01 | +| private_browsing_shortcut.static_shortcut_priv |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the long-press shortcut "Open new private tab", opening up a new private search. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-10-01 | +| private_browsing_shortcut.static_shortcut_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the long-press shortcut "Open new tab", opening up a new search. |[1](https://github.com/mozilla-mobile/fenix/pull/5194)||2020-10-01 | +| qr_scanner.navigation_allowed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped "allow" on the prompt, directing the user to the website scanned |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-10-01 | +| qr_scanner.navigation_denied |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped "deny" on the prompt, putting the user back to the scanning view |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-10-01 | +| qr_scanner.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the QR scanner |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-10-01 | +| qr_scanner.prompt_displayed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user scanned a QR code, causing a confirmation prompt to display asking if they want to navigate to the page |[1](https://github.com/mozilla-mobile/fenix/pull/2524#issuecomment-492739967)||2020-10-01 | +| reader_mode.appearance |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the appearance button |[1](https://github.com/mozilla-mobile/fenix/pull/3941)||2020-10-01 | +| reader_mode.available |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Reader mode is available for the current page |[1](https://github.com/mozilla-mobile/fenix/pull/3941)||2020-10-01 | +| reader_mode.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed reader mode |[1](https://github.com/mozilla-mobile/fenix/pull/4328)||2020-10-01 | +| reader_mode.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened reader mode |[1](https://github.com/mozilla-mobile/fenix/pull/3941)||2020-10-01 | +| search_shortcuts.selected |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected a search shortcut engine to use |[1](https://github.com/mozilla-mobile/fenix/pull/1202#issuecomment-476870449)|
  • engine: The name of the built-in search engine the user selected as a string
|2020-10-01 | +| search_suggestions.enable_in_private |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user enabled receiving search suggestions in private sessions |[1](https://github.com/mozilla-mobile/fenix/pull/6746)||2020-10-01 | +| search_widget.new_tab_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed anywhere from the Firefox logo until the start of the microphone icon, opening a new tab search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/4714)||2020-10-01 | +| search_widget.voice_button |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the microphone icon, opening a new voice search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/4714)||2020-10-01 | +| search_widget_cfr.add_widget_pressed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user pressed the "add widget" button. |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-10-01 | +| search_widget_cfr.canceled |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user dismissed the search widget cfr by tapping outside of the prompt |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-10-01 | +| search_widget_cfr.displayed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The search widget cfr was displayed. |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-10-01 | +| search_widget_cfr.not_now_pressed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The user pressed the "not now" button. |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-10-01 | +| sync_account.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the sync account page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_account.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the sync account page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_account.send_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user sent the current tab to another FxA device |[1](https://github.com/mozilla-mobile/fenix/pull/5106)||2020-10-01 | +| sync_account.sign_in_to_send_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the "sign in to send tab" button inside the share tab menu |[1](https://github.com/mozilla-mobile/fenix/pull/5106)||2020-10-01 | +| sync_account.sync_now |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the sync now button on the sync account page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_auth.auto_login |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User signed into FxA via an account shared from another locally installed Mozilla application (e.g. Fennec) |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-10-01 | +| sync_auth.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the sync page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_auth.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the sync authentication page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_auth.other_external |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User authenticated via FxA using an unknown mechanism. "Known" mechanisms are currently sign-in, sign-up and pairing |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-10-01 | +| sync_auth.paired |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User signed into FxA by pairing with a different Firefox browser, using a QR code |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-10-01 | +| sync_auth.recovered |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |Account manager automatically recovered FxA authentication state without direct user involvement |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-10-01 | +| sync_auth.scan_pairing |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the scan pairing button on the sync authentication page |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_auth.sign_in |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the sign in button on the sync authentication page and was successfully signed in to FxA |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_auth.sign_out |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the sign out button on the sync account page and was successfully signed out of FxA |[1](https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532)||2020-10-01 | +| sync_auth.sign_up |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |User registered a new Firefox Account, and was signed into it |[1](https://github.com/mozilla-mobile/fenix/pull/4931#issuecomment-529740300)||2020-10-01 | +| sync_auth.use_email |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user chose to use their email to sign in instead of scanning a QR code, counterpart to "scan_pairing" |[1](https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844)||2020-10-01 | +| sync_auth.use_email_problem |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user chose to use their email to sign in after an account problem |[1](https://github.com/mozilla-mobile/fenix/pull/9835#pullrequestreview-398641844)||2020-10-01 | +| tab.media_pause |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the pause icon on a tab from the home screen |[1](https://github.com/mozilla-mobile/fenix/pull/5266)||2020-10-01 | +| tab.media_play |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed the play icon on a tab from the home screen |[1](https://github.com/mozilla-mobile/fenix/pull/5266)||2020-10-01 | +| tabs_tray.close_all_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the close all tabs button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.closed_existing_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user closed an existing tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.menu_opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened three three dot menu in the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.new_private_tab_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a new private tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.new_tab_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened a new tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.normal_mode_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user switched to normal mode |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.opened |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.opened_existing_tab |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened an existing tab |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.private_mode_tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user switched to private mode |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.save_to_collection |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the save to collection button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tabs_tray.share_all_tabs |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user tapped the share all tabs button in the three dot menu within the tabs tray |[1](https://github.com/mozilla-mobile/fenix/pull/12036)||2020-10-01 | +| tip.closed |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |The tip was closed |[1](https://github.com/mozilla-mobile/fenix/pull/9836)|
  • identifier: The identifier of the tip closed
|2020-10-01 | +| 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)|
  • identifier: The identifier of the tip displayed
|2020-10-01 | +| 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)|
  • identifier: The identifier of the tip the action was taken on
|2020-10-01 | +| 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)|
  • position: A string that indicates the new position of the toolbar TOP or BOTTOM
|2020-10-01 | +| 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-10-01 | +| 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-10-01 | +| 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-10-01 | +| 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-10-01 | +| 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)|
  • etp_setting: The new setting for ETP: strict, standard, custom
|2020-10-01 | +| 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-10-01 | +| 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-10-01 | +| tracking_protection.etp_tracker_list |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user pressed into a list of categorized trackers in tracking protection panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-10-01 | +| tracking_protection.exception_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a tracking protection exception through the TP toggle in the panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-10-01 | +| tracking_protection.panel_settings |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user opened tracking protection settings from the panel. |[1](https://github.com/mozilla-mobile/fenix/pull/5414#issuecomment-532847188)||2020-10-01 | +| user_specified_search_engines.custom_engine_added |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user added a new custom search engine |[1](https://github.com/mozilla-mobile/fenix/pull/6918)||2020-10-01 | +| user_specified_search_engines.custom_engine_deleted |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user deleted a custom search engine |[1](https://github.com/mozilla-mobile/fenix/pull/6918)||2020-10-01 | +| voice_search.tapped |[event](https://mozilla.github.io/glean/book/user/metrics/event.html) |A user selected the voice search button on the search screen. |[1](https://github.com/mozilla-mobile/fenix/pull/10785)||2020-10-01 | ## first-session @@ -234,11 +234,11 @@ The following metrics are added to the ping: | Name | Type | Description | Data reviews | Extras | Expiration | | --- | --- | --- | --- | --- | --- | -| first_session.adgroup |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the AdGroup that was used to source this installation. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586480836)||2020-09-01 | -| first_session.campaign |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the campaign that is responsible for this installation. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-09-01 | -| first_session.creative |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The identifier of the creative material that the user interacted with. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-09-01 | -| first_session.network |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the Network that sourced this installation. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-09-01 | -| first_session.timestamp |[datetime](https://mozilla.github.io/glean/book/user/metrics/datetime.html) |The Glean generated date and time of the installation. This is unique per app install, though the rest of the data in this ping is from Adjust and will remain static across installs. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-09-01 | +| first_session.adgroup |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the AdGroup that was used to source this installation. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586480836)||2020-10-01 | +| first_session.campaign |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the campaign that is responsible for this installation. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-10-01 | +| first_session.creative |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The identifier of the creative material that the user interacted with. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-10-01 | +| first_session.network |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the Network that sourced this installation. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-10-01 | +| first_session.timestamp |[datetime](https://mozilla.github.io/glean/book/user/metrics/datetime.html) |The Glean generated date and time of the installation. This is unique per app install, though the rest of the data in this ping is from Adjust and will remain static across installs. |[1](https://github.com/mozilla-mobile/fenix/pull/8074#issuecomment-586512202)||2020-10-01 | ## metrics @@ -250,57 +250,57 @@ The following metrics are added to the ping: | Name | Type | Description | Data reviews | Extras | Expiration | | --- | --- | --- | --- | --- | --- | -| addons.enabled_addons |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all enabled add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/11080)||2020-09-01 | -| addons.has_enabled_addons |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the user has enabled add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/8318)||2020-09-01 | -| addons.has_installed_addons |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the user has installed add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/8318)||2020-09-01 | -| addons.installed_addons |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all installed add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/11080)||2020-09-01 | -| browser.search.ad_clicks |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |Records clicks of adverts on SERP pages. The key format is ‘’. |[1](https://github.com/mozilla-mobile/fenix/pull/10112)||2020-09-01 | -| browser.search.in_content |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |Records the type of interaction a user has on SERP pages. |[1](https://github.com/mozilla-mobile/fenix/pull/10167)||2020-09-01 | -| browser.search.with_ads |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |Records counts of SERP pages with adverts displayed. The key format is ‘’. |[1](https://github.com/mozilla-mobile/fenix/pull/10112)||2020-09-01 | -| events.total_uri_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter of URIs visited by the user in the current session, including page reloads. This does not include background page requests and URIs from embedded pages or private browsing but may be incremented without user interaction by website scripts that programmatically redirect to a new location. |[1](https://github.com/mozilla-mobile/fenix/pull/1785), [2](https://github.com/mozilla-mobile/fenix/pull/8314)||2020-09-01 | -| metrics.adjust_ad_group |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust ad group ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-09-01 | -| metrics.adjust_campaign |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust campaign ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/5579)||2020-09-01 | -| metrics.adjust_creative |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust creative ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-09-01 | -| metrics.adjust_network |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust network ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-09-01 | -| metrics.default_browser |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Is Fenix the default browser? |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)||2020-09-01 | -| metrics.default_moz_browser |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the default browser on device if and only if it's a Mozilla owned product |[1](https://github.com/mozilla-mobile/fenix/pull/1953/), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | -| metrics.has_open_tabs |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has any open NORMAL tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/12024)||2020-09-01 | +| addons.enabled_addons |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all enabled add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/11080)||2020-10-01 | +| addons.has_enabled_addons |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the user has enabled add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/8318)||2020-10-01 | +| addons.has_installed_addons |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the user has installed add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/8318)||2020-10-01 | +| addons.installed_addons |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all installed add-ons on the device. |[1](https://github.com/mozilla-mobile/fenix/pull/11080)||2020-10-01 | +| browser.search.ad_clicks |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |Records clicks of adverts on SERP pages. The key format is ‘’. |[1](https://github.com/mozilla-mobile/fenix/pull/10112)||2020-10-01 | +| browser.search.in_content |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |Records the type of interaction a user has on SERP pages. |[1](https://github.com/mozilla-mobile/fenix/pull/10167)||2020-10-01 | +| browser.search.with_ads |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |Records counts of SERP pages with adverts displayed. The key format is ‘’. |[1](https://github.com/mozilla-mobile/fenix/pull/10112)||2020-10-01 | +| events.total_uri_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter of URIs visited by the user in the current session, including page reloads. This does not include background page requests and URIs from embedded pages or private browsing but may be incremented without user interaction by website scripts that programmatically redirect to a new location. |[1](https://github.com/mozilla-mobile/fenix/pull/1785), [2](https://github.com/mozilla-mobile/fenix/pull/8314)||2020-10-01 | +| metrics.adjust_ad_group |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust ad group ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-10-01 | +| metrics.adjust_campaign |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust campaign ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/5579)||2020-10-01 | +| metrics.adjust_creative |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust creative ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-10-01 | +| metrics.adjust_network |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string containing the Adjust network ID from which the user installed Fenix. This will not send on the first session the user runs. If the install is organic, this will be empty. |[1](https://github.com/mozilla-mobile/fenix/pull/9253)||2020-10-01 | +| metrics.default_browser |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Is Fenix the default browser? |[1](https://github.com/mozilla-mobile/fenix/pull/1067#issuecomment-474598673)||2020-10-01 | +| metrics.default_moz_browser |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |The name of the default browser on device if and only if it's a Mozilla owned product |[1](https://github.com/mozilla-mobile/fenix/pull/1953/), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-10-01 | +| metrics.has_open_tabs |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has any open NORMAL tabs. |[1](https://github.com/mozilla-mobile/fenix/pull/12024)||2020-10-01 | | metrics.has_recent_pwas |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has recently used PWAs. See recently_used_pwa_count for the actual count. |[1](https://github.com/mozilla-mobile/fenix/pull/11982#pullrequestreview-437963817)||2020-12-01 | -| metrics.has_top_sites |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has top sites |[1](https://github.com/mozilla-mobile/fenix/pull/9556)||2020-09-01 | -| metrics.mozilla_products |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all the Mozilla products installed on device. We currently scan for: Firefox, Firefox Beta, Firefox Aurora, Firefox Nightly, Firefox Fdroid, Firefox Lite, Reference Browser, Reference Browser Debug, Fenix, Focus, and Lockwise. |[1](https://github.com/mozilla-mobile/fenix/pull/1953/), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | +| metrics.has_top_sites |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |A boolean that indicates if the user has top sites |[1](https://github.com/mozilla-mobile/fenix/pull/9556)||2020-10-01 | +| metrics.mozilla_products |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |A list of all the Mozilla products installed on device. We currently scan for: Firefox, Firefox Beta, Firefox Aurora, Firefox Nightly, Firefox Fdroid, Firefox Lite, Reference Browser, Reference Browser Debug, Fenix, Focus, and Lockwise. |[1](https://github.com/mozilla-mobile/fenix/pull/1953/), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-10-01 | | metrics.recently_used_pwa_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many PWAs a user has recently used. Threshold for "recency" set in HomeActivity#PWA_RECENTLY_USED_THRESHOLD. Currently we are not told by the OS when a PWA is removed by the user, so we use the "recently used" heuristic to judge how many PWAs are still active, as a proxy for "installed". This value will only be set if the user has at least *one* recently used PWA. If they have 0, this metric will not be sent, resulting in a null value during analysis on the server-side. To disambiguate between a failed `recently_used_pwa_count` metric and 0 recent PWAs, please see `has_recent_pwas`. |[1](https://github.com/mozilla-mobile/fenix/pull/11982#pullrequestreview-437963817)||2020-12-01 | -| metrics.search_count |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |The labels for this counter are `.`. If the search engine is bundled with Fenix `search-engine-name` will be the name of the search engine. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be `custom`. `source` will be: `action`, `suggestion`, `widget` or `shortcut` (depending on the source from which the search started). Also added the `other` option for the source but it should never enter on this case. |[1](https://github.com/mozilla-mobile/fenix/pull/1677), [2](https://github.com/mozilla-mobile/fenix/pull/5216), [3](https://github.com/mozilla-mobile/fenix/pull/7310)||2020-09-01 | -| metrics.search_widget_installed |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the search widget is installed |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-09-01 | -| metrics.tabs_open_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many NORMAL tabs a user has open. This value will only be set if the user has at least *one* open tab. If they have 0, this ping will not get sent, resulting in a null value. To disambiguate between a failed `tabs_open_count` ping and 0 open tabs, please see `has_open_tabs`. |[1](https://github.com/mozilla-mobile/fenix/pull/12024)||2020-09-01 | -| metrics.toolbar_position |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string that indicates the new position of the toolbar TOP or BOTTOM |[1](https://github.com/mozilla-mobile/fenix/pull/6608)||2020-09-01 | -| metrics.top_sites_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many top sites a user has. This value will only be set if the user has at least *one* top site. If they have 0, this ping will not get sent, resulting in a null value. To disambiguate between a failed `top_sites_count` ping and 0 top sites, please see `has_top_sites`. |[1](https://github.com/mozilla-mobile/fenix/pull/9556)||2020-09-01 | -| perf.awesomebar.bookmark_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a bookmarks awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| perf.awesomebar.clipboard_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a clipboard awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| perf.awesomebar.history_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a history awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| perf.awesomebar.search_engine_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a search engine awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| perf.awesomebar.session_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a session awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| perf.awesomebar.shortcuts_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a shortcuts awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| perf.awesomebar.synced_tabs_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a synced tabs awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-09-15 | -| preferences.accessibility_services |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has touch exploration or switch services enabled. These are built into the Android OS, not Fenix prefs. default: "" |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.open_links_in_a_private_tab |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled open links in a private tab. default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.open_links_in_app |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has the open links in apps feature enabled. default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11446)||2020-09-01 | -| preferences.remote_debugging |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has remote debugging enabled default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.search_bookmarks |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled bookmark search suggestions default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.search_browsing_history |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled browsing history suggestions. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.search_suggestions_private |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled showing search suggestions in private mode. default: false (we prompt the user, asking them to make a selection) |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.show_clipboard_suggestions |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled clipboard search suggestions. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.show_search_shortcuts |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled search shortcuts. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.show_search_suggestions |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has search suggestions enabled default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.show_voice_search |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled the voice search button. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.sync |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user is signed into FxA default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.sync_items |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |The list of items the user has chosen to sync with FxA. default: "" if the user is signed out. Otherwise defaults to whatever is set in their FxA account. New accounts set: [bookmarks, history, passwords, tabs] |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.telemetry |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has telemetry enabled. Note we should never receive a "false" value for this since telemetry would not send in that case. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.theme |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |The theme the user has enabled. "light," "dark," "system," or "battery" default: "system" for API 28+, else "light" |[1](https://github.com/mozilla-mobile/fenix/pull/11446)||2020-09-01 | -| preferences.toolbar_position |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |The position of the toolbar default: bottom (defaults to top if the user has accessibility services) |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| preferences.tracking_protection |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |What type of enhanced tracking protection the user has enabled. "standard," "strict," "custom," or "" (if disabled) default: "standard" |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-09-01 | -| search.default_engine.code |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |If the search engine is pre-loaded with Fenix this value will be the search engine identifier. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" |[1](https://github.com/mozilla-mobile/fenix/pull/1606), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | -| search.default_engine.name |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |If the search engine is pre-loaded with Fenix this value will be the search engine name. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" |[1](https://github.com/mozilla-mobile/fenix/pull/1606), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | -| search.default_engine.submission_url |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |If the search engine is pre-loaded with Fenix this value will be he base URL we use to build the search query for the search engine. For example: https://mysearchengine.com/?query=%s. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" |[1](https://github.com/mozilla-mobile/fenix/pull/1606), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-09-01 | +| metrics.search_count |[labeled_counter](https://mozilla.github.io/glean/book/user/metrics/labeled_counters.html) |The labels for this counter are `.`. If the search engine is bundled with Fenix `search-engine-name` will be the name of the search engine. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be `custom`. `source` will be: `action`, `suggestion`, `widget` or `shortcut` (depending on the source from which the search started). Also added the `other` option for the source but it should never enter on this case. |[1](https://github.com/mozilla-mobile/fenix/pull/1677), [2](https://github.com/mozilla-mobile/fenix/pull/5216), [3](https://github.com/mozilla-mobile/fenix/pull/7310)||2020-10-01 | +| metrics.search_widget_installed |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |Whether or not the search widget is installed |[1](https://github.com/mozilla-mobile/fenix/pull/10958)||2020-10-01 | +| metrics.tabs_open_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many NORMAL tabs a user has open. This value will only be set if the user has at least *one* open tab. If they have 0, this ping will not get sent, resulting in a null value. To disambiguate between a failed `tabs_open_count` ping and 0 open tabs, please see `has_open_tabs`. |[1](https://github.com/mozilla-mobile/fenix/pull/12024)||2020-10-01 | +| metrics.toolbar_position |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |A string that indicates the new position of the toolbar TOP or BOTTOM |[1](https://github.com/mozilla-mobile/fenix/pull/6608)||2020-10-01 | +| metrics.top_sites_count |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |A counter that indicates how many top sites a user has. This value will only be set if the user has at least *one* top site. If they have 0, this ping will not get sent, resulting in a null value. To disambiguate between a failed `top_sites_count` ping and 0 top sites, please see `has_top_sites`. |[1](https://github.com/mozilla-mobile/fenix/pull/9556)||2020-10-01 | +| perf.awesomebar.bookmark_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a bookmarks awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| perf.awesomebar.clipboard_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a clipboard awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| perf.awesomebar.history_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a history awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| perf.awesomebar.search_engine_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a search engine awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| perf.awesomebar.session_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a session awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| perf.awesomebar.shortcuts_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a shortcuts awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| perf.awesomebar.synced_tabs_suggestions |[timing_distribution](https://mozilla.github.io/glean/book/user/metrics/timing_distribution.html) |Duration of a synced tabs awesomebar suggestion query. |[1](https://github.com/mozilla-mobile/fenix/pull/10276#pullrequestreview-411101979)||2020-10-01 | +| preferences.accessibility_services |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has touch exploration or switch services enabled. These are built into the Android OS, not Fenix prefs. default: "" |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.open_links_in_a_private_tab |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled open links in a private tab. default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.open_links_in_app |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has the open links in apps feature enabled. default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11446)||2020-10-01 | +| preferences.remote_debugging |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has remote debugging enabled default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.search_bookmarks |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled bookmark search suggestions default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.search_browsing_history |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled browsing history suggestions. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.search_suggestions_private |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled showing search suggestions in private mode. default: false (we prompt the user, asking them to make a selection) |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.show_clipboard_suggestions |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled clipboard search suggestions. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.show_search_shortcuts |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled search shortcuts. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.show_search_suggestions |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has search suggestions enabled default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.show_voice_search |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has enabled the voice search button. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.sync |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user is signed into FxA default: false |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.sync_items |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |The list of items the user has chosen to sync with FxA. default: "" if the user is signed out. Otherwise defaults to whatever is set in their FxA account. New accounts set: [bookmarks, history, passwords, tabs] |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.telemetry |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |Whether or not the user has telemetry enabled. Note we should never receive a "false" value for this since telemetry would not send in that case. default: true |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.theme |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |The theme the user has enabled. "light," "dark," "system," or "battery" default: "system" for API 28+, else "light" |[1](https://github.com/mozilla-mobile/fenix/pull/11446)||2020-10-01 | +| preferences.toolbar_position |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |The position of the toolbar default: bottom (defaults to top if the user has accessibility services) |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| preferences.tracking_protection |[string_list](https://mozilla.github.io/glean/book/user/metrics/string_list.html) |What type of enhanced tracking protection the user has enabled. "standard," "strict," "custom," or "" (if disabled) default: "standard" |[1](https://github.com/mozilla-mobile/fenix/pull/11211)||2020-10-01 | +| search.default_engine.code |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |If the search engine is pre-loaded with Fenix this value will be the search engine identifier. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" |[1](https://github.com/mozilla-mobile/fenix/pull/1606), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-10-01 | +| search.default_engine.name |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |If the search engine is pre-loaded with Fenix this value will be the search engine name. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" |[1](https://github.com/mozilla-mobile/fenix/pull/1606), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-10-01 | +| search.default_engine.submission_url |[string](https://mozilla.github.io/glean/book/user/metrics/string.html) |If the search engine is pre-loaded with Fenix this value will be he base URL we use to build the search query for the search engine. For example: https://mysearchengine.com/?query=%s. If it's a custom search engine (defined: https://github.com/mozilla-mobile/fenix/issues/1607) the value will be "custom" |[1](https://github.com/mozilla-mobile/fenix/pull/1606), [2](https://github.com/mozilla-mobile/fenix/pull/5216)||2020-10-01 | ## startup-timeline @@ -323,10 +323,10 @@ The following metrics are added to the ping: | Name | Type | Description | Data reviews | Extras | Expiration | | --- | --- | --- | --- | --- | --- | -| startup.timeline.clock_ticks_per_second |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |The number of clock tick time units that occur in one second on this particular device. This value is expected to be used in conjunction with the `framework_start` metric. |[1](https://github.com/mozilla-mobile/fenix/pull/9788#pullrequestreview-394228626)||2020-07-15 | -| startup.timeline.framework_start |[timespan](https://mozilla.github.io/glean/book/user/metrics/timespan.html) |The duration the Android framework takes to start before letting us run code in `*Application.init`. This is calculated from `appInitTimestamp - processStartTimestamp`. `processStartTimestamp` is derived from the clock tick time unit, which is expected to be less granular than nanoseconds. Therefore, we convert and round our timestamps to clock ticks before computing the difference and convert back to nanoseconds to report. For debugging purposes, `clock_ticks_per_second`, which may vary between devices, is also reported as a metric |[1](https://github.com/mozilla-mobile/fenix/pull/9788#pullrequestreview-394228626)||2020-07-15 | -| startup.timeline.framework_start_error |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |An error when attempting to record `framework_start` - the application init timestamp returned a negative value - which is likely indicative of a bug in the implementation. |[1](https://github.com/mozilla-mobile/fenix/pull/9788#pullrequestreview-394228626)||2020-07-15 | -| startup.timeline.framework_start_read_error |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |An error when attempting to read stats from /proc pseudo-filesystem - privacy managers can block access to reading these files - the application will catch a file reading exception. |[1](https://github.com/mozilla-mobile/fenix/pull/10481)||2020-07-15 | +| startup.timeline.clock_ticks_per_second |[counter](https://mozilla.github.io/glean/book/user/metrics/counter.html) |The number of clock tick time units that occur in one second on this particular device. This value is expected to be used in conjunction with the `framework_start` metric. |[1](https://github.com/mozilla-mobile/fenix/pull/9788#pullrequestreview-394228626)||2020-10-01 | +| startup.timeline.framework_start |[timespan](https://mozilla.github.io/glean/book/user/metrics/timespan.html) |The duration the Android framework takes to start before letting us run code in `*Application.init`. This is calculated from `appInitTimestamp - processStartTimestamp`. `processStartTimestamp` is derived from the clock tick time unit, which is expected to be less granular than nanoseconds. Therefore, we convert and round our timestamps to clock ticks before computing the difference and convert back to nanoseconds to report. For debugging purposes, `clock_ticks_per_second`, which may vary between devices, is also reported as a metric |[1](https://github.com/mozilla-mobile/fenix/pull/9788#pullrequestreview-394228626)||2020-10-01 | +| startup.timeline.framework_start_error |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |An error when attempting to record `framework_start` - the application init timestamp returned a negative value - which is likely indicative of a bug in the implementation. |[1](https://github.com/mozilla-mobile/fenix/pull/9788#pullrequestreview-394228626)||2020-10-01 | +| startup.timeline.framework_start_read_error |[boolean](https://mozilla.github.io/glean/book/user/metrics/boolean.html) |An error when attempting to read stats from /proc pseudo-filesystem - privacy managers can block access to reading these files - the application will catch a file reading exception. |[1](https://github.com/mozilla-mobile/fenix/pull/10481)||2020-10-01 | From 5ef6b49aa1afc52f8205f822d1253946d020b4c0 Mon Sep 17 00:00:00 2001 From: Michael Comella Date: Fri, 26 Jun 2020 18:31:02 -0700 Subject: [PATCH 18/22] For #8795: remove redundant ConstraintLayout around BrowserToolbar. (#12014) This is functionally equivalent to the code before this patch but should be slightly more performant in theory because ConstraintLayout is expensive to inflate. The elevation and layoutParams set dynamically appeared to have no effect with the wrapping view but broke the view when used by itself so I had to remove them. I also updated a few other unnecessary params. Theoretically this may have some perf benefits but I didn't see anything outside noise levels after I took the numbers (but I didn't try very hard). --- .../mozilla/fenix/search/SearchFragment.kt | 2 - .../fenix/search/toolbar/ToolbarView.kt | 10 ----- app/src/main/res/layout/fragment_search.xml | 44 +++++++------------ 3 files changed, 15 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt index 2190be332..4f5ef089e 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt @@ -294,8 +294,6 @@ class SearchFragment : Fragment(), UserInteractionHandler { view.search_suggestions_onboarding.setOnInflateListener((stubListener)) - view.toolbar_wrapper.clipToOutline = false - fill_link_from_clipboard.setOnClickListener { (activity as HomeActivity) .openToBrowserAndLoad( diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt index bf997e413..31369ed68 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt @@ -8,7 +8,6 @@ import android.content.Context import android.graphics.Bitmap import android.graphics.drawable.BitmapDrawable import androidx.appcompat.content.res.AppCompatResources -import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.content.ContextCompat import mozilla.components.browser.domains.autocomplete.ShippedDomainsProvider import mozilla.components.browser.toolbar.BrowserToolbar @@ -16,7 +15,6 @@ import mozilla.components.concept.engine.Engine import mozilla.components.concept.storage.HistoryStorage import mozilla.components.feature.toolbar.ToolbarAutocompleteFeature import mozilla.components.support.ktx.android.content.getColorFromAttr -import mozilla.components.support.ktx.android.util.dpToPx import mozilla.components.support.ktx.android.view.hideKeyboard import org.mozilla.fenix.R import org.mozilla.fenix.search.SearchFragmentState @@ -64,8 +62,6 @@ class ToolbarView( view.apply { editMode() - elevation = TOOLBAR_ELEVATION_IN_DP.dpToPx(resources.displayMetrics).toFloat() - setOnUrlCommitListener { // We're hiding the keyboard as early as possible to prevent the engine view // from resizing in case the BrowserFragment is being displayed before the @@ -80,8 +76,6 @@ class ToolbarView( context, ThemeManager.resolveAttribute(R.attr.foundation, context) ) - layoutParams.height = CoordinatorLayout.LayoutParams.MATCH_PARENT - edit.hint = context.getString(R.string.search_hint) edit.colors = edit.colors.copy( @@ -156,8 +150,4 @@ class ToolbarView( view.edit.setIcon(icon, searchState.searchEngineSource.searchEngine.name) } - - companion object { - private const val TOOLBAR_ELEVATION_IN_DP = 16 - } } diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index d9d325649..c2a77fa70 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -11,38 +11,24 @@ android:background="?foundation" tools:context=".search.SearchFragment"> - - - - - + app:layout_constraintTop_toTopOf="parent"/> + app:layout_constraintTop_toBottomOf="@id/toolbar"> Date: Thu, 25 Jun 2020 13:39:36 -0700 Subject: [PATCH 19/22] For #9935 - Fallback region selection on first load --- .../searchengine/FenixSearchEngineProvider.kt | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt index 4775f9e71..51752bf14 100644 --- a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt @@ -19,6 +19,7 @@ import mozilla.components.browser.search.provider.SearchEngineList import mozilla.components.browser.search.provider.SearchEngineProvider import mozilla.components.browser.search.provider.filter.SearchEngineFilter import mozilla.components.browser.search.provider.localization.LocaleSearchLocalizationProvider +import mozilla.components.browser.search.provider.localization.SearchLocalization import mozilla.components.browser.search.provider.localization.SearchLocalizationProvider import mozilla.components.service.location.LocationService import mozilla.components.service.location.MozillaLocationService @@ -51,12 +52,17 @@ open class FenixSearchEngineProvider( AssetsSearchEngineProvider(localizationProvider).loadSearchEngines(context) } + private val loadedRegion = async { localizationProvider.determineRegion() } + // https://github.com/mozilla-mobile/fenix/issues/9935 // Adds a Locale search engine provider as a fallback in case the MLS lookup takes longer // than the time it takes for a user to try to search. - private val fallBackEngines = async { - AssetsSearchEngineProvider(LocaleSearchLocalizationProvider()).loadSearchEngines(context) - } + private val fallbackLocationService: SearchLocalizationProvider = LocaleSearchLocalizationProvider() + private val fallBackProvider = + AssetsSearchEngineProvider(fallbackLocationService) + + private val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) } + private val fallbackRegion = async { fallbackLocationService.determineRegion() } @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) open val bundledSearchEngines = async { @@ -88,7 +94,15 @@ open class FenixSearchEngineProvider( if (loadedSearchEngines.isCompleted) { loadedSearchEngines } else { - fallBackEngines + fallbackEngines + } + + private val region: Deferred + get() = + if (loadedRegion.isCompleted) { + loadedRegion + } else { + fallbackRegion } fun getDefaultEngine(context: Context): SearchEngine { @@ -215,7 +229,7 @@ open class FenixSearchEngineProvider( @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) suspend fun localeAwareInstalledEnginesKey(): String { - val tag = localizationProvider.determineRegion().let { + val tag = region.await().let { val region = it.region?.let { region -> if (region.isEmpty()) "" else "-$region" } From b1a8c0f483c780acd7fd925a15765d3f31ce9c65 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Thu, 25 Jun 2020 15:25:57 -0700 Subject: [PATCH 20/22] For #9935 - Use the searchengine deferred --- .../searchengine/FenixSearchEngineProvider.kt | 9 +++++++-- .../searchengine/FenixSearchEngineProviderTest.kt | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt index 51752bf14..0f8b1a9fb 100644 --- a/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProvider.kt @@ -61,7 +61,8 @@ open class FenixSearchEngineProvider( private val fallBackProvider = AssetsSearchEngineProvider(fallbackLocationService) - private val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) } + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + open val fallbackEngines = async { fallBackProvider.loadSearchEngines(context) } private val fallbackRegion = async { fallbackLocationService.determineRegion() } @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) @@ -213,7 +214,11 @@ open class FenixSearchEngineProvider( } if (!prefs.contains(installedEnginesKey)) { - val defaultSet = baseSearchEngines.await() + val searchEngines = + if (baseSearchEngines.isCompleted) baseSearchEngines + else fallbackEngines + + val defaultSet = searchEngines.await() .list .map { it.identifier } .toSet() diff --git a/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt b/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt index 74327dafd..fbdf303a9 100644 --- a/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/searchengine/FenixSearchEngineProviderTest.kt @@ -119,6 +119,21 @@ class FakeFenixSearchEngineProvider(context: Context) : FenixSearchEngineProvide ) } + override val fallbackEngines: Deferred + get() { + val google = mockSearchEngine(id = "google-b-1-m", n = "Google") + + return CompletableDeferred( + SearchEngineList( + listOf( + google, + mockSearchEngine("bing", "Bing"), + mockSearchEngine("amazondotcom", "Amazon.com") + ), default = google + ) + ) + } + override val bundledSearchEngines = CompletableDeferred( SearchEngineList( listOf( From ed334788e821b0c3a14a428961137ce980344d6e Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Thu, 25 Jun 2020 09:54:15 -0700 Subject: [PATCH 21/22] For #11903: Enforce private theme in custom tabs --- .../java/org/mozilla/fenix/HomeActivity.kt | 5 ----- .../fenix/browser/BaseBrowserFragment.kt | 14 ++++++++++-- .../mozilla/fenix/browser/BrowserFragment.kt | 6 +---- .../fenix/customtabs/CustomTabsIntegration.kt | 2 +- .../drawable/toolbar_background_private.xml | 22 ------------------- 5 files changed, 14 insertions(+), 35 deletions(-) delete mode 100644 app/src/main/res/drawable/toolbar_background_private.xml diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index d8c5c7124..db2f37b1d 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -511,11 +511,6 @@ open class HomeActivity : LocaleAwareAppCompatActivity() { } } - fun updateThemeForSession(session: Session) { - val sessionMode = BrowsingMode.fromBoolean(session.private) - browsingModeManager.mode = sessionMode - } - override fun attachBaseContext(base: Context) { StrictMode.allowThreadDiskReads().resetPoliciesAfter { super.attachBaseContext(base) diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index 791971685..9ed9985f7 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -78,6 +78,7 @@ import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.IntentReceiverActivity import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.R +import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.readermode.DefaultReaderModeController import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FindInPageIntegration @@ -690,7 +691,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session @CallSuper override fun onSessionSelected(session: Session) { - (activity as HomeActivity).updateThemeForSession(session) + updateThemeForSession(session) if (!browserInitialized) { // Initializing a new coroutineScope to avoid ConcurrentModificationException in ObserverRegistry // This will be removed when ObserverRegistry is deprecated by browser-state. @@ -720,6 +721,8 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session components.useCases.sessionUseCases.reload() } hideToolbar() + + getSessionById()?.let { updateThemeForSession(it) } } @CallSuper @@ -872,6 +875,14 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session } } + /** + * Set the activity normal/private theme to match the current session. + */ + private fun updateThemeForSession(session: Session) { + val sessionMode = BrowsingMode.fromBoolean(session.private) + (activity as HomeActivity).browsingModeManager.mode = sessionMode + } + /** * Returns the current session. */ @@ -997,6 +1008,5 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session private const val REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1 private const val REQUEST_CODE_PROMPT_PERMISSIONS = 2 private const val REQUEST_CODE_APP_PERMISSIONS = 3 - private const val SNACKBAR_ELEVATION = 80f } } diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index eee14ae28..a932686cf 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -30,7 +30,6 @@ import mozilla.components.feature.tab.collections.TabCollection import mozilla.components.feature.tabs.WindowFeature import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper -import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.addons.runIfFragmentIsAttached import org.mozilla.fenix.components.FenixSnackbar @@ -40,8 +39,8 @@ import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.navigateSafe import org.mozilla.fenix.ext.requireComponents -import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.resetPoliciesAfter +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.shortcut.FirstTimePwaObserver import org.mozilla.fenix.trackingprotection.TrackingProtectionOverlay @@ -178,9 +177,6 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { override fun onResume() { super.onResume() - getSessionById()?.let { - (activity as HomeActivity).updateThemeForSession(it) - } requireComponents.core.tabCollectionStorage.register(collectionStorageObserver, this) } diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt index 900401314..452f1b0d6 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/CustomTabsIntegration.kt @@ -67,7 +67,7 @@ class CustomTabsIntegration( ) } - toolbar.background = getDrawable(activity, R.drawable.toolbar_background_private) + toolbar.background = getDrawable(activity, R.drawable.toolbar_background) } } diff --git a/app/src/main/res/drawable/toolbar_background_private.xml b/app/src/main/res/drawable/toolbar_background_private.xml deleted file mode 100644 index 146188097..000000000 --- a/app/src/main/res/drawable/toolbar_background_private.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - From e0fa1c0db4ff806c991b13906ef6a30ba4d6054d Mon Sep 17 00:00:00 2001 From: Mihai Eduard Badea Date: Fri, 26 Jun 2020 12:01:25 +0300 Subject: [PATCH 22/22] For issue #11835 - Update text fonts Updated the fonts and colors for several texts throughout the application. --- app/src/main/res/layout/account_preference.xml | 5 ++--- app/src/main/res/layout/collections_list_item.xml | 2 +- app/src/main/res/layout/component_collection_creation.xml | 6 ++++-- .../component_collection_creation_select_collection.xml | 1 + .../res/layout/fragment_tracking_protection_blocking.xml | 4 ++-- app/src/main/res/layout/history_list_item.xml | 3 ++- app/src/main/res/layout/no_collections_message.xml | 4 +--- app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/styles.xml | 3 ++- 9 files changed, 16 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/layout/account_preference.xml b/app/src/main/res/layout/account_preference.xml index d125df395..1a6f0af47 100644 --- a/app/src/main/res/layout/account_preference.xml +++ b/app/src/main/res/layout/account_preference.xml @@ -46,10 +46,9 @@ android:layout_height="wrap_content" android:layout_below="@id/displayName" android:layout_alignStart="@id/displayName" + android:textColor="?secondaryText" android:maxLines="4" - android:text="@string/preferences_account_default_name" - android:textColor="?primaryText" - app:fontFamily="@font/metropolis_bold" /> + android:text="@string/preferences_account_default_name" /> diff --git a/app/src/main/res/layout/collections_list_item.xml b/app/src/main/res/layout/collections_list_item.xml index ccf81e587..99fb2b038 100644 --- a/app/src/main/res/layout/collections_list_item.xml +++ b/app/src/main/res/layout/collections_list_item.xml @@ -56,7 +56,7 @@ android:ellipsize="end" android:maxLines="2" android:minLines="2" - android:textAppearance="@style/SubtitleTextStyle" + android:textColor="?secondaryText" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/collection_item" app:layout_constraintStart_toStartOf="@+id/collection_item" diff --git a/app/src/main/res/layout/component_collection_creation.xml b/app/src/main/res/layout/component_collection_creation.xml index 10d9e3cb6..88e156ef4 100644 --- a/app/src/main/res/layout/component_collection_creation.xml +++ b/app/src/main/res/layout/component_collection_creation.xml @@ -47,6 +47,7 @@ android:textAllCaps="false" android:textColor="@color/neutral_text" android:textSize="16sp" + android:fontFamily="@font/metropolis_bold" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1" app:layout_constraintStart_toEndOf="@+id/guideline" @@ -163,7 +164,7 @@ android:text="@string/create_collection_save_to_collection_empty" android:textColor="?neutral" android:textSize="16sp" - android:textStyle="bold" + android:fontFamily="@font/metropolis_semibold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/save_button" app:layout_constraintStart_toEndOf="@id/bottom_bar_icon_button" @@ -176,7 +177,8 @@ android:layout_height="wrap_content" android:background="?android:attr/selectableItemBackground" android:text="@string/create_collection_save" - android:textColor="?neutral" + android:textColor="@color/photonWhite" + app:fontFamily="@font/metropolis_medium" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/component_collection_creation_select_collection.xml b/app/src/main/res/layout/component_collection_creation_select_collection.xml index 5e396d4a2..f08e5937b 100644 --- a/app/src/main/res/layout/component_collection_creation_select_collection.xml +++ b/app/src/main/res/layout/component_collection_creation_select_collection.xml @@ -140,6 +140,7 @@ android:gravity="center_vertical" android:singleLine="true" android:text="@string/create_collection_add_new_collection" + android:fontFamily="@font/metropolis" android:textColor="?neutral" android:textSize="16sp" android:textStyle="bold" diff --git a/app/src/main/res/layout/fragment_tracking_protection_blocking.xml b/app/src/main/res/layout/fragment_tracking_protection_blocking.xml index 0fe88a045..cf63025bb 100644 --- a/app/src/main/res/layout/fragment_tracking_protection_blocking.xml +++ b/app/src/main/res/layout/fragment_tracking_protection_blocking.xml @@ -14,14 +14,14 @@ + android:text="@string/enhanced_tracking_protection_blocked" /> + android:textAlignment="viewStart" /> 12dp 8dp 8dp - 8dp + 18dp 18dp 40dp 20dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 961374f94..e84b80112 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -450,7 +450,7 @@