| Index: chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
| 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 8ef9508d47eeaf80119cf16d16bb3f53790e928d..6f3c656d8aef535e4974316b790628db94611624 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
|
| @@ -26,6 +26,7 @@ import org.chromium.base.Log;
|
| import org.chromium.base.VisibleForTesting;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
| +import org.chromium.chrome.browser.externalnav.IntentWithGesturesHandler;
|
| import org.chromium.chrome.browser.omnibox.AutocompleteController;
|
| import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
| import org.chromium.chrome.browser.tabmodel.document.ActivityDelegate;
|
| @@ -216,7 +217,7 @@ public class IntentHandler {
|
| */
|
| void processUrlViewIntent(String url, String referer, String headers,
|
| TabOpenType tabOpenType, String externalAppId, int tabIdToBringToFront,
|
| - Intent intent);
|
| + boolean hasUserGesture, Intent intent);
|
|
|
| void processWebSearchIntent(String query);
|
| }
|
| @@ -288,7 +289,8 @@ public class IntentHandler {
|
| public boolean onNewIntent(Context context, Intent intent) {
|
| assert intentHasValidUrl(intent);
|
| String url = getUrlFromIntent(intent);
|
| -
|
| + boolean hasUserGesture =
|
| + IntentWithGesturesHandler.getInstance().getUserGestureAndClear(intent);
|
| TabOpenType tabOpenType = getTabOpenType(intent);
|
| int tabIdToBringToFront = IntentUtils.safeGetIntExtra(
|
| intent, TabOpenType.BRING_TAB_TO_FRONT.name(), Tab.INVALID_TAB_ID);
|
| @@ -303,7 +305,7 @@ public class IntentHandler {
|
| // TODO(joth): Presumably this should check the action too.
|
| mDelegate.processUrlViewIntent(url, referrerUrl, extraHeaders, tabOpenType,
|
| IntentUtils.safeGetStringExtra(intent, Browser.EXTRA_APPLICATION_ID),
|
| - tabIdToBringToFront, intent);
|
| + tabIdToBringToFront, hasUserGesture, intent);
|
| recordExternalIntentSourceUMA(intent);
|
| return true;
|
| }
|
| @@ -511,7 +513,6 @@ public class IntentHandler {
|
| // and check it with isIntentChromeInternal.
|
| intent.putExtra(TRUSTED_APPLICATION_CODE_EXTRA,
|
| getAuthenticationToken(context.getApplicationContext()));
|
| -
|
| // It is crucial that we never leak the authentication token to other packages, because
|
| // then the other package could be used to impersonate us/do things as us. Therefore,
|
| // scope the real Intent to our package.
|
|
|