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

Unified Diff: chrome/browser/ui/views/clear_browsing_data.cc

Issue 5964008: Add UI to the Clear Browsing Data dialog to remove Flash LSO data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 9 years, 12 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/views/clear_browsing_data.h ('k') | chrome/browser/ui/views/clear_browsing_data_view.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/clear_browsing_data.cc
diff --git a/chrome/browser/ui/views/clear_browsing_data.cc b/chrome/browser/ui/views/clear_browsing_data.cc
index 0f9a331d10567c6ab87889d4bce26910bec0d64f..dd2e61d5518f7c4934ecbee2ebe6593a1ab4509b 100644
--- a/chrome/browser/ui/views/clear_browsing_data.cc
+++ b/chrome/browser/ui/views/clear_browsing_data.cc
@@ -7,14 +7,13 @@
#include "app/l10n_util.h"
#include "base/string16.h"
#include "base/utf_string_conversions.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search_engines/template_url_model.h"
#include "chrome/browser/ui/browser.h"
-#if defined(OS_WIN)
-#include "chrome/browser/views/clear_browsing_data_view.h"
-#endif
+#include "chrome/common/notification_details.h"
#include "chrome/common/pref_names.h"
#include "gfx/insets.h"
#include "grit/generated_resources.h"
@@ -31,6 +30,10 @@
#include "views/window/dialog_client_view.h"
#include "views/window/window.h"
+#if defined(OS_WIN)
+#include "chrome/browser/views/clear_browsing_data_view.h"
+#endif
+
using views::GridLayout;
// The combo box is vertically aligned to the 'time-period' label, which makes
@@ -60,6 +63,7 @@ ClearBrowsingDataView::ClearBrowsingDataView(Profile* profile)
del_cache_checkbox_(NULL),
del_cookies_checkbox_(NULL),
del_passwords_checkbox_(NULL),
+ del_lso_data_checkbox_(NULL),
del_form_data_checkbox_(NULL),
time_period_label_(NULL),
time_period_combobox_(NULL),
@@ -80,6 +84,10 @@ ClearBrowsingDataView::~ClearBrowsingDataView(void) {
}
void ClearBrowsingDataView::Init() {
+ del_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled,
+ g_browser_process->local_state(),
+ this);
+
// Views we will add to the *parent* of this dialog, since it will display
// next to the buttons which we don't draw ourselves.
throbber_ = new views::Throbber(50, true);
@@ -95,28 +103,33 @@ void ClearBrowsingDataView::Init() {
AddChildView(delete_all_label_);
// Add all the check-boxes.
- del_history_checkbox_ =
- AddCheckbox(l10n_util::GetString(IDS_DEL_BROWSING_HISTORY_CHKBOX),
+ del_history_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_BROWSING_HISTORY_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kDeleteBrowsingHistory));
- del_downloads_checkbox_ =
- AddCheckbox(l10n_util::GetString(IDS_DEL_DOWNLOAD_HISTORY_CHKBOX),
+ del_downloads_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_DOWNLOAD_HISTORY_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kDeleteDownloadHistory));
- del_cache_checkbox_ =
- AddCheckbox(l10n_util::GetString(IDS_DEL_CACHE_CHKBOX),
+ del_cache_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_CACHE_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kDeleteCache));
- del_cookies_checkbox_ =
- AddCheckbox(l10n_util::GetString(IDS_DEL_COOKIES_CHKBOX),
+ del_cookies_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_COOKIES_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kDeleteCookies));
- del_passwords_checkbox_ =
- AddCheckbox(l10n_util::GetString(IDS_DEL_PASSWORDS_CHKBOX),
+ del_passwords_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_PASSWORDS_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kDeletePasswords));
- del_form_data_checkbox_ =
- AddCheckbox(l10n_util::GetString(IDS_DEL_FORM_DATA_CHKBOX),
+ del_lso_data_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_FLASH_DATA_CHKBOX),
+ false);
+ UpdateDelLSODataState();
+
+ del_form_data_checkbox_ = AddCheckbox(
+ l10n_util::GetString(IDS_DEL_FORM_DATA_CHKBOX),
profile_->GetPrefs()->GetBoolean(prefs::kDeleteFormData));
// Add a label which appears before the combo box for the time period.
@@ -208,10 +221,17 @@ void ClearBrowsingDataView::Layout() {
kRelatedControlVerticalSpacing,
sz.width(), sz.height());
+ sz = del_lso_data_checkbox_->GetPreferredSize();
+ del_lso_data_checkbox_->SetBounds(2 * kPanelHorizMargin,
+ del_passwords_checkbox_->y() +
+ del_passwords_checkbox_->height() +
+ kRelatedControlVerticalSpacing,
+ sz.width(), sz.height());
+
sz = del_form_data_checkbox_->GetPreferredSize();
del_form_data_checkbox_->SetBounds(2 * kPanelHorizMargin,
- del_passwords_checkbox_->y() +
- del_passwords_checkbox_->height() +
+ del_lso_data_checkbox_->y() +
+ del_lso_data_checkbox_->height() +
kRelatedControlVerticalSpacing,
sz.width(), sz.height());
@@ -262,6 +282,7 @@ bool ClearBrowsingDataView::IsDialogButtonEnabled(
del_cache_checkbox_->checked() ||
del_cookies_checkbox_->checked() ||
del_passwords_checkbox_->checked() ||
+ del_lso_data_checkbox_->checked() ||
del_form_data_checkbox_->checked();
}
@@ -308,6 +329,10 @@ bool ClearBrowsingDataView::Accept() {
del_cookies_checkbox_->checked());
prefs->SetBoolean(prefs::kDeletePasswords,
del_passwords_checkbox_->checked());
+ if (del_lso_data_enabled_.GetValue()) {
+ prefs->SetBoolean(prefs::kDeleteLSOData,
+ del_lso_data_checkbox_->checked());
+ }
prefs->SetBoolean(prefs::kDeleteFormData,
del_form_data_checkbox_->checked());
OnDelete();
@@ -384,6 +409,9 @@ void ClearBrowsingDataView::ButtonPressed(views::Button* sender,
GetDialogClientView()->UpdateDialogButtons();
}
+////////////////////////////////////////////////////////////////////////////////
+// ClearBrowsingDataView, views::LinkController implementation:
+
void ClearBrowsingDataView::LinkActivated(views::Link* source,
int event_flags) {
Browser* browser = Browser::Create(profile_);
@@ -393,6 +421,20 @@ void ClearBrowsingDataView::LinkActivated(views::Link* source,
}
////////////////////////////////////////////////////////////////////////////////
+// ClearBrowsingDataView, NotificationObserver implementation:
+
+void ClearBrowsingDataView::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) {
+ UpdateControlState();
+ }
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
// ClearBrowsingDataView, private:
views::Checkbox* ClearBrowsingDataView::AddCheckbox(const std::wstring& text,
@@ -404,9 +446,21 @@ views::Checkbox* ClearBrowsingDataView::AddCheckbox(const std::wstring& text,
return checkbox;
}
-void ClearBrowsingDataView::UpdateControlEnabledState() {
+void ClearBrowsingDataView::UpdateDelLSODataState() {
+ bool enabled = del_lso_data_enabled_.GetValue();
+ del_lso_data_checkbox_->SetChecked(
+ enabled &&
+ profile_->GetPrefs()->GetBoolean(prefs::kDeleteLSOData));
+ del_lso_data_checkbox_->SetTooltipText(
+ enabled ? std::wstring()
+ : l10n_util::GetString(IDS_LSO_CLEAR_MESSAGE).c_str());
+ del_lso_data_checkbox_->SetEnabled(enabled && !delete_in_progress_);
+}
+
+void ClearBrowsingDataView::UpdateControlState() {
window()->EnableClose(!delete_in_progress_);
+ UpdateDelLSODataState();
del_history_checkbox_->SetEnabled(!delete_in_progress_);
del_downloads_checkbox_->SetEnabled(!delete_in_progress_);
del_cache_checkbox_->SetEnabled(!delete_in_progress_);
@@ -444,13 +498,15 @@ void ClearBrowsingDataView::OnDelete() {
remove_mask |= BrowsingDataRemover::REMOVE_COOKIES;
if (IsCheckBoxEnabledAndSelected(del_passwords_checkbox_))
remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
+ if (IsCheckBoxEnabledAndSelected(del_lso_data_checkbox_))
+ remove_mask |= BrowsingDataRemover::REMOVE_LSO_DATA;
if (IsCheckBoxEnabledAndSelected(del_form_data_checkbox_))
remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
if (IsCheckBoxEnabledAndSelected(del_cache_checkbox_))
remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
delete_in_progress_ = true;
- UpdateControlEnabledState();
+ UpdateControlState();
// BrowsingDataRemover deletes itself when done.
remover_ = new BrowsingDataRemover(profile_,
« no previous file with comments | « chrome/browser/ui/views/clear_browsing_data.h ('k') | chrome/browser/ui/views/clear_browsing_data_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698