OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/settings/settings_clear_browsing_data_handler.
h" | 5 #include "chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.
h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
| 9 #include <set> |
| 10 |
9 #include "base/macros.h" | 11 #include "base/macros.h" |
10 #include "base/memory/ptr_util.h" | 12 #include "base/memory/ptr_util.h" |
11 #include "base/metrics/histogram_macros.h" | 13 #include "base/metrics/histogram_macros.h" |
12 #include "base/metrics/sparse_histogram.h" | 14 #include "base/metrics/sparse_histogram.h" |
13 #include "chrome/browser/browsing_data/browsing_data_counter_factory.h" | 15 #include "chrome/browser/browsing_data/browsing_data_counter_factory.h" |
14 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" | 16 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" |
15 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 17 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" | 18 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" |
| 19 #include "chrome/browser/browsing_data/chrome_browsing_data_types.h" |
17 #include "chrome/browser/history/web_history_service_factory.h" | 20 #include "chrome/browser/history/web_history_service_factory.h" |
18 #include "chrome/browser/sync/profile_sync_service_factory.h" | 21 #include "chrome/browser/sync/profile_sync_service_factory.h" |
19 #include "chrome/common/channel_info.h" | 22 #include "chrome/common/channel_info.h" |
20 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
21 #include "components/browsing_data/core/history_notice_utils.h" | 24 #include "components/browsing_data/core/history_notice_utils.h" |
22 #include "components/browsing_data/core/pref_names.h" | 25 #include "components/browsing_data/core/pref_names.h" |
23 #include "components/prefs/pref_service.h" | 26 #include "components/prefs/pref_service.h" |
24 #include "content/public/browser/web_ui.h" | 27 #include "content/public/browser/web_ui.h" |
25 | 28 |
26 namespace { | 29 namespace { |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 task_observer_.reset(); | 118 task_observer_.reset(); |
116 counters_.clear(); | 119 counters_.clear(); |
117 } | 120 } |
118 | 121 |
119 void ClearBrowsingDataHandler::HandleClearBrowsingData( | 122 void ClearBrowsingDataHandler::HandleClearBrowsingData( |
120 const base::ListValue* args) { | 123 const base::ListValue* args) { |
121 DCHECK(!task_observer_); | 124 DCHECK(!task_observer_); |
122 | 125 |
123 PrefService* prefs = profile_->GetPrefs(); | 126 PrefService* prefs = profile_->GetPrefs(); |
124 | 127 |
125 int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA; | 128 std::set<const content::BrowsingDataType*> remove_mask; |
126 // Don't try to clear LSO data if it's not supported. | |
127 if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled)) | |
128 site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA; | |
129 | |
130 int remove_mask = 0; | |
131 if (prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory)) { | 129 if (prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory)) { |
132 if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory)) | 130 if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory)) |
133 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; | 131 remove_mask.insert(&kBrowsingDataTypeHistory); |
134 if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory)) | 132 if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory)) |
135 remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS; | 133 remove_mask.insert(&kBrowsingDataTypeDownloads); |
136 } | 134 } |
137 | 135 |
138 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) | 136 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) |
139 remove_mask |= BrowsingDataRemover::REMOVE_CACHE; | 137 remove_mask.insert(&kBrowsingDataTypeCache); |
140 | 138 |
141 int origin_mask = 0; | 139 int origin_mask = 0; |
142 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { | 140 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { |
143 remove_mask |= site_data_mask; | 141 remove_mask.insert(BrowsingDataTypeSetSiteData().begin(), |
| 142 BrowsingDataTypeSetSiteData().end()); |
144 origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB; | 143 origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB; |
145 } | 144 } |
146 | 145 |
147 if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords)) | 146 if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords)) |
148 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; | 147 remove_mask.insert(&kBrowsingDataTypePasswords); |
149 | 148 |
150 if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData)) | 149 if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData)) |
151 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; | 150 remove_mask.insert(&kBrowsingDataTypeFormData); |
152 | 151 |
153 if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses)) | 152 if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses)) |
154 remove_mask |= BrowsingDataRemover::REMOVE_MEDIA_LICENSES; | 153 remove_mask.insert(&kBrowsingDataTypeMediaLicenses); |
155 | 154 |
156 if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) { | 155 if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) { |
157 remove_mask |= site_data_mask; | 156 remove_mask.insert(BrowsingDataTypeSetSiteData().begin(), |
| 157 BrowsingDataTypeSetSiteData().end()); |
158 origin_mask |= BrowsingDataHelper::PROTECTED_WEB; | 158 origin_mask |= BrowsingDataHelper::PROTECTED_WEB; |
159 } | 159 } |
160 | 160 |
| 161 // Don't try to clear LSO data if it's not supported. |
| 162 if (!prefs->GetBoolean(prefs::kClearPluginLSODataEnabled)) |
| 163 remove_mask.erase(&kBrowsingDataTypePluginData); |
| 164 |
161 // Record the deletion of cookies and cache. | 165 // Record the deletion of cookies and cache. |
162 BrowsingDataRemover::CookieOrCacheDeletionChoice choice = | 166 BrowsingDataRemover::CookieOrCacheDeletionChoice choice = |
163 BrowsingDataRemover::NEITHER_COOKIES_NOR_CACHE; | 167 BrowsingDataRemover::NEITHER_COOKIES_NOR_CACHE; |
164 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { | 168 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { |
165 choice = prefs->GetBoolean(browsing_data::prefs::kDeleteCache) | 169 choice = prefs->GetBoolean(browsing_data::prefs::kDeleteCache) |
166 ? BrowsingDataRemover::BOTH_COOKIES_AND_CACHE | 170 ? BrowsingDataRemover::BOTH_COOKIES_AND_CACHE |
167 : BrowsingDataRemover::ONLY_COOKIES; | 171 : BrowsingDataRemover::ONLY_COOKIES; |
168 } else if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) { | 172 } else if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) { |
169 choice = BrowsingDataRemover::ONLY_CACHE; | 173 choice = BrowsingDataRemover::ONLY_CACHE; |
170 } | 174 } |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 void ClearBrowsingDataHandler::UpdateCounterText( | 331 void ClearBrowsingDataHandler::UpdateCounterText( |
328 std::unique_ptr<browsing_data::BrowsingDataCounter::Result> result) { | 332 std::unique_ptr<browsing_data::BrowsingDataCounter::Result> result) { |
329 CallJavascriptFunction( | 333 CallJavascriptFunction( |
330 "cr.webUIListenerCallback", | 334 "cr.webUIListenerCallback", |
331 base::StringValue("update-counter-text"), | 335 base::StringValue("update-counter-text"), |
332 base::StringValue(result->source()->GetPrefName()), | 336 base::StringValue(result->source()->GetPrefName()), |
333 base::StringValue(GetChromeCounterTextFromResult(result.get()))); | 337 base::StringValue(GetChromeCounterTextFromResult(result.get()))); |
334 } | 338 } |
335 | 339 |
336 } // namespace settings | 340 } // namespace settings |
OLD | NEW |