OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |