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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/options/browser_options_handler.h" 5 #include "chrome/browser/ui/webui/options/browser_options_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE }, 278 { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE },
279 { "childLabel", IDS_PROFILES_LIST_CHILD_LABEL }, 279 { "childLabel", IDS_PROFILES_LIST_CHILD_LABEL },
280 { "currentUserOnly", IDS_OPTIONS_CURRENT_USER_ONLY }, 280 { "currentUserOnly", IDS_OPTIONS_CURRENT_USER_ONLY },
281 { "customizeSync", IDS_OPTIONS_CUSTOMIZE_SYNC_BUTTON_LABEL }, 281 { "customizeSync", IDS_OPTIONS_CUSTOMIZE_SYNC_BUTTON_LABEL },
282 { "defaultBrowserUnknown", 282 { "defaultBrowserUnknown",
283 IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, IDS_PRODUCT_NAME }, 283 IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, IDS_PRODUCT_NAME },
284 { "defaultBrowserUseAsDefault", IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT }, 284 { "defaultBrowserUseAsDefault", IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT },
285 { "defaultFontSizeLabel", IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL }, 285 { "defaultFontSizeLabel", IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL },
286 { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES }, 286 { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES },
287 { "defaultZoomFactorLabel", IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL }, 287 { "defaultZoomFactorLabel", IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL },
288 { "defaultZoomScopeLabel",
289 IDS_OPTIONS_DEFAULT_ZOOM_SCOPE_LABEL },
288 { "disableWebServices", IDS_OPTIONS_DISABLE_WEB_SERVICES }, 290 { "disableWebServices", IDS_OPTIONS_DISABLE_WEB_SERVICES },
289 { "doNotTrack", IDS_OPTIONS_ENABLE_DO_NOT_TRACK }, 291 { "doNotTrack", IDS_OPTIONS_ENABLE_DO_NOT_TRACK },
290 { "doNotTrackConfirmDisable", 292 { "doNotTrackConfirmDisable",
291 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_DISABLE }, 293 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_DISABLE },
292 { "doNotTrackConfirmEnable", 294 { "doNotTrackConfirmEnable",
293 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_ENABLE }, 295 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_ENABLE },
294 { "doNotTrackConfirmMessage", IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TEXT }, 296 { "doNotTrackConfirmMessage", IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TEXT },
295 { "downloadLocationAskForSaveLocation", 297 { "downloadLocationAskForSaveLocation",
296 IDS_OPTIONS_DOWNLOADLOCATION_ASKFORSAVELOCATION }, 298 IDS_OPTIONS_DOWNLOADLOCATION_ASKFORSAVELOCATION },
297 { "downloadLocationBrowseTitle", 299 { "downloadLocationBrowseTitle",
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 base::Bind(&BrowserOptionsHandler::HandleAutoOpenButton, 846 base::Bind(&BrowserOptionsHandler::HandleAutoOpenButton,
845 base::Unretained(this))); 847 base::Unretained(this)));
846 web_ui()->RegisterMessageCallback( 848 web_ui()->RegisterMessageCallback(
847 "defaultFontSizeAction", 849 "defaultFontSizeAction",
848 base::Bind(&BrowserOptionsHandler::HandleDefaultFontSize, 850 base::Bind(&BrowserOptionsHandler::HandleDefaultFontSize,
849 base::Unretained(this))); 851 base::Unretained(this)));
850 web_ui()->RegisterMessageCallback( 852 web_ui()->RegisterMessageCallback(
851 "defaultZoomFactorAction", 853 "defaultZoomFactorAction",
852 base::Bind(&BrowserOptionsHandler::HandleDefaultZoomFactor, 854 base::Bind(&BrowserOptionsHandler::HandleDefaultZoomFactor,
853 base::Unretained(this))); 855 base::Unretained(this)));
856 web_ui()->RegisterMessageCallback(
857 "defaultZoomScopeAction",
858 base::Bind(&BrowserOptionsHandler::HandleDefaultZoomScope,
859 base::Unretained(this)));
854 #if defined(OS_WIN) || defined(OS_MACOSX) 860 #if defined(OS_WIN) || defined(OS_MACOSX)
855 web_ui()->RegisterMessageCallback( 861 web_ui()->RegisterMessageCallback(
856 "showManageSSLCertificates", 862 "showManageSSLCertificates",
857 base::Bind(&BrowserOptionsHandler::ShowManageSSLCertificates, 863 base::Bind(&BrowserOptionsHandler::ShowManageSSLCertificates,
858 base::Unretained(this))); 864 base::Unretained(this)));
859 #endif 865 #endif
860 #if defined(OS_CHROMEOS) 866 #if defined(OS_CHROMEOS)
861 web_ui()->RegisterMessageCallback( 867 web_ui()->RegisterMessageCallback(
862 "openWallpaperManager", 868 "openWallpaperManager",
863 base::Bind(&BrowserOptionsHandler::HandleOpenWallpaperManager, 869 base::Bind(&BrowserOptionsHandler::HandleOpenWallpaperManager,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
978 } 984 }
979 985
980 void BrowserOptionsHandler::PageLoadStarted() { 986 void BrowserOptionsHandler::PageLoadStarted() {
981 page_initialized_ = false; 987 page_initialized_ = false;
982 } 988 }
983 989
984 void BrowserOptionsHandler::InitializeHandler() { 990 void BrowserOptionsHandler::InitializeHandler() {
985 Profile* profile = Profile::FromWebUI(web_ui()); 991 Profile* profile = Profile::FromWebUI(web_ui());
986 PrefService* prefs = profile->GetPrefs(); 992 PrefService* prefs = profile->GetPrefs();
987 ChromeZoomLevelPrefs* zoom_level_prefs = profile->GetZoomLevelPrefs(); 993 ChromeZoomLevelPrefs* zoom_level_prefs = profile->GetZoomLevelPrefs();
988 // Only regular profiles are able to edit default zoom level, or delete per- 994 // Only regular profiles are able to edit default zoom level, default zoom
989 // host zoom levels, via the settings menu. We only require a zoom_level_prefs 995 // scope, or delete per-host zoom levels, via the settings menu. We only
990 // if the profile is able to change these preference types. 996 // require a zoom_level_prefs if the profile is able to change these
997 // preference types.
991 DCHECK(zoom_level_prefs || 998 DCHECK(zoom_level_prefs ||
992 profile->GetProfileType() != Profile::REGULAR_PROFILE); 999 profile->GetProfileType() != Profile::REGULAR_PROFILE);
993 if (zoom_level_prefs) { 1000 if (zoom_level_prefs) {
994 default_zoom_level_subscription_ = 1001 default_zoom_level_subscription_ =
995 zoom_level_prefs->RegisterDefaultZoomLevelCallback( 1002 zoom_level_prefs->RegisterDefaultZoomLevelCallback(
996 base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector, 1003 base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector,
997 base::Unretained(this))); 1004 base::Unretained(this)));
1005 default_zoom_scope_subscription_ =
1006 zoom_level_prefs->RegisterDefaultZoomScopeCallback(
1007 base::Bind(&BrowserOptionsHandler::SetupZoomScopeCheckbox,
1008 base::Unretained(this)));
998 } 1009 }
999 1010
1000 g_browser_process->policy_service()->AddObserver( 1011 g_browser_process->policy_service()->AddObserver(
1001 policy::POLICY_DOMAIN_CHROME, this); 1012 policy::POLICY_DOMAIN_CHROME, this);
1002 1013
1003 g_browser_process->profile_manager()-> 1014 g_browser_process->profile_manager()->
1004 GetProfileAttributesStorage().AddObserver(this); 1015 GetProfileAttributesStorage().AddObserver(this);
1005 1016
1006 browser_sync::ProfileSyncService* sync_service( 1017 browser_sync::ProfileSyncService* sync_service(
1007 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile)); 1018 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile));
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 UpdateSyncState(); 1151 UpdateSyncState();
1141 #if !defined(OS_CHROMEOS) 1152 #if !defined(OS_CHROMEOS)
1142 UpdateDefaultBrowserState(); 1153 UpdateDefaultBrowserState();
1143 #endif 1154 #endif
1144 1155
1145 SetupMetricsReportingSettingVisibility(); 1156 SetupMetricsReportingSettingVisibility();
1146 SetupMetricsReportingCheckbox(); 1157 SetupMetricsReportingCheckbox();
1147 SetupNetworkPredictionControl(); 1158 SetupNetworkPredictionControl();
1148 SetupFontSizeSelector(); 1159 SetupFontSizeSelector();
1149 SetupPageZoomSelector(); 1160 SetupPageZoomSelector();
1161 SetupZoomScopeCheckbox();
1150 SetupAutoOpenFileTypes(); 1162 SetupAutoOpenFileTypes();
1151 SetupProxySettingsSection(); 1163 SetupProxySettingsSection();
1152 SetupManagingSupervisedUsers(); 1164 SetupManagingSupervisedUsers();
1153 SetupEasyUnlock(); 1165 SetupEasyUnlock();
1154 SetupExtensionControlledIndicators(); 1166 SetupExtensionControlledIndicators();
1155 SetupSafeBrowsingExtendedReporting(); 1167 SetupSafeBrowsingExtendedReporting();
1156 1168
1157 #if defined(OS_CHROMEOS) 1169 #if defined(OS_CHROMEOS)
1158 SetupAccessibilityFeatures(); 1170 SetupAccessibilityFeatures();
1159 policy::BrowserPolicyConnectorChromeOS* connector = 1171 policy::BrowserPolicyConnectorChromeOS* connector =
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
1735 double zoom_factor; 1747 double zoom_factor;
1736 if (ExtractDoubleValue(args, &zoom_factor)) { 1748 if (ExtractDoubleValue(args, &zoom_factor)) {
1737 ChromeZoomLevelPrefs* zoom_level_prefs = 1749 ChromeZoomLevelPrefs* zoom_level_prefs =
1738 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs(); 1750 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
1739 DCHECK(zoom_level_prefs); 1751 DCHECK(zoom_level_prefs);
1740 zoom_level_prefs->SetDefaultZoomLevelPref( 1752 zoom_level_prefs->SetDefaultZoomLevelPref(
1741 content::ZoomFactorToZoomLevel(zoom_factor)); 1753 content::ZoomFactorToZoomLevel(zoom_factor));
1742 } 1754 }
1743 } 1755 }
1744 1756
1757 void BrowserOptionsHandler::HandleDefaultZoomScope(
1758 const base::ListValue* args) {
1759 bool checked;
1760 if (args->GetBoolean(0, &checked)) {
1761 ChromeZoomLevelPrefs* zoom_level_prefs =
1762 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
1763 DCHECK(zoom_level_prefs);
1764 zoom_level_prefs->SetZoomScopeIsPerOriginPref(checked);
1765 }
1766 }
1767
1745 void BrowserOptionsHandler::HandleRestartBrowser(const base::ListValue* args) { 1768 void BrowserOptionsHandler::HandleRestartBrowser(const base::ListValue* args) {
1746 chrome::AttemptRestart(); 1769 chrome::AttemptRestart();
1747 } 1770 }
1748 1771
1749 void BrowserOptionsHandler::HandleRequestProfilesInfo( 1772 void BrowserOptionsHandler::HandleRequestProfilesInfo(
1750 const base::ListValue* args) { 1773 const base::ListValue* args) {
1751 SendProfilesInfo(); 1774 SendProfilesInfo();
1752 } 1775 }
1753 1776
1754 #if !defined(OS_CHROMEOS) 1777 #if !defined(OS_CHROMEOS)
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
2142 option->AppendDouble(factor); 2165 option->AppendDouble(factor);
2143 bool selected = content::ZoomValuesEqual(factor, default_zoom_factor); 2166 bool selected = content::ZoomValuesEqual(factor, default_zoom_factor);
2144 option->AppendBoolean(selected); 2167 option->AppendBoolean(selected);
2145 zoom_factors_value.Append(std::move(option)); 2168 zoom_factors_value.Append(std::move(option));
2146 } 2169 }
2147 2170
2148 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setupPageZoomSelector", 2171 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setupPageZoomSelector",
2149 zoom_factors_value); 2172 zoom_factors_value);
2150 } 2173 }
2151 2174
2175 void BrowserOptionsHandler::SetupZoomScopeCheckbox() {
2176 ChromeZoomLevelPrefs* zoom_level_prefs =
2177 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
2178 base::FundamentalValue is_per_origin(
2179 zoom_level_prefs
2180 ? zoom_level_prefs->GetZoomScopeIsPerOriginPref()
2181 : ChromeZoomLevelPrefs::kZoomScopeSettingDefault);
2182
2183 web_ui()->CallJavascriptFunctionUnsafe(
2184 "BrowserOptions.setupZoomScopeCheckbox", is_per_origin);
2185 }
2186
2152 void BrowserOptionsHandler::SetupAutoOpenFileTypes() { 2187 void BrowserOptionsHandler::SetupAutoOpenFileTypes() {
2153 // Set the hidden state for the AutoOpenFileTypesResetToDefault button. 2188 // Set the hidden state for the AutoOpenFileTypesResetToDefault button.
2154 // We show the button if the user has any auto-open file types registered. 2189 // We show the button if the user has any auto-open file types registered.
2155 DownloadManager* manager = BrowserContext::GetDownloadManager( 2190 DownloadManager* manager = BrowserContext::GetDownloadManager(
2156 web_ui()->GetWebContents()->GetBrowserContext()); 2191 web_ui()->GetWebContents()->GetBrowserContext());
2157 bool display = manager && 2192 bool display = manager &&
2158 DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed(); 2193 DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed();
2159 base::FundamentalValue value(display); 2194 base::FundamentalValue value(display);
2160 web_ui()->CallJavascriptFunctionUnsafe( 2195 web_ui()->CallJavascriptFunctionUnsafe(
2161 "BrowserOptions.setAutoOpenFileTypesDisplayed", value); 2196 "BrowserOptions.setAutoOpenFileTypesDisplayed", value);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
2315 2350
2316 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { 2351 bool BrowserOptionsHandler::IsDeviceOwnerProfile() {
2317 #if defined(OS_CHROMEOS) 2352 #if defined(OS_CHROMEOS)
2318 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); 2353 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui()));
2319 #else 2354 #else
2320 return true; 2355 return true;
2321 #endif 2356 #endif
2322 } 2357 }
2323 2358
2324 } // namespace options 2359 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698