| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| 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 484b358e4ed59d437faf6ca87340d3ed211545b7..047d8962d8b1ce818166d146408af4aebe3e9582 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
| @@ -576,7 +576,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
|
| TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative");
|
|
|
| super.onNewIntentWithNative(intent);
|
| - if (isMainIntent(intent)) {
|
| + if (isMainIntentFromLauncher(intent)) {
|
| if (IntentHandler.getUrlFromIntent(intent) == null) {
|
| maybeLaunchNtpFromMainIntent(intent);
|
| }
|
| @@ -737,18 +737,25 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
|
| textBubble.show();
|
| }
|
|
|
| - private boolean isMainIntent(Intent intent) {
|
| - return intent != null && TextUtils.equals(intent.getAction(), Intent.ACTION_MAIN);
|
| + private boolean isMainIntentFromLauncher(Intent intent) {
|
| + return intent != null && TextUtils.equals(intent.getAction(), Intent.ACTION_MAIN)
|
| + && intent.hasCategory(Intent.CATEGORY_LAUNCHER);
|
| }
|
|
|
| private void logMainIntentBehavior(Intent intent) {
|
| - assert isMainIntent(intent);
|
| + assert isMainIntentFromLauncher(intent);
|
| long currentTime = System.currentTimeMillis();
|
| long lastBackgroundedTimeMs = ContextUtils.getAppSharedPreferences().getLong(
|
| LAST_BACKGROUNDED_TIME_MS_PREF, currentTime);
|
| mMainIntentMetrics.onMainIntentWithNative(currentTime - lastBackgroundedTimeMs);
|
| }
|
|
|
| + /** Access the main intent metrics for test validation. */
|
| + @VisibleForTesting
|
| + public MainIntentBehaviorMetrics getMainIntentBehaviorMetricsForTesting() {
|
| + return mMainIntentMetrics;
|
| + }
|
| +
|
| /**
|
| * Determines if the intent should trigger an NTP and launches it if applicable.
|
| *
|
| @@ -756,7 +763,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
|
| * @return Whether an NTP was triggered as a result of this intent.
|
| */
|
| private boolean maybeLaunchNtpFromMainIntent(Intent intent) {
|
| - assert isMainIntent(intent);
|
| + assert isMainIntentFromLauncher(intent);
|
|
|
| if (!mIntentHandler.isIntentUserVisible()) return false;
|
| if (FeatureUtilities.isChromeHomeEnabled()) return false;
|
| @@ -860,7 +867,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
|
| mIntentWithEffect = mIntentHandler.onNewIntent(intent);
|
| }
|
|
|
| - if (isMainIntent(intent)) {
|
| + if (isMainIntentFromLauncher(intent)) {
|
| if (IntentHandler.getUrlFromIntent(intent) == null) {
|
| assert !mIntentWithEffect
|
| : "ACTION_MAIN should not have triggered any prior action";
|
|
|