Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4015)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java

Issue 2005053002: WebAPKs: Open links which are outside of WebAPK scope in Chrome not in WebAPK (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
index 3fb4a74185d085ced85bbde53895bac9edfec3b0..2b8c941161185c1abf5aebdf9ef537c28a67fd19 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
@@ -106,24 +106,9 @@ public class InterceptNavigationDelegateImpl implements InterceptNavigationDeleg
mTab.getActivity().getLastUserInteractionTime(), getLastCommittedEntryIndex());
boolean shouldCloseTab = shouldCloseContentsOnOverrideUrlLoadingAndLaunchIntent();
- boolean isInitialTabLaunchInBackground =
- mTab.getLaunchType() == TabLaunchType.FROM_LONGPRESS_BACKGROUND && shouldCloseTab;
- // http://crbug.com/448977: If a new tab is closed by this overriding, we should open an
- // Intent in a new tab when Chrome receives it again.
- ExternalNavigationParams params = new ExternalNavigationParams.Builder(
- url, mTab.isIncognito(), navigationParams.referrer,
- navigationParams.pageTransitionType,
- navigationParams.isRedirect)
- .setTab(mTab)
- .setApplicationMustBeInForeground(true)
- .setRedirectHandler(tabRedirectHandler)
- .setOpenInNewTab(shouldCloseTab)
- .setIsBackgroundTabNavigation(mTab.isHidden() && !isInitialTabLaunchInBackground)
- .setIsMainFrame(navigationParams.isMainFrame)
- .setHasUserGesture(navigationParams.hasUserGesture)
- .setShouldCloseContentsOnOverrideUrlLoadingAndLaunchIntent(shouldCloseTab
- && navigationParams.isMainFrame)
- .build();
+ ExternalNavigationParams params = buildExternalNavigationParams(navigationParams,
+ tabRedirectHandler,
+ shouldCloseTab).build();
OverrideUrlLoadingResult result = mExternalNavHandler.shouldOverrideUrlLoading(params);
mLastOverrideUrlLoadingResult = result;
@@ -156,6 +141,31 @@ public class InterceptNavigationDelegateImpl implements InterceptNavigationDeleg
}
/**
+ * Returns ExternalNavigationParams.Builder to generate ExternalNavigationParams for
+ * ExternalNavigationHandler#shouldOverrideUrlLoading().
+ */
+ public ExternalNavigationParams.Builder buildExternalNavigationParams(
+ NavigationParams navigationParams, TabRedirectHandler tabRedirectHandler,
+ boolean shouldCloseTab) {
+ boolean isInitialTabLaunchInBackground =
+ mTab.getLaunchType() == TabLaunchType.FROM_LONGPRESS_BACKGROUND && shouldCloseTab;
+ // http://crbug.com/448977: If a new tab is closed by this overriding, we should open an
+ // Intent in a new tab when Chrome receives it again.
+ return new ExternalNavigationParams
+ .Builder(navigationParams.url, mTab.isIncognito(), navigationParams.referrer,
+ navigationParams.pageTransitionType, navigationParams.isRedirect)
+ .setTab(mTab)
+ .setApplicationMustBeInForeground(true)
+ .setRedirectHandler(tabRedirectHandler)
+ .setOpenInNewTab(shouldCloseTab)
+ .setIsBackgroundTabNavigation(mTab.isHidden() && !isInitialTabLaunchInBackground)
+ .setIsMainFrame(navigationParams.isMainFrame)
+ .setHasUserGesture(navigationParams.hasUserGesture)
+ .setShouldCloseContentsOnOverrideUrlLoadingAndLaunchIntent(
+ shouldCloseTab && navigationParams.isMainFrame);
+ }
+
+ /**
* Updates navigation history if navigation is canceled due to intent handler. We go back to the
* last committed entry index which was saved before the navigation, and remove the empty
* entries from the navigation history. See crbug.com/426679

Powered by Google App Engine
This is Rietveld 408576698