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 c4ef6231b4b10765dedc24b43069edae62be04c7..9e8816656de283cdf913310e6bc11a4557cbc1e0 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; |
/** |
@@ -25,6 +26,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 |
@@ -79,4 +83,18 @@ 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; |
+ } |
} |