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

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: 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 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 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE }, 277 { "changeHomePage", IDS_OPTIONS_CHANGE_HOME_PAGE },
278 { "childLabel", IDS_PROFILES_LIST_CHILD_LABEL }, 278 { "childLabel", IDS_PROFILES_LIST_CHILD_LABEL },
279 { "currentUserOnly", IDS_OPTIONS_CURRENT_USER_ONLY }, 279 { "currentUserOnly", IDS_OPTIONS_CURRENT_USER_ONLY },
280 { "customizeSync", IDS_OPTIONS_CUSTOMIZE_SYNC_BUTTON_LABEL }, 280 { "customizeSync", IDS_OPTIONS_CUSTOMIZE_SYNC_BUTTON_LABEL },
281 { "defaultBrowserUnknown", 281 { "defaultBrowserUnknown",
282 IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, IDS_PRODUCT_NAME }, 282 IDS_OPTIONS_DEFAULTBROWSER_UNKNOWN, IDS_PRODUCT_NAME },
283 { "defaultBrowserUseAsDefault", IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT }, 283 { "defaultBrowserUseAsDefault", IDS_OPTIONS_DEFAULTBROWSER_USEASDEFAULT },
284 { "defaultFontSizeLabel", IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL }, 284 { "defaultFontSizeLabel", IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL },
285 { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES }, 285 { "defaultSearchManageEngines", IDS_OPTIONS_DEFAULTSEARCH_MANAGE_ENGINES },
286 { "defaultZoomFactorLabel", IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL }, 286 { "defaultZoomFactorLabel", IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL },
287 { "defaultZoomScopeLabel",
288 IDS_OPTIONS_DEFAULT_ZOOM_SCOPE_LABEL },
287 { "disableWebServices", IDS_OPTIONS_DISABLE_WEB_SERVICES }, 289 { "disableWebServices", IDS_OPTIONS_DISABLE_WEB_SERVICES },
288 { "doNotTrack", IDS_OPTIONS_ENABLE_DO_NOT_TRACK }, 290 { "doNotTrack", IDS_OPTIONS_ENABLE_DO_NOT_TRACK },
289 { "doNotTrackConfirmDisable", 291 { "doNotTrackConfirmDisable",
290 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_DISABLE }, 292 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_DISABLE },
291 { "doNotTrackConfirmEnable", 293 { "doNotTrackConfirmEnable",
292 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_ENABLE }, 294 IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_ENABLE },
293 { "doNotTrackConfirmMessage", IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TEXT }, 295 { "doNotTrackConfirmMessage", IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TEXT },
294 { "downloadLocationAskForSaveLocation", 296 { "downloadLocationAskForSaveLocation",
295 IDS_OPTIONS_DOWNLOADLOCATION_ASKFORSAVELOCATION }, 297 IDS_OPTIONS_DOWNLOADLOCATION_ASKFORSAVELOCATION },
296 { "downloadLocationBrowseTitle", 298 { "downloadLocationBrowseTitle",
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 base::Bind(&BrowserOptionsHandler::HandleAutoOpenButton, 831 base::Bind(&BrowserOptionsHandler::HandleAutoOpenButton,
830 base::Unretained(this))); 832 base::Unretained(this)));
831 web_ui()->RegisterMessageCallback( 833 web_ui()->RegisterMessageCallback(
832 "defaultFontSizeAction", 834 "defaultFontSizeAction",
833 base::Bind(&BrowserOptionsHandler::HandleDefaultFontSize, 835 base::Bind(&BrowserOptionsHandler::HandleDefaultFontSize,
834 base::Unretained(this))); 836 base::Unretained(this)));
835 web_ui()->RegisterMessageCallback( 837 web_ui()->RegisterMessageCallback(
836 "defaultZoomFactorAction", 838 "defaultZoomFactorAction",
837 base::Bind(&BrowserOptionsHandler::HandleDefaultZoomFactor, 839 base::Bind(&BrowserOptionsHandler::HandleDefaultZoomFactor,
838 base::Unretained(this))); 840 base::Unretained(this)));
841 web_ui()->RegisterMessageCallback(
842 "defaultZoomScopeAction",
843 base::Bind(&BrowserOptionsHandler::HandleDefaultZoomScope,
844 base::Unretained(this)));
839 #if defined(OS_WIN) || defined(OS_MACOSX) 845 #if defined(OS_WIN) || defined(OS_MACOSX)
840 web_ui()->RegisterMessageCallback( 846 web_ui()->RegisterMessageCallback(
841 "showManageSSLCertificates", 847 "showManageSSLCertificates",
842 base::Bind(&BrowserOptionsHandler::ShowManageSSLCertificates, 848 base::Bind(&BrowserOptionsHandler::ShowManageSSLCertificates,
843 base::Unretained(this))); 849 base::Unretained(this)));
844 #endif 850 #endif
845 #if defined(OS_CHROMEOS) 851 #if defined(OS_CHROMEOS)
846 web_ui()->RegisterMessageCallback( 852 web_ui()->RegisterMessageCallback(
847 "openWallpaperManager", 853 "openWallpaperManager",
848 base::Bind(&BrowserOptionsHandler::HandleOpenWallpaperManager, 854 base::Bind(&BrowserOptionsHandler::HandleOpenWallpaperManager,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 } 969 }
964 970
965 void BrowserOptionsHandler::PageLoadStarted() { 971 void BrowserOptionsHandler::PageLoadStarted() {
966 page_initialized_ = false; 972 page_initialized_ = false;
967 } 973 }
968 974
969 void BrowserOptionsHandler::InitializeHandler() { 975 void BrowserOptionsHandler::InitializeHandler() {
970 Profile* profile = Profile::FromWebUI(web_ui()); 976 Profile* profile = Profile::FromWebUI(web_ui());
971 PrefService* prefs = profile->GetPrefs(); 977 PrefService* prefs = profile->GetPrefs();
972 ChromeZoomLevelPrefs* zoom_level_prefs = profile->GetZoomLevelPrefs(); 978 ChromeZoomLevelPrefs* zoom_level_prefs = profile->GetZoomLevelPrefs();
973 // Only regular profiles are able to edit default zoom level, or delete per- 979 // Only regular profiles are able to edit default zoom level, default zoom
974 // host zoom levels, via the settings menu. We only require a zoom_level_prefs 980 // scope, or delete per-host zoom levels, via the settings menu. We only
975 // if the profile is able to change these preference types. 981 // require a zoom_level_prefs if the profile is able to change these
982 // preference types.
976 DCHECK(zoom_level_prefs || 983 DCHECK(zoom_level_prefs ||
977 profile->GetProfileType() != Profile::REGULAR_PROFILE); 984 profile->GetProfileType() != Profile::REGULAR_PROFILE);
978 if (zoom_level_prefs) { 985 if (zoom_level_prefs) {
979 default_zoom_level_subscription_ = 986 default_zoom_level_subscription_ =
980 zoom_level_prefs->RegisterDefaultZoomLevelCallback( 987 zoom_level_prefs->RegisterDefaultZoomLevelCallback(
981 base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector, 988 base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector,
982 base::Unretained(this))); 989 base::Unretained(this)));
990 default_zoom_scope_subscription_ =
991 zoom_level_prefs->RegisterDefaultZoomScopeCallback(
992 base::Bind(&BrowserOptionsHandler::SetupZoomScopeCheckbox,
993 base::Unretained(this)));
983 } 994 }
984 995
985 g_browser_process->policy_service()->AddObserver( 996 g_browser_process->policy_service()->AddObserver(
986 policy::POLICY_DOMAIN_CHROME, this); 997 policy::POLICY_DOMAIN_CHROME, this);
987 998
988 g_browser_process->profile_manager()-> 999 g_browser_process->profile_manager()->
989 GetProfileAttributesStorage().AddObserver(this); 1000 GetProfileAttributesStorage().AddObserver(this);
990 1001
991 browser_sync::ProfileSyncService* sync_service( 1002 browser_sync::ProfileSyncService* sync_service(
992 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile)); 1003 ProfileSyncServiceFactory::GetInstance()->GetForProfile(profile));
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1125 OnStateChanged(); 1136 OnStateChanged();
1126 #if !defined(OS_CHROMEOS) 1137 #if !defined(OS_CHROMEOS)
1127 UpdateDefaultBrowserState(); 1138 UpdateDefaultBrowserState();
1128 #endif 1139 #endif
1129 1140
1130 SetupMetricsReportingSettingVisibility(); 1141 SetupMetricsReportingSettingVisibility();
1131 SetupMetricsReportingCheckbox(); 1142 SetupMetricsReportingCheckbox();
1132 SetupNetworkPredictionControl(); 1143 SetupNetworkPredictionControl();
1133 SetupFontSizeSelector(); 1144 SetupFontSizeSelector();
1134 SetupPageZoomSelector(); 1145 SetupPageZoomSelector();
1146 SetupZoomScopeCheckbox();
1135 SetupAutoOpenFileTypes(); 1147 SetupAutoOpenFileTypes();
1136 SetupProxySettingsSection(); 1148 SetupProxySettingsSection();
1137 SetupManagingSupervisedUsers(); 1149 SetupManagingSupervisedUsers();
1138 SetupEasyUnlock(); 1150 SetupEasyUnlock();
1139 SetupExtensionControlledIndicators(); 1151 SetupExtensionControlledIndicators();
1140 SetupSafeBrowsingExtendedReporting(); 1152 SetupSafeBrowsingExtendedReporting();
1141 1153
1142 #if defined(OS_CHROMEOS) 1154 #if defined(OS_CHROMEOS)
1143 SetupAccessibilityFeatures(); 1155 SetupAccessibilityFeatures();
1144 policy::BrowserPolicyConnectorChromeOS* connector = 1156 policy::BrowserPolicyConnectorChromeOS* connector =
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
1720 double zoom_factor; 1732 double zoom_factor;
1721 if (ExtractDoubleValue(args, &zoom_factor)) { 1733 if (ExtractDoubleValue(args, &zoom_factor)) {
1722 ChromeZoomLevelPrefs* zoom_level_prefs = 1734 ChromeZoomLevelPrefs* zoom_level_prefs =
1723 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs(); 1735 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
1724 DCHECK(zoom_level_prefs); 1736 DCHECK(zoom_level_prefs);
1725 zoom_level_prefs->SetDefaultZoomLevelPref( 1737 zoom_level_prefs->SetDefaultZoomLevelPref(
1726 content::ZoomFactorToZoomLevel(zoom_factor)); 1738 content::ZoomFactorToZoomLevel(zoom_factor));
1727 } 1739 }
1728 } 1740 }
1729 1741
1742 void BrowserOptionsHandler::HandleDefaultZoomScope(
1743 const base::ListValue* args) {
1744 // TODO Shall we get UMA data about the usage of this option?
1745 bool checked;
1746 if (args->GetBoolean(0, &checked)) {
1747 ChromeZoomLevelPrefs* zoom_level_prefs =
1748 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
1749 DCHECK(zoom_level_prefs);
1750 zoom_level_prefs->SetIsOriginScopePref(checked);
1751 }
1752 }
1753
1730 void BrowserOptionsHandler::HandleRestartBrowser(const base::ListValue* args) { 1754 void BrowserOptionsHandler::HandleRestartBrowser(const base::ListValue* args) {
1731 chrome::AttemptRestart(); 1755 chrome::AttemptRestart();
1732 } 1756 }
1733 1757
1734 void BrowserOptionsHandler::HandleRequestProfilesInfo( 1758 void BrowserOptionsHandler::HandleRequestProfilesInfo(
1735 const base::ListValue* args) { 1759 const base::ListValue* args) {
1736 SendProfilesInfo(); 1760 SendProfilesInfo();
1737 } 1761 }
1738 1762
1739 #if !defined(OS_CHROMEOS) 1763 #if !defined(OS_CHROMEOS)
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
2127 option->AppendDouble(factor); 2151 option->AppendDouble(factor);
2128 bool selected = content::ZoomValuesEqual(factor, default_zoom_factor); 2152 bool selected = content::ZoomValuesEqual(factor, default_zoom_factor);
2129 option->AppendBoolean(selected); 2153 option->AppendBoolean(selected);
2130 zoom_factors_value.Append(std::move(option)); 2154 zoom_factors_value.Append(std::move(option));
2131 } 2155 }
2132 2156
2133 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setupPageZoomSelector", 2157 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.setupPageZoomSelector",
2134 zoom_factors_value); 2158 zoom_factors_value);
2135 } 2159 }
2136 2160
2161 void BrowserOptionsHandler::SetupZoomScopeCheckbox() {
2162 ChromeZoomLevelPrefs* zoom_level_prefs =
2163 Profile::FromWebUI(web_ui())->GetZoomLevelPrefs();
2164
2165 base::FundamentalValue default_per_origin(
2166 zoom_level_prefs ? zoom_level_prefs->GetIsOriginScopePref() : true);
2167 web_ui()->CallJavascriptFunctionUnsafe(
2168 "BrowserOptions.setupZoomScopeCheckbox", default_per_origin);
2169 }
2170
2137 void BrowserOptionsHandler::SetupAutoOpenFileTypes() { 2171 void BrowserOptionsHandler::SetupAutoOpenFileTypes() {
2138 // Set the hidden state for the AutoOpenFileTypesResetToDefault button. 2172 // Set the hidden state for the AutoOpenFileTypesResetToDefault button.
2139 // We show the button if the user has any auto-open file types registered. 2173 // We show the button if the user has any auto-open file types registered.
2140 DownloadManager* manager = BrowserContext::GetDownloadManager( 2174 DownloadManager* manager = BrowserContext::GetDownloadManager(
2141 web_ui()->GetWebContents()->GetBrowserContext()); 2175 web_ui()->GetWebContents()->GetBrowserContext());
2142 bool display = manager && 2176 bool display = manager &&
2143 DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed(); 2177 DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed();
2144 base::FundamentalValue value(display); 2178 base::FundamentalValue value(display);
2145 web_ui()->CallJavascriptFunctionUnsafe( 2179 web_ui()->CallJavascriptFunctionUnsafe(
2146 "BrowserOptions.setAutoOpenFileTypesDisplayed", value); 2180 "BrowserOptions.setAutoOpenFileTypesDisplayed", value);
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
2300 2334
2301 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { 2335 bool BrowserOptionsHandler::IsDeviceOwnerProfile() {
2302 #if defined(OS_CHROMEOS) 2336 #if defined(OS_CHROMEOS)
2303 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); 2337 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui()));
2304 #else 2338 #else
2305 return true; 2339 return true;
2306 #endif 2340 #endif
2307 } 2341 }
2308 2342
2309 } // namespace options 2343 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698