1
0
Fork 0

For #1607 - Fixes SearchShortcutSelected to not leak any custom identifiers

master
Jeff Boek 2020-01-16 13:25:21 -08:00
parent f4b583fc0b
commit ea22f6d69b
3 changed files with 7 additions and 5 deletions

View File

@ -301,10 +301,10 @@ sealed class Event {
get() = mapOf(Events.performedSearchKeys.source to eventSource.sourceLabel) get() = mapOf(Events.performedSearchKeys.source to eventSource.sourceLabel)
} }
// Track only built-in engine selection. Do not track user-added engines! data class SearchShortcutSelected(val engine: SearchEngine, val isCustom: Boolean) : Event() {
data class SearchShortcutSelected(val engine: String) : Event() { private val engineName = if (isCustom) "custom" else engine.name
override val extras: Map<SearchShortcuts.selectedKeys, String>? override val extras: Map<SearchShortcuts.selectedKeys, String>?
get() = mapOf(SearchShortcuts.selectedKeys.engine to engine) get() = mapOf(SearchShortcuts.selectedKeys.engine to engineName)
} }
class ContextMenuItemTapped private constructor(val item: String) : Event() { class ContextMenuItemTapped private constructor(val item: String) : Event() {

View File

@ -18,6 +18,7 @@ import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPo
import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPoint.NONE import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPoint.NONE
import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPoint.SUGGESTION import org.mozilla.fenix.components.metrics.Event.PerformedSearch.SearchAccessPoint.SUGGESTION
import org.mozilla.fenix.components.metrics.MetricsUtils import org.mozilla.fenix.components.metrics.MetricsUtils
import org.mozilla.fenix.components.searchengine.CustomSearchEngineStore
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.nav
@ -127,7 +128,8 @@ class DefaultSearchController(
override fun handleSearchShortcutEngineSelected(searchEngine: SearchEngine) { override fun handleSearchShortcutEngineSelected(searchEngine: SearchEngine) {
store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine)) store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine))
context.metrics.track(Event.SearchShortcutSelected(searchEngine.name)) val isCustom = CustomSearchEngineStore.isCustomSearchEngine(context, searchEngine.identifier)
context.metrics.track(Event.SearchShortcutSelected(searchEngine, isCustom))
} }
override fun handleSearchShortcutsButtonClicked() { override fun handleSearchShortcutsButtonClicked() {

View File

@ -192,7 +192,7 @@ class DefaultSearchControllerTest {
controller.handleSearchShortcutEngineSelected(searchEngine) controller.handleSearchShortcutEngineSelected(searchEngine)
verify { store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine)) } verify { store.dispatch(SearchFragmentAction.SearchShortcutEngineSelected(searchEngine)) }
verify { metrics.track(Event.SearchShortcutSelected(searchEngine.name)) } verify { metrics.track(Event.SearchShortcutSelected(searchEngine, false)) }
} }
@Test @Test