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

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

Issue 2630583002: Add setting to isolate zoom changes by default. (Closed)
Patch Set: Add more tests. Created 3 years, 11 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 3490fe533c87e63d932622dfeca69f3d4ffcb867..c6250c95edb2b741260588133355b98144eab440 100644
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc
@@ -284,6 +284,8 @@ void BrowserOptionsHandler::GetLocalizedValues(base::DictionaryValue* values) {
{ "defaultFontSizeLabel", IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL },
{ "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES },
{ "defaultZoomFactorLabel", IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL },
+ { "defaultZoomScopeLabel",
+ IDS_OPTIONS_DEFAULT_ZOOM_SCOPE_LABEL },
{ "disableWebServices", IDS_OPTIONS_DISABLE_WEB_SERVICES },
{ "doNotTrack", IDS_OPTIONS_ENABLE_DO_NOT_TRACK },
{ "doNotTrackConfirmDisable",
@@ -836,6 +838,10 @@ void BrowserOptionsHandler::RegisterMessages() {
"defaultZoomFactorAction",
base::Bind(&BrowserOptionsHandler::HandleDefaultZoomFactor,
base::Unretained(this)));
+ web_ui()->RegisterMessageCallback(
+ "defaultZoomScopeAction",
+ base::Bind(&BrowserOptionsHandler::HandleDefaultZoomScope,
+ base::Unretained(this)));
#if defined(OS_WIN) || defined(OS_MACOSX)
web_ui()->RegisterMessageCallback(
"showManageSSLCertificates",
@@ -970,9 +976,10 @@ void BrowserOptionsHandler::InitializeHandler() {
Profile* profile = Profile::FromWebUI(web_ui());
PrefService* prefs = profile->GetPrefs();
ChromeZoomLevelPrefs* zoom_level_prefs = profile->GetZoomLevelPrefs();
- // Only regular profiles are able to edit default zoom level, or delete per-
- // host zoom levels, via the settings menu. We only require a zoom_level_prefs
- // if the profile is able to change these preference types.
+ // Only regular profiles are able to edit default zoom level, default zoom
+ // scope, or delete per-host zoom levels, via the settings menu. We only
+ // require a zoom_level_prefs if the profile is able to change these
+ // preference types.
DCHECK(zoom_level_prefs ||
profile->GetProfileType() != Profile::REGULAR_PROFILE);
if (zoom_level_prefs) {
@@ -980,6 +987,10 @@ void BrowserOptionsHandler::InitializeHandler() {
zoom_level_prefs->RegisterDefaultZoomLevelCallback(
base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector,
base::Unretained(this)));
+ default_zoom_scope_subscription_ =
+ zoom_level_prefs->RegisterDefaultZoomScopeCallback(
+ base::Bind(&BrowserOptionsHandler::SetupZoomScopeCheckbox,
+ base::Unretained(this)));
}
g_browser_process->policy_service()->AddObserver(
@@ -1132,6 +1143,7 @@ void BrowserOptionsHandler::InitializePage() {
SetupNetworkPredictionControl();
SetupFontSizeSelector();
SetupPageZoomSelector();
+ SetupZoomScopeCheckbox();
SetupAutoOpenFileTypes();
SetupProxySettingsSection();
SetupManagingSupervisedUsers();
@@ -1727,6 +1739,18 @@ void BrowserOptionsHandler::HandleDefaultZoomFactor(
}
}
+void BrowserOptionsHandler::HandleDefaultZoomScope(
+ const base::ListValue* args) {
+ // TODO Shall we get UMA data about the usage of this option?
+ bool checked;
+ if (args->GetBoolean(0, &checked)) {
+ ChromeZoomLevelPrefs* zoom_level_prefs =
+ Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
+ DCHECK(zoom_level_prefs);
+ zoom_level_prefs->SetIsOriginScopePref(checked);
+ }
+}
+
void BrowserOptionsHandler::HandleRestartBrowser(const base::ListValue* args) {
chrome::AttemptRestart();
}
@@ -2134,6 +2158,16 @@ void BrowserOptionsHandler::SetupPageZoomSelector() {
zoom_factors_value);
}
+void BrowserOptionsHandler::SetupZoomScopeCheckbox() {
+ ChromeZoomLevelPrefs* zoom_level_prefs =
+ Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
+
+ base::FundamentalValue default_per_origin(
+ zoom_level_prefs ? zoom_level_prefs->GetIsOriginScopePref() : true);
+ web_ui()->CallJavascriptFunctionUnsafe(
+ "BrowserOptions.setupZoomScopeCheckbox", default_per_origin);
+}
+
void BrowserOptionsHandler::SetupAutoOpenFileTypes() {
// Set the hidden state for the AutoOpenFileTypesResetToDefault button.
// We show the button if the user has any auto-open file types registered.

Powered by Google App Engine
This is Rietveld 408576698