| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/advanced_options_handler.h" | 5 #include "chrome/browser/ui/webui/options/advanced_options_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 const ListValue* args) { | 448 const ListValue* args) { |
| 449 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); | 449 std::string checked_str = UTF16ToUTF8(ExtractStringValue(args)); |
| 450 bool enabled = checked_str == "true"; | 450 bool enabled = checked_str == "true"; |
| 451 UserMetrics::RecordAction(enabled ? | 451 UserMetrics::RecordAction(enabled ? |
| 452 UserMetricsAction("Options_BackgroundMode_Enable") : | 452 UserMetricsAction("Options_BackgroundMode_Enable") : |
| 453 UserMetricsAction("Options_BackgroundMode_Disable")); | 453 UserMetricsAction("Options_BackgroundMode_Disable")); |
| 454 background_mode_enabled_.SetValue(enabled); | 454 background_mode_enabled_.SetValue(enabled); |
| 455 } | 455 } |
| 456 | 456 |
| 457 void AdvancedOptionsHandler::SetupBackgroundModeSettings() { | 457 void AdvancedOptionsHandler::SetupBackgroundModeSettings() { |
| 458 base::FundamentalValue checked(background_mode_enabled_.GetValue()); | 458 base::BooleanValue checked(background_mode_enabled_.GetValue()); |
| 459 web_ui_->CallJavascriptFunction( | 459 web_ui_->CallJavascriptFunction( |
| 460 "options.AdvancedOptions.SetBackgroundModeCheckboxState", checked); | 460 "options.AdvancedOptions.SetBackgroundModeCheckboxState", checked); |
| 461 } | 461 } |
| 462 #endif | 462 #endif |
| 463 | 463 |
| 464 #if !defined(OS_CHROMEOS) | 464 #if !defined(OS_CHROMEOS) |
| 465 void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) { | 465 void AdvancedOptionsHandler::ShowNetworkProxySettings(const ListValue* args) { |
| 466 UserMetrics::RecordAction(UserMetricsAction("Options_ShowProxySettings")); | 466 UserMetrics::RecordAction(UserMetricsAction("Options_ShowProxySettings")); |
| 467 AdvancedOptionsUtilities::ShowNetworkProxySettings(web_ui_->tab_contents()); | 467 AdvancedOptionsUtilities::ShowNetworkProxySettings(web_ui_->tab_contents()); |
| 468 } | 468 } |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 514 Profile* profile = Profile::FromWebUI(web_ui_); | 514 Profile* profile = Profile::FromWebUI(web_ui_); |
| 515 if (!CloudPrintProxyServiceFactory::GetForProfile(profile)) { | 515 if (!CloudPrintProxyServiceFactory::GetForProfile(profile)) { |
| 516 cloud_print_proxy_ui_enabled_ = false; | 516 cloud_print_proxy_ui_enabled_ = false; |
| 517 RemoveCloudPrintProxySection(); | 517 RemoveCloudPrintProxySection(); |
| 518 return; | 518 return; |
| 519 } | 519 } |
| 520 | 520 |
| 521 bool cloud_print_proxy_allowed = | 521 bool cloud_print_proxy_allowed = |
| 522 !cloud_print_proxy_enabled_.IsManaged() || | 522 !cloud_print_proxy_enabled_.IsManaged() || |
| 523 cloud_print_proxy_enabled_.GetValue(); | 523 cloud_print_proxy_enabled_.GetValue(); |
| 524 base::FundamentalValue allowed(cloud_print_proxy_allowed); | 524 base::BooleanValue allowed(cloud_print_proxy_allowed); |
| 525 | 525 |
| 526 std::string email; | 526 std::string email; |
| 527 if (profile->GetPrefs()->HasPrefPath(prefs::kCloudPrintEmail) && | 527 if (profile->GetPrefs()->HasPrefPath(prefs::kCloudPrintEmail) && |
| 528 cloud_print_proxy_allowed) { | 528 cloud_print_proxy_allowed) { |
| 529 email = profile->GetPrefs()->GetString(prefs::kCloudPrintEmail); | 529 email = profile->GetPrefs()->GetString(prefs::kCloudPrintEmail); |
| 530 } | 530 } |
| 531 base::FundamentalValue disabled(email.empty()); | 531 base::BooleanValue disabled(email.empty()); |
| 532 | 532 |
| 533 string16 label_str; | 533 string16 label_str; |
| 534 if (email.empty()) { | 534 if (email.empty()) { |
| 535 label_str = l10n_util::GetStringUTF16( | 535 label_str = l10n_util::GetStringUTF16( |
| 536 IDS_OPTIONS_CLOUD_PRINT_PROXY_DISABLED_LABEL); | 536 IDS_OPTIONS_CLOUD_PRINT_PROXY_DISABLED_LABEL); |
| 537 } else { | 537 } else { |
| 538 label_str = l10n_util::GetStringFUTF16( | 538 label_str = l10n_util::GetStringFUTF16( |
| 539 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLED_LABEL, UTF8ToUTF16(email)); | 539 IDS_OPTIONS_CLOUD_PRINT_PROXY_ENABLED_LABEL, UTF8ToUTF16(email)); |
| 540 } | 540 } |
| 541 StringValue label(label_str); | 541 StringValue label(label_str); |
| 542 | 542 |
| 543 web_ui_->CallJavascriptFunction( | 543 web_ui_->CallJavascriptFunction( |
| 544 "options.AdvancedOptions.SetupCloudPrintProxySection", | 544 "options.AdvancedOptions.SetupCloudPrintProxySection", |
| 545 disabled, label, allowed); | 545 disabled, label, allowed); |
| 546 } | 546 } |
| 547 | 547 |
| 548 void AdvancedOptionsHandler::RemoveCloudPrintProxySection() { | 548 void AdvancedOptionsHandler::RemoveCloudPrintProxySection() { |
| 549 web_ui_->CallJavascriptFunction( | 549 web_ui_->CallJavascriptFunction( |
| 550 "options.AdvancedOptions.RemoveCloudPrintProxySection"); | 550 "options.AdvancedOptions.RemoveCloudPrintProxySection"); |
| 551 } | 551 } |
| 552 | 552 |
| 553 #endif | 553 #endif |
| 554 | 554 |
| 555 void AdvancedOptionsHandler::SetupMetricsReportingCheckbox() { | 555 void AdvancedOptionsHandler::SetupMetricsReportingCheckbox() { |
| 556 #if defined(GOOGLE_CHROME_BUILD) && !defined(OS_CHROMEOS) | 556 #if defined(GOOGLE_CHROME_BUILD) && !defined(OS_CHROMEOS) |
| 557 base::FundamentalValue checked(enable_metrics_recording_.GetValue()); | 557 base::BooleanValue checked(enable_metrics_recording_.GetValue()); |
| 558 base::FundamentalValue disabled(enable_metrics_recording_.IsManaged()); | 558 base::BooleanValue disabled(enable_metrics_recording_.IsManaged()); |
| 559 web_ui_->CallJavascriptFunction( | 559 web_ui_->CallJavascriptFunction( |
| 560 "options.AdvancedOptions.SetMetricsReportingCheckboxState", checked, | 560 "options.AdvancedOptions.SetMetricsReportingCheckboxState", checked, |
| 561 disabled); | 561 disabled); |
| 562 #endif | 562 #endif |
| 563 } | 563 } |
| 564 | 564 |
| 565 void AdvancedOptionsHandler::SetupMetricsReportingSettingVisibility() { | 565 void AdvancedOptionsHandler::SetupMetricsReportingSettingVisibility() { |
| 566 #if defined(GOOGLE_CHROME_BUILD) && defined(OS_CHROMEOS) | 566 #if defined(GOOGLE_CHROME_BUILD) && defined(OS_CHROMEOS) |
| 567 // Don't show the reporting setting if we are in the guest mode. | 567 // Don't show the reporting setting if we are in the guest mode. |
| 568 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { | 568 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) { |
| 569 base::FundamentalValue visible(false); | 569 base::BooleanValue visible(false); |
| 570 web_ui_->CallJavascriptFunction( | 570 web_ui_->CallJavascriptFunction( |
| 571 "options.AdvancedOptions.SetMetricsReportingSettingVisibility", | 571 "options.AdvancedOptions.SetMetricsReportingSettingVisibility", |
| 572 visible); | 572 visible); |
| 573 } | 573 } |
| 574 #endif | 574 #endif |
| 575 } | 575 } |
| 576 | 576 |
| 577 void AdvancedOptionsHandler::SetupFontSizeLabel() { | 577 void AdvancedOptionsHandler::SetupFontSizeLabel() { |
| 578 // We're only interested in integer values, so convert to int. | 578 // We're only interested in integer values, so convert to int. |
| 579 base::FundamentalValue font_size(default_font_size_.GetValue()); | 579 base::NumberValue font_size(default_font_size_.GetValue()); |
| 580 web_ui_->CallJavascriptFunction( | 580 web_ui_->CallJavascriptFunction( |
| 581 "options.AdvancedOptions.SetFontSize", font_size); | 581 "options.AdvancedOptions.SetFontSize", font_size); |
| 582 } | 582 } |
| 583 | 583 |
| 584 void AdvancedOptionsHandler::SetupDownloadLocationPath() { | 584 void AdvancedOptionsHandler::SetupDownloadLocationPath() { |
| 585 StringValue value(default_download_location_.GetValue().value()); | 585 StringValue value(default_download_location_.GetValue().value()); |
| 586 // In case allow_file_selection_dialogs_ is false, we will not display any | 586 // In case allow_file_selection_dialogs_ is false, we will not display any |
| 587 // file-selection dialogs but show an InfoBar. That is why we can disable | 587 // file-selection dialogs but show an InfoBar. That is why we can disable |
| 588 // the DownloadLocationPath-Chooser right-away. | 588 // the DownloadLocationPath-Chooser right-away. |
| 589 base::FundamentalValue disabled(default_download_location_.IsManaged() || | 589 base::BooleanValue disabled(default_download_location_.IsManaged() || |
| 590 !allow_file_selection_dialogs_.GetValue()); | 590 !allow_file_selection_dialogs_.GetValue()); |
| 591 web_ui_->CallJavascriptFunction( | 591 web_ui_->CallJavascriptFunction( |
| 592 "options.AdvancedOptions.SetDownloadLocationPath", value, disabled); | 592 "options.AdvancedOptions.SetDownloadLocationPath", value, disabled); |
| 593 } | 593 } |
| 594 | 594 |
| 595 void AdvancedOptionsHandler::SetupPromptForDownload() { | 595 void AdvancedOptionsHandler::SetupPromptForDownload() { |
| 596 base::FundamentalValue checked(ask_for_save_location_.GetValue()); | 596 base::BooleanValue checked(ask_for_save_location_.GetValue()); |
| 597 // If either the DownloadDirectory is managed or if file-selection dialogs are | 597 // If either the DownloadDirectory is managed or if file-selection dialogs are |
| 598 // disallowed then |ask_for_save_location_| must currently be false and cannot | 598 // disallowed then |ask_for_save_location_| must currently be false and cannot |
| 599 // be changed. | 599 // be changed. |
| 600 base::FundamentalValue disabled(default_download_location_.IsManaged() || | 600 base::BooleanValue disabled(default_download_location_.IsManaged() || |
| 601 !allow_file_selection_dialogs_.GetValue()); | 601 !allow_file_selection_dialogs_.GetValue()); |
| 602 web_ui_->CallJavascriptFunction( | 602 web_ui_->CallJavascriptFunction( |
| 603 "options.AdvancedOptions.SetPromptForDownload", checked, disabled); | 603 "options.AdvancedOptions.SetPromptForDownload", checked, disabled); |
| 604 } | 604 } |
| 605 | 605 |
| 606 void AdvancedOptionsHandler::SetupAutoOpenFileTypesDisabledAttribute() { | 606 void AdvancedOptionsHandler::SetupAutoOpenFileTypesDisabledAttribute() { |
| 607 // Set the enabled state for the AutoOpenFileTypesResetToDefault button. | 607 // Set the enabled state for the AutoOpenFileTypesResetToDefault button. |
| 608 // We enable the button if the user has any auto-open file types registered. | 608 // We enable the button if the user has any auto-open file types registered. |
| 609 DownloadManager* manager = | 609 DownloadManager* manager = |
| 610 web_ui_->tab_contents()->browser_context()->GetDownloadManager(); | 610 web_ui_->tab_contents()->browser_context()->GetDownloadManager(); |
| 611 bool disabled = !(manager && manager->download_prefs()->IsAutoOpenUsed()); | 611 bool disabled = !(manager && manager->download_prefs()->IsAutoOpenUsed()); |
| 612 base::FundamentalValue value(disabled); | 612 base::BooleanValue value(disabled); |
| 613 web_ui_->CallJavascriptFunction( | 613 web_ui_->CallJavascriptFunction( |
| 614 "options.AdvancedOptions.SetAutoOpenFileTypesDisabledAttribute", value); | 614 "options.AdvancedOptions.SetAutoOpenFileTypesDisabledAttribute", value); |
| 615 } | 615 } |
| 616 | 616 |
| 617 void AdvancedOptionsHandler::SetupProxySettingsSection() { | 617 void AdvancedOptionsHandler::SetupProxySettingsSection() { |
| 618 // Disable the button if proxy settings are managed by a sysadmin or | 618 // Disable the button if proxy settings are managed by a sysadmin or |
| 619 // overridden by an extension. | 619 // overridden by an extension. |
| 620 PrefService* pref_service = Profile::FromWebUI(web_ui_)->GetPrefs(); | 620 PrefService* pref_service = Profile::FromWebUI(web_ui_)->GetPrefs(); |
| 621 const PrefService::Preference* proxy_config = | 621 const PrefService::Preference* proxy_config = |
| 622 pref_service->FindPreference(prefs::kProxy); | 622 pref_service->FindPreference(prefs::kProxy); |
| 623 bool is_extension_controlled = (proxy_config && | 623 bool is_extension_controlled = (proxy_config && |
| 624 proxy_config->IsExtensionControlled()); | 624 proxy_config->IsExtensionControlled()); |
| 625 | 625 |
| 626 base::FundamentalValue disabled(proxy_prefs_->IsManaged() || | 626 base::BooleanValue disabled(proxy_prefs_->IsManaged() || |
| 627 is_extension_controlled); | 627 is_extension_controlled); |
| 628 | 628 |
| 629 // Get the appropriate info string to describe the button. | 629 // Get the appropriate info string to describe the button. |
| 630 string16 label_str; | 630 string16 label_str; |
| 631 if (is_extension_controlled) { | 631 if (is_extension_controlled) { |
| 632 label_str = l10n_util::GetStringUTF16(IDS_OPTIONS_EXTENSION_PROXIES_LABEL); | 632 label_str = l10n_util::GetStringUTF16(IDS_OPTIONS_EXTENSION_PROXIES_LABEL); |
| 633 } else { | 633 } else { |
| 634 label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL, | 634 label_str = l10n_util::GetStringFUTF16(IDS_OPTIONS_SYSTEM_PROXIES_LABEL, |
| 635 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); | 635 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)); |
| 636 } | 636 } |
| 637 StringValue label(label_str); | 637 StringValue label(label_str); |
| 638 | 638 |
| 639 web_ui_->CallJavascriptFunction( | 639 web_ui_->CallJavascriptFunction( |
| 640 "options.AdvancedOptions.SetupProxySettingsSection", disabled, label); | 640 "options.AdvancedOptions.SetupProxySettingsSection", disabled, label); |
| 641 } | 641 } |
| 642 | 642 |
| 643 void AdvancedOptionsHandler::SetupSSLConfigSettings() { | 643 void AdvancedOptionsHandler::SetupSSLConfigSettings() { |
| 644 { | 644 { |
| 645 base::FundamentalValue checked(rev_checking_enabled_.GetValue()); | 645 base::BooleanValue checked(rev_checking_enabled_.GetValue()); |
| 646 base::FundamentalValue disabled(rev_checking_enabled_.IsManaged()); | 646 base::BooleanValue disabled(rev_checking_enabled_.IsManaged()); |
| 647 web_ui_->CallJavascriptFunction( | 647 web_ui_->CallJavascriptFunction( |
| 648 "options.AdvancedOptions.SetCheckRevocationCheckboxState", checked, | 648 "options.AdvancedOptions.SetCheckRevocationCheckboxState", checked, |
| 649 disabled); | 649 disabled); |
| 650 } | 650 } |
| 651 { | 651 { |
| 652 base::FundamentalValue checked(ssl3_enabled_.GetValue()); | 652 base::BooleanValue checked(ssl3_enabled_.GetValue()); |
| 653 base::FundamentalValue disabled(ssl3_enabled_.IsManaged()); | 653 base::BooleanValue disabled(ssl3_enabled_.IsManaged()); |
| 654 web_ui_->CallJavascriptFunction( | 654 web_ui_->CallJavascriptFunction( |
| 655 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled); | 655 "options.AdvancedOptions.SetUseSSL3CheckboxState", checked, disabled); |
| 656 } | 656 } |
| 657 { | 657 { |
| 658 base::FundamentalValue checked(tls1_enabled_.GetValue()); | 658 base::BooleanValue checked(tls1_enabled_.GetValue()); |
| 659 base::FundamentalValue disabled(tls1_enabled_.IsManaged()); | 659 base::BooleanValue disabled(tls1_enabled_.IsManaged()); |
| 660 web_ui_->CallJavascriptFunction( | 660 web_ui_->CallJavascriptFunction( |
| 661 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled); | 661 "options.AdvancedOptions.SetUseTLS1CheckboxState", checked, disabled); |
| 662 } | 662 } |
| 663 } | 663 } |
| OLD | NEW |