| 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 |