| 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.SearchManager; | 10 import android.app.SearchManager; |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 import org.chromium.chrome.browser.gsa.GSAServiceClient; | 80 import org.chromium.chrome.browser.gsa.GSAServiceClient; |
| 81 import org.chromium.chrome.browser.gsa.GSAState; | 81 import org.chromium.chrome.browser.gsa.GSAState; |
| 82 import org.chromium.chrome.browser.help.HelpAndFeedback; | 82 import org.chromium.chrome.browser.help.HelpAndFeedback; |
| 83 import org.chromium.chrome.browser.infobar.InfoBarContainer; | 83 import org.chromium.chrome.browser.infobar.InfoBarContainer; |
| 84 import org.chromium.chrome.browser.init.AsyncInitializationActivity; | 84 import org.chromium.chrome.browser.init.AsyncInitializationActivity; |
| 85 import org.chromium.chrome.browser.metrics.LaunchMetrics; | 85 import org.chromium.chrome.browser.metrics.LaunchMetrics; |
| 86 import org.chromium.chrome.browser.metrics.StartupMetrics; | 86 import org.chromium.chrome.browser.metrics.StartupMetrics; |
| 87 import org.chromium.chrome.browser.metrics.UmaSessionStats; | 87 import org.chromium.chrome.browser.metrics.UmaSessionStats; |
| 88 import org.chromium.chrome.browser.metrics.UmaUtils; | 88 import org.chromium.chrome.browser.metrics.UmaUtils; |
| 89 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; | 89 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; |
| 90 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; |
| 90 import org.chromium.chrome.browser.nfc.BeamController; | 91 import org.chromium.chrome.browser.nfc.BeamController; |
| 91 import org.chromium.chrome.browser.nfc.BeamProvider; | 92 import org.chromium.chrome.browser.nfc.BeamProvider; |
| 92 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 93 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
| 93 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; | 94 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
| 94 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper; | 95 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper; |
| 95 import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; | 96 import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; |
| 96 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
tions; | 97 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
tions; |
| 97 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; | 98 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
| 98 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 99 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| 99 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 100 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
| 100 import org.chromium.chrome.browser.printing.PrintShareActivity; | 101 import org.chromium.chrome.browser.printing.PrintShareActivity; |
| 101 import org.chromium.chrome.browser.printing.TabPrinter; | 102 import org.chromium.chrome.browser.printing.TabPrinter; |
| 102 import org.chromium.chrome.browser.profiles.Profile; | 103 import org.chromium.chrome.browser.profiles.Profile; |
| 103 import org.chromium.chrome.browser.share.ShareHelper; | 104 import org.chromium.chrome.browser.share.ShareHelper; |
| 105 import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController
; |
| 104 import org.chromium.chrome.browser.snackbar.DataUseSnackbarController; | 106 import org.chromium.chrome.browser.snackbar.DataUseSnackbarController; |
| 105 import org.chromium.chrome.browser.snackbar.SnackbarManager; | 107 import org.chromium.chrome.browser.snackbar.SnackbarManager; |
| 106 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; | 108 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; |
| 107 import org.chromium.chrome.browser.sync.ProfileSyncService; | 109 import org.chromium.chrome.browser.sync.ProfileSyncService; |
| 108 import org.chromium.chrome.browser.sync.SyncController; | 110 import org.chromium.chrome.browser.sync.SyncController; |
| 109 import org.chromium.chrome.browser.tab.Tab; | 111 import org.chromium.chrome.browser.tab.Tab; |
| 110 import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager; | 112 import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager; |
| 111 import org.chromium.chrome.browser.tabmodel.EmptyTabModel; | 113 import org.chromium.chrome.browser.tabmodel.EmptyTabModel; |
| 112 import org.chromium.chrome.browser.tabmodel.TabCreatorManager; | 114 import org.chromium.chrome.browser.tabmodel.TabCreatorManager; |
| 113 import org.chromium.chrome.browser.tabmodel.TabModel; | 115 import org.chromium.chrome.browser.tabmodel.TabModel; |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListene
r; | 217 private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListene
r; |
| 216 | 218 |
| 217 private ActivityWindowAndroid mWindowAndroid; | 219 private ActivityWindowAndroid mWindowAndroid; |
| 218 private ChromeFullscreenManager mFullscreenManager; | 220 private ChromeFullscreenManager mFullscreenManager; |
| 219 private CompositorViewHolder mCompositorViewHolder; | 221 private CompositorViewHolder mCompositorViewHolder; |
| 220 private InsetObserverView mInsetObserverView; | 222 private InsetObserverView mInsetObserverView; |
| 221 private ContextualSearchManager mContextualSearchManager; | 223 private ContextualSearchManager mContextualSearchManager; |
| 222 private ReaderModeManager mReaderModeManager; | 224 private ReaderModeManager mReaderModeManager; |
| 223 private SnackbarManager mSnackbarManager; | 225 private SnackbarManager mSnackbarManager; |
| 224 private DataUseSnackbarController mDataUseSnackbarController; | 226 private DataUseSnackbarController mDataUseSnackbarController; |
| 227 private DataReductionPromoSnackbarController mDataReductionPromoSnackbarCont
roller; |
| 225 private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate; | 228 private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate; |
| 226 private AppMenuHandler mAppMenuHandler; | 229 private AppMenuHandler mAppMenuHandler; |
| 227 private ToolbarManager mToolbarManager; | 230 private ToolbarManager mToolbarManager; |
| 228 | 231 |
| 229 // Time in ms that it took took us to inflate the initial layout | 232 // Time in ms that it took took us to inflate the initial layout |
| 230 private long mInflateInitialLayoutDurationMs; | 233 private long mInflateInitialLayoutDurationMs; |
| 231 | 234 |
| 232 private int mScreenWidthDp; | 235 private int mScreenWidthDp; |
| 233 private Runnable mRecordMultiWindowModeScreenWidthRunnable; | 236 private Runnable mRecordMultiWindowModeScreenWidthRunnable; |
| 234 | 237 |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 public void didFirstVisuallyNonEmptyPaint(Tab tab) { | 468 public void didFirstVisuallyNonEmptyPaint(Tab tab) { |
| 466 if (DataUseTabUIManager.checkAndResetDataUseTrackingStarted(tab) | 469 if (DataUseTabUIManager.checkAndResetDataUseTrackingStarted(tab) |
| 467 && DataUseTabUIManager.shouldShowDataUseStartedUI()) { | 470 && DataUseTabUIManager.shouldShowDataUseStartedUI()) { |
| 468 mDataUseSnackbarController.showDataUseTrackingStartedBar(); | 471 mDataUseSnackbarController.showDataUseTrackingStartedBar(); |
| 469 } else if (DataUseTabUIManager.shouldShowDataUseEndedUI() | 472 } else if (DataUseTabUIManager.shouldShowDataUseEndedUI() |
| 470 && DataUseTabUIManager.shouldShowDataUseEndedSnackbar( | 473 && DataUseTabUIManager.shouldShowDataUseEndedSnackbar( |
| 471 getApplicationContext()) | 474 getApplicationContext()) |
| 472 && DataUseTabUIManager.checkAndResetDataUseTrackingEnded
(tab)) { | 475 && DataUseTabUIManager.checkAndResetDataUseTrackingEnded
(tab)) { |
| 473 mDataUseSnackbarController.showDataUseTrackingEndedBar(); | 476 mDataUseSnackbarController.showDataUseTrackingEndedBar(); |
| 474 } | 477 } |
| 478 |
| 479 // Only alert about data savings once the first paint has happen
ed. It doesn't make |
| 480 // sense to show a snackbar about savings when nothing has been
displayed yet. |
| 481 if (DataReductionProxySettings.getInstance().isSnackbarPromoAllo
wed(tab.getUrl())) { |
| 482 if (mDataReductionPromoSnackbarController == null) { |
| 483 mDataReductionPromoSnackbarController = |
| 484 new DataReductionPromoSnackbarController( |
| 485 getApplicationContext(), getSnackbarMana
ger()); |
| 486 } |
| 487 mDataReductionPromoSnackbarController.maybeShowDataReduction
PromoSnackbar( |
| 488 DataReductionProxySettings.getInstance() |
| 489 .getTotalHttpContentLengthSaved()); |
| 490 } |
| 475 } | 491 } |
| 476 | 492 |
| 477 @Override | 493 @Override |
| 478 public void onShown(Tab tab) { | 494 public void onShown(Tab tab) { |
| 479 setStatusBarColor(tab, tab.getThemeColor()); | 495 setStatusBarColor(tab, tab.getThemeColor()); |
| 480 } | 496 } |
| 481 | 497 |
| 482 @Override | 498 @Override |
| 483 public void onHidden(Tab tab) { | 499 public void onHidden(Tab tab) { |
| 484 mDataUseSnackbarController.dismissDataUseBar(); | 500 mDataUseSnackbarController.dismissDataUseBar(); |
| (...skipping 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1895 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", | 1911 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", |
| 1896 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); | 1912 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); |
| 1897 | 1913 |
| 1898 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { | 1914 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { |
| 1899 RecordHistogram.recordLinearCountHistogram( | 1915 RecordHistogram.recordLinearCountHistogram( |
| 1900 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp,
1, | 1916 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp,
1, |
| 1901 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); | 1917 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); |
| 1902 } | 1918 } |
| 1903 } | 1919 } |
| 1904 } | 1920 } |
| OLD | NEW |