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

Side by Side Diff: chrome/browser/browsing_data/browsing_data_remover.cc

Issue 1072413003: Add foundation for trimming the AffiliationDatabase. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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/browsing_data/browsing_data_remover.h" 5 #include "chrome/browser/browsing_data/browsing_data_remover.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 waiting_for_clear_content_licenses_(false), 207 waiting_for_clear_content_licenses_(false),
208 waiting_for_clear_cookies_count_(0), 208 waiting_for_clear_cookies_count_(0),
209 waiting_for_clear_domain_reliability_monitor_(false), 209 waiting_for_clear_domain_reliability_monitor_(false),
210 waiting_for_clear_form_(false), 210 waiting_for_clear_form_(false),
211 waiting_for_clear_history_(false), 211 waiting_for_clear_history_(false),
212 waiting_for_clear_hostname_resolution_cache_(false), 212 waiting_for_clear_hostname_resolution_cache_(false),
213 waiting_for_clear_keyword_data_(false), 213 waiting_for_clear_keyword_data_(false),
214 waiting_for_clear_nacl_cache_(false), 214 waiting_for_clear_nacl_cache_(false),
215 waiting_for_clear_network_predictor_(false), 215 waiting_for_clear_network_predictor_(false),
216 waiting_for_clear_networking_history_(false), 216 waiting_for_clear_networking_history_(false),
217 waiting_for_clear_passwords_(false),
217 waiting_for_clear_platform_keys_(false), 218 waiting_for_clear_platform_keys_(false),
218 waiting_for_clear_plugin_data_(false), 219 waiting_for_clear_plugin_data_(false),
219 waiting_for_clear_pnacl_cache_(false), 220 waiting_for_clear_pnacl_cache_(false),
220 waiting_for_clear_storage_partition_data_(false), 221 waiting_for_clear_storage_partition_data_(false),
221 #if defined(ENABLE_WEBRTC) 222 #if defined(ENABLE_WEBRTC)
222 waiting_for_clear_webrtc_logs_(false), 223 waiting_for_clear_webrtc_logs_(false),
223 #endif 224 #endif
224 remove_mask_(0), 225 remove_mask_(0),
225 remove_origin_(GURL()), 226 remove_origin_(GURL()),
226 origin_set_mask_(0), 227 origin_set_mask_(0),
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 CONTENT_SETTINGS_TYPE_APP_BANNER); 556 CONTENT_SETTINGS_TYPE_APP_BANNER);
556 } 557 }
557 #endif 558 #endif
558 559
559 if (remove_mask & REMOVE_PASSWORDS) { 560 if (remove_mask & REMOVE_PASSWORDS) {
560 content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords")); 561 content::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords"));
561 password_manager::PasswordStore* password_store = 562 password_manager::PasswordStore* password_store =
562 PasswordStoreFactory::GetForProfile( 563 PasswordStoreFactory::GetForProfile(
563 profile_, ServiceAccessType::EXPLICIT_ACCESS).get(); 564 profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
564 565
565 if (password_store) 566 if (password_store) {
566 password_store->RemoveLoginsCreatedBetween(delete_begin_, delete_end_); 567 // TrimAffiliationCache() will be called in OnClearedPasswords(), so that
568 // affiliation data corresponding to just deleted passwords can also be
569 // removed.
570 waiting_for_clear_passwords_ = true;
571 password_store->RemoveLoginsCreatedBetween(
572 delete_begin_, delete_end_,
573 base::Bind(&BrowsingDataRemover::OnClearedPasswords,
574 base::Unretained(this)));
575 }
576 } else if (remove_mask & REMOVE_CACHE) {
577 TrimAffiliationCache();
567 } 578 }
568 579
569 if (remove_mask & REMOVE_FORM_DATA) { 580 if (remove_mask & REMOVE_FORM_DATA) {
570 content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill")); 581 content::RecordAction(UserMetricsAction("ClearBrowsingData_Autofill"));
571 scoped_refptr<autofill::AutofillWebDataService> web_data_service = 582 scoped_refptr<autofill::AutofillWebDataService> web_data_service =
572 WebDataServiceFactory::GetAutofillWebDataForProfile( 583 WebDataServiceFactory::GetAutofillWebDataForProfile(
573 profile_, ServiceAccessType::EXPLICIT_ACCESS); 584 profile_, ServiceAccessType::EXPLICIT_ACCESS);
574 585
575 if (web_data_service.get()) { 586 if (web_data_service.get()) {
576 waiting_for_clear_form_ = true; 587 waiting_for_clear_form_ = true;
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 !waiting_for_clear_channel_ids_ && 808 !waiting_for_clear_channel_ids_ &&
798 !waiting_for_clear_cookies_count_ && 809 !waiting_for_clear_cookies_count_ &&
799 !waiting_for_clear_domain_reliability_monitor_ && 810 !waiting_for_clear_domain_reliability_monitor_ &&
800 !waiting_for_clear_form_ && 811 !waiting_for_clear_form_ &&
801 !waiting_for_clear_history_ && 812 !waiting_for_clear_history_ &&
802 !waiting_for_clear_hostname_resolution_cache_ && 813 !waiting_for_clear_hostname_resolution_cache_ &&
803 !waiting_for_clear_keyword_data_ && 814 !waiting_for_clear_keyword_data_ &&
804 !waiting_for_clear_nacl_cache_ && 815 !waiting_for_clear_nacl_cache_ &&
805 !waiting_for_clear_network_predictor_ && 816 !waiting_for_clear_network_predictor_ &&
806 !waiting_for_clear_networking_history_ && 817 !waiting_for_clear_networking_history_ &&
818 !waiting_for_clear_passwords_ &&
807 !waiting_for_clear_platform_keys_ && 819 !waiting_for_clear_platform_keys_ &&
808 !waiting_for_clear_plugin_data_ && 820 !waiting_for_clear_plugin_data_ &&
809 !waiting_for_clear_pnacl_cache_ && 821 !waiting_for_clear_pnacl_cache_ &&
810 #if defined(ENABLE_WEBRTC) 822 #if defined(ENABLE_WEBRTC)
811 !waiting_for_clear_webrtc_logs_ && 823 !waiting_for_clear_webrtc_logs_ &&
812 #endif 824 #endif
813 !waiting_for_clear_storage_partition_data_; 825 !waiting_for_clear_storage_partition_data_;
814 } 826 }
815 827
816 void BrowsingDataRemover::OnKeywordsLoaded() { 828 void BrowsingDataRemover::OnKeywordsLoaded() {
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
996 bool result) { 1008 bool result) {
997 DCHECK(waiting_for_clear_platform_keys_); 1009 DCHECK(waiting_for_clear_platform_keys_);
998 if (call_status != chromeos::DBUS_METHOD_CALL_SUCCESS || !result) { 1010 if (call_status != chromeos::DBUS_METHOD_CALL_SUCCESS || !result) {
999 LOG(ERROR) << "Failed to clear platform keys."; 1011 LOG(ERROR) << "Failed to clear platform keys.";
1000 } 1012 }
1001 waiting_for_clear_platform_keys_ = false; 1013 waiting_for_clear_platform_keys_ = false;
1002 NotifyAndDeleteIfDone(); 1014 NotifyAndDeleteIfDone();
1003 } 1015 }
1004 #endif 1016 #endif
1005 1017
1018
1019 void BrowsingDataRemover::OnClearedPasswords() {
1020 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1021 waiting_for_clear_passwords_ = false;
1022 TrimAffiliationCache();
Mike West 2015/05/13 15:20:06 Ideally, we'd wait on this as well.
1023 NotifyAndDeleteIfDone();
1024 }
1025
1026 void BrowsingDataRemover::TrimAffiliationCache() {
1027 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1028 PasswordStoreFactory::TrimOrDeleteAffiliationCache(profile_);
Mike West 2015/05/13 15:20:06 Ideally, we'd have tests showing that this method
1029 }
1030
1006 void BrowsingDataRemover::OnClearedCookies(int num_deleted) { 1031 void BrowsingDataRemover::OnClearedCookies(int num_deleted) {
1007 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { 1032 if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
1008 BrowserThread::PostTask( 1033 BrowserThread::PostTask(
1009 BrowserThread::UI, FROM_HERE, 1034 BrowserThread::UI, FROM_HERE,
1010 base::Bind(&BrowsingDataRemover::OnClearedCookies, 1035 base::Bind(&BrowsingDataRemover::OnClearedCookies,
1011 base::Unretained(this), num_deleted)); 1036 base::Unretained(this), num_deleted));
1012 return; 1037 return;
1013 } 1038 }
1014 1039
1015 DCHECK_GT(waiting_for_clear_cookies_count_, 0); 1040 DCHECK_GT(waiting_for_clear_cookies_count_, 0);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1090 waiting_for_clear_domain_reliability_monitor_ = false; 1115 waiting_for_clear_domain_reliability_monitor_ = false;
1091 NotifyAndDeleteIfDone(); 1116 NotifyAndDeleteIfDone();
1092 } 1117 }
1093 1118
1094 // static 1119 // static
1095 BrowsingDataRemover::CallbackSubscription 1120 BrowsingDataRemover::CallbackSubscription
1096 BrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback( 1121 BrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback(
1097 const BrowsingDataRemover::Callback& callback) { 1122 const BrowsingDataRemover::Callback& callback) {
1098 return GetOnBrowsingDataRemovedCallbacks()->Add(callback); 1123 return GetOnBrowsingDataRemovedCallbacks()->Add(callback);
1099 } 1124 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698