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 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |