Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Unified Diff: chrome/browser/ui/webui/options/browser_options_handler.cc

Issue 421653006: Update "Predict network actions" UI setting. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options/browser_options_handler.cc
diff --git a/chrome/browser/ui/webui/options/browser_options_handler.cc b/chrome/browser/ui/webui/options/browser_options_handler.cc
index c3b1e79fb9afbe55db6e0620f2c86bff9a602481..6f7f199d8d047e9125103cc3bc4310be7791ae94 100644
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc
@@ -32,6 +32,7 @@
#include "chrome/browser/gpu/gpu_mode_manager.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/metrics/metrics_reporting_state.h"
+#include "chrome/browser/net/prediction_options.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h"
#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h"
@@ -90,6 +91,7 @@
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
#include "grit/theme_resources.h"
+#include "net/base/network_change_notifier.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/webui/web_ui_util.h"
@@ -281,6 +283,14 @@ void BrowserOptionsHandler::GetLocalizedValues(base::DictionaryValue* values) {
{ "managedUserLabel", IDS_SUPERVISED_USER_AVATAR_LABEL },
{ "networkPredictionEnabledDescription",
IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION },
+ { "networkPredictionOptionsAlways", IDS_NETWORK_PREDICTION_OPTIONS_ALWAYS },
+ { "networkPredictionOptionsCheckboxDescription",
+ IDS_NETWORK_PREDICTION_OPTIONS_CHECKBOX_DESCRIPTION },
+ { "networkPredictionOptionsDropdownDescription",
+ IDS_NETWORK_PREDICTION_OPTIONS_DROPDOWN_DESCRIPTION },
+ { "networkPredictionOptionsNever", IDS_NETWORK_PREDICTION_OPTIONS_NEVER },
+ { "networkPredictionOptionsWifiOnly",
+ IDS_NETWORK_PREDICTION_OPTIONS_WIFI_ONLY },
{ "passwordsAndAutofillGroupName",
IDS_OPTIONS_PASSWORDS_AND_FORMS_GROUP_NAME },
{ "passwordManagerEnabled", IDS_OPTIONS_PASSWORD_MANAGER_ENABLE },
@@ -831,6 +841,10 @@ void BrowserOptionsHandler::InitializeHandler() {
base::Unretained(this)));
profile_pref_registrar_.Init(prefs);
profile_pref_registrar_.Add(
+ prefs::kNetworkPredictionOptions,
+ base::Bind(&BrowserOptionsHandler::SetupNetworkPredictionControls,
+ base::Unretained(this)));
+ profile_pref_registrar_.Add(
prefs::kWebKitDefaultFontSize,
base::Bind(&BrowserOptionsHandler::SetupFontSizeSelector,
base::Unretained(this)));
@@ -894,7 +908,11 @@ void BrowserOptionsHandler::InitializePage() {
OnStateChanged();
UpdateDefaultBrowserState();
+ MigrateNetworkPredictionOptions();
+
SetupMetricsReportingSettingVisibility();
+ SetupNetworkPredictionControlsVisibility();
+ SetupNetworkPredictionControls();
SetupFontSizeSelector();
SetupPageZoomSelector();
SetupAutoOpenFileTypes();
@@ -1621,6 +1639,18 @@ void BrowserOptionsHandler::SetupAccessibilityFeatures() {
}
#endif
+void BrowserOptionsHandler::MigrateNetworkPredictionOptions() {
+ PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs();
+ if (pref_service->GetInteger(prefs::kNetworkPredictionOptions) ==
+ chrome_browser_net::NETWORK_PREDICTION_UNSET) {
+ pref_service->SetInteger(
+ prefs::kNetworkPredictionOptions,
+ pref_service->GetBoolean(prefs::kNetworkPredictionEnabled)
+ ? chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY
+ : chrome_browser_net::NETWORK_PREDICTION_NEVER);
+ }
+}
+
void BrowserOptionsHandler::SetupMetricsReportingSettingVisibility() {
#if defined(GOOGLE_CHROME_BUILD)
// Don't show the reporting setting if we are in the guest mode.
@@ -1632,6 +1662,30 @@ void BrowserOptionsHandler::SetupMetricsReportingSettingVisibility() {
#endif
}
+void BrowserOptionsHandler::SetupNetworkPredictionControlsVisibility() {
+ base::DictionaryValue dict;
+ dict.SetBoolean("onCellularNetwork",
+ net::NetworkChangeNotifier::IsConnectionCellular(
+ net::NetworkChangeNotifier::GetConnectionType()));
+ web_ui()->CallJavascriptFunction(
+ "BrowserOptions.setNetworkPredictionVisibility", dict);
+}
+
+void BrowserOptionsHandler::SetupNetworkPredictionControls() {
+ PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs();
+ const PrefService::Preference* network_prediction_options =
+ pref_service->FindPreference(prefs::kNetworkPredictionOptions);
+
+ base::DictionaryValue dict;
+ dict.SetInteger("value",
+ pref_service->GetInteger(prefs::kNetworkPredictionOptions));
+
+ dict.SetBoolean("disabled", !network_prediction_options->IsUserModifiable());
+
+ web_ui()->CallJavascriptFunction("BrowserOptions.setNetworkPredictionValue",
+ dict);
+}
+
void BrowserOptionsHandler::SetupFontSizeSelector() {
PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs();
const PrefService::Preference* default_font_size =

Powered by Google App Engine
This is Rietveld 408576698