Index: chrome/browser/ui/webui/options/advanced_options_handler.cc |
diff --git a/chrome/browser/ui/webui/options/advanced_options_handler.cc b/chrome/browser/ui/webui/options/advanced_options_handler.cc |
deleted file mode 100644 |
index deef23da9d4cd178b0eb99673021f0734efb8833..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/webui/options/advanced_options_handler.cc |
+++ /dev/null |
@@ -1,677 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/ui/webui/options/advanced_options_handler.h" |
- |
-#include <string> |
- |
-#include "base/basictypes.h" |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
-#include "base/command_line.h" |
-#include "base/utf_string_conversions.h" |
-#include "base/values.h" |
-#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/chrome_page_zoom.h" |
-#include "chrome/browser/download/download_prefs.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" |
-#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h" |
-#include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" |
-#include "chrome/browser/printing/cloud_print/cloud_print_url.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/service/service_process_control.h" |
-#include "chrome/browser/ui/options/options_util.h" |
-#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/chrome_switches.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/common/url_constants.h" |
-#include "content/public/browser/download_manager.h" |
-#include "content/public/browser/notification_details.h" |
-#include "content/public/browser/notification_types.h" |
-#include "content/public/browser/user_metrics.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/browser/web_contents_view.h" |
-#include "content/public/common/page_zoom.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
-#include "grit/locale_settings.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-#if !defined(OS_CHROMEOS) |
-#include "chrome/browser/printing/cloud_print/cloud_print_setup_handler.h" |
-#include "chrome/browser/ui/webui/options/advanced_options_utils.h" |
-#endif |
- |
-using content::DownloadManager; |
-using content::OpenURLParams; |
-using content::Referrer; |
-using content::UserMetricsAction; |
- |
-AdvancedOptionsHandler::AdvancedOptionsHandler() { |
- |
-#if(!defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN)) |
- // On Windows, we need the PDF plugin which is only guaranteed to exist on |
- // Google Chrome builds. Use a command-line switch for Windows non-Google |
- // Chrome builds. |
- cloud_print_connector_ui_enabled_ = |
- CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kEnableCloudPrintProxy); |
-#elif(!defined(OS_CHROMEOS)) |
- // Always enabled for Mac, Linux and Google Chrome Windows builds. |
- // Never enabled for Chrome OS, we don't even need to indicate it. |
- cloud_print_connector_ui_enabled_ = true; |
-#endif |
-} |
- |
-AdvancedOptionsHandler::~AdvancedOptionsHandler() { |
- // There may be pending file dialogs, we need to tell them that we've gone |
- // away so they don't try and call back to us. |
- if (select_folder_dialog_.get()) |
- select_folder_dialog_->ListenerDestroyed(); |
-} |
- |
-void AdvancedOptionsHandler::GetLocalizedValues( |
- DictionaryValue* localized_strings) { |
- DCHECK(localized_strings); |
- |
- static OptionsStringResource resources[] = { |
- { "downloadLocationGroupName", |
- IDS_OPTIONS_DOWNLOADLOCATION_GROUP_NAME }, |
- { "downloadLocationChangeButton", |
- IDS_OPTIONS_DOWNLOADLOCATION_CHANGE_BUTTON }, |
- { "downloadLocationBrowseTitle", |
- IDS_OPTIONS_DOWNLOADLOCATION_BROWSE_TITLE }, |
- { "downloadLocationBrowseWindowTitle", |
- IDS_OPTIONS_DOWNLOADLOCATION_BROWSE_WINDOW_TITLE }, |
- { "downloadLocationAskForSaveLocation", |
- IDS_OPTIONS_DOWNLOADLOCATION_ASKFORSAVELOCATION }, |
- { "autoOpenFileTypesInfo", |
- IDS_OPTIONS_OPEN_FILE_TYPES_AUTOMATICALLY }, |
- { "autoOpenFileTypesResetToDefault", |
- IDS_OPTIONS_AUTOOPENFILETYPES_RESETTODEFAULT }, |
- { "translateEnableTranslate", |
- IDS_OPTIONS_TRANSLATE_ENABLE_TRANSLATE }, |
- { "certificatesManageButton", |
- IDS_OPTIONS_CERTIFICATES_MANAGE_BUTTON }, |
- { "proxiesLabel", |
- IDS_OPTIONS_PROXIES_LABEL }, |
-#if !defined(OS_CHROMEOS) |
- { "proxiesConfigureButton", |
- IDS_OPTIONS_PROXIES_CONFIGURE_BUTTON }, |
-#endif |
- { "safeBrowsingEnableProtection", |
- IDS_OPTIONS_SAFEBROWSING_ENABLEPROTECTION }, |
- { "sslGroupDescription", |
- IDS_OPTIONS_SSL_GROUP_DESCRIPTION }, |
- { "sslCheckRevocation", |
- IDS_OPTIONS_SSL_CHECKREVOCATION }, |
- { "networkPredictionEnabledDescription", |
- IDS_NETWORK_PREDICTION_ENABLED_DESCRIPTION }, |
- { "privacyContentSettingsButton", |
- IDS_OPTIONS_PRIVACY_CONTENT_SETTINGS_BUTTON }, |
- { "privacyClearDataButton", |
- IDS_OPTIONS_PRIVACY_CLEAR_DATA_BUTTON }, |
- { "linkDoctorPref", |
- IDS_OPTIONS_LINKDOCTOR_PREF }, |
- { "spellingPref", |
- IDS_OPTIONS_SPELLING_PREF }, |
- { "suggestPref", |
- IDS_OPTIONS_SUGGEST_PREF }, |
- { "tabsToLinksPref", |
- IDS_OPTIONS_TABS_TO_LINKS_PREF }, |
- { "fontSettingsInfo", |
- IDS_OPTIONS_FONTSETTINGS_INFO }, |
- { "defaultZoomFactorLabel", |
- IDS_OPTIONS_DEFAULT_ZOOM_LEVEL_LABEL }, |
- { "defaultFontSizeLabel", |
- IDS_OPTIONS_DEFAULT_FONT_SIZE_LABEL }, |
- { "fontSizeLabelVerySmall", |
- IDS_OPTIONS_FONT_SIZE_LABEL_VERY_SMALL }, |
- { "fontSizeLabelSmall", |
- IDS_OPTIONS_FONT_SIZE_LABEL_SMALL }, |
- { "fontSizeLabelMedium", |
- IDS_OPTIONS_FONT_SIZE_LABEL_MEDIUM }, |
- { "fontSizeLabelLarge", |
- IDS_OPTIONS_FONT_SIZE_LABEL_LARGE }, |
- { "fontSizeLabelVeryLarge", |
- IDS_OPTIONS_FONT_SIZE_LABEL_VERY_LARGE }, |
- { "fontSizeLabelCustom", |
- IDS_OPTIONS_FONT_SIZE_LABEL_CUSTOM }, |
- { "fontSettingsCustomizeFontsButton", |
- IDS_OPTIONS_FONTSETTINGS_CUSTOMIZE_FONTS_BUTTON }, |
- { "languageAndSpellCheckSettingsButton", |
- IDS_OPTIONS_LANGUAGE_AND_SPELLCHECK_BUTTON }, |
- { "advancedSectionTitlePrivacy", |
- IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY }, |
- { "advancedSectionTitleContent", |
- IDS_OPTIONS_ADVANCED_SECTION_TITLE_CONTENT }, |
- { "advancedSectionTitleSecurity", |
- IDS_OPTIONS_ADVANCED_SECTION_TITLE_SECURITY }, |
- { "advancedSectionTitleNetwork", |
- IDS_OPTIONS_ADVANCED_SECTION_TITLE_NETWORK }, |
- { "advancedSectionTitleTranslate", |
- IDS_OPTIONS_ADVANCED_SECTION_TITLE_TRANSLATE }, |
- { "translateEnableTranslate", |
- IDS_OPTIONS_TRANSLATE_ENABLE_TRANSLATE }, |
- { "enableLogging", |
- IDS_OPTIONS_ENABLE_LOGGING }, |
- { "improveBrowsingExperience", |
- IDS_OPTIONS_IMPROVE_BROWSING_EXPERIENCE }, |
- { "disableWebServices", |
- IDS_OPTIONS_DISABLE_WEB_SERVICES }, |
- { "advancedSectionTitleCloudPrint", |
- IDS_GOOGLE_CLOUD_PRINT }, |
-#if !defined(OS_CHROMEOS) |
- { "cloudPrintConnectorEnabledManageButton", |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLED_MANAGE_BUTTON}, |
- { "cloudPrintConnectorEnablingButton", |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLING_BUTTON }, |
-#endif |
-#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
- { "advancedSectionTitleBackground", |
- IDS_OPTIONS_ADVANCED_SECTION_TITLE_BACKGROUND }, |
- { "backgroundModeCheckbox", |
- IDS_OPTIONS_BACKGROUND_ENABLE_BACKGROUND_MODE }, |
-#endif |
- }; |
- |
- RegisterStrings(localized_strings, resources, arraysize(resources)); |
- RegisterCloudPrintStrings(localized_strings); |
- RegisterTitle(localized_strings, "advancedPage", |
- IDS_OPTIONS_ADVANCED_TAB_LABEL); |
- |
- localized_strings->SetString("privacyLearnMoreURL", |
- chrome::kPrivacyLearnMoreURL); |
- |
-#if defined(OS_CHROMEOS) |
- localized_strings->SetString("cloudPrintLearnMoreURL", |
- chrome::kCloudPrintLearnMoreURL); |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::RegisterCloudPrintStrings( |
- DictionaryValue* localized_strings) { |
-#if defined(OS_CHROMEOS) |
- localized_strings->SetString("cloudPrintChromeosOptionLabel", |
- l10n_util::GetStringFUTF16( |
- IDS_CLOUD_PRINT_CHROMEOS_OPTION_LABEL, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT))); |
- localized_strings->SetString("cloudPrintChromeosOptionButton", |
- l10n_util::GetStringFUTF16( |
- IDS_CLOUD_PRINT_CHROMEOS_OPTION_BUTTON, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT))); |
-#else |
- localized_strings->SetString("cloudPrintConnectorDisabledLabel", |
- l10n_util::GetStringFUTF16( |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_DISABLED_LABEL, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT))); |
- localized_strings->SetString("cloudPrintConnectorDisabledButton", |
- l10n_util::GetStringFUTF16( |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_DISABLED_BUTTON, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT))); |
- localized_strings->SetString("cloudPrintConnectorEnabledButton", |
- l10n_util::GetStringFUTF16( |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLED_BUTTON, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT))); |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::InitializeHandler() { |
- DCHECK(web_ui()); |
- SetupMetricsReportingCheckbox(); |
- SetupMetricsReportingSettingVisibility(); |
- SetupFontSizeSelector(); |
- SetupPageZoomSelector(); |
- SetupAutoOpenFileTypesDisabledAttribute(); |
- SetupProxySettingsSection(); |
- SetupSSLConfigSettings(); |
-#if !defined(OS_CHROMEOS) |
- if (cloud_print_connector_ui_enabled_) { |
- SetupCloudPrintConnectorSection(); |
- RefreshCloudPrintStatusFromService(); |
- } else { |
- RemoveCloudPrintConnectorSection(); |
- } |
-#endif |
-#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
- SetupBackgroundModeSettings(); |
-#endif |
- |
-} |
- |
-void AdvancedOptionsHandler::RegisterMessages() { |
- // Register for preferences that we need to observe manually. These have |
- // special behaviors that aren't handled by the standard prefs UI. |
- PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
-#if !defined(OS_CHROMEOS) |
- enable_metrics_recording_.Init(prefs::kMetricsReportingEnabled, |
- g_browser_process->local_state(), this); |
- cloud_print_connector_email_.Init(prefs::kCloudPrintEmail, prefs, this); |
- cloud_print_connector_enabled_.Init(prefs::kCloudPrintProxyEnabled, |
- prefs, |
- this); |
-#endif |
- |
- rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, |
- g_browser_process->local_state(), this); |
- |
-#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
- background_mode_enabled_.Init(prefs::kBackgroundModeEnabled, |
- g_browser_process->local_state(), |
- this); |
-#endif |
- |
- auto_open_files_.Init(prefs::kDownloadExtensionsToOpen, prefs, this); |
- default_font_size_.Init(prefs::kWebKitGlobalDefaultFontSize, prefs, this); |
- default_zoom_level_.Init(prefs::kDefaultZoomLevel, prefs, this); |
-#if !defined(OS_CHROMEOS) |
- proxy_prefs_.reset( |
- PrefSetObserver::CreateProxyPrefSetObserver(prefs, this)); |
-#endif // !defined(OS_CHROMEOS) |
- |
- // Setup handlers specific to this panel. |
- web_ui()->RegisterMessageCallback("selectDownloadLocation", |
- base::Bind(&AdvancedOptionsHandler::HandleSelectDownloadLocation, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("autoOpenFileTypesAction", |
- base::Bind(&AdvancedOptionsHandler::HandleAutoOpenButton, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("defaultFontSizeAction", |
- base::Bind(&AdvancedOptionsHandler::HandleDefaultFontSize, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("defaultZoomFactorAction", |
- base::Bind(&AdvancedOptionsHandler::HandleDefaultZoomFactor, |
- base::Unretained(this))); |
-#if !defined(OS_CHROMEOS) |
- web_ui()->RegisterMessageCallback("metricsReportingCheckboxAction", |
- base::Bind(&AdvancedOptionsHandler::HandleMetricsReportingCheckbox, |
- base::Unretained(this))); |
-#endif |
-#if !defined(USE_NSS) && !defined(USE_OPENSSL) |
- web_ui()->RegisterMessageCallback("showManageSSLCertificates", |
- base::Bind(&AdvancedOptionsHandler::ShowManageSSLCertificates, |
- base::Unretained(this))); |
-#endif |
- web_ui()->RegisterMessageCallback("showCloudPrintManagePage", |
- base::Bind(&AdvancedOptionsHandler::ShowCloudPrintManagePage, |
- base::Unretained(this))); |
-#if !defined(OS_CHROMEOS) |
- if (cloud_print_connector_ui_enabled_) { |
- web_ui()->RegisterMessageCallback("showCloudPrintSetupDialog", |
- base::Bind(&AdvancedOptionsHandler::ShowCloudPrintSetupDialog, |
- base::Unretained(this))); |
- web_ui()->RegisterMessageCallback("disableCloudPrintConnector", |
- base::Bind(&AdvancedOptionsHandler::HandleDisableCloudPrintConnector, |
- base::Unretained(this))); |
- } |
- web_ui()->RegisterMessageCallback("showNetworkProxySettings", |
- base::Bind(&AdvancedOptionsHandler::ShowNetworkProxySettings, |
- base::Unretained(this))); |
-#endif |
- web_ui()->RegisterMessageCallback("checkRevocationCheckboxAction", |
- base::Bind(&AdvancedOptionsHandler::HandleCheckRevocationCheckbox, |
- base::Unretained(this))); |
-#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
- web_ui()->RegisterMessageCallback("backgroundModeAction", |
- base::Bind(&AdvancedOptionsHandler::HandleBackgroundModeCheckbox, |
- base::Unretained(this))); |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::Observe( |
- int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) { |
- if (type == chrome::NOTIFICATION_PREF_CHANGED) { |
- std::string* pref_name = content::Details<std::string>(details).ptr(); |
- if (*pref_name == prefs::kDownloadExtensionsToOpen) { |
- SetupAutoOpenFileTypesDisabledAttribute(); |
-#if !defined(OS_CHROMEOS) |
- } else if (proxy_prefs_->IsObserved(*pref_name)) { |
- SetupProxySettingsSection(); |
-#endif // !defined(OS_CHROMEOS) |
- } else if ((*pref_name == prefs::kCloudPrintEmail) || |
- (*pref_name == prefs::kCloudPrintProxyEnabled)) { |
-#if !defined(OS_CHROMEOS) |
- if (cloud_print_connector_ui_enabled_) |
- SetupCloudPrintConnectorSection(); |
-#endif |
- } else if (*pref_name == prefs::kWebKitGlobalDefaultFontSize) { |
- SetupFontSizeSelector(); |
- } else if (*pref_name == prefs::kDefaultZoomLevel) { |
- SetupPageZoomSelector(); |
-#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
- } else if (*pref_name == prefs::kBackgroundModeEnabled) { |
- SetupBackgroundModeSettings(); |
-#endif |
- } |
- } |
-} |
- |
-void AdvancedOptionsHandler::HandleSelectDownloadLocation( |
- const ListValue* args) { |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- select_folder_dialog_ = SelectFileDialog::Create(this); |
- select_folder_dialog_->SelectFile( |
- SelectFileDialog::SELECT_FOLDER, |
- l10n_util::GetStringUTF16(IDS_OPTIONS_DOWNLOADLOCATION_BROWSE_TITLE), |
- pref_service->GetFilePath(prefs::kDownloadDefaultDirectory), |
- NULL, 0, FILE_PATH_LITERAL(""), web_ui()->GetWebContents(), |
- web_ui()->GetWebContents()->GetView()->GetTopLevelNativeWindow(), NULL); |
-} |
- |
-void AdvancedOptionsHandler::FileSelected(const FilePath& path, int index, |
- void* params) { |
- content::RecordAction(UserMetricsAction("Options_SetDownloadDirectory")); |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- pref_service->SetFilePath(prefs::kDownloadDefaultDirectory, path); |
-} |
- |
-void AdvancedOptionsHandler::OnCloudPrintSetupClosed() { |
-#if !defined(OS_CHROMEOS) |
- if (cloud_print_connector_ui_enabled_) |
- SetupCloudPrintConnectorSection(); |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::HandleAutoOpenButton(const ListValue* args) { |
- content::RecordAction(UserMetricsAction("Options_ResetAutoOpenFiles")); |
- DownloadManager* manager = |
- web_ui()->GetWebContents()->GetBrowserContext()->GetDownloadManager(); |
- if (manager) |
- DownloadPrefs::FromDownloadManager(manager)->ResetAutoOpen(); |
-} |
- |
-void AdvancedOptionsHandler::HandleMetricsReportingCheckbox( |
- const ListValue* args) { |
-#if defined(GOOGLE_CHROME_BUILD) && !defined(OS_CHROMEOS) |
- std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
- bool enabled = checked_str == "true"; |
- content::RecordAction( |
- enabled ? |
- UserMetricsAction("Options_MetricsReportingCheckbox_Enable") : |
- UserMetricsAction("Options_MetricsReportingCheckbox_Disable")); |
- bool is_enabled = OptionsUtil::ResolveMetricsReportingEnabled(enabled); |
- enable_metrics_recording_.SetValue(is_enabled); |
- SetupMetricsReportingCheckbox(); |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::HandleDefaultFontSize(const ListValue* args) { |
- int font_size; |
- if (ExtractIntegerValue(args, &font_size)) { |
- if (font_size > 0) { |
- default_font_size_.SetValue(font_size); |
- SetupFontSizeSelector(); |
- } |
- } |
-} |
- |
-void AdvancedOptionsHandler::HandleDefaultZoomFactor(const ListValue* args) { |
- double zoom_factor; |
- if (ExtractDoubleValue(args, &zoom_factor)) { |
- default_zoom_level_.SetValue( |
- WebKit::WebView::zoomFactorToZoomLevel(zoom_factor)); |
- } |
-} |
- |
-void AdvancedOptionsHandler::HandleCheckRevocationCheckbox( |
- const ListValue* args) { |
- std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
- bool enabled = checked_str == "true"; |
- content::RecordAction( |
- enabled ? |
- UserMetricsAction("Options_CheckCertRevocation_Enable") : |
- UserMetricsAction("Options_CheckCertRevocation_Disable")); |
- rev_checking_enabled_.SetValue(enabled); |
-} |
- |
-#if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) |
-void AdvancedOptionsHandler::HandleBackgroundModeCheckbox( |
- const ListValue* args) { |
- std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
- bool enabled = checked_str == "true"; |
- content::RecordAction( |
- enabled ? |
- UserMetricsAction("Options_BackgroundMode_Enable") : |
- UserMetricsAction("Options_BackgroundMode_Disable")); |
- background_mode_enabled_.SetValue(enabled); |
-} |
- |
-void AdvancedOptionsHandler::SetupBackgroundModeSettings() { |
- base::FundamentalValue checked(background_mode_enabled_.GetValue()); |
- PrefService* service = g_browser_process->local_state(); |
- DCHECK(service); |
- const PrefService::Preference* pref = |
- service->FindPreference(prefs::kBackgroundModeEnabled); |
- DCHECK(pref); |
- base::FundamentalValue disabled(!pref->IsUserModifiable()); |
- std::string controlled_by_str; |
- if (pref->IsManaged()) |
- controlled_by_str = "policy"; |
- else if (pref->IsExtensionControlled()) |
- controlled_by_str = "extension"; |
- else if (pref->IsRecommended()) |
- controlled_by_str = "recommended"; |
- base::StringValue controlled_by(controlled_by_str); |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetBackgroundModeCheckboxState", |
- checked, |
- disabled, |
- controlled_by); |
-} |
-#endif |
- |
-#if !defined(OS_CHROMEOS) |
-void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) { |
- content::RecordAction(UserMetricsAction("Options_ShowProxySettings")); |
- AdvancedOptionsUtilities::ShowNetworkProxySettings( |
- web_ui()->GetWebContents()); |
-} |
-#endif |
- |
-#if !defined(USE_NSS) && !defined(USE_OPENSSL) |
-void AdvancedOptionsHandler::ShowManageSSLCertificates(const ListValue* args) { |
- content::RecordAction(UserMetricsAction("Options_ManageSSLCertificates")); |
- AdvancedOptionsUtilities::ShowManageSSLCertificates( |
- web_ui()->GetWebContents()); |
-} |
-#endif |
- |
-void AdvancedOptionsHandler::ShowCloudPrintManagePage(const ListValue* args) { |
- content::RecordAction(UserMetricsAction("Options_ManageCloudPrinters")); |
- // Open a new tab in the current window for the management page. |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- OpenURLParams params( |
- CloudPrintURL(profile).GetCloudPrintServiceManageURL(), Referrer(), |
- NEW_FOREGROUND_TAB, content::PAGE_TRANSITION_LINK, false); |
- web_ui()->GetWebContents()->OpenURL(params); |
-} |
- |
-#if !defined(OS_CHROMEOS) |
-void AdvancedOptionsHandler::ShowCloudPrintSetupDialog(const ListValue* args) { |
- content::RecordAction(UserMetricsAction("Options_EnableCloudPrintProxy")); |
- // Open the connector enable page in the current tab. |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- OpenURLParams params( |
- CloudPrintURL(profile).GetCloudPrintServiceEnableURL( |
- CloudPrintProxyServiceFactory::GetForProfile(profile)->proxy_id()), |
- Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_LINK, false); |
- web_ui()->GetWebContents()->OpenURL(params); |
-} |
- |
-void AdvancedOptionsHandler::HandleDisableCloudPrintConnector( |
- const ListValue* args) { |
- content::RecordAction( |
- UserMetricsAction("Options_DisableCloudPrintProxy")); |
- CloudPrintProxyServiceFactory::GetForProfile(Profile::FromWebUI(web_ui()))-> |
- DisableForUser(); |
-} |
- |
-void AdvancedOptionsHandler::RefreshCloudPrintStatusFromService() { |
- if (cloud_print_connector_ui_enabled_) |
- CloudPrintProxyServiceFactory::GetForProfile(Profile::FromWebUI(web_ui()))-> |
- RefreshStatusFromService(); |
-} |
- |
-void AdvancedOptionsHandler::SetupCloudPrintConnectorSection() { |
- Profile* profile = Profile::FromWebUI(web_ui()); |
- if (!CloudPrintProxyServiceFactory::GetForProfile(profile)) { |
- cloud_print_connector_ui_enabled_ = false; |
- RemoveCloudPrintConnectorSection(); |
- return; |
- } |
- |
- bool cloud_print_connector_allowed = |
- !cloud_print_connector_enabled_.IsManaged() || |
- cloud_print_connector_enabled_.GetValue(); |
- base::FundamentalValue allowed(cloud_print_connector_allowed); |
- |
- std::string email; |
- if (profile->GetPrefs()->HasPrefPath(prefs::kCloudPrintEmail) && |
- cloud_print_connector_allowed) { |
- email = profile->GetPrefs()->GetString(prefs::kCloudPrintEmail); |
- } |
- base::FundamentalValue disabled(email.empty()); |
- |
- string16 label_str; |
- if (email.empty()) { |
- label_str = l10n_util::GetStringFUTF16( |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_DISABLED_LABEL, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT)); |
- } else { |
- label_str = l10n_util::GetStringFUTF16( |
- IDS_OPTIONS_CLOUD_PRINT_CONNECTOR_ENABLED_LABEL, |
- l10n_util::GetStringUTF16(IDS_GOOGLE_CLOUD_PRINT), |
- UTF8ToUTF16(email)); |
- } |
- StringValue label(label_str); |
- |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetupCloudPrintConnectorSection", |
- disabled, label, allowed); |
-} |
- |
-void AdvancedOptionsHandler::RemoveCloudPrintConnectorSection() { |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.RemoveCloudPrintConnectorSection"); |
-} |
- |
-#endif |
- |
-void AdvancedOptionsHandler::SetupMetricsReportingCheckbox() { |
-#if defined(GOOGLE_CHROME_BUILD) && !defined(OS_CHROMEOS) |
- base::FundamentalValue checked(enable_metrics_recording_.GetValue()); |
- base::FundamentalValue disabled(enable_metrics_recording_.IsManaged()); |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetMetricsReportingCheckboxState", checked, |
- disabled); |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::SetupMetricsReportingSettingVisibility() { |
-#if defined(GOOGLE_CHROME_BUILD) && defined(OS_CHROMEOS) |
- // Don't show the reporting setting if we are in the guest mode. |
- if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { |
- base::FundamentalValue visible(false); |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetMetricsReportingSettingVisibility", |
- visible); |
- } |
-#endif |
-} |
- |
-void AdvancedOptionsHandler::SetupFontSizeSelector() { |
- // We're only interested in integer values, so convert to int. |
- base::FundamentalValue font_size(default_font_size_.GetValue()); |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetFontSize", font_size); |
-} |
- |
-void AdvancedOptionsHandler::SetupPageZoomSelector() { |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- double default_zoom_level = pref_service->GetDouble(prefs::kDefaultZoomLevel); |
- double default_zoom_factor = |
- WebKit::WebView::zoomLevelToZoomFactor(default_zoom_level); |
- |
- // Generate a vector of zoom factors from an array of known presets along with |
- // the default factor added if necessary. |
- std::vector<double> zoom_factors = |
- chrome_page_zoom::PresetZoomFactors(default_zoom_factor); |
- |
- // Iterate through the zoom factors and and build the contents of the |
- // selector that will be sent to the javascript handler. |
- // Each item in the list has the following parameters: |
- // 1. Title (string). |
- // 2. Value (double). |
- // 3. Is selected? (bool). |
- ListValue zoom_factors_value; |
- for (std::vector<double>::const_iterator i = zoom_factors.begin(); |
- i != zoom_factors.end(); ++i) { |
- ListValue* option = new ListValue(); |
- double factor = *i; |
- int percent = static_cast<int>(factor * 100 + 0.5); |
- option->Append(Value::CreateStringValue( |
- l10n_util::GetStringFUTF16Int(IDS_ZOOM_PERCENT, percent))); |
- option->Append(Value::CreateDoubleValue(factor)); |
- bool selected = content::ZoomValuesEqual(factor, default_zoom_factor); |
- option->Append(Value::CreateBooleanValue(selected)); |
- zoom_factors_value.Append(option); |
- } |
- |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetupPageZoomSelector", zoom_factors_value); |
-} |
- |
-void AdvancedOptionsHandler::SetupAutoOpenFileTypesDisabledAttribute() { |
- // Set the enabled state for the AutoOpenFileTypesResetToDefault button. |
- // We enable the button if the user has any auto-open file types registered. |
- DownloadManager* manager = |
- web_ui()->GetWebContents()->GetBrowserContext()->GetDownloadManager(); |
- bool disabled = !(manager && |
- DownloadPrefs::FromDownloadManager(manager)->IsAutoOpenUsed()); |
- base::FundamentalValue value(disabled); |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetAutoOpenFileTypesDisabledAttribute", value); |
-} |
- |
-void AdvancedOptionsHandler::SetupProxySettingsSection() { |
-#if !defined(OS_CHROMEOS) |
- // Disable the button if proxy settings are managed by a sysadmin or |
- // overridden by an extension. |
- PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
- const PrefService::Preference* proxy_config = |
- pref_service->FindPreference(prefs::kProxy); |
- bool is_extension_controlled = (proxy_config && |
- proxy_config->IsExtensionControlled()); |
- |
- base::FundamentalValue disabled(proxy_prefs_->IsManaged() || |
- is_extension_controlled); |
- |
- // Get the appropriate info string to describe the button. |
- string16 label_str; |
- if (is_extension_controlled) { |
- label_str = l10n_util::GetStringUTF16(IDS_OPTIONS_EXTENSION_PROXIES_LABEL); |
- } else { |
- label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL, |
- l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); |
- } |
- StringValue label(label_str); |
- |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetupProxySettingsSection", disabled, label); |
-#endif // !defined(OS_CHROMEOS) |
-} |
- |
-void AdvancedOptionsHandler::SetupSSLConfigSettings() { |
- { |
- base::FundamentalValue checked(rev_checking_enabled_.GetValue()); |
- base::FundamentalValue disabled(rev_checking_enabled_.IsManaged()); |
- web_ui()->CallJavascriptFunction( |
- "options.AdvancedOptions.SetCheckRevocationCheckboxState", checked, |
- disabled); |
- } |
-} |