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

Side by Side Diff: chrome/browser/ui/webui/options/browser_options_handler.cc

Issue 2479973002: MD Settings: clarify "controlled by" logic (Closed)
Patch Set: update externs Created 4 years, 1 month 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 581 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 IDS_HOTWORD_CONFIRM_BUBBLE_TITLE); 592 IDS_HOTWORD_CONFIRM_BUBBLE_TITLE);
593 values->SetString("hotwordManageAudioHistoryURL", 593 values->SetString("hotwordManageAudioHistoryURL",
594 chrome::kManageAudioHistoryURL); 594 chrome::kManageAudioHistoryURL);
595 base::string16 supervised_user_dashboard = 595 base::string16 supervised_user_dashboard =
596 base::ASCIIToUTF16(chrome::kLegacySupervisedUserManagementURL); 596 base::ASCIIToUTF16(chrome::kLegacySupervisedUserManagementURL);
597 values->SetString("profilesSupervisedDashboardTip", 597 values->SetString("profilesSupervisedDashboardTip",
598 l10n_util::GetStringFUTF16( 598 l10n_util::GetStringFUTF16(
599 IDS_PROFILES_LEGACY_SUPERVISED_USER_DASHBOARD_TIP, 599 IDS_PROFILES_LEGACY_SUPERVISED_USER_DASHBOARD_TIP,
600 supervised_user_dashboard)); 600 supervised_user_dashboard));
601 601
602 Profile* profile = Profile::FromWebUI(web_ui());
603
602 #if defined(OS_CHROMEOS) 604 #if defined(OS_CHROMEOS)
603 Profile* profile = Profile::FromWebUI(web_ui());
604 std::string username = profile->GetProfileUserName(); 605 std::string username = profile->GetProfileUserName();
605 if (username.empty()) { 606 if (username.empty()) {
606 const user_manager::User* user = 607 const user_manager::User* user =
607 chromeos::ProfileHelper::Get()->GetUserByProfile(profile); 608 chromeos::ProfileHelper::Get()->GetUserByProfile(profile);
608 if (user && (user->GetType() != user_manager::USER_TYPE_GUEST)) 609 if (user && (user->GetType() != user_manager::USER_TYPE_GUEST))
609 username = user->GetAccountId().GetUserEmail(); 610 username = user->GetAccountId().GetUserEmail();
610 } 611 }
611 if (!username.empty()) 612 if (!username.empty())
612 username = gaia::SanitizeEmail(gaia::CanonicalizeEmail(username)); 613 username = gaia::SanitizeEmail(gaia::CanonicalizeEmail(username));
613 614
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 670
670 if (ShouldShowMultiProfilesUserList()) 671 if (ShouldShowMultiProfilesUserList())
671 values->Set("profilesInfo", GetProfilesInfoList().release()); 672 values->Set("profilesInfo", GetProfilesInfoList().release());
672 673
673 // Profile deletion is not allowed for any users using Metro mode. 674 // Profile deletion is not allowed for any users using Metro mode.
674 bool allow_deletion = true; 675 bool allow_deletion = true;
675 #if defined(USE_ASH) 676 #if defined(USE_ASH)
676 allow_deletion = allow_deletion && !ash::WmShell::HasInstance(); 677 allow_deletion = allow_deletion && !ash::WmShell::HasInstance();
677 #endif 678 #endif
678 values->SetBoolean("allowProfileDeletion", allow_deletion); 679 values->SetBoolean("allowProfileDeletion", allow_deletion);
679 680 values->SetBoolean("profileIsGuest", profile->IsOffTheRecord());
680 values->SetBoolean("profileIsGuest", 681 values->SetBoolean("profileIsSupervised", profile->IsSupervised());
681 Profile::FromWebUI(web_ui())->IsOffTheRecord());
682
683 values->SetBoolean("profileIsSupervised",
684 Profile::FromWebUI(web_ui())->IsSupervised());
685 682
686 #if !defined(OS_CHROMEOS) 683 #if !defined(OS_CHROMEOS)
687 values->SetBoolean( 684 values->SetBoolean(
688 "gpuEnabledAtStart", 685 "gpuEnabledAtStart",
689 g_browser_process->gpu_mode_manager()->initial_gpu_mode_pref()); 686 g_browser_process->gpu_mode_manager()->initial_gpu_mode_pref());
690 #endif 687 #endif
691 688
692 #if defined(OS_CHROMEOS) 689 #if defined(OS_CHROMEOS)
693 values->SetBoolean("cupsPrintEnabled", 690 values->SetBoolean("cupsPrintEnabled",
694 base::CommandLine::ForCurrentProcess()->HasSwitch( 691 base::CommandLine::ForCurrentProcess()->HasSwitch(
695 ::switches::kEnableNativeCups)); 692 ::switches::kEnableNativeCups));
696 values->SetString("cupsPrintLearnMoreURL", 693 values->SetString("cupsPrintLearnMoreURL",
697 chrome::kChromeUIMdCupsSettingsURL); 694 chrome::kChromeUIMdCupsSettingsURL);
698 #endif // defined(OS_CHROMEOS) 695 #endif // defined(OS_CHROMEOS)
699 696
700 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY) 697 #if BUILDFLAG(ENABLE_SERVICE_DISCOVERY)
701 values->SetBoolean("cloudPrintHideNotificationsCheckbox", 698 values->SetBoolean("cloudPrintHideNotificationsCheckbox",
702 !cloud_print::PrivetNotificationService::IsEnabled()); 699 !cloud_print::PrivetNotificationService::IsEnabled());
703 #endif 700 #endif
704 701
705 values->SetBoolean("cloudPrintShowMDnsOptions", 702 values->SetBoolean("cloudPrintShowMDnsOptions",
706 cloud_print_mdns_ui_enabled_); 703 cloud_print_mdns_ui_enabled_);
707 704
708 values->SetString("cloudPrintLearnMoreURL", chrome::kCloudPrintLearnMoreURL); 705 values->SetString("cloudPrintLearnMoreURL", chrome::kCloudPrintLearnMoreURL);
709 706
710 values->SetString("languagesLearnMoreURL", 707 values->SetString("languagesLearnMoreURL",
711 chrome::kLanguageSettingsLearnMoreUrl); 708 chrome::kLanguageSettingsLearnMoreUrl);
712 709
713 values->SetBoolean( 710 values->SetBoolean(
714 "easyUnlockAllowed", 711 "easyUnlockAllowed", EasyUnlockService::Get(profile)->IsAllowed());
715 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsAllowed());
716 values->SetString("easyUnlockLearnMoreURL", chrome::kEasyUnlockLearnMoreUrl); 712 values->SetString("easyUnlockLearnMoreURL", chrome::kEasyUnlockLearnMoreUrl);
717 values->SetBoolean("easyUnlockProximityDetectionAllowed", 713 values->SetBoolean("easyUnlockProximityDetectionAllowed",
718 base::CommandLine::ForCurrentProcess()->HasSwitch( 714 base::CommandLine::ForCurrentProcess()->HasSwitch(
719 proximity_auth::switches::kEnableProximityDetection)); 715 proximity_auth::switches::kEnableProximityDetection));
720 716
721 #if defined(OS_CHROMEOS) 717 #if defined(OS_CHROMEOS)
722 RegisterTitle(values, "thirdPartyImeConfirmOverlay", 718 RegisterTitle(values, "thirdPartyImeConfirmOverlay",
723 IDS_OPTIONS_SETTINGS_LANGUAGES_THIRD_PARTY_WARNING_TITLE); 719 IDS_OPTIONS_SETTINGS_LANGUAGES_THIRD_PARTY_WARNING_TITLE);
724 values->SetBoolean("usingNewProfilesUI", false); 720 values->SetBoolean("usingNewProfilesUI", false);
725 #else 721 #else
726 values->SetBoolean("usingNewProfilesUI", true); 722 values->SetBoolean("usingNewProfilesUI", true);
727 #endif 723 #endif
728 724
729 values->SetBoolean("showSetDefault", ShouldShowSetDefaultBrowser()); 725 values->SetBoolean("showSetDefault", ShouldShowSetDefaultBrowser());
730 726
731 values->SetBoolean("allowAdvancedSettings", ShouldAllowAdvancedSettings()); 727 values->SetBoolean("allowAdvancedSettings", ShouldAllowAdvancedSettings());
732 728
733 #if defined(OS_CHROMEOS) 729 #if defined(OS_CHROMEOS)
734 values->SetBoolean( 730 values->SetBoolean(
735 "showWakeOnWifi", 731 "showWakeOnWifi",
736 chromeos::WakeOnWifiManager::Get()->WakeOnWifiSupported() && 732 chromeos::WakeOnWifiManager::Get()->WakeOnWifiSupported() &&
737 chromeos::switches::WakeOnWifiEnabled()); 733 chromeos::switches::WakeOnWifiEnabled());
738 values->SetBoolean("enableTimeZoneTrackingOption", 734 values->SetBoolean("enableTimeZoneTrackingOption",
739 !chromeos::system::HasSystemTimezonePolicy()); 735 !chromeos::system::HasSystemTimezonePolicy());
740 values->SetBoolean("resolveTimezoneByGeolocationInitialValue", 736 values->SetBoolean("resolveTimezoneByGeolocationInitialValue",
741 Profile::FromWebUI(web_ui())->GetPrefs()->GetBoolean( 737 profile->GetPrefs()->GetBoolean(prefs::kResolveTimezoneByGeolocation));
742 prefs::kResolveTimezoneByGeolocation));
743 values->SetBoolean("enableLanguageOptionsImeMenu", 738 values->SetBoolean("enableLanguageOptionsImeMenu",
744 base::FeatureList::IsEnabled(features::kOptInImeMenu)); 739 base::FeatureList::IsEnabled(features::kOptInImeMenu));
745 values->SetBoolean( 740 values->SetBoolean(
746 "enableExperimentalAccessibilityFeatures", 741 "enableExperimentalAccessibilityFeatures",
747 base::CommandLine::ForCurrentProcess()->HasSwitch( 742 base::CommandLine::ForCurrentProcess()->HasSwitch(
748 chromeos::switches::kEnableExperimentalAccessibilityFeatures)); 743 chromeos::switches::kEnableExperimentalAccessibilityFeatures));
749 744
750 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get(); 745 chromeos::CrosSettings* cros_settings = chromeos::CrosSettings::Get();
751 bool allow_bluetooth = true; 746 bool allow_bluetooth = true;
752 cros_settings->GetBoolean(chromeos::kAllowBluetooth, &allow_bluetooth); 747 cros_settings->GetBoolean(chromeos::kAllowBluetooth, &allow_bluetooth);
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 content::NotificationService::AllSources()); 991 content::NotificationService::AllSources());
997 #endif 992 #endif
998 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, 993 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED,
999 content::Source<ThemeService>( 994 content::Source<ThemeService>(
1000 ThemeServiceFactory::GetForProfile(profile))); 995 ThemeServiceFactory::GetForProfile(profile)));
1001 registrar_.Add(this, chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED, 996 registrar_.Add(this, chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED,
1002 content::Source<Profile>(profile)); 997 content::Source<Profile>(profile));
1003 AddTemplateUrlServiceObserver(); 998 AddTemplateUrlServiceObserver();
1004 999
1005 #if defined(OS_WIN) 1000 #if defined(OS_WIN)
1006 ExtensionRegistry::Get(Profile::FromWebUI(web_ui()))->AddObserver(this); 1001 ExtensionRegistry::Get(profile)->AddObserver(this);
1007 #endif 1002 #endif
1008 1003
1009 // No preferences below this point may be modified by guest profiles. 1004 // No preferences below this point may be modified by guest profiles.
1010 if (Profile::FromWebUI(web_ui())->IsGuestSession()) 1005 if (profile->IsGuestSession())
1011 return; 1006 return;
1012 1007
1013 auto_open_files_.Init( 1008 auto_open_files_.Init(
1014 prefs::kDownloadExtensionsToOpen, prefs, 1009 prefs::kDownloadExtensionsToOpen, prefs,
1015 base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes, 1010 base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes,
1016 base::Unretained(this))); 1011 base::Unretained(this)));
1017 profile_pref_registrar_.Init(prefs); 1012 profile_pref_registrar_.Init(prefs);
1018 profile_pref_registrar_.Add( 1013 profile_pref_registrar_.Add(
1019 prefs::kNetworkPredictionOptions, 1014 prefs::kNetworkPredictionOptions,
1020 base::Bind(&BrowserOptionsHandler::SetupNetworkPredictionControl, 1015 base::Bind(&BrowserOptionsHandler::SetupNetworkPredictionControl,
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 1147
1153 OnSystemTimezoneAutomaticDetectionPolicyChanged(); 1148 OnSystemTimezoneAutomaticDetectionPolicyChanged();
1154 #endif 1149 #endif
1155 } 1150 }
1156 1151
1157 bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() { 1152 bool BrowserOptionsHandler::ShouldShowSetDefaultBrowser() {
1158 #if defined(OS_CHROMEOS) 1153 #if defined(OS_CHROMEOS)
1159 // We're always the default browser on ChromeOS. 1154 // We're always the default browser on ChromeOS.
1160 return false; 1155 return false;
1161 #else 1156 #else
1162 Profile* profile = Profile::FromWebUI(web_ui()); 1157 return !Profile::FromWebUI(web_ui())->IsGuestSession();
1163 return !profile->IsGuestSession();
1164 #endif 1158 #endif
1165 } 1159 }
1166 1160
1167 bool BrowserOptionsHandler::ShouldShowMultiProfilesUserList() { 1161 bool BrowserOptionsHandler::ShouldShowMultiProfilesUserList() {
1168 #if defined(OS_CHROMEOS) 1162 #if defined(OS_CHROMEOS)
1169 // On Chrome OS we use different UI for multi-profiles. 1163 // On Chrome OS we use different UI for multi-profiles.
1170 return false; 1164 return false;
1171 #else 1165 #else
1172 Profile* profile = Profile::FromWebUI(web_ui()); 1166 if (Profile::FromWebUI(web_ui())->IsGuestSession())
1173 if (profile->IsGuestSession())
1174 return false; 1167 return false;
1175 return profiles::IsMultipleProfilesEnabled(); 1168 return profiles::IsMultipleProfilesEnabled();
1176 #endif 1169 #endif
1177 } 1170 }
1178 1171
1179 bool BrowserOptionsHandler::ShouldAllowAdvancedSettings() { 1172 bool BrowserOptionsHandler::ShouldAllowAdvancedSettings() {
1180 #if defined(OS_CHROMEOS) 1173 #if defined(OS_CHROMEOS)
1181 // ChromeOS handles guest-mode restrictions in a different manner. 1174 // ChromeOS handles guest-mode restrictions in a different manner.
1182 return true; 1175 return true;
1183 #else 1176 #else
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after
2145 void BrowserOptionsHandler::SetupEasyUnlock() { 2138 void BrowserOptionsHandler::SetupEasyUnlock() {
2146 base::FundamentalValue is_enabled( 2139 base::FundamentalValue is_enabled(
2147 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsEnabled()); 2140 EasyUnlockService::Get(Profile::FromWebUI(web_ui()))->IsEnabled());
2148 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.updateEasyUnlock", 2141 web_ui()->CallJavascriptFunctionUnsafe("BrowserOptions.updateEasyUnlock",
2149 is_enabled); 2142 is_enabled);
2150 } 2143 }
2151 2144
2152 void BrowserOptionsHandler::SetupExtensionControlledIndicators() { 2145 void BrowserOptionsHandler::SetupExtensionControlledIndicators() {
2153 base::DictionaryValue extension_controlled; 2146 base::DictionaryValue extension_controlled;
2154 2147
2148 Profile* profile = Profile::FromWebUI(web_ui());
2149
2155 // Check if an extension is overriding the Search Engine. 2150 // Check if an extension is overriding the Search Engine.
2156 const extensions::Extension* extension = 2151 const extensions::Extension* extension =
2157 extensions::GetExtensionOverridingSearchEngine( 2152 extensions::GetExtensionOverridingSearchEngine(profile);
2158 Profile::FromWebUI(web_ui()));
2159 AppendExtensionData("searchEngine", extension, &extension_controlled); 2153 AppendExtensionData("searchEngine", extension, &extension_controlled);
2160 2154
2161 // Check if an extension is overriding the Home page. 2155 // Check if an extension is overriding the Home page.
2162 extension = extensions::GetExtensionOverridingHomepage( 2156 extension = extensions::GetExtensionOverridingHomepage(profile);
2163 Profile::FromWebUI(web_ui()));
2164 AppendExtensionData("homePage", extension, &extension_controlled); 2157 AppendExtensionData("homePage", extension, &extension_controlled);
2165 2158
2166 // Check if an extension is overriding the Startup pages. 2159 // Check if an extension is overriding the Startup pages.
2167 extension = extensions::GetExtensionOverridingStartupPages( 2160 extension = extensions::GetExtensionOverridingStartupPages(profile);
2168 Profile::FromWebUI(web_ui()));
2169 AppendExtensionData("startUpPage", extension, &extension_controlled); 2161 AppendExtensionData("startUpPage", extension, &extension_controlled);
2170 2162
2171 // Check if an extension is overriding the NTP page. 2163 // Check if an extension is overriding the NTP page.
2172 GURL ntp_url(chrome::kChromeUINewTabURL); 2164 extension = extensions::GetExtensionOverridingNewTabPage(profile);
2173 bool ignored_param;
2174 extension = NULL;
2175 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
2176 &ntp_url,
2177 web_ui()->GetWebContents()->GetBrowserContext(),
2178 &ignored_param);
2179 if (ntp_url.SchemeIs("chrome-extension")) {
2180 using extensions::ExtensionRegistry;
2181 ExtensionRegistry* registry = ExtensionRegistry::Get(
2182 Profile::FromWebUI(web_ui()));
2183 extension = registry->GetExtensionById(ntp_url.host(),
2184 ExtensionRegistry::ENABLED);
2185 }
2186 AppendExtensionData("newTabPage", extension, &extension_controlled); 2165 AppendExtensionData("newTabPage", extension, &extension_controlled);
2187 2166
2188 // Check if an extension is overwriting the proxy setting. 2167 // Check if an extension is overwriting the proxy setting.
2189 extension = extensions::GetExtensionOverridingProxy( 2168 extension = extensions::GetExtensionOverridingProxy(profile);
2190 Profile::FromWebUI(web_ui()));
2191 AppendExtensionData("proxy", extension, &extension_controlled); 2169 AppendExtensionData("proxy", extension, &extension_controlled);
2192 2170
2193 web_ui()->CallJavascriptFunctionUnsafe( 2171 web_ui()->CallJavascriptFunctionUnsafe(
2194 "BrowserOptions.toggleExtensionIndicators", extension_controlled); 2172 "BrowserOptions.toggleExtensionIndicators", extension_controlled);
2195 } 2173 }
2196 2174
2197 void BrowserOptionsHandler::SetupMetricsReportingCheckbox() { 2175 void BrowserOptionsHandler::SetupMetricsReportingCheckbox() {
2198 // As the metrics and crash reporting checkbox only exists for official builds 2176 // As the metrics and crash reporting checkbox only exists for official builds
2199 // it doesn't need to be set up for non-official builds. 2177 // it doesn't need to be set up for non-official builds.
2200 #if defined(GOOGLE_CHROME_BUILD) 2178 #if defined(GOOGLE_CHROME_BUILD)
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2264 2242
2265 bool BrowserOptionsHandler::IsDeviceOwnerProfile() { 2243 bool BrowserOptionsHandler::IsDeviceOwnerProfile() {
2266 #if defined(OS_CHROMEOS) 2244 #if defined(OS_CHROMEOS)
2267 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui())); 2245 return chromeos::ProfileHelper::IsOwnerProfile(Profile::FromWebUI(web_ui()));
2268 #else 2246 #else
2269 return true; 2247 return true;
2270 #endif 2248 #endif
2271 } 2249 }
2272 2250
2273 } // namespace options 2251 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698