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)
}
// Track only built-in engine selection. Do not track user-added engines!
data class SearchShortcutSelected(val engine: String) : Event() {
data class SearchShortcutSelected(val engine: SearchEngine, val isCustom: Boolean) : Event() {
private val engineName = if (isCustom) "custom" else engine.name
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() {

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.SUGGESTION
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.metrics
import org.mozilla.fenix.ext.nav
@ -127,7 +128,8 @@ class DefaultSearchController(
override fun handleSearchShortcutEngineSelected(searchEngine: 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() {

View File

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