Chromium Code Reviews| OLD | NEW |
|---|---|
| 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; |
| 11 import android.app.ActivityManager.AppTask; | 11 import android.app.ActivityManager.AppTask; |
| 12 import android.app.ActivityManager.RecentTaskInfo; | 12 import android.app.ActivityManager.RecentTaskInfo; |
| 13 import android.app.NotificationManager; | |
| 13 import android.content.Context; | 14 import android.content.Context; |
| 14 import android.content.Intent; | 15 import android.content.Intent; |
| 15 import android.content.pm.PackageManager; | 16 import android.content.pm.PackageManager; |
| 16 import android.content.pm.ShortcutManager; | 17 import android.content.pm.ShortcutManager; |
| 17 import android.graphics.Color; | 18 import android.graphics.Color; |
| 18 import android.os.Build; | 19 import android.os.Build; |
| 19 import android.os.Bundle; | 20 import android.os.Bundle; |
| 20 import android.os.SystemClock; | 21 import android.os.SystemClock; |
| 21 import android.support.annotation.IntDef; | 22 import android.support.annotation.IntDef; |
| 22 import android.support.annotation.Nullable; | 23 import android.support.annotation.Nullable; |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 44 import org.chromium.base.TraceEvent; | 45 import org.chromium.base.TraceEvent; |
| 45 import org.chromium.base.VisibleForTesting; | 46 import org.chromium.base.VisibleForTesting; |
| 46 import org.chromium.base.library_loader.LibraryLoader; | 47 import org.chromium.base.library_loader.LibraryLoader; |
| 47 import org.chromium.base.metrics.RecordHistogram; | 48 import org.chromium.base.metrics.RecordHistogram; |
| 48 import org.chromium.base.metrics.RecordUserAction; | 49 import org.chromium.base.metrics.RecordUserAction; |
| 49 import org.chromium.chrome.R; | 50 import org.chromium.chrome.R; |
| 50 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; | 51 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; |
| 51 import org.chromium.chrome.browser.IntentHandler.TabOpenType; | 52 import org.chromium.chrome.browser.IntentHandler.TabOpenType; |
| 52 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; | 53 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; |
| 53 import org.chromium.chrome.browser.bookmarks.BookmarkUtils; | 54 import org.chromium.chrome.browser.bookmarks.BookmarkUtils; |
| 55 import org.chromium.chrome.browser.browseractions.BrowserActionsContextMenuItemD elegate; | |
| 54 import org.chromium.chrome.browser.compositor.CompositorViewHolder; | 56 import org.chromium.chrome.browser.compositor.CompositorViewHolder; |
| 55 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason; | 57 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason; |
| 56 import org.chromium.chrome.browser.compositor.layouts.Layout; | 58 import org.chromium.chrome.browser.compositor.layouts.Layout; |
| 57 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; | 59 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; |
| 58 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; | 60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; |
| 59 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; | 61 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; |
| 60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet; | 62 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet; |
| 61 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver; | 63 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver; |
| 62 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout; | 64 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout; |
| 63 import org.chromium.chrome.browser.cookies.CookiesFetcher; | 65 import org.chromium.chrome.browser.cookies.CookiesFetcher; |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 76 import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar; | 78 import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar; |
| 77 import org.chromium.chrome.browser.locale.LocaleManager; | 79 import org.chromium.chrome.browser.locale.LocaleManager; |
| 78 import org.chromium.chrome.browser.metrics.ActivityStopMetrics; | 80 import org.chromium.chrome.browser.metrics.ActivityStopMetrics; |
| 79 import org.chromium.chrome.browser.metrics.LaunchMetrics; | 81 import org.chromium.chrome.browser.metrics.LaunchMetrics; |
| 80 import org.chromium.chrome.browser.metrics.MainIntentBehaviorMetrics; | 82 import org.chromium.chrome.browser.metrics.MainIntentBehaviorMetrics; |
| 81 import org.chromium.chrome.browser.metrics.StartupMetrics; | 83 import org.chromium.chrome.browser.metrics.StartupMetrics; |
| 82 import org.chromium.chrome.browser.metrics.UmaUtils; | 84 import org.chromium.chrome.browser.metrics.UmaUtils; |
| 83 import org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity ; | 85 import org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity ; |
| 84 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; | 86 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; |
| 85 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; | 87 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
| 88 import org.chromium.chrome.browser.notifications.NotificationConstants; | |
| 86 import org.chromium.chrome.browser.ntp.ChromeHomeNewTabPage; | 89 import org.chromium.chrome.browser.ntp.ChromeHomeNewTabPage; |
| 87 import org.chromium.chrome.browser.ntp.NativePageAssassin; | 90 import org.chromium.chrome.browser.ntp.NativePageAssassin; |
| 88 import org.chromium.chrome.browser.ntp.NewTabPage; | 91 import org.chromium.chrome.browser.ntp.NewTabPage; |
| 89 import org.chromium.chrome.browser.ntp.NewTabPageUma; | 92 import org.chromium.chrome.browser.ntp.NewTabPageUma; |
| 90 import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; | 93 import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; |
| 91 import org.chromium.chrome.browser.omaha.OmahaBase; | 94 import org.chromium.chrome.browser.omaha.OmahaBase; |
| 92 import org.chromium.chrome.browser.omnibox.AutocompleteController; | 95 import org.chromium.chrome.browser.omnibox.AutocompleteController; |
| 93 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; | 96 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
| 94 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions; | 97 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions; |
| 95 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; | 98 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 558 @Override | 561 @Override |
| 559 public void onStart() { | 562 public void onStart() { |
| 560 super.onStart(); | 563 super.onStart(); |
| 561 StartupMetrics.getInstance().updateIntent(getIntent()); | 564 StartupMetrics.getInstance().updateIntent(getIntent()); |
| 562 } | 565 } |
| 563 | 566 |
| 564 @Override | 567 @Override |
| 565 public void onStartWithNative() { | 568 public void onStartWithNative() { |
| 566 super.onStartWithNative(); | 569 super.onStartWithNative(); |
| 567 // If we don't have a current tab, show the overview mode. | 570 // If we don't have a current tab, show the overview mode. |
| 568 if (getActivityTab() == null) mLayoutManager.showOverview(false); | 571 if (getActivityTab() == null) mLayoutManager.showOverview(false); |
|
David Trainor- moved to gerrit
2017/05/17 16:48:01
Can you add {} around this now?
ltian
2017/05/19 21:02:47
Done.
| |
| 572 else if (isStartedByBrowserActions() && shouldToggleOverview()) { | |
| 573 toggleOverview(); | |
| 574 } | |
| 575 cancelBrowserActionsNotification(); | |
|
David Trainor- moved to gerrit
2017/05/17 16:48:02
Can this hit a static method on that delegate or s
ltian
2017/05/19 21:02:47
Done.
| |
| 569 | 576 |
| 570 resetSavedInstanceState(); | 577 resetSavedInstanceState(); |
| 571 } | 578 } |
| 572 | 579 |
| 573 @Override | 580 @Override |
| 574 public void onNewIntentWithNative(Intent intent) { | 581 public void onNewIntentWithNative(Intent intent) { |
| 575 try { | 582 try { |
| 576 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); | 583 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); |
| 577 | 584 |
| 578 super.onNewIntentWithNative(intent); | 585 super.onNewIntentWithNative(intent); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 612 | 619 |
| 613 private void handleDebugIntent(Intent intent) { | 620 private void handleDebugIntent(Intent intent) { |
| 614 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { | 621 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { |
| 615 getTabModelSelector().closeAllTabs(); | 622 getTabModelSelector().closeAllTabs(); |
| 616 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this, | 623 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this, |
| 617 intent.getAction())) { | 624 intent.getAction())) { |
| 618 // Handled. | 625 // Handled. |
| 619 } | 626 } |
| 620 } | 627 } |
| 621 | 628 |
| 629 private void cancelBrowserActionsNotification() { | |
| 630 NotificationManager notificationManager = | |
| 631 (NotificationManager) getSystemService(Context.NOTIFICATION_SERV ICE); | |
| 632 notificationManager.cancel(NotificationConstants.NOTIFICATION_ID_BROWSER _ACTIONS); | |
| 633 } | |
| 634 | |
| 635 private boolean isStartedByBrowserActions() { | |
| 636 if (BrowserActionsContextMenuItemDelegate.ACTION_BROWSER_ACTIONS_OPEN_IN _BACKGROUND.equals( | |
| 637 getIntent().getAction())) { | |
| 638 return true; | |
| 639 } | |
| 640 return false; | |
| 641 } | |
| 642 | |
| 643 private boolean shouldToggleOverview() { | |
|
David Trainor- moved to gerrit
2017/05/17 16:48:01
Can we just call this setInitialOverviewState() an
ltian
2017/05/19 21:02:47
Done.
| |
| 644 boolean isSingleUrl = IntentUtils.safeGetBooleanExtra( | |
| 645 getIntent(), BrowserActionsContextMenuItemDelegate.EXTRA_IS_SING LE_URL, false); | |
| 646 if (isSingleUrl && mLayoutManager.overviewVisible()) { | |
| 647 return true; | |
| 648 } else if (!isSingleUrl && !mLayoutManager.overviewVisible()) { | |
| 649 return true; | |
| 650 } | |
| 651 return false; | |
| 652 } | |
| 653 | |
| 622 private void initializeUI() { | 654 private void initializeUI() { |
| 623 try { | 655 try { |
| 624 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); | 656 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); |
| 625 | 657 |
| 626 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( ); | 658 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( ); |
| 627 if (DeviceFormFactor.isTablet(this)) { | 659 if (DeviceFormFactor.isTablet(this)) { |
| 628 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der); | 660 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der); |
| 629 } else { | 661 } else { |
| 630 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er); | 662 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er); |
| 631 } | 663 } |
| (...skipping 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2039 if (info.id == sMergedInstanceTaskId) return true; | 2071 if (info.id == sMergedInstanceTaskId) return true; |
| 2040 } | 2072 } |
| 2041 return false; | 2073 return false; |
| 2042 } | 2074 } |
| 2043 | 2075 |
| 2044 @Override | 2076 @Override |
| 2045 public boolean supportsFullscreenActivity() { | 2077 public boolean supportsFullscreenActivity() { |
| 2046 return true; | 2078 return true; |
| 2047 } | 2079 } |
| 2048 } | 2080 } |
| OLD | NEW |