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

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

Issue 1683533002: Herb: Show an icon allowing the user to open a tab in Chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Ripping out back behavior yet again because people can't decide things Created 4 years, 10 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/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 265f36545028202e4e0f601fb3ac3a3c38d6442d..a2e3115b730aa1c541cdfc890554a2361f649b4e 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -48,6 +48,7 @@ import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter;
import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
import org.chromium.chrome.browser.cookies.CookiesFetcher;
import org.chromium.chrome.browser.device.DeviceClassManager;
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
import org.chromium.chrome.browser.document.DocumentUma;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkUtils;
import org.chromium.chrome.browser.firstrun.FirstRunActivity;
@@ -81,6 +82,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.tabmodel.TabWindowManager;
import org.chromium.chrome.browser.toolbar.ToolbarControlContainer;
import org.chromium.chrome.browser.util.FeatureUtilities;
+import org.chromium.chrome.browser.util.IntentUtils;
import org.chromium.chrome.browser.widget.emptybackground.EmptyBackgroundViewWrapper;
import org.chromium.chrome.browser.widget.findinpage.FindToolbarManager;
import org.chromium.content.browser.ContentVideoView;
@@ -467,7 +469,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
getToolbarManager().getToolbar().setReturnButtonListener(new OnClickListener() {
@Override
public void onClick(View v) {
- if (getActivityTab() != null) closeForegroundTab();
+ if (getActivityTab() != null) handleBackPressedWithoutBackStack();
}
});
@@ -695,7 +697,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
break;
case OPEN_NEW_TAB:
Tab newTab = launchIntent(url, referer, headers, externalAppId, true, intent);
- newTab.setIsAllowedToReturnToExternalApp(true);
+ newTab.setIsAllowedToReturnToExternalApp(IntentUtils.safeGetBooleanExtra(intent,
+ ChromeLauncherActivity.EXTRA_IS_ALLOWED_TO_RETURN_TO_PARENT, true));
RecordUserAction.record("MobileReceivedExternalIntent");
break;
case OPEN_NEW_INCOGNITO_TAB:
@@ -1012,7 +1015,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
if (!getToolbarManager().back()) {
Log.i(TAG, "handleBackPressed() - no back stack");
- if (closeForegroundTab()) return true;
+ if (handleBackPressedWithoutBackStack()) return true;
} else {
Log.i(TAG, "handleBackPressed() - moving back in navigation");
RecordUserAction.record("SystemBackForNavigation");
@@ -1024,11 +1027,13 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
}
/**
- * Closes the foreground tab, potentially sending the user back to the app that launched Chrome.
+ * Additional logic for handling situations where a user hits a 'back' or 'return' button.
+ *
+ * May result in closing the foreground tab or returning to the app that opened Chrome.
*
* @return Whether the tab closed was opened for a help page.
*/
- private boolean closeForegroundTab() {
+ private boolean handleBackPressedWithoutBackStack() {
final Tab currentTab = getActivityTab();
final TabLaunchType type = currentTab.getLaunchType();
final int parentId = currentTab.getParentId();
@@ -1039,7 +1044,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
// actual redirected URL is a different system language based help url.
if (type == TabLaunchType.FROM_MENU_OR_OVERVIEW && helpUrl) {
getCurrentTabModel().closeTab(currentTab);
- Log.i(TAG, "closeForegroundTab() - help url");
+ Log.i(TAG, "handleBackPressedWithoutBackStack() - help url");
return true;
}
@@ -1060,7 +1065,7 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode
final boolean minimizeApp = !shouldCloseTab || currentTab.isCreatedForExternalApp();
if (minimizeApp) {
- Log.i(TAG, "closeForegroundTab() - moveTaskToBack");
+ Log.i(TAG, "handleBackPressedWithoutBackStack() - moveTaskToBack");
moveTaskToBack(true);
if (shouldCloseTab) {
// In the case of closing a tab upon minimalization, don't allow the close

Powered by Google App Engine
This is Rietveld 408576698