| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
|
| index d8f7a29f1e422ed1007dc88ff5a4f21ab9e5aa57..49a9dc04421ab8cde90255f83a07545a60e84b4a 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetArticle.java
|
| @@ -5,6 +5,7 @@ package org.chromium.chrome.browser.ntp.snippets;
|
|
|
| import android.graphics.Bitmap;
|
|
|
| +import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.chrome.browser.ntp.cards.NewTabPageListItem;
|
|
|
| /**
|
| @@ -24,6 +25,9 @@ public class SnippetArticle implements NewTabPageListItem {
|
| /** Bitmap of the thumbnail, fetched lazily, when the RecyclerView wants to show the snippet. */
|
| private Bitmap mThumbnailBitmap;
|
|
|
| + /** Stores whether impression of this article has been tracked already. */
|
| + private boolean mImpressionTracked;
|
| +
|
| /**
|
| * Creates a SnippetArticle object that will hold the data
|
| * @param title the title of the article
|
| @@ -76,4 +80,20 @@ public class SnippetArticle implements NewTabPageListItem {
|
| public void setThumbnailBitmap(Bitmap bitmap) {
|
| mThumbnailBitmap = bitmap;
|
| }
|
| +
|
| + /** Tracks impression of this NTP snippet. */
|
| + public void trackImpression() {
|
| + // Track UMA only upon the first impression per life-time of this object.
|
| + if (mImpressionTracked) return;
|
| +
|
| + RecordHistogram.recordSparseSlowlyHistogram("NewTabPage.Snippets.CardShown", mPosition);
|
| + mImpressionTracked = true;
|
| + }
|
| +
|
| + /**
|
| + * Returns whether impression of this SnippetArticle has already been tracked.
|
| + */
|
| + public boolean impressionTracked() {
|
| + return mImpressionTracked;
|
| + }
|
| }
|
|
|