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. |