Commit 0dc7ce1e authored by megjablon's avatar megjablon Committed by Commit bot

Remove Lo-Fi snackbar code

The Lo-Fi snackbar has been replaced by the previews infobar.
Remove the snackbar and all associated code.

BUG=615566
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2263433002
Cr-Commit-Position: refs/heads/master@{#418595}
parent a2d799f3
......@@ -182,22 +182,6 @@ public class DataReductionProxySettings {
nativeSetLoFiLoadImageRequested(mNativeDataReductionProxySettings);
}
/**
* Counts the number of times the Lo-Fi snackbar has been shown.
* */
public void incrementLoFiSnackbarShown() {
nativeIncrementLoFiSnackbarShown(mNativeDataReductionProxySettings);
}
/**
* Counts the number of requests to reload the page with images from the Lo-Fi snackbar. If the
* user requests the page with images a certain number of times, then Lo-Fi is disabled for the
* session.
* */
public void incrementLoFiUserRequestsForImages() {
nativeIncrementLoFiUserRequestsForImages(mNativeDataReductionProxySettings);
}
/** Returns true if the SPDY proxy is managed by an administrator's policy. */
public boolean isDataReductionProxyManaged() {
return nativeIsDataReductionProxyManaged(mNativeDataReductionProxySettings);
......@@ -317,10 +301,6 @@ public class DataReductionProxySettings {
long nativeDataReductionProxySettingsAndroid);
private native void nativeSetLoFiLoadImageRequested(
long nativeDataReductionProxySettingsAndroid);
private native void nativeIncrementLoFiSnackbarShown(
long nativeDataReductionProxySettingsAndroid);
private native void nativeIncrementLoFiUserRequestsForImages(
long nativeDataReductionProxySettingsAndroid);
private native boolean nativeIsDataReductionProxyManaged(
long nativeDataReductionProxySettingsAndroid);
private native void nativeSetDataReductionProxyEnabled(
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.snackbar;
import android.content.Context;
import org.chromium.base.CommandLine;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.datareduction.DataReductionProxyUma;
import org.chromium.chrome.browser.tab.EmptyTabObserver;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObserver;
/**
* Each time a tab loads with Lo-Fi this controller saves that tab id and title to the stack of
* SnackbarManager. It will then let SnackbarManager show a snackbar representing the top entry
* of the stack.
* <p/>
* When the load images button is clicked, it will reload the page without Lo-Fi.
*/
public class LofiBarController implements SnackbarManager.SnackbarController {
/** Snackbar types */
private static final int LOFI_SNACKBAR = 0;
private static final int PREVIEW_SNACKBAR = 1;
private static final int DEFAULT_LO_FI_SNACKBAR_SHOW_DURATION_MS = 6000;
private final SnackbarManager mSnackbarManager;
private final Context mContext;
private final boolean mDisabled;
private Tab mTab;
private TabObserver mTabObserver;
private boolean mLoFiPopupShownForPageLoad = false;
/**
* Creates an instance of a {@link LofiBarController}.
* @param context The {@link Context} in which snackbar is shown.
* @param snackbarManager The manager that helps to show up snackbar.
*/
public LofiBarController(Context context, SnackbarManager snackbarManager) {
mSnackbarManager = snackbarManager;
mContext = context;
mDisabled = CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_LOFI_SNACKBAR);
}
/**
* Called on new page loads to indicate that a Lo-Fi snackbar has not been shown yet.
*/
public void resetLoFiPopupShownForPageLoad() {
mLoFiPopupShownForPageLoad = false;
}
/**
* If a Lo-Fi snackbar has not been shown for the current page load, creates a Lo-Fi snackbar
* for the given tab and shows it. If the tab is hidden, waits until it is visible to show the
* snackbar.
*
* @param tab The tab to show the snackbar on.
* @param isPreview Whether the snackbar should have the Lo-Fi preview message.
*/
public void maybeCreateLoFiBar(Tab tab, final boolean isPreview) {
if (mLoFiPopupShownForPageLoad) return;
mLoFiPopupShownForPageLoad = true;
if (tab.isHidden()) {
TabObserver tabObserver = new EmptyTabObserver() {
@Override
public void onShown(Tab tab) {
showLoFiBar(tab, isPreview);
tab.removeObserver(this);
}
};
tab.addObserver(tabObserver);
} else {
showLoFiBar(tab, isPreview);
}
}
/**
* @param tab The tab. Saved to reload the page.
*/
private void showLoFiBar(Tab tab, boolean isPreview) {
if (mDisabled) return;
mTab = tab;
mTabObserver = new EmptyTabObserver() {
@Override
public void onHidden(Tab tab) {
dismissLoFiBar();
}
@Override
public void onDestroyed(Tab tab) {
dismissLoFiBar();
}
@Override
public void onDidStartProvisionalLoadForFrame(Tab tab, long frameId,
long parentFrameId, boolean isMainFrame, String validatedUrl,
boolean isErrorPage, boolean isIframeSrcdoc) {
// When a provisional load is started for the main frame, the boolean storing if
// the Lo-Fi snackbar has been shown is reset. If there was a previous Lo-Fi
// snackbar showing, remove it.
if (isMainFrame) dismissLoFiBar();
}
};
tab.addObserver(mTabObserver);
String message = mContext
.getString(isPreview ? R.string.data_reduction_lo_fi_preview_snackbar_message
: R.string.data_reduction_lo_fi_snackbar_message);
String buttonText = mContext
.getString(isPreview ? R.string.data_reduction_lo_fi_preview_snackbar_action
: R.string.data_reduction_lo_fi_snackbar_action);
mSnackbarManager.showSnackbar(
Snackbar.make(message, this, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_LOFI)
.setAction(buttonText, isPreview ? PREVIEW_SNACKBAR : LOFI_SNACKBAR)
.setDuration(DEFAULT_LO_FI_SNACKBAR_SHOW_DURATION_MS));
DataReductionProxySettings.getInstance().incrementLoFiSnackbarShown();
DataReductionProxyUma.dataReductionProxyLoFiUIAction(
DataReductionProxyUma.ACTION_LOAD_IMAGES_SNACKBAR_SHOWN);
}
/**
* Dismisses the snackbar.
*/
private void dismissLoFiBar() {
removeTabObserver();
if (mSnackbarManager.isShowing()) mSnackbarManager.dismissSnackbars(this);
}
/**
* Removes the TabObserver.
*/
private void removeTabObserver() {
mTab.removeObserver(mTabObserver);
mTabObserver = null;
}
/**
* Reloads the page showing all images.
*/
@Override
public void onAction(Object actionData) {
removeTabObserver();
if (actionData == null) return;
int snackbarType = (int) actionData;
switch (snackbarType) {
case PREVIEW_SNACKBAR:
mTab.reloadDisableLoFi();
break;
case LOFI_SNACKBAR:
mTab.reloadLoFiImages();
break;
default:
assert false;
break;
}
DataReductionProxySettings.getInstance().incrementLoFiUserRequestsForImages();
DataReductionProxyUma.dataReductionProxyLoFiUIAction(
DataReductionProxyUma.ACTION_LOAD_IMAGES_SNACKBAR_CLICKED);
}
@Override
public void onDismissNoAction(Object actionData) {
removeTabObserver();
}
}
\ No newline at end of file
......@@ -32,7 +32,6 @@ import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.ObserverList.RewindableIterator;
import org.chromium.base.ThreadUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
......@@ -74,7 +73,6 @@ import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.rlz.RevenueStats;
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
import org.chromium.chrome.browser.snackbar.LofiBarController;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ssl.SecurityStateModel;
import org.chromium.chrome.browser.tab.TabUma.TabCreationState;
......@@ -382,8 +380,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
protected Handler mHandler;
private LofiBarController mLoFiBarController;
/** Whether or not the tab closing the tab can send the user back to the app that opened it. */
private boolean mIsAllowedToReturnToExternalApp;
......@@ -1031,16 +1027,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
}
}
/**
* Reloads the current page content with Lo-Fi off.
* This version ignores the cache and reloads from the network.
*/
public void reloadDisableLoFi() {
if (getWebContents() != null) {
getWebContents().getNavigationController().reloadDisableLoFi(true);
}
}
/**
* Reloads all the Lo-Fi images in this Tab's WebContents.
* This version ignores the cache and reloads from the network.
......@@ -1768,10 +1754,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
protected void didStartPageLoad(String validatedUrl, boolean showingErrorPage) {
mIsFullscreenWaitingForLoad = !DomDistillerUrlUtils.isDistilledPage(validatedUrl);
if (getLoFiBarController() != null) {
mLoFiBarController.resetLoFiPopupShownForPageLoad();
}
updateTitle();
removeSadTabIfPresent();
......@@ -2520,15 +2502,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
return getActivity().getSnackbarManager();
}
private LofiBarController getLoFiBarController() {
ThreadUtils.assertOnUiThread();
if (mLoFiBarController == null && getSnackbarManager() != null) {
mLoFiBarController =
new LofiBarController(mThemedApplicationContext, getSnackbarManager());
}
return mLoFiBarController;
}
/**
* @return The native pointer representing the native side of this {@link Tab} object.
*/
......@@ -2973,18 +2946,6 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
return DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(getUrl());
}
/**
* If a Lo-Fi snackbar has not been shown yet for this page load, a Lo-Fi snackbar is shown.
*
* @param isPreview Whether the Lo-Fi response was a preview response.
*/
@CalledByNative
public void onLoFiResponseReceived(boolean isPreview) {
if (getLoFiBarController() != null) {
mLoFiBarController.maybeCreateLoFiBar(this, isPreview);
}
}
/**
* Request that this tab receive focus. Currently, this function requests focus for the main
* View (usually a ContentView).
......
......@@ -853,18 +853,6 @@ To obtain new licenses, connect to the internet and play your downloaded content
</message>
<!-- Data Saver -->
<message name="IDS_DATA_REDUCTION_LO_FI_SNACKBAR_MESSAGE" desc="Message shown when a page is opened in low fidelity mode when there is a slow unreliable connection.">
Slow connection detected
</message>
<message name="IDS_DATA_REDUCTION_LO_FI_SNACKBAR_ACTION" desc="Button to load original full-resolution images when a page is opened in low fidelity mode when there is a slow unreliable connection.">
Load images
</message>
<message name="IDS_DATA_REDUCTION_LO_FI_PREVIEW_SNACKBAR_MESSAGE" desc="Message shown when a page is opened in preview mode when there is a slow unreliable connection.">
Slow connection
</message>
<message name="IDS_DATA_REDUCTION_LO_FI_PREVIEW_SNACKBAR_ACTION" desc="Button to load the original full-resolution website when a page is opened in preview mode.">
Load original
</message>
<message name="IDS_DATA_REDUCTION_TITLE" desc="Menu item for Data Saver, which allows users to save mobile data by compressing network traffic.">
Data Saver
</message>
......
......@@ -856,7 +856,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/signin/SigninManager.java",
"java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java",
"java/src/org/chromium/chrome/browser/snackbar/DataUseSnackbarController.java",
"java/src/org/chromium/chrome/browser/snackbar/LofiBarController.java",
"java/src/org/chromium/chrome/browser/snackbar/Snackbar.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarCollection.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java",
......
......@@ -131,10 +131,6 @@ public class NavigationPopupTest extends ChromeActivityTestCaseBase<ChromeActivi
public void reloadBypassingCache(boolean checkForRepost) {
}
@Override
public void reloadDisableLoFi(boolean checkForRepost) {
}
@Override
public void cancelPendingReload() {
}
......
......@@ -812,11 +812,6 @@ void TabAndroid::ShowOfflinePages() {
Java_Tab_showOfflinePages(env, weak_java_tab_.get(env));
}
void TabAndroid::OnLoFiResponseReceived(bool is_preview) {
JNIEnv* env = base::android::AttachCurrentThread();
Java_Tab_onLoFiResponseReceived(env, weak_java_tab_.get(env), is_preview);
}
jboolean TabAndroid::IsOfflinePage(JNIEnv* env,
const JavaParamRef<jobject>& obj) {
return offline_pages::OfflinePageUtils::GetOfflinePageFromWebContents(
......
......@@ -136,12 +136,6 @@ class TabAndroid : public CoreTabHelperDelegate,
void ShowOfflinePages();
// Notifies this TabAndroid that a Lo-Fi response has been received. The
// TabAndroid then handles showing Lo-Fi UI if this is the first Lo-Fi
// response for a page load. |is_preview| indicates whether the response was a
// Lo-Fi preview response.
void OnLoFiResponseReceived(bool is_preview);
// Overridden from CoreTabHelperDelegate:
void SwapTabContents(content::WebContents* old_contents,
content::WebContents* new_contents,
......
......@@ -85,18 +85,6 @@ jboolean DataReductionProxySettingsAndroid::IsDataReductionProxyManaged(
return Settings()->IsDataReductionProxyManaged();
}
void DataReductionProxySettingsAndroid::IncrementLoFiSnackbarShown(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
Settings()->IncrementLoFiUIShown();
}
void DataReductionProxySettingsAndroid::IncrementLoFiUserRequestsForImages(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
Settings()->IncrementLoFiUserRequestsForImages();
}
void DataReductionProxySettingsAndroid::SetDataReductionProxyEnabled(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
......
......@@ -60,17 +60,10 @@ class DataReductionProxySettingsAndroid {
jboolean IsDataReductionProxyManaged(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void IncrementLoFiSnackbarShown(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void IncrementLoFiUserRequestsForImages(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void SetDataReductionProxyEnabled(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean enabled);
jlong GetDataReductionLastUpdateTime(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
......
......@@ -163,13 +163,6 @@ void NavigationControllerAndroid::ReloadBypassingCache(
navigation_controller_->ReloadBypassingCache(check_for_repost);
}
void NavigationControllerAndroid::ReloadDisableLoFi(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
jboolean check_for_repost) {
navigation_controller_->ReloadDisableLoFi(check_for_repost);
}
void NavigationControllerAndroid::RequestRestoreLoad(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
......
......@@ -60,9 +60,6 @@ class CONTENT_EXPORT NavigationControllerAndroid {
void ReloadBypassingCache(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean check_for_repost);
void ReloadDisableLoFi(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jboolean check_for_repost);
void RequestRestoreLoad(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj);
void CancelPendingReload(JNIEnv* env,
......
......@@ -128,13 +128,6 @@ import org.chromium.content_public.common.ResourceRequestBody;
}
}
@Override
public void reloadDisableLoFi(boolean checkForRepost) {
if (mNativeNavigationControllerAndroid != 0) {
nativeReloadDisableLoFi(mNativeNavigationControllerAndroid, checkForRepost);
}
}
@Override
public void cancelPendingReload() {
if (mNativeNavigationControllerAndroid != 0) {
......@@ -315,8 +308,6 @@ import org.chromium.content_public.common.ResourceRequestBody;
boolean checkForRepost);
private native void nativeReloadBypassingCache(long nativeNavigationControllerAndroid,
boolean checkForRepost);
private native void nativeReloadDisableLoFi(long nativeNavigationControllerAndroid,
boolean checkForRepost);
private native void nativeLoadUrl(long nativeNavigationControllerAndroid, String url,
int loadUrlType, int transitionType, String referrerUrl, int referrerPolicy,
int uaOverrideOption, String extraHeaders, ResourceRequestBody postData,
......
......@@ -80,11 +80,6 @@ public interface NavigationController {
*/
public void reloadBypassingCache(boolean checkForRepost);
/**
* Reload the current page with Lo-Fi off, ignoring the contents of the cache.
*/
public void reloadDisableLoFi(boolean checkForRepost);
/**
* Cancel the pending reload.
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment