| Index: chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
|
| diff --git a/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc b/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
|
| index cae4b373c2e2a126c242fad5ba366b506171ff7e..9979a8d085dbfaaac2e3540574a0d994a6228dec 100644
|
| --- a/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
|
| +++ b/chrome/browser/gtk/clear_browsing_data_dialog_gtk.cc
|
| @@ -7,6 +7,7 @@
|
| #include <string>
|
|
|
| #include "app/l10n_util.h"
|
| +#include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browsing_data_remover.h"
|
| #include "chrome/browser/gtk/accessible_widget_helper_gtk.h"
|
| #include "chrome/browser/gtk/browser_window_gtk.h"
|
| @@ -15,6 +16,7 @@
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/browser.h"
|
| +#include "chrome/common/notification_details.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "grit/generated_resources.h"
|
| #include "grit/locale_settings.h"
|
| @@ -36,6 +38,10 @@ void ClearBrowsingDataDialogGtk::Show(GtkWindow* parent, Profile* profile) {
|
| ClearBrowsingDataDialogGtk::ClearBrowsingDataDialogGtk(GtkWindow* parent,
|
| Profile* profile) :
|
| profile_(profile), remover_(NULL) {
|
| + del_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled,
|
| + g_browser_process->local_state(),
|
| + this);
|
| +
|
| // Build the dialog.
|
| std::string dialog_name = l10n_util::GetStringUTF8(
|
| IDS_CLEAR_BROWSING_DATA_TITLE);
|
| @@ -113,6 +119,15 @@ ClearBrowsingDataDialogGtk::ClearBrowsingDataDialogGtk(GtkWindow* parent,
|
| g_signal_connect(del_passwords_checkbox_, "toggled",
|
| G_CALLBACK(OnDialogWidgetClickedThunk), this);
|
|
|
| + // LSO data checkbox.
|
| + del_lso_data_checkbox_ = gtk_check_button_new_with_label(
|
| + l10n_util::GetStringUTF8(IDS_DEL_FLASH_DATA_CHKBOX).c_str());
|
| + gtk_box_pack_start(GTK_BOX(vbox), del_lso_data_checkbox_, FALSE, FALSE, 0);
|
| + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(del_lso_data_checkbox_),
|
| + profile_->GetPrefs()->GetBoolean(prefs::kDeleteLSOData));
|
| + g_signal_connect(del_lso_data_checkbox_, "toggled",
|
| + G_CALLBACK(OnDialogWidgetClickedThunk), this);
|
| +
|
| // Form data checkbox.
|
| del_form_data_checkbox_ = gtk_check_button_new_with_label(
|
| l10n_util::GetStringUTF8(IDS_DEL_FORM_DATA_CHKBOX).c_str());
|
| @@ -199,6 +214,10 @@ void ClearBrowsingDataDialogGtk::OnDialogResponse(GtkWidget* widget,
|
| IsChecked(del_cookies_checkbox_));
|
| prefs->SetBoolean(prefs::kDeletePasswords,
|
| IsChecked(del_passwords_checkbox_));
|
| + if (del_lso_data_enabled_.GetValue()) {
|
| + prefs->SetBoolean(prefs::kDeleteLSOData,
|
| + IsChecked(del_lso_data_checkbox_));
|
| + }
|
| prefs->SetBoolean(prefs::kDeleteFormData,
|
| IsChecked(del_form_data_checkbox_));
|
| prefs->SetInteger(prefs::kDeleteTimePeriod,
|
| @@ -231,7 +250,26 @@ void ClearBrowsingDataDialogGtk::OnFlashLinkClicked(GtkWidget* button) {
|
| browser->window()->Show();
|
| }
|
|
|
| +void ClearBrowsingDataDialogGtk::Observe(NotificationType type,
|
| + const NotificationSource& source,
|
| + const NotificationDetails& details) {
|
| + if (type == NotificationType::PREF_CHANGED) {
|
| + const std::string& pref = *(Details<std::string>(details).ptr());
|
| + if (pref == prefs::kClearPluginLSODataEnabled) {
|
| + UpdateDialogButtons();
|
| + }
|
| + }
|
| +}
|
| +
|
| void ClearBrowsingDataDialogGtk::UpdateDialogButtons() {
|
| + bool enabled = del_lso_data_enabled_.GetValue();
|
| + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(del_lso_data_checkbox_),
|
| + enabled && profile_->GetPrefs()->GetBoolean(prefs::kDeleteLSOData));
|
| + gtk_widget_set_sensitive(del_lso_data_checkbox_, enabled);
|
| + gtk_widget_set_tooltip_text(
|
| + del_lso_data_checkbox_,
|
| + enabled ? NULL
|
| + : l10n_util::GetStringUTF8(IDS_LSO_CLEAR_MESSAGE).c_str());
|
| gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog_), GTK_RESPONSE_ACCEPT,
|
| GetCheckedItems() != 0);
|
| }
|
| @@ -246,6 +284,8 @@ int ClearBrowsingDataDialogGtk::GetCheckedItems() {
|
| items |= BrowsingDataRemover::REMOVE_COOKIES;
|
| if (IsChecked(del_passwords_checkbox_))
|
| items |= BrowsingDataRemover::REMOVE_PASSWORDS;
|
| + if (IsChecked(del_lso_data_checkbox_))
|
| + items |= BrowsingDataRemover::REMOVE_LSO_DATA;
|
| if (IsChecked(del_form_data_checkbox_))
|
| items |= BrowsingDataRemover::REMOVE_FORM_DATA;
|
| if (IsChecked(del_cache_checkbox_))
|
|
|