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

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

Issue 10837331: Options: s/options2/options/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: wut Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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/browsing_data/browsing_data_helper.h"
14 #include "chrome/browser/browsing_data/browsing_data_remover.h"
15 #include "chrome/browser/google/google_util.h"
16 #include "chrome/browser/prefs/pref_service.h"
17 #include "chrome/browser/profiles/profile.h"
18 #include "chrome/common/pref_names.h"
19 #include "content/public/browser/notification_details.h"
20 #include "content/public/browser/web_ui.h"
21 #include "grit/chromium_strings.h"
22 #include "grit/generated_resources.h"
23 #include "grit/locale_settings.h"
24 #include "ui/base/l10n/l10n_util.h"
25
26 namespace {
27 const char kClearBrowsingDataLearnMoreUrl[] =
28 "https://support.google.com/chrome/?p=settings_clear_browsing_data";
29 }
30
31 namespace options {
32
33 ClearBrowserDataHandler::ClearBrowserDataHandler()
34 : remover_(NULL) {
35 }
36
37 ClearBrowserDataHandler::~ClearBrowserDataHandler() {
38 if (remover_)
39 remover_->RemoveObserver(this);
40 }
41
42 void ClearBrowserDataHandler::InitializeHandler() {
43 clear_plugin_lso_data_enabled_.Init(prefs::kClearPluginLSODataEnabled,
44 Profile::FromWebUI(web_ui())->GetPrefs(),
45 NULL);
46 }
47
48 void ClearBrowserDataHandler::GetLocalizedValues(
49 DictionaryValue* localized_strings) {
50 DCHECK(localized_strings);
51
52 static OptionsStringResource resources[] = {
53 { "clearBrowserDataLabel", IDS_CLEAR_BROWSING_DATA_LABEL },
54 { "deleteBrowsingHistoryCheckbox", IDS_DEL_BROWSING_HISTORY_CHKBOX },
55 { "deleteDownloadHistoryCheckbox", IDS_DEL_DOWNLOAD_HISTORY_CHKBOX },
56 { "deleteCacheCheckbox", IDS_DEL_CACHE_CHKBOX },
57 { "deleteCookiesCheckbox", IDS_DEL_COOKIES_CHKBOX },
58 { "deleteCookiesFlashCheckbox", IDS_DEL_COOKIES_FLASH_CHKBOX },
59 { "deletePasswordsCheckbox", IDS_DEL_PASSWORDS_CHKBOX },
60 { "deleteFormDataCheckbox", IDS_DEL_FORM_DATA_CHKBOX },
61 { "deleteHostedAppsDataCheckbox", IDS_DEL_HOSTED_APPS_DATA_CHKBOX },
62 { "deauthorizeContentLicensesCheckbox",
63 IDS_DEAUTHORIZE_CONTENT_LICENSES_CHKBOX },
64 { "clearBrowserDataCommit", IDS_CLEAR_BROWSING_DATA_COMMIT },
65 { "flash_storage_url", IDS_FLASH_STORAGE_URL },
66 };
67
68 RegisterStrings(localized_strings, resources, arraysize(resources));
69 RegisterTitle(localized_strings, "clearBrowserDataOverlay",
70 IDS_CLEAR_BROWSING_DATA_TITLE);
71 localized_strings->SetString(
72 "clearBrowsingDataLearnMoreUrl",
73 google_util::StringAppendGoogleLocaleParam(
74 kClearBrowsingDataLearnMoreUrl));
75
76 ListValue* time_list = new ListValue;
77 for (int i = 0; i < 5; i++) {
78 string16 label_string;
79 switch (i) {
80 case 0:
81 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_HOUR);
82 break;
83 case 1:
84 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_DAY);
85 break;
86 case 2:
87 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_WEEK);
88 break;
89 case 3:
90 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_4WEEKS);
91 break;
92 case 4:
93 label_string = l10n_util::GetStringUTF16(IDS_CLEAR_DATA_EVERYTHING);
94 break;
95 }
96 ListValue* option = new ListValue();
97 option->Append(Value::CreateIntegerValue(i));
98 option->Append(Value::CreateStringValue(label_string));
99 time_list->Append(option);
100 }
101 localized_strings->Set("clearBrowserDataTimeList", time_list);
102 }
103
104 void ClearBrowserDataHandler::RegisterMessages() {
105 // Setup handlers specific to this panel.
106 web_ui()->RegisterMessageCallback("performClearBrowserData",
107 base::Bind(&ClearBrowserDataHandler::HandleClearBrowserData,
108 base::Unretained(this)));
109 }
110
111 void ClearBrowserDataHandler::HandleClearBrowserData(const ListValue* value) {
112 DCHECK(!remover_);
113
114 Profile* profile = Profile::FromWebUI(web_ui());
115 PrefService* prefs = profile->GetPrefs();
116
117 int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA;
118 // Don't try to clear LSO data if it's not supported.
119 if (!*clear_plugin_lso_data_enabled_)
120 site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
121
122 int remove_mask = 0;
123 int origin_mask = 0;
124 if (prefs->GetBoolean(prefs::kDeleteBrowsingHistory))
125 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY;
126 if (prefs->GetBoolean(prefs::kDeleteDownloadHistory))
127 remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS;
128 if (prefs->GetBoolean(prefs::kDeleteCache))
129 remove_mask |= BrowsingDataRemover::REMOVE_CACHE;
130 if (prefs->GetBoolean(prefs::kDeleteCookies)) {
131 remove_mask |= site_data_mask;
132 origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB;
133 }
134 if (prefs->GetBoolean(prefs::kDeletePasswords))
135 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS;
136 if (prefs->GetBoolean(prefs::kDeleteFormData))
137 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA;
138 if (prefs->GetBoolean(prefs::kDeauthorizeContentLicenses))
139 remove_mask |= BrowsingDataRemover::REMOVE_CONTENT_LICENSES;
140 if (prefs->GetBoolean(prefs::kDeleteHostedAppsData)) {
141 remove_mask |= site_data_mask;
142 origin_mask |= BrowsingDataHelper::PROTECTED_WEB;
143 }
144
145 // BrowsingDataRemover deletes itself when done.
146 int period_selected = prefs->GetInteger(prefs::kDeleteTimePeriod);
147 remover_ = new BrowsingDataRemover(profile,
148 static_cast<BrowsingDataRemover::TimePeriod>(period_selected),
149 base::Time::Now());
150 remover_->AddObserver(this);
151 remover_->Remove(remove_mask, origin_mask);
152 }
153
154 void ClearBrowserDataHandler::OnBrowsingDataRemoverDone() {
155 // No need to remove ourselves as an observer as BrowsingDataRemover deletes
156 // itself after we return.
157 remover_ = NULL;
158 web_ui()->CallJavascriptFunction("ClearBrowserDataOverlay.doneClearing");
159 }
160
161 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698