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

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

Issue 2697123004: Convert RemoveDataMask from enum to pointers and split it between content and embedder (Closed)
Patch Set: Android compilation Created 3 years, 10 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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/options/clear_browser_data_handler.h" 5 #include "chrome/browser/ui/webui/options/clear_browser_data_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <set>
10 #include <utility> 11 #include <utility>
11 12
12 #include "base/bind.h" 13 #include "base/bind.h"
13 #include "base/bind_helpers.h" 14 #include "base/bind_helpers.h"
14 #include "base/macros.h" 15 #include "base/macros.h"
15 #include "base/memory/ptr_util.h" 16 #include "base/memory/ptr_util.h"
16 #include "base/metrics/histogram_macros.h" 17 #include "base/metrics/histogram_macros.h"
17 #include "base/metrics/sparse_histogram.h" 18 #include "base/metrics/sparse_histogram.h"
18 #include "base/strings/string16.h" 19 #include "base/strings/string16.h"
19 #include "base/strings/string_number_conversions.h" 20 #include "base/strings/string_number_conversions.h"
20 #include "base/strings/utf_string_conversions.h" 21 #include "base/strings/utf_string_conversions.h"
21 #include "base/values.h" 22 #include "base/values.h"
22 #include "chrome/app/chrome_command_ids.h" 23 #include "chrome/app/chrome_command_ids.h"
23 #include "chrome/browser/browser_process.h" 24 #include "chrome/browser/browser_process.h"
24 #include "chrome/browser/browsing_data/browsing_data_counter_factory.h" 25 #include "chrome/browser/browsing_data/browsing_data_counter_factory.h"
25 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h" 26 #include "chrome/browser/browsing_data/browsing_data_counter_utils.h"
26 #include "chrome/browser/browsing_data/browsing_data_helper.h" 27 #include "chrome/browser/browsing_data/browsing_data_helper.h"
27 #include "chrome/browser/browsing_data/browsing_data_remover.h" 28 #include "chrome/browser/browsing_data/browsing_data_remover.h"
28 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 29 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
30 #include "chrome/browser/browsing_data/chrome_browsing_data_types.h"
29 #include "chrome/browser/history/web_history_service_factory.h" 31 #include "chrome/browser/history/web_history_service_factory.h"
30 #include "chrome/browser/prefs/incognito_mode_prefs.h" 32 #include "chrome/browser/prefs/incognito_mode_prefs.h"
31 #include "chrome/browser/profiles/profile.h" 33 #include "chrome/browser/profiles/profile.h"
32 #include "chrome/browser/sync/profile_sync_service_factory.h" 34 #include "chrome/browser/sync/profile_sync_service_factory.h"
33 #include "chrome/browser/ui/accelerator_utils.h" 35 #include "chrome/browser/ui/accelerator_utils.h"
34 #include "chrome/common/channel_info.h" 36 #include "chrome/common/channel_info.h"
35 #include "chrome/common/pref_names.h" 37 #include "chrome/common/pref_names.h"
36 #include "chrome/grit/generated_resources.h" 38 #include "chrome/grit/generated_resources.h"
37 #include "chrome/grit/locale_settings.h" 39 #include "chrome/grit/locale_settings.h"
38 #include "components/browsing_data/core/counters/browsing_data_counter.h" 40 #include "components/browsing_data/core/counters/browsing_data_counter.h"
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 } 243 }
242 244
243 void ClearBrowserDataHandler::HandleClearBrowserData( 245 void ClearBrowserDataHandler::HandleClearBrowserData(
244 const base::ListValue* value) { 246 const base::ListValue* value) {
245 // We should never be called when the previous clearing has not yet finished. 247 // We should never be called when the previous clearing has not yet finished.
246 CHECK(!remover_); 248 CHECK(!remover_);
247 249
248 Profile* profile = Profile::FromWebUI(web_ui()); 250 Profile* profile = Profile::FromWebUI(web_ui());
249 PrefService* prefs = profile->GetPrefs(); 251 PrefService* prefs = profile->GetPrefs();
250 252
251 int site_data_mask = BrowsingDataRemover::REMOVE_SITE_DATA; 253 std::set<const content::BrowsingDataType*> remove_mask;
252 // Don't try to clear LSO data if it's not supported.
253 if (!*clear_plugin_lso_data_enabled_)
254 site_data_mask &= ~BrowsingDataRemover::REMOVE_PLUGIN_DATA;
255
256 int remove_mask = 0;
257 int origin_mask = 0; 254 int origin_mask = 0;
258 if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory) && 255 if (prefs->GetBoolean(browsing_data::prefs::kDeleteBrowsingHistory) &&
259 *allow_deleting_browser_history_) { 256 *allow_deleting_browser_history_) {
260 remove_mask |= BrowsingDataRemover::REMOVE_HISTORY; 257 remove_mask.insert(&kBrowsingDataTypeHistory);
261 } 258 }
262 if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory) && 259 if (prefs->GetBoolean(browsing_data::prefs::kDeleteDownloadHistory) &&
263 *allow_deleting_browser_history_) { 260 *allow_deleting_browser_history_) {
264 remove_mask |= BrowsingDataRemover::REMOVE_DOWNLOADS; 261 remove_mask.insert(&kBrowsingDataTypeDownloads);
265 } 262 }
266 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) 263 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache))
267 remove_mask |= BrowsingDataRemover::REMOVE_CACHE; 264 remove_mask.insert(&kBrowsingDataTypeCache);
268 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { 265 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) {
269 remove_mask |= site_data_mask; 266 remove_mask.insert(BrowsingDataTypeSetSiteData().begin(),
267 BrowsingDataTypeSetSiteData().end());
270 origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB; 268 origin_mask |= BrowsingDataHelper::UNPROTECTED_WEB;
271 } 269 }
272 if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords)) 270 if (prefs->GetBoolean(browsing_data::prefs::kDeletePasswords))
273 remove_mask |= BrowsingDataRemover::REMOVE_PASSWORDS; 271 remove_mask.insert(&kBrowsingDataTypePasswords);
274 if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData)) 272 if (prefs->GetBoolean(browsing_data::prefs::kDeleteFormData))
275 remove_mask |= BrowsingDataRemover::REMOVE_FORM_DATA; 273 remove_mask.insert(&kBrowsingDataTypeFormData);
276 if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses)) 274 if (prefs->GetBoolean(browsing_data::prefs::kDeleteMediaLicenses))
277 remove_mask |= BrowsingDataRemover::REMOVE_MEDIA_LICENSES; 275 remove_mask.insert(&kBrowsingDataTypeMediaLicenses);
278 if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) { 276 if (prefs->GetBoolean(browsing_data::prefs::kDeleteHostedAppsData)) {
279 remove_mask |= site_data_mask; 277 remove_mask.insert(BrowsingDataTypeSetSiteData().begin(),
278 BrowsingDataTypeSetSiteData().end());
280 origin_mask |= BrowsingDataHelper::PROTECTED_WEB; 279 origin_mask |= BrowsingDataHelper::PROTECTED_WEB;
281 } 280 }
282 281
282 // Don't try to clear LSO data if it's not supported.
283 if (!*clear_plugin_lso_data_enabled_)
284 remove_mask.erase(&kBrowsingDataTypePluginData);
285
283 // Record the deletion of cookies and cache. 286 // Record the deletion of cookies and cache.
284 BrowsingDataRemover::CookieOrCacheDeletionChoice choice = 287 BrowsingDataRemover::CookieOrCacheDeletionChoice choice =
285 BrowsingDataRemover::NEITHER_COOKIES_NOR_CACHE; 288 BrowsingDataRemover::NEITHER_COOKIES_NOR_CACHE;
286 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) { 289 if (prefs->GetBoolean(browsing_data::prefs::kDeleteCookies)) {
287 choice = prefs->GetBoolean(browsing_data::prefs::kDeleteCache) 290 choice = prefs->GetBoolean(browsing_data::prefs::kDeleteCache)
288 ? BrowsingDataRemover::BOTH_COOKIES_AND_CACHE 291 ? BrowsingDataRemover::BOTH_COOKIES_AND_CACHE
289 : BrowsingDataRemover::ONLY_COOKIES; 292 : BrowsingDataRemover::ONLY_COOKIES;
290 } else if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) { 293 } else if (prefs->GetBoolean(browsing_data::prefs::kDeleteCache)) {
291 choice = BrowsingDataRemover::ONLY_CACHE; 294 choice = BrowsingDataRemover::ONLY_CACHE;
292 } 295 }
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 "History.ClearBrowsingData.HistoryNoticeShownInFooterWhenUpdated", 436 "History.ClearBrowsingData.HistoryNoticeShownInFooterWhenUpdated",
434 should_show_history_notice_); 437 should_show_history_notice_);
435 } 438 }
436 439
437 void ClearBrowserDataHandler::UpdateHistoryDeletionDialog(bool show) { 440 void ClearBrowserDataHandler::UpdateHistoryDeletionDialog(bool show) {
438 // This is used by OnBrowsingDataRemoverDone (when the deletion finishes). 441 // This is used by OnBrowsingDataRemoverDone (when the deletion finishes).
439 should_show_history_deletion_dialog_ = show; 442 should_show_history_deletion_dialog_ = show;
440 } 443 }
441 444
442 } // namespace options 445 } // namespace options
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698