| 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;
|
| + }
|
| }
|
|
|