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 |