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 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
674 | 674 |
675 if (ShouldShowMultiProfilesUserList()) | 675 if (ShouldShowMultiProfilesUserList()) |
676 values->Set("profilesInfo", GetProfilesInfoList().release()); | 676 values->Set("profilesInfo", GetProfilesInfoList().release()); |
677 | 677 |
678 // Profile deletion is not allowed for any users using Metro mode. | 678 // Profile deletion is not allowed for any users using Metro mode. |
679 bool allow_deletion = true; | 679 bool allow_deletion = true; |
680 #if defined(USE_ASH) | 680 #if defined(USE_ASH) |
681 allow_deletion = allow_deletion && !ash::WmShell::HasInstance(); | 681 allow_deletion = allow_deletion && !ash::WmShell::HasInstance(); |
682 #endif | 682 #endif |
683 values->SetBoolean("allowProfileDeletion", allow_deletion); | 683 values->SetBoolean("allowProfileDeletion", allow_deletion); |
684 | 684 values->SetBoolean("profileIsGuest", profile->IsOffTheRecord()); |
685 values->SetBoolean("profileIsGuest", | 685 values->SetBoolean("profileIsSupervised", profile->IsSupervised()); |
686 Profile::FromWebUI(web_ui())->IsOffTheRecord()); | |
687 | |
688 values->SetBoolean("profileIsSupervised", | |
689 Profile::FromWebUI(web_ui())->IsSupervised()); | |
690 | 686 |
691 #if !defined(OS_CHROMEOS) | 687 #if !defined(OS_CHROMEOS) |
692 values->SetBoolean( | 688 values->SetBoolean( |
693 "gpuEnabledAtStart", | 689 "gpuEnabledAtStart", |
694 g_browser_process->gpu_mode_manager()->initial_gpu_mode_pref()); | 690 g_browser_process->gpu_mode_manager()->initial_gpu_mode_pref()); |
695 #endif | 691 #endif |
696 | 692 |
697 #if defined(OS_CHROMEOS) | 693 #if defined(OS_CHROMEOS) |
698 values->SetBoolean("cupsPrintEnabled", | 694 values->SetBoolean("cupsPrintEnabled", |
699 base::CommandLine::ForCurrentProcess()->HasSwitch( | 695 base::CommandLine::ForCurrentProcess()->HasSwitch( |
700 ::switches::kEnableNativeCups)); | 696 ::switches::kEnableNativeCups)); |
701 values->SetString("cupsPrintLearnMoreURL", | 697 values->SetString("cupsPrintLearnMoreURL", |
702 chrome::kChromeUIMdCupsSettingsURL); | 698 chrome::kChromeUIMdCupsSettingsURL); |
703 #endif // defined(OS_CHROMEOS) | 699 #endif // defined(OS_CHROMEOS) |
704 | 700 |
705 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) | 701 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) |
706 values->SetBoolean("cloudPrintHideNotificationsCheckbox", | 702 values->SetBoolean("cloudPrintHideNotificationsCheckbox", |
707 !cloud_print::PrivetNotificationService::IsEnabled()); | 703 !cloud_print::PrivetNotificationService::IsEnabled()); |
708 #endif | 704 #endif |
709 | 705 |
710 values->SetBoolean("cloudPrintShowMDnsOptions", | 706 values->SetBoolean("cloudPrintShowMDnsOptions", |
711 cloud_print_mdns_ui_enabled_); | 707 cloud_print_mdns_ui_enabled_); |
712 | 708 |
713 values->SetString("cloudPrintLearnMoreURL", chrome::kCloudPrintLearnMoreURL); | 709 values->SetString("cloudPrintLearnMoreURL", chrome::kCloudPrintLearnMoreURL); |
714 | 710 |
715 values->SetString("languagesLearnMoreURL", | 711 values->SetString("languagesLearnMoreURL", |
716 chrome::kLanguageSettingsLearnMoreUrl); | 712 chrome::kLanguageSettingsLearnMoreUrl); |
717 | 713 |
718 values->SetBoolean( | 714 values->SetBoolean( |
719 "easyUnlockAllowed", | 715 "easyUnlockAllowed", EasyUnlockService::Get(profile)->IsAllowed()); |
720 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsAllowed()); | |
721 values->SetString("easyUnlockLearnMoreURL", chrome::kEasyUnlockLearnMoreUrl); | 716 values->SetString("easyUnlockLearnMoreURL", chrome::kEasyUnlockLearnMoreUrl); |
722 values->SetBoolean("easyUnlockProximityDetectionAllowed", | 717 values->SetBoolean("easyUnlockProximityDetectionAllowed", |
723 base::CommandLine::ForCurrentProcess()->HasSwitch( | 718 base::CommandLine::ForCurrentProcess()->HasSwitch( |
724 proximity_auth::switches::kEnableProximityDetection)); | 719 proximity_auth::switches::kEnableProximityDetection)); |
725 | 720 |
726 #if defined(OS_CHROMEOS) | 721 #if defined(OS_CHROMEOS) |
727 RegisterTitle(values, "thirdPartyImeConfirmOverlay", | 722 RegisterTitle(values, "thirdPartyImeConfirmOverlay", |
728 IDS_OPTIONS_SETTINGS_LANGUAGES_THIRD_PARTY_WARNING_TITLE); | 723 IDS_OPTIONS_SETTINGS_LANGUAGES_THIRD_PARTY_WARNING_TITLE); |
729 values->SetBoolean("usingNewProfilesUI", false); | 724 values->SetBoolean("usingNewProfilesUI", false); |
730 #else | 725 #else |
731 values->SetBoolean("usingNewProfilesUI", true); | 726 values->SetBoolean("usingNewProfilesUI", true); |
732 #endif | 727 #endif |
733 | 728 |
734 values->SetBoolean("showSetDefault", ShouldShowSetDefaultBrowser()); | 729 values->SetBoolean("showSetDefault", ShouldShowSetDefaultBrowser()); |
735 | 730 |
736 values->SetBoolean("allowAdvancedSettings", ShouldAllowAdvancedSettings()); | 731 values->SetBoolean("allowAdvancedSettings", ShouldAllowAdvancedSettings()); |
737 | 732 |
738 #if defined(OS_CHROMEOS) | 733 #if defined(OS_CHROMEOS) |
739 values->SetBoolean( | 734 values->SetBoolean( |
740 "showWakeOnWifi", | 735 "showWakeOnWifi", |
741 chromeos::WakeOnWifiManager::Get()->WakeOnWifiSupported() && | 736 chromeos::WakeOnWifiManager::Get()->WakeOnWifiSupported() && |
742 chromeos::switches::WakeOnWifiEnabled()); | 737 chromeos::switches::WakeOnWifiEnabled()); |
743 values->SetBoolean("enableTimeZoneTrackingOption", | 738 values->SetBoolean("enableTimeZoneTrackingOption", |
744 !chromeos::system::HasSystemTimezonePolicy()); | 739 !chromeos::system::HasSystemTimezonePolicy()); |
745 values->SetBoolean("resolveTimezoneByGeolocationInitialValue", | 740 values->SetBoolean("resolveTimezoneByGeolocationInitialValue", |
746 Profile::FromWebUI(web_ui())->GetPrefs()->GetBoolean( | 741 profile->GetPrefs()->GetBoolean(prefs::kResolveTimezoneByGeolocation)); |
747 prefs::kResolveTimezoneByGeolocation)); | |
748 values->SetBoolean("enableLanguageOptionsImeMenu", | 742 values->SetBoolean("enableLanguageOptionsImeMenu", |
749 base::FeatureList::IsEnabled(features::kOptInImeMenu)); | 743 base::FeatureList::IsEnabled(features::kOptInImeMenu)); |
750 values->SetBoolean( | 744 values->SetBoolean( |
751 "enableExperimentalAccessibilityFeatures", | 745 "enableExperimentalAccessibilityFeatures", |
752 base::CommandLine::ForCurrentProcess()->HasSwitch( | 746 base::CommandLine::ForCurrentProcess()->HasSwitch( |
753 chromeos::switches::kEnableExperimentalAccessibilityFeatures)); | 747 chromeos::switches::kEnableExperimentalAccessibilityFeatures)); |
754 | 748 |
755 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); | 749 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); |
756 bool allow_bluetooth = true; | 750 bool allow_bluetooth = true; |
757 cros_settings->GetBoolean(chromeos::kAllowBluetooth, &allow_bluetooth); | 751 cros_settings->GetBoolean(chromeos::kAllowBluetooth, &allow_bluetooth); |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1006 content::NotificationService::AllSources()); | 1000 content::NotificationService::AllSources()); |
1007 #endif | 1001 #endif |
1008 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, | 1002 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
1009 content::Source<ThemeService>( | 1003 content::Source<ThemeService>( |
1010 ThemeServiceFactory::GetForProfile(profile))); | 1004 ThemeServiceFactory::GetForProfile(profile))); |
1011 registrar_.Add(this, chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED, | 1005 registrar_.Add(this, chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED, |
1012 content::Source<Profile>(profile)); | 1006 content::Source<Profile>(profile)); |
1013 AddTemplateUrlServiceObserver(); | 1007 AddTemplateUrlServiceObserver(); |
1014 | 1008 |
1015 #if defined(OS_WIN) | 1009 #if defined(OS_WIN) |
1016 ExtensionRegistry::Get(Profile::FromWebUI(web_ui()))->AddObserver(this); | 1010 ExtensionRegistry::Get(profile)->AddObserver(this); |
1017 #endif | 1011 #endif |
1018 | 1012 |
1019 // No preferences below this point may be modified by guest profiles. | 1013 // No preferences below this point may be modified by guest profiles. |
1020 if (Profile::FromWebUI(web_ui())->IsGuestSession()) | 1014 if (profile->IsGuestSession()) |
1021 return; | 1015 return; |
1022 | 1016 |
1023 auto_open_files_.Init( | 1017 auto_open_files_.Init( |
1024 prefs::kDownloadExtensionsToOpen, prefs, | 1018 prefs::kDownloadExtensionsToOpen, prefs, |
1025 base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes, | 1019 base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes, |
1026 base::Unretained(this))); | 1020 base::Unretained(this))); |
1027 profile_pref_registrar_.Init(prefs); | 1021 profile_pref_registrar_.Init(prefs); |
1028 profile_pref_registrar_.Add( | 1022 profile_pref_registrar_.Add( |
1029 prefs::kNetworkPredictionOptions, | 1023 prefs::kNetworkPredictionOptions, |
1030 base::Bind(&BrowserOptionsHandler::SetupNetworkPredictionControl, | 1024 base::Bind(&BrowserOptionsHandler::SetupNetworkPredictionControl, |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1172 | 1166 |
1173 OnSystemTimezoneAutomaticDetectionPolicyChanged(); | 1167 OnSystemTimezoneAutomaticDetectionPolicyChanged(); |
1174 #endif | 1168 #endif |
1175 } | 1169 } |
1176 | 1170 |
1177 bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() { | 1171 bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() { |
1178 #if defined(OS_CHROMEOS) | 1172 #if defined(OS_CHROMEOS) |
1179 // We're always the default browser on ChromeOS. | 1173 // We're always the default browser on ChromeOS. |
1180 return false; | 1174 return false; |
1181 #else | 1175 #else |
1182 Profile* profile = Profile::FromWebUI(web_ui()); | 1176 return !Profile::FromWebUI(web_ui())->IsGuestSession(); |
1183 return !profile->IsGuestSession(); | |
1184 #endif | 1177 #endif |
1185 } | 1178 } |
1186 | 1179 |
1187 bool BrowserOptionsHandler::ShouldShowMultiProfilesUserList() { | 1180 bool BrowserOptionsHandler::ShouldShowMultiProfilesUserList() { |
1188 #if defined(OS_CHROMEOS) | 1181 #if defined(OS_CHROMEOS) |
1189 // On Chrome OS we use different UI for multi-profiles. | 1182 // On Chrome OS we use different UI for multi-profiles. |
1190 return false; | 1183 return false; |
1191 #else | 1184 #else |
1192 Profile* profile = Profile::FromWebUI(web_ui()); | 1185 if (Profile::FromWebUI(web_ui())->IsGuestSession()) |
1193 if (profile->IsGuestSession()) | |
1194 return false; | 1186 return false; |
1195 return profiles::IsMultipleProfilesEnabled(); | 1187 return profiles::IsMultipleProfilesEnabled(); |
1196 #endif | 1188 #endif |
1197 } | 1189 } |
1198 | 1190 |
1199 bool BrowserOptionsHandler::ShouldAllowAdvancedSettings() { | 1191 bool BrowserOptionsHandler::ShouldAllowAdvancedSettings() { |
1200 #if defined(OS_CHROMEOS) | 1192 #if defined(OS_CHROMEOS) |
1201 // ChromeOS handles guest-mode restrictions in a different manner. | 1193 // ChromeOS handles guest-mode restrictions in a different manner. |
1202 return true; | 1194 return true; |
1203 #else | 1195 #else |
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2165 void BrowserOptionsHandler::SetupEasyUnlock() { | 2157 void BrowserOptionsHandler::SetupEasyUnlock() { |
2166 base::FundamentalValue is_enabled( | 2158 base::FundamentalValue is_enabled( |
2167 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsEnabled()); | 2159 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsEnabled()); |
2168 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.updateEasyUnlock", | 2160 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.updateEasyUnlock", |
2169 is_enabled); | 2161 is_enabled); |
2170 } | 2162 } |
2171 | 2163 |
2172 void BrowserOptionsHandler::SetupExtensionControlledIndicators() { | 2164 void BrowserOptionsHandler::SetupExtensionControlledIndicators() { |
2173 base::DictionaryValue extension_controlled; | 2165 base::DictionaryValue extension_controlled; |
2174 | 2166 |
| 2167 Profile* profile = Profile::FromWebUI(web_ui()); |
| 2168 |
2175 // Check if an extension is overriding the Search Engine. | 2169 // Check if an extension is overriding the Search Engine. |
2176 const extensions::Extension* extension = | 2170 const extensions::Extension* extension = |
2177 extensions::GetExtensionOverridingSearchEngine( | 2171 extensions::GetExtensionOverridingSearchEngine(profile); |
2178 Profile::FromWebUI(web_ui())); | |
2179 AppendExtensionData("searchEngine", extension, &extension_controlled); | 2172 AppendExtensionData("searchEngine", extension, &extension_controlled); |
2180 | 2173 |
2181 // Check if an extension is overriding the Home page. | 2174 // Check if an extension is overriding the Home page. |
2182 extension = extensions::GetExtensionOverridingHomepage( | 2175 extension = extensions::GetExtensionOverridingHomepage(profile); |
2183 Profile::FromWebUI(web_ui())); | |
2184 AppendExtensionData("homePage", extension, &extension_controlled); | 2176 AppendExtensionData("homePage", extension, &extension_controlled); |
2185 | 2177 |
2186 // Check if an extension is overriding the Startup pages. | 2178 // Check if an extension is overriding the Startup pages. |
2187 extension = extensions::GetExtensionOverridingStartupPages( | 2179 extension = extensions::GetExtensionOverridingStartupPages(profile); |
2188 Profile::FromWebUI(web_ui())); | |
2189 AppendExtensionData("startUpPage", extension, &extension_controlled); | 2180 AppendExtensionData("startUpPage", extension, &extension_controlled); |
2190 | 2181 |
2191 // Check if an extension is overriding the NTP page. | 2182 // Check if an extension is overriding the NTP page. |
2192 GURL ntp_url(chrome::kChromeUINewTabURL); | 2183 extension = extensions::GetExtensionOverridingNewTabPage(profile); |
2193 bool ignored_param; | |
2194 extension = NULL; | |
2195 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( | |
2196 &ntp_url, | |
2197 web_ui()->GetWebContents()->GetBrowserContext(), | |
2198 &ignored_param); | |
2199 if (ntp_url.SchemeIs("chrome-extension")) { | |
2200 using extensions::ExtensionRegistry; | |
2201 ExtensionRegistry* registry = ExtensionRegistry::Get( | |
2202 Profile::FromWebUI(web_ui())); | |
2203 extension = registry->GetExtensionById(ntp_url.host(), | |
2204 ExtensionRegistry::ENABLED); | |
2205 } | |
2206 AppendExtensionData("newTabPage", extension, &extension_controlled); | 2184 AppendExtensionData("newTabPage", extension, &extension_controlled); |
2207 | 2185 |
2208 // Check if an extension is overwriting the proxy setting. | 2186 // Check if an extension is overwriting the proxy setting. |
2209 extension = extensions::GetExtensionOverridingProxy( | 2187 extension = extensions::GetExtensionOverridingProxy(profile); |
2210 Profile::FromWebUI(web_ui())); | |
2211 AppendExtensionData("proxy", extension, &extension_controlled); | 2188 AppendExtensionData("proxy", extension, &extension_controlled); |
2212 | 2189 |
2213 web_ui()->CallJavascriptFunctionUnsafe( | 2190 web_ui()->CallJavascriptFunctionUnsafe( |
2214 "BrowserOptions.toggleExtensionIndicators", extension_controlled); | 2191 "BrowserOptions.toggleExtensionIndicators", extension_controlled); |
2215 } | 2192 } |
2216 | 2193 |
2217 void BrowserOptionsHandler::SetupMetricsReportingCheckbox() { | 2194 void BrowserOptionsHandler::SetupMetricsReportingCheckbox() { |
2218 // As the metrics and crash reporting checkbox only exists for official builds | 2195 // As the metrics and crash reporting checkbox only exists for official builds |
2219 // it doesn't need to be set up for non-official builds. | 2196 // it doesn't need to be set up for non-official builds. |
2220 #if defined(GOOGLE_CHROME_BUILD) | 2197 #if defined(GOOGLE_CHROME_BUILD) |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2300 | 2277 |
2301 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { | 2278 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { |
2302 #if defined(OS_CHROMEOS) | 2279 #if defined(OS_CHROMEOS) |
2303 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); | 2280 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); |
2304 #else | 2281 #else |
2305 return true; | 2282 return true; |
2306 #endif | 2283 #endif |
2307 } | 2284 } |
2308 | 2285 |
2309 } // namespace options | 2286 } // namespace options |
OLD | NEW |