| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| index 82b0d37d7c9e25e25badfb4c090e613bfeec7918..2620311b2d42aa68c489c0deae2d59be36336d83 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| @@ -87,6 +87,7 @@ import org.chromium.chrome.browser.metrics.StartupMetrics;
|
| import org.chromium.chrome.browser.metrics.UmaSessionStats;
|
| import org.chromium.chrome.browser.metrics.UmaUtils;
|
| import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
| +import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
| import org.chromium.chrome.browser.nfc.BeamController;
|
| import org.chromium.chrome.browser.nfc.BeamProvider;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| @@ -101,6 +102,7 @@ import org.chromium.chrome.browser.printing.PrintShareActivity;
|
| import org.chromium.chrome.browser.printing.TabPrinter;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| import org.chromium.chrome.browser.share.ShareHelper;
|
| +import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController;
|
| import org.chromium.chrome.browser.snackbar.DataUseSnackbarController;
|
| import org.chromium.chrome.browser.snackbar.SnackbarManager;
|
| import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
|
| @@ -222,6 +224,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| private ReaderModeManager mReaderModeManager;
|
| private SnackbarManager mSnackbarManager;
|
| private DataUseSnackbarController mDataUseSnackbarController;
|
| + private DataReductionPromoSnackbarController mDataReductionPromoSnackbarController;
|
| private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
|
| private AppMenuHandler mAppMenuHandler;
|
| private ToolbarManager mToolbarManager;
|
| @@ -472,6 +475,19 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
| && DataUseTabUIManager.checkAndResetDataUseTrackingEnded(tab)) {
|
| mDataUseSnackbarController.showDataUseTrackingEndedBar();
|
| }
|
| +
|
| + // Only alert about data savings once the first paint has happened. It doesn't make
|
| + // sense to show a snackbar about savings when nothing has been displayed yet.
|
| + if (DataReductionProxySettings.getInstance().isSnackbarPromoAllowed(tab.getUrl())) {
|
| + if (mDataReductionPromoSnackbarController == null) {
|
| + mDataReductionPromoSnackbarController =
|
| + new DataReductionPromoSnackbarController(
|
| + getApplicationContext(), getSnackbarManager());
|
| + }
|
| + mDataReductionPromoSnackbarController.maybeShowDataReductionPromoSnackbar(
|
| + DataReductionProxySettings.getInstance()
|
| + .getTotalHttpContentLengthSaved());
|
| + }
|
| }
|
|
|
| @Override
|
|
|