Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

Commit

Permalink
For #2362: Adds telemetry for history
Browse files Browse the repository at this point in the history
  • Loading branch information
sblatz committed Jul 16, 2019
1 parent 5792acf commit 3ea3d09
Show file tree
Hide file tree
Showing 5 changed files with 152 additions and 1 deletion.
59 changes: 58 additions & 1 deletion app/metrics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ activation:
type: string
lifetime: ping
description: >
An hashed and salted version of the Google Advertising ID from the device.
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.
send_in_pings:
- activation
Expand Down Expand Up @@ -844,3 +844,60 @@ sync_account:
notification_emails:
- [email protected]
expires: "2020-03-01"

history:
opened:
type: event
description: >
A user opened the history screen
bugs:
- 2362
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/3940
notification_emails:
- [email protected]
expires: "2020-03-01"
removed:
type: event
description: >
A user removed a history item
bugs:
- 2362
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/3940
notification_emails:
- [email protected]
expires: "2020-03-01"
removed_all:
type: event
description: >
A user removed all history items
bugs:
- 2362
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/3940
notification_emails:
- [email protected]
expires: "2020-03-01"
shared:
type: event
description: >
A user shared a history item
bugs:
- 2362
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/3940
notification_emails:
- [email protected]
expires: "2020-03-01"
opened_item:
type: event
description: >
A user opened a history item
bugs:
- 2362
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/3940
notification_emails:
- [email protected]
expires: "2020-03-01"
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@ import org.mozilla.fenix.GleanMetrics.Pings
import org.mozilla.fenix.GleanMetrics.QrScanner
import org.mozilla.fenix.GleanMetrics.QuickActionSheet
import org.mozilla.fenix.GleanMetrics.SearchDefaultEngine
import org.mozilla.fenix.ext.components
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import mozilla.components.service.glean.BuildConfig
import mozilla.components.service.glean.config.Configuration
import org.mozilla.fenix.GleanMetrics.QrScanner
import org.mozilla.fenix.GleanMetrics.Library
import org.mozilla.fenix.GleanMetrics.ErrorPage
import org.mozilla.fenix.GleanMetrics.History
import org.mozilla.fenix.GleanMetrics.SyncAccount
import org.mozilla.fenix.GleanMetrics.SyncAuth
import org.mozilla.fenix.ext.components
Expand Down Expand Up @@ -227,6 +239,21 @@ private val Event.wrapper
{ Events.preferenceToggled.record(it) },
{ Events.preferenceToggledKeys.valueOf(it) }
)
is Event.HistoryOpened -> EventWrapper<NoExtraKeys>(
{ History.opened.record(it) }
)
is Event.HistoryItemShared -> EventWrapper<NoExtraKeys>(
{ History.shared.record(it) }
)
is Event.HistoryItemOpened -> EventWrapper<NoExtraKeys>(
{ History.openedItem.record(it) }
)
is Event.HistoryItemRemoved -> EventWrapper<NoExtraKeys>(
{ History.removed.record(it) }
)
is Event.HistoryAllItemsRemoved -> EventWrapper<NoExtraKeys>(
{ History.removedAll.record(it) }
)

// Don't track other events with Glean
else -> null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ sealed class Event {
object SyncAccountClosed : Event()
object SyncAccountSyncNow : Event()
object SyncAccountSignOut : Event()
object HistoryOpened : Event()
object HistoryItemShared : Event()
object HistoryItemOpened : Event()
object HistoryItemRemoved : Event()
object HistoryAllItemsRemoved : Event()

data class PreferenceToggled(val preferenceKey: String, val enabled: Boolean, val context: Context) : Event() {
private val switchPreferenceTelemetryAllowList = listOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import org.mozilla.fenix.FenixViewModelProvider
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.components.Components
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getHostFromUrl
import org.mozilla.fenix.ext.nav
Expand Down Expand Up @@ -69,6 +70,7 @@ class HistoryFragment : Fragment(), BackHandler {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

requireComponents.analytics.metrics.track(Event.HistoryOpened)
setHasOptionsMenu(true)
}

Expand Down Expand Up @@ -209,6 +211,7 @@ class HistoryFragment : Fragment(), BackHandler {
}

private fun openItem(item: HistoryItem) {
requireComponents.analytics.metrics.track(Event.HistoryItemOpened)
(activity as HomeActivity).openToBrowserAndLoad(
searchTermOrURL = item.url,
newTab = true,
Expand All @@ -226,6 +229,7 @@ class HistoryFragment : Fragment(), BackHandler {
setPositiveButton(R.string.history_clear_dialog) { dialog: DialogInterface, _ ->
emitChange { HistoryChange.EnterDeletionMode }
lifecycleScope.launch {
requireComponents.analytics.metrics.track(Event.HistoryAllItemsRemoved)
requireComponents.core.historyStorage.deleteEverything()
reloadData()
launch(Dispatchers.Main) {
Expand Down Expand Up @@ -279,13 +283,15 @@ class HistoryFragment : Fragment(), BackHandler {
selected: List<HistoryItem>,
components: Components = requireComponents
) {
requireComponents.analytics.metrics.track(Event.HistoryItemRemoved)
val storage = components.core.historyStorage
for (item in selected) {
storage.deleteVisit(item.url, item.visitedAt)
}
}

private fun share(url: String? = null, tabs: List<ShareTab>? = null) {
requireComponents.analytics.metrics.track(Event.HistoryItemShared)
val directions =
HistoryFragmentDirections.actionHistoryFragmentToShareFragment(
url = url,
Expand Down
56 changes: 56 additions & 0 deletions docs/metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,62 @@ tracking_protection</td>
</pre>


## history

<pre>
<table style="width: 100%">
<tr>
<th>key</th>
<th>type</th>
<th>description</th>
<th>data deview</th>
<th>extras</th>
<th>expires</th>
</tr>
<tr>
<td>opened</td>
<td>event</td>
<td>A user opened the history screen</td>
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3940">link</a></td>
<td></td>
<td>2020-03-01</td>
</tr>
<tr>
<td>removed</td>
<td>event</td>
<td>A user removed a history item</td>
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3940">link</a></td>
<td></td>
<td>2020-03-01</td>
</tr>
<tr>
<td>removed_all</td>
<td>event</td>
<td>A user removed all history items</td>
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3940">link</a></td>
<td></td>
<td>2020-03-01</td>
</tr>
<tr>
<td>shared</td>
<td>event</td>
<td>A user shared a history item</td>
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3940">link</a></td>
<td></td>
<td>2020-03-01</td>
</tr>
<tr>
<td>opened_item</td>
<td>event</td>
<td>A user opened a history item</td>
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3940">link</a></td>
<td></td>
<td>2020-03-01</td>
</tr>
</table>
</pre>


## Metrics

Items that are added to the metrics ping
Expand Down

0 comments on commit 3ea3d09

Please sign in to comment.