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 39d7efbd2ad352ac4cf08fefb778311d62ae803b..8f79710f5053a6f968ea2ba389953852b3df36c9 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
@@ -10,6 +10,7 @@ import android.app.Activity; |
import android.app.ActivityManager; |
import android.app.ActivityManager.AppTask; |
import android.app.ActivityManager.RecentTaskInfo; |
+import android.app.NotificationManager; |
import android.content.Context; |
import android.content.Intent; |
import android.content.pm.PackageManager; |
@@ -51,6 +52,7 @@ import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; |
import org.chromium.chrome.browser.IntentHandler.TabOpenType; |
import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; |
import org.chromium.chrome.browser.bookmarks.BookmarkUtils; |
+import org.chromium.chrome.browser.browseractions.BrowserActionsContextMenuItemDelegate; |
import org.chromium.chrome.browser.compositor.CompositorViewHolder; |
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason; |
import org.chromium.chrome.browser.compositor.layouts.Layout; |
@@ -83,6 +85,7 @@ import org.chromium.chrome.browser.metrics.UmaUtils; |
import org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity; |
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; |
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
+import org.chromium.chrome.browser.notifications.NotificationConstants; |
import org.chromium.chrome.browser.ntp.ChromeHomeNewTabPage; |
import org.chromium.chrome.browser.ntp.NativePageAssassin; |
import org.chromium.chrome.browser.ntp.NewTabPage; |
@@ -566,6 +569,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode |
super.onStartWithNative(); |
// If we don't have a current tab, show the overview mode. |
if (getActivityTab() == null) mLayoutManager.showOverview(false); |
+ else if (isStartedByBrowserActions() && shouldToggleOverview()) { |
+ toggleOverview(); |
+ } |
+ cancelBrowserActionsNotification(); |
resetSavedInstanceState(); |
} |
@@ -619,6 +626,31 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode |
} |
} |
+ private void cancelBrowserActionsNotification() { |
+ NotificationManager notificationManager = |
+ (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); |
+ notificationManager.cancel(NotificationConstants.NOTIFICATION_ID_BROWSER_ACTIONS); |
+ } |
+ |
+ private boolean isStartedByBrowserActions() { |
+ if (BrowserActionsContextMenuItemDelegate.ACTION_BROWSER_ACTIONS_OPEN_IN_BACKGROUND.equals( |
+ getIntent().getAction())) { |
+ return true; |
+ } |
+ return false; |
+ } |
+ |
+ private boolean shouldToggleOverview() { |
+ boolean isSingleUrl = IntentUtils.safeGetBooleanExtra( |
+ getIntent(), BrowserActionsContextMenuItemDelegate.EXTRA_IS_SINGLE_URL, false); |
+ if (isSingleUrl && mLayoutManager.overviewVisible()) { |
+ return true; |
+ } else if (!isSingleUrl && !mLayoutManager.overviewVisible()) { |
+ return true; |
+ } |
+ return false; |
+ } |
+ |
private void initializeUI() { |
try { |
TraceEvent.begin("ChromeTabbedActivity.initializeUI"); |