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

Side by Side Diff: chrome/browser/ui/webui/options2/clear_browser_data_handler.cc

Issue 8930012: Revert 114236 - Options2: Pull the trigger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/webui/options2/clear_browser_data_handler.h"
6
7 #include "base/basictypes.h"
8 #include "base/bind.h"
9 #include "base/bind_helpers.h"
10 #include "base/string16.h"
11 #include "base/values.h"
12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/prefs/pref_service.h"
14 #include "chrome/browser/profiles/profile.h"
15 #include "chrome/common/pref_names.h"
16 #include "content/public/browser/notification_details.h"
17 #include "grit/chromium_strings.h"
18 #include "grit/generated_resources.h"
19 #include "grit/locale_settings.h"
20 #include "ui/base/l10n/l10n_util.h"
21
22 ClearBrowserDataHandler::ClearBrowserDataHandler() : remover_(NULL) {
23 }
24
25 ClearBrowserDataHandler::~ClearBrowserDataHandler() {
26 if (remover_)
27 remover_->RemoveObserver(this);
28 }
29
30 void ClearBrowserDataHandler::Initialize() {
31 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled,
32 Profile::FromWebUI(web_ui_)->GetPrefs(),
33 NULL);
34 }
35
36 void ClearBrowserDataHandler::GetLocalizedValues(
37 DictionaryValue* localized_strings) {
38 DCHECK(localized_strings);
39
40 static OptionsStringResource resources[] = {
41 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL },
42 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX },
43 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX },
44 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX },
45 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX },
46 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX },
47 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX },
48 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX },
49 { "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT },
50 { "flashStorageSettings", IDS_FLASH_STORAGE_SETTINGS },
51 { "flash_storage_url", IDS_FLASH_STORAGE_URL },
52 { "clearDataDeleting", IDS_CLEAR_DATA_DELETING },
53 };
54
55 RegisterStrings(localized_strings, resources, arraysize(resources));
56 RegisterTitle(localized_strings, "clearBrowserDataOverlay",
57 IDS_CLEAR_BROWSING_DATA_TITLE);
58
59 ListValue* time_list = new ListValue;
60 for (int i = 0; i < 5; i++) {
61 string16 label_string;
62 switch (i) {
63 case 0:
64 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_HOUR);
65 break;
66 case 1:
67 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DAY);
68 break;
69 case 2:
70 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_WEEK);
71 break;
72 case 3:
73 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_4WEEKS);
74 break;
75 case 4:
76 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_EVERYTHING);
77 break;
78 }
79 ListValue* option = new ListValue();
80 option->Append(Value::CreateIntegerValue(i));
81 option->Append(Value::CreateStringValue(label_string));
82 time_list->Append(option);
83 }
84 localized_strings->Set("clearBrowserDataTimeList", time_list);
85 }
86
87 void ClearBrowserDataHandler::RegisterMessages() {
88 // Setup handlers specific to this panel.
89 DCHECK(web_ui_);
90 web_ui_->RegisterMessageCallback("performClearBrowserData",
91 base::Bind(&ClearBrowserDataHandler::HandleClearBrowserData,
92 base::Unretained(this)));
93 }
94
95 void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
96 Profile* profile = Profile::FromWebUI(web_ui_);
97 PrefService* prefs = profile->GetPrefs();
98
99 int remove_mask = 0;
100 if (prefs->GetBoolean(prefs::kDeleteBrowsingHistory))
101 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
102 if (prefs->GetBoolean(prefs::kDeleteDownloadHistory))
103 remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS;
104 if (prefs->GetBoolean(prefs::kDeleteCache))
105 remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
106 if (prefs->GetBoolean(prefs::kDeleteCookies)) {
107 int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA;
108 // Don't try to clear LSO data if it's not supported.
109 if (!*clear_plugin_lso_data_enabled_)
110 site_data_mask &= ~BrowsingDataRemover::REMOVE_LSO_DATA;
111 remove_mask |= site_data_mask;
112 }
113 if (prefs->GetBoolean(prefs::kDeletePasswords))
114 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
115 if (prefs->GetBoolean(prefs::kDeleteFormData))
116 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
117
118 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
119
120 base::FundamentalValue state(true);
121 web_ui_->CallJavascriptFunction("ClearBrowserDataOverlay.setClearingState",
122 state);
123
124 // If we are still observing a previous data remover, we need to stop
125 // observing.
126 if (remover_)
127 remover_->RemoveObserver(this);
128
129 // BrowsingDataRemover deletes itself when done.
130 remover_ = new BrowsingDataRemover(profile,
131 static_cast<BrowsingDataRemover::TimePeriod>(period_selected),
132 base::Time());
133 remover_->AddObserver(this);
134 remover_->Remove(remove_mask);
135 }
136
137 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() {
138 // No need to remove ourselves as an observer as BrowsingDataRemover deletes
139 // itself after we return.
140 remover_ = NULL;
141 DCHECK(web_ui_);
142 web_ui_->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
143 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698