| 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 <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "apps/app_window.h" | 10 #include "apps/app_window.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "base/values.h" | 25 #include "base/values.h" |
| 26 #include "chrome/browser/auto_launch_trial.h" | 26 #include "chrome/browser/auto_launch_trial.h" |
| 27 #include "chrome/browser/browser_process.h" | 27 #include "chrome/browser/browser_process.h" |
| 28 #include "chrome/browser/chrome_notification_types.h" | 28 #include "chrome/browser/chrome_notification_types.h" |
| 29 #include "chrome/browser/chrome_page_zoom.h" | 29 #include "chrome/browser/chrome_page_zoom.h" |
| 30 #include "chrome/browser/custom_home_pages_table_model.h" | 30 #include "chrome/browser/custom_home_pages_table_model.h" |
| 31 #include "chrome/browser/download/download_prefs.h" | 31 #include "chrome/browser/download/download_prefs.h" |
| 32 #include "chrome/browser/gpu/gpu_mode_manager.h" | 32 #include "chrome/browser/gpu/gpu_mode_manager.h" |
| 33 #include "chrome/browser/lifetime/application_lifetime.h" | 33 #include "chrome/browser/lifetime/application_lifetime.h" |
| 34 #include "chrome/browser/metrics/metrics_reporting_state.h" | 34 #include "chrome/browser/metrics/metrics_reporting_state.h" |
| 35 #include "chrome/browser/net/prediction_options.h" |
| 35 #include "chrome/browser/prefs/session_startup_pref.h" | 36 #include "chrome/browser/prefs/session_startup_pref.h" |
| 36 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" | 37 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" |
| 37 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.
h" | 38 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.
h" |
| 38 #include "chrome/browser/profile_resetter/automatic_profile_resetter.h" | 39 #include "chrome/browser/profile_resetter/automatic_profile_resetter.h" |
| 39 #include "chrome/browser/profile_resetter/automatic_profile_resetter_factory.h" | 40 #include "chrome/browser/profile_resetter/automatic_profile_resetter_factory.h" |
| 40 #include "chrome/browser/profiles/profile.h" | 41 #include "chrome/browser/profiles/profile.h" |
| 41 #include "chrome/browser/profiles/profile_avatar_icon_util.h" | 42 #include "chrome/browser/profiles/profile_avatar_icon_util.h" |
| 42 #include "chrome/browser/profiles/profile_info_cache.h" | 43 #include "chrome/browser/profiles/profile_info_cache.h" |
| 43 #include "chrome/browser/profiles/profile_manager.h" | 44 #include "chrome/browser/profiles/profile_manager.h" |
| 44 #include "chrome/browser/profiles/profile_metrics.h" | 45 #include "chrome/browser/profiles/profile_metrics.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 #include "content/public/browser/user_metrics.h" | 84 #include "content/public/browser/user_metrics.h" |
| 84 #include "content/public/browser/web_contents.h" | 85 #include "content/public/browser/web_contents.h" |
| 85 #include "content/public/common/page_zoom.h" | 86 #include "content/public/common/page_zoom.h" |
| 86 #include "extensions/browser/extension_registry.h" | 87 #include "extensions/browser/extension_registry.h" |
| 87 #include "google_apis/gaia/gaia_auth_util.h" | 88 #include "google_apis/gaia/gaia_auth_util.h" |
| 88 #include "google_apis/gaia/google_service_auth_error.h" | 89 #include "google_apis/gaia/google_service_auth_error.h" |
| 89 #include "grit/chromium_strings.h" | 90 #include "grit/chromium_strings.h" |
| 90 #include "grit/generated_resources.h" | 91 #include "grit/generated_resources.h" |
| 91 #include "grit/locale_settings.h" | 92 #include "grit/locale_settings.h" |
| 92 #include "grit/theme_resources.h" | 93 #include "grit/theme_resources.h" |
| 94 #include "net/base/network_change_notifier.h" |
| 93 #include "third_party/skia/include/core/SkBitmap.h" | 95 #include "third_party/skia/include/core/SkBitmap.h" |
| 94 #include "ui/base/l10n/l10n_util.h" | 96 #include "ui/base/l10n/l10n_util.h" |
| 95 #include "ui/base/webui/web_ui_util.h" | 97 #include "ui/base/webui/web_ui_util.h" |
| 96 | 98 |
| 97 #if !defined(OS_CHROMEOS) | 99 #if !defined(OS_CHROMEOS) |
| 98 #include "chrome/browser/ui/webui/options/advanced_options_utils.h" | 100 #include "chrome/browser/ui/webui/options/advanced_options_utils.h" |
| 99 #endif | 101 #endif |
| 100 | 102 |
| 101 #if defined(OS_CHROMEOS) | 103 #if defined(OS_CHROMEOS) |
| 102 #include "ash/ash_switches.h" | 104 #include "ash/ash_switches.h" |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 274 { "improveBrowsingExperience", IDS_OPTIONS_IMPROVE_BROWSING_EXPERIENCE }, | 276 { "improveBrowsingExperience", IDS_OPTIONS_IMPROVE_BROWSING_EXPERIENCE }, |
| 275 { "languageAndSpellCheckSettingsButton", | 277 { "languageAndSpellCheckSettingsButton", |
| 276 IDS_OPTIONS_SETTINGS_LANGUAGE_AND_INPUT_SETTINGS }, | 278 IDS_OPTIONS_SETTINGS_LANGUAGE_AND_INPUT_SETTINGS }, |
| 277 { "linkDoctorPref", IDS_OPTIONS_LINKDOCTOR_PREF }, | 279 { "linkDoctorPref", IDS_OPTIONS_LINKDOCTOR_PREF }, |
| 278 { "manageAutofillSettings", IDS_OPTIONS_MANAGE_AUTOFILL_SETTINGS_LINK }, | 280 { "manageAutofillSettings", IDS_OPTIONS_MANAGE_AUTOFILL_SETTINGS_LINK }, |
| 279 { "manageLanguages", IDS_OPTIONS_TRANSLATE_MANAGE_LANGUAGES }, | 281 { "manageLanguages", IDS_OPTIONS_TRANSLATE_MANAGE_LANGUAGES }, |
| 280 { "managePasswords", IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK }, | 282 { "managePasswords", IDS_OPTIONS_PASSWORDS_MANAGE_PASSWORDS_LINK }, |
| 281 { "managedUserLabel", IDS_SUPERVISED_USER_AVATAR_LABEL }, | 283 { "managedUserLabel", IDS_SUPERVISED_USER_AVATAR_LABEL }, |
| 282 { "networkPredictionEnabledDescription", | 284 { "networkPredictionEnabledDescription", |
| 283 IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION }, | 285 IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION }, |
| 286 { "networkPredictionOptionsAlways", IDS_NETWORK_PREDICTION_OPTIONS_ALWAYS }, |
| 287 { "networkPredictionOptionsCheckboxDescription", |
| 288 IDS_NETWORK_PREDICTION_OPTIONS_CHECKBOX_DESCRIPTION }, |
| 289 { "networkPredictionOptionsDropdownDescription", |
| 290 IDS_NETWORK_PREDICTION_OPTIONS_DROPDOWN_DESCRIPTION }, |
| 291 { "networkPredictionOptionsNever", IDS_NETWORK_PREDICTION_OPTIONS_NEVER }, |
| 292 { "networkPredictionOptionsWifiOnly", |
| 293 IDS_NETWORK_PREDICTION_OPTIONS_WIFI_ONLY }, |
| 284 { "passwordsAndAutofillGroupName", | 294 { "passwordsAndAutofillGroupName", |
| 285 IDS_OPTIONS_PASSWORDS_AND_FORMS_GROUP_NAME }, | 295 IDS_OPTIONS_PASSWORDS_AND_FORMS_GROUP_NAME }, |
| 286 { "passwordManagerEnabled", IDS_OPTIONS_PASSWORD_MANAGER_ENABLE }, | 296 { "passwordManagerEnabled", IDS_OPTIONS_PASSWORD_MANAGER_ENABLE }, |
| 287 { "privacyClearDataButton", IDS_OPTIONS_PRIVACY_CLEAR_DATA_BUTTON }, | 297 { "privacyClearDataButton", IDS_OPTIONS_PRIVACY_CLEAR_DATA_BUTTON }, |
| 288 { "privacyContentSettingsButton", | 298 { "privacyContentSettingsButton", |
| 289 IDS_OPTIONS_PRIVACY_CONTENT_SETTINGS_BUTTON }, | 299 IDS_OPTIONS_PRIVACY_CONTENT_SETTINGS_BUTTON }, |
| 290 { "profilesCreate", IDS_PROFILES_CREATE_BUTTON_LABEL }, | 300 { "profilesCreate", IDS_PROFILES_CREATE_BUTTON_LABEL }, |
| 291 { "profilesDelete", IDS_PROFILES_DELETE_BUTTON_LABEL }, | 301 { "profilesDelete", IDS_PROFILES_DELETE_BUTTON_LABEL }, |
| 292 { "profilesDeleteSingle", IDS_PROFILES_DELETE_SINGLE_BUTTON_LABEL }, | 302 { "profilesDeleteSingle", IDS_PROFILES_DELETE_SINGLE_BUTTON_LABEL }, |
| 293 { "profilesListItemCurrent", IDS_PROFILES_LIST_ITEM_CURRENT }, | 303 { "profilesListItemCurrent", IDS_PROFILES_LIST_ITEM_CURRENT }, |
| (...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 824 auto_open_files_.Init( | 834 auto_open_files_.Init( |
| 825 prefs::kDownloadExtensionsToOpen, prefs, | 835 prefs::kDownloadExtensionsToOpen, prefs, |
| 826 base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes, | 836 base::Bind(&BrowserOptionsHandler::SetupAutoOpenFileTypes, |
| 827 base::Unretained(this))); | 837 base::Unretained(this))); |
| 828 default_zoom_level_.Init( | 838 default_zoom_level_.Init( |
| 829 prefs::kDefaultZoomLevel, prefs, | 839 prefs::kDefaultZoomLevel, prefs, |
| 830 base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector, | 840 base::Bind(&BrowserOptionsHandler::SetupPageZoomSelector, |
| 831 base::Unretained(this))); | 841 base::Unretained(this))); |
| 832 profile_pref_registrar_.Init(prefs); | 842 profile_pref_registrar_.Init(prefs); |
| 833 profile_pref_registrar_.Add( | 843 profile_pref_registrar_.Add( |
| 844 prefs::kNetworkPredictionOptions, |
| 845 base::Bind(&BrowserOptionsHandler::SetupNetworkPredictionControls, |
| 846 base::Unretained(this))); |
| 847 profile_pref_registrar_.Add( |
| 834 prefs::kWebKitDefaultFontSize, | 848 prefs::kWebKitDefaultFontSize, |
| 835 base::Bind(&BrowserOptionsHandler::SetupFontSizeSelector, | 849 base::Bind(&BrowserOptionsHandler::SetupFontSizeSelector, |
| 836 base::Unretained(this))); | 850 base::Unretained(this))); |
| 837 profile_pref_registrar_.Add( | 851 profile_pref_registrar_.Add( |
| 838 prefs::kWebKitDefaultFixedFontSize, | 852 prefs::kWebKitDefaultFixedFontSize, |
| 839 base::Bind(&BrowserOptionsHandler::SetupFontSizeSelector, | 853 base::Bind(&BrowserOptionsHandler::SetupFontSizeSelector, |
| 840 base::Unretained(this))); | 854 base::Unretained(this))); |
| 841 profile_pref_registrar_.Add( | 855 profile_pref_registrar_.Add( |
| 842 prefs::kSupervisedUsers, | 856 prefs::kSupervisedUsers, |
| 843 base::Bind(&BrowserOptionsHandler::SetupManagingSupervisedUsers, | 857 base::Bind(&BrowserOptionsHandler::SetupManagingSupervisedUsers, |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 | 901 |
| 888 void BrowserOptionsHandler::InitializePage() { | 902 void BrowserOptionsHandler::InitializePage() { |
| 889 page_initialized_ = true; | 903 page_initialized_ = true; |
| 890 | 904 |
| 891 OnTemplateURLServiceChanged(); | 905 OnTemplateURLServiceChanged(); |
| 892 | 906 |
| 893 ObserveThemeChanged(); | 907 ObserveThemeChanged(); |
| 894 OnStateChanged(); | 908 OnStateChanged(); |
| 895 UpdateDefaultBrowserState(); | 909 UpdateDefaultBrowserState(); |
| 896 | 910 |
| 911 MigrateNetworkPredictionOptions(); |
| 912 |
| 897 SetupMetricsReportingSettingVisibility(); | 913 SetupMetricsReportingSettingVisibility(); |
| 914 SetupNetworkPredictionControlsVisibility(); |
| 915 SetupNetworkPredictionControls(); |
| 898 SetupFontSizeSelector(); | 916 SetupFontSizeSelector(); |
| 899 SetupPageZoomSelector(); | 917 SetupPageZoomSelector(); |
| 900 SetupAutoOpenFileTypes(); | 918 SetupAutoOpenFileTypes(); |
| 901 SetupProxySettingsSection(); | 919 SetupProxySettingsSection(); |
| 902 SetupManageCertificatesSection(); | 920 SetupManageCertificatesSection(); |
| 903 SetupManagingSupervisedUsers(); | 921 SetupManagingSupervisedUsers(); |
| 904 SetupEasyUnlock(); | 922 SetupEasyUnlock(); |
| 905 SetupExtensionControlledIndicators(); | 923 SetupExtensionControlledIndicators(); |
| 906 | 924 |
| 907 #if defined(OS_CHROMEOS) | 925 #if defined(OS_CHROMEOS) |
| (...skipping 706 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1614 void BrowserOptionsHandler::SetupAccessibilityFeatures() { | 1632 void BrowserOptionsHandler::SetupAccessibilityFeatures() { |
| 1615 PrefService* pref_service = g_browser_process->local_state(); | 1633 PrefService* pref_service = g_browser_process->local_state(); |
| 1616 base::FundamentalValue virtual_keyboard_enabled( | 1634 base::FundamentalValue virtual_keyboard_enabled( |
| 1617 pref_service->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled)); | 1635 pref_service->GetBoolean(prefs::kAccessibilityVirtualKeyboardEnabled)); |
| 1618 web_ui()->CallJavascriptFunction( | 1636 web_ui()->CallJavascriptFunction( |
| 1619 "BrowserOptions.setVirtualKeyboardCheckboxState", | 1637 "BrowserOptions.setVirtualKeyboardCheckboxState", |
| 1620 virtual_keyboard_enabled); | 1638 virtual_keyboard_enabled); |
| 1621 } | 1639 } |
| 1622 #endif | 1640 #endif |
| 1623 | 1641 |
| 1642 void BrowserOptionsHandler::MigrateNetworkPredictionOptions() { |
| 1643 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1644 if (pref_service->GetInteger(prefs::kNetworkPredictionOptions) == |
| 1645 chrome_browser_net::NETWORK_PREDICTION_UNSET) { |
| 1646 pref_service->SetInteger( |
| 1647 prefs::kNetworkPredictionOptions, |
| 1648 pref_service->GetBoolean(prefs::kNetworkPredictionEnabled) |
| 1649 ? chrome_browser_net::NETWORK_PREDICTION_WIFI_ONLY |
| 1650 : chrome_browser_net::NETWORK_PREDICTION_NEVER); |
| 1651 } |
| 1652 } |
| 1653 |
| 1624 void BrowserOptionsHandler::SetupMetricsReportingSettingVisibility() { | 1654 void BrowserOptionsHandler::SetupMetricsReportingSettingVisibility() { |
| 1625 #if defined(GOOGLE_CHROME_BUILD) | 1655 #if defined(GOOGLE_CHROME_BUILD) |
| 1626 // Don't show the reporting setting if we are in the guest mode. | 1656 // Don't show the reporting setting if we are in the guest mode. |
| 1627 if (Profile::FromWebUI(web_ui())->IsGuestSession()) { | 1657 if (Profile::FromWebUI(web_ui())->IsGuestSession()) { |
| 1628 base::FundamentalValue visible(false); | 1658 base::FundamentalValue visible(false); |
| 1629 web_ui()->CallJavascriptFunction( | 1659 web_ui()->CallJavascriptFunction( |
| 1630 "BrowserOptions.setMetricsReportingSettingVisibility", visible); | 1660 "BrowserOptions.setMetricsReportingSettingVisibility", visible); |
| 1631 } | 1661 } |
| 1632 #endif | 1662 #endif |
| 1633 } | 1663 } |
| 1634 | 1664 |
| 1665 void BrowserOptionsHandler::SetupNetworkPredictionControlsVisibility() { |
| 1666 base::DictionaryValue dict; |
| 1667 dict.SetBoolean("onCellularNetwork", |
| 1668 net::NetworkChangeNotifier::IsConnectionCellular( |
| 1669 net::NetworkChangeNotifier::GetConnectionType())); |
| 1670 web_ui()->CallJavascriptFunction( |
| 1671 "BrowserOptions.setNetworkPredictionVisibility", dict); |
| 1672 } |
| 1673 |
| 1674 void BrowserOptionsHandler::SetupNetworkPredictionControls() { |
| 1675 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1676 const PrefService::Preference* network_prediction_options = |
| 1677 pref_service->FindPreference(prefs::kNetworkPredictionOptions); |
| 1678 |
| 1679 base::DictionaryValue dict; |
| 1680 dict.SetInteger("value", |
| 1681 pref_service->GetInteger(prefs::kNetworkPredictionOptions)); |
| 1682 |
| 1683 dict.SetBoolean("disabled", !network_prediction_options->IsUserModifiable()); |
| 1684 |
| 1685 web_ui()->CallJavascriptFunction("BrowserOptions.setNetworkPredictionValue", |
| 1686 dict); |
| 1687 } |
| 1688 |
| 1635 void BrowserOptionsHandler::SetupFontSizeSelector() { | 1689 void BrowserOptionsHandler::SetupFontSizeSelector() { |
| 1636 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 1690 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 1637 const PrefService::Preference* default_font_size = | 1691 const PrefService::Preference* default_font_size = |
| 1638 pref_service->FindPreference(prefs::kWebKitDefaultFontSize); | 1692 pref_service->FindPreference(prefs::kWebKitDefaultFontSize); |
| 1639 const PrefService::Preference* default_fixed_font_size = | 1693 const PrefService::Preference* default_fixed_font_size = |
| 1640 pref_service->FindPreference(prefs::kWebKitDefaultFixedFontSize); | 1694 pref_service->FindPreference(prefs::kWebKitDefaultFixedFontSize); |
| 1641 | 1695 |
| 1642 base::DictionaryValue dict; | 1696 base::DictionaryValue dict; |
| 1643 dict.SetInteger("value", | 1697 dict.SetInteger("value", |
| 1644 pref_service->GetInteger(prefs::kWebKitDefaultFontSize)); | 1698 pref_service->GetInteger(prefs::kWebKitDefaultFontSize)); |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1813 extension = extensions::GetExtensionOverridingProxy( | 1867 extension = extensions::GetExtensionOverridingProxy( |
| 1814 Profile::FromWebUI(web_ui())); | 1868 Profile::FromWebUI(web_ui())); |
| 1815 AppendExtensionData("proxy", extension, &extension_controlled); | 1869 AppendExtensionData("proxy", extension, &extension_controlled); |
| 1816 | 1870 |
| 1817 web_ui()->CallJavascriptFunction("BrowserOptions.toggleExtensionIndicators", | 1871 web_ui()->CallJavascriptFunction("BrowserOptions.toggleExtensionIndicators", |
| 1818 extension_controlled); | 1872 extension_controlled); |
| 1819 #endif // defined(OS_WIN) | 1873 #endif // defined(OS_WIN) |
| 1820 } | 1874 } |
| 1821 | 1875 |
| 1822 } // namespace options | 1876 } // namespace options |
| OLD | NEW |