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

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

Issue 2630583002: Add setting to isolate zoom changes by default. (Closed)
Patch Set: Use code review comments for questions instead of TODOs. Created 3 years, 10 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 4a637736893126e8d2f75c44bd8777d629682df5..dc84154783e4b9e60d21eadbba159e0ae66d7f92 100644
--- a/chrome/browser/ui/webui/options/browser_options_handler.cc
+++ b/chrome/browser/ui/webui/options/browser_options_handler.cc
@@ -285,6 +285,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",
@@ -851,6 +853,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",
@@ -985,9 +991,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) {
@@ -995,6 +1002,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(
@@ -1147,6 +1158,7 @@ void BrowserOptionsHandler::InitializePage() {
SetupNetworkPredictionControl();
SetupFontSizeSelector();
SetupPageZoomSelector();
+ SetupZoomScopeCheckbox();
SetupAutoOpenFileTypes();
SetupProxySettingsSection();
SetupManagingSupervisedUsers();
@@ -1742,6 +1754,17 @@ void BrowserOptionsHandler::HandleDefaultZoomFactor(
}
}
+void BrowserOptionsHandler::HandleDefaultZoomScope(
+ const base::ListValue* args) {
+ bool checked;
+ if (args->GetBoolean(0, &checked)) {
+ ChromeZoomLevelPrefs* zoom_level_prefs =
+ Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
+ DCHECK(zoom_level_prefs);
+ zoom_level_prefs->SetZoomScopeIsPerOriginPref(checked);
+ }
+}
+
void BrowserOptionsHandler::HandleRestartBrowser(const base::ListValue* args) {
chrome::AttemptRestart();
}
@@ -2149,6 +2172,18 @@ void BrowserOptionsHandler::SetupPageZoomSelector() {
zoom_factors_value);
}
+void BrowserOptionsHandler::SetupZoomScopeCheckbox() {
+ ChromeZoomLevelPrefs* zoom_level_prefs =
+ Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
+ base::FundamentalValue is_per_origin(
+ zoom_level_prefs
+ ? zoom_level_prefs->GetZoomScopeIsPerOriginPref()
+ : ChromeZoomLevelPrefs::kZoomScopeSettingDefault);
+
+ web_ui()->CallJavascriptFunctionUnsafe(
+ "BrowserOptions.setupZoomScopeCheckbox", is_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