Index: chrome/android/java/src/org/chromium/chrome/browser/AppIndexingUtil.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppIndexingUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/AppIndexingUtil.java |
index f0398fc37324fec487b7c25f2113939fbe54ab3f..2f9fbc51b1d18da6280bce65f2e1af12a3e5e65b 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/AppIndexingUtil.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AppIndexingUtil.java |
@@ -11,6 +11,7 @@ import android.webkit.URLUtil; |
import org.chromium.base.Callback; |
import org.chromium.base.SysUtils; |
import org.chromium.base.VisibleForTesting; |
+import org.chromium.base.metrics.RecordHistogram; |
import org.chromium.blink.mojom.document_metadata.CopylessPaste; |
import org.chromium.blink.mojom.document_metadata.WebPage; |
import org.chromium.chrome.browser.historyreport.AppIndexingReporter; |
@@ -32,6 +33,13 @@ public class AppIndexingUtil { |
private static Callback<WebPage> sCallbackForTesting; |
+ // Constants used to log UMA "enum" histograms about the cache state. |
+ // The values should not be changed or reused, and CACHE_HISTOGRAM_BOUNDARY should be the last. |
+ private static final int CACHE_HIT_WITH_ENTITY = 0; |
+ private static final int CACHE_HIT_WITHOUT_ENTITY = 1; |
+ private static final int CACHE_MISS = 2; |
+ private static final int CACHE_HISTOGRAM_BOUNDARY = 3; |
+ |
/** |
* Extracts entities from document metadata and reports it to on-device App Indexing. |
* This call can cache entities from recently parsed webpages, in which case, only the url and |
@@ -52,11 +60,18 @@ public class AppIndexingUtil { |
if (wasPageVisitedRecently(url)) { |
if (lastPageVisitContainedEntity(url)) { |
// Condition 1 |
+ RecordHistogram.recordEnumeratedHistogram( |
+ "CopylessPaste.CacheHit", CACHE_HIT_WITH_ENTITY, CACHE_HISTOGRAM_BOUNDARY); |
getAppIndexingReporter().reportWebPageView(url, tab.getTitle()); |
+ return; |
} |
// Condition 2 |
+ RecordHistogram.recordEnumeratedHistogram( |
+ "CopylessPaste.CacheHit", CACHE_HIT_WITHOUT_ENTITY, CACHE_HISTOGRAM_BOUNDARY); |
} else { |
// Condition 3 |
+ RecordHistogram.recordEnumeratedHistogram( |
+ "CopylessPaste.CacheHit", CACHE_MISS, CACHE_HISTOGRAM_BOUNDARY); |
CopylessPaste copylessPaste = getCopylessPasteInterface(tab); |
if (copylessPaste == null) { |
return; |