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

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

Issue 2876863002: [Android] Show notification for opening new tab in background of Browser Actions (Closed)
Patch Set: Update based on David's comments. Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser; 5 package org.chromium.chrome.browser;
6 6
7 import android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.annotation.TargetApi; 8 import android.annotation.TargetApi;
9 import android.app.Activity; 9 import android.app.Activity;
10 import android.app.ActivityManager; 10 import android.app.ActivityManager;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 import org.chromium.base.TraceEvent; 44 import org.chromium.base.TraceEvent;
45 import org.chromium.base.VisibleForTesting; 45 import org.chromium.base.VisibleForTesting;
46 import org.chromium.base.library_loader.LibraryLoader; 46 import org.chromium.base.library_loader.LibraryLoader;
47 import org.chromium.base.metrics.RecordHistogram; 47 import org.chromium.base.metrics.RecordHistogram;
48 import org.chromium.base.metrics.RecordUserAction; 48 import org.chromium.base.metrics.RecordUserAction;
49 import org.chromium.chrome.R; 49 import org.chromium.chrome.R;
50 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; 50 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
51 import org.chromium.chrome.browser.IntentHandler.TabOpenType; 51 import org.chromium.chrome.browser.IntentHandler.TabOpenType;
52 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; 52 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate;
53 import org.chromium.chrome.browser.bookmarks.BookmarkUtils; 53 import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
54 import org.chromium.chrome.browser.browseractions.BrowserActionsContextMenuItemD elegate;
54 import org.chromium.chrome.browser.compositor.CompositorViewHolder; 55 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
55 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason; 56 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason;
56 import org.chromium.chrome.browser.compositor.layouts.Layout; 57 import org.chromium.chrome.browser.compositor.layouts.Layout;
57 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; 58 import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
58 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; 59 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
59 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; 60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet; 61 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet;
61 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver; 62 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver;
62 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout; 63 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
63 import org.chromium.chrome.browser.cookies.CookiesFetcher; 64 import org.chromium.chrome.browser.cookies.CookiesFetcher;
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 @Override 583 @Override
583 public void onStart() { 584 public void onStart() {
584 super.onStart(); 585 super.onStart();
585 StartupMetrics.getInstance().updateIntent(getIntent()); 586 StartupMetrics.getInstance().updateIntent(getIntent());
586 } 587 }
587 588
588 @Override 589 @Override
589 public void onStartWithNative() { 590 public void onStartWithNative() {
590 super.onStartWithNative(); 591 super.onStartWithNative();
591 // If we don't have a current tab, show the overview mode. 592 // If we don't have a current tab, show the overview mode.
592 if (getActivityTab() == null) mLayoutManager.showOverview(false); 593 if (setInitialOverviewState()) {
David Trainor- moved to gerrit 2017/05/23 06:16:43 set -> Should just set. No need to return anythin
ltian 2017/05/23 18:36:46 Done.
594 toggleOverview();
595 }
596 BrowserActionsContextMenuItemDelegate.cancelBrowserActionsNotification() ;
593 597
594 resetSavedInstanceState(); 598 resetSavedInstanceState();
595 } 599 }
596 600
597 @Override 601 @Override
598 public void onNewIntentWithNative(Intent intent) { 602 public void onNewIntentWithNative(Intent intent) {
599 try { 603 try {
600 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); 604 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative");
601 605
602 super.onNewIntentWithNative(intent); 606 super.onNewIntentWithNative(intent);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 640
637 private void handleDebugIntent(Intent intent) { 641 private void handleDebugIntent(Intent intent) {
638 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { 642 if (ACTION_CLOSE_TABS.equals(intent.getAction())) {
639 getTabModelSelector().closeAllTabs(); 643 getTabModelSelector().closeAllTabs();
640 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this, 644 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this,
641 intent.getAction())) { 645 intent.getAction())) {
642 // Handled. 646 // Handled.
643 } 647 }
644 } 648 }
645 649
650 private boolean isStartedByBrowserActions() {
651 if (BrowserActionsContextMenuItemDelegate.ACTION_BROWSER_ACTIONS_OPEN_IN _BACKGROUND.equals(
652 getIntent().getAction())) {
653 return true;
654 }
655 return false;
656 }
657
658 private boolean setInitialOverviewState() {
659 boolean isOverviewVisible = mLayoutManager.overviewVisible();
660 if (getActivityTab() == null && !isOverviewVisible) {
661 return true;
662 }
663
664 boolean fromBrowserActions = isStartedByBrowserActions();
665 boolean isSingleUrl = IntentUtils.safeGetBooleanExtra(
666 getIntent(), BrowserActionsContextMenuItemDelegate.EXTRA_IS_SING LE_URL, false);
667 if (fromBrowserActions) {
668 if (isSingleUrl && isOverviewVisible) {
669 return true;
670 } else if (!isSingleUrl && !isOverviewVisible) {
671 return true;
672 }
673 }
674 return false;
675 }
676
646 private void initializeUI() { 677 private void initializeUI() {
647 try { 678 try {
648 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); 679 TraceEvent.begin("ChromeTabbedActivity.initializeUI");
649 680
650 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( ); 681 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( );
651 if (DeviceFormFactor.isTablet()) { 682 if (DeviceFormFactor.isTablet()) {
652 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der); 683 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der);
653 } else { 684 } else {
654 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er); 685 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er);
655 } 686 }
(...skipping 1116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 null, 1803 null,
1773 intent); 1804 intent);
1774 } else { 1805 } else {
1775 return getTabCreator(false).launchUrlFromExternalApp(url, referer, h eaders, 1806 return getTabCreator(false).launchUrlFromExternalApp(url, referer, h eaders,
1776 externalAppId, forceNewTab, intent, mIntentHandlingTimeMs); 1807 externalAppId, forceNewTab, intent, mIntentHandlingTimeMs);
1777 } 1808 }
1778 } 1809 }
1779 1810
1780 private void toggleOverview() { 1811 private void toggleOverview() {
1781 Tab currentTab = getActivityTab(); 1812 Tab currentTab = getActivityTab();
1813 if (currentTab == null) {
1814 mLayoutManager.showOverview(false);
David Trainor- moved to gerrit 2017/05/23 06:16:43 Do we need this? If so, should we just return aft
ltian 2017/05/23 18:36:46 Originally, this is a separate check outside the t
1815 }
1782 ContentViewCore contentViewCore = 1816 ContentViewCore contentViewCore =
1783 currentTab != null ? currentTab.getContentViewCore() : null; 1817 currentTab != null ? currentTab.getContentViewCore() : null;
1784 1818
1785 if (!mLayoutManager.overviewVisible()) { 1819 if (!mLayoutManager.overviewVisible()) {
1786 getCompositorViewHolder().hideKeyboard(new Runnable() { 1820 getCompositorViewHolder().hideKeyboard(new Runnable() {
1787 @Override 1821 @Override
1788 public void run() { 1822 public void run() {
1789 mLayoutManager.showOverview(true); 1823 mLayoutManager.showOverview(true);
1790 } 1824 }
1791 }); 1825 });
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
2107 2141
2108 private boolean shouldCreateNewTabsUsingBottomSheet() { 2142 private boolean shouldCreateNewTabsUsingBottomSheet() {
2109 if (mShouldCreateNewTabsUsingBottomSheet == null) { 2143 if (mShouldCreateNewTabsUsingBottomSheet == null) {
2110 mShouldCreateNewTabsUsingBottomSheet = getBottomSheet() != null 2144 mShouldCreateNewTabsUsingBottomSheet = getBottomSheet() != null
2111 && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME _NTP_REDESIGN); 2145 && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME _NTP_REDESIGN);
2112 } 2146 }
2113 2147
2114 return mShouldCreateNewTabsUsingBottomSheet; 2148 return mShouldCreateNewTabsUsingBottomSheet;
2115 } 2149 }
2116 } 2150 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698