Categorize undispatched VIEW intents sent to .Main alias.
Bug: 789732
Change-Id: I660cad683bcc96772ddb5fc25f1a94ae8a988bb6
Reviewed-on: https://chromium-review.googlesource.com/803617
Commit-Queue: Dmitry Skiba <dskiba@chromium.org>
Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521224}diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
index c80d552..1c44af8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -46,6 +46,7 @@
import org.chromium.base.VisibleForTesting;
import org.chromium.base.library_loader.LibraryLoader;
import org.chromium.base.metrics.CachedMetrics.BooleanHistogramSample;
+import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
@@ -236,6 +237,10 @@
private static final BooleanHistogramSample sExplicitMainViewIntentDispatchedOnNewIntent =
new BooleanHistogramSample(
"Android.MainActivity.ExplicitMainViewIntentDispatched.OnNewIntent");
+ private static final EnumeratedHistogramSample sUndispatchedExplicitMainViewIntentSource =
+ new EnumeratedHistogramSample(
+ "Android.MainActivity.UndispatchedExplicitMainViewIntentSource",
+ IntentHandler.ExternalAppId.INDEX_BOUNDARY.ordinal());
private final ActivityStopMetrics mActivityStopMetrics;
private final MainIntentBehaviorMetrics mMainIntentMetrics;
@@ -435,6 +440,12 @@
@LaunchIntentDispatcher.Action
int action = LaunchIntentDispatcher.dispatchToCustomTabActivity(this, intent);
dispatchedHistogram.record(action != LaunchIntentDispatcher.Action.CONTINUE);
+ if (action == LaunchIntentDispatcher.Action.CONTINUE) {
+ // Intent was not dispatched, record its source.
+ IntentHandler.ExternalAppId externalId =
+ IntentHandler.determineExternalIntentSource(getPackageName(), intent);
+ sUndispatchedExplicitMainViewIntentSource.record(externalId.ordinal());
+ }
return action;
}
return LaunchIntentDispatcher.Action.CONTINUE;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
index 0f475e8..4866b55 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -204,6 +204,7 @@
/**
* Represents popular external applications that can load a page in Chrome via intent.
+ * DO NOT reorder items in this enum, because it's mirrored to UMA (as ClientAppId).
*/
public static enum ExternalAppId {
OTHER,
@@ -219,6 +220,7 @@
WHATSAPP,
GSA,
WEBAPK,
+ // Update ClientAppId in enums.xml when adding new items.
INDEX_BOUNDARY
}
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index ffb68cd..8690a3a4 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -5629,6 +5629,7 @@
<int value="9" label="Line"/>
<int value="10" label="Whatsapp"/>
<int value="11" label="Gsa"/>
+ <int value="12" label="WebAPK"/>
</enum>
<enum name="ClipboardAction">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index aac34fb..719dbdb 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -1155,6 +1155,15 @@
</summary>
</histogram>
+<histogram name="Android.MainActivity.UndispatchedExplicitMainViewIntentSource"
+ enum="ClientAppId">
+ <owner>dskiba@chromium.org</owner>
+ <summary>
+ Sources (ExternalAppId) of undispatched VIEW intents sent explicitly to
+ .Main activity alias.
+ </summary>
+</histogram>
+
<histogram name="Android.ManageSpace.ActionTaken"
enum="AndroidManageSpaceButton">
<owner>dmurph@chromium.org</owner>