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

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

Issue 2097043002: Clear HTTP auth data on clearing browsing data (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix review issues Created 4 years, 5 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 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 #include "components/web_cache/browser/web_cache_manager.h" 65 #include "components/web_cache/browser/web_cache_manager.h"
66 #include "content/public/browser/browser_thread.h" 66 #include "content/public/browser/browser_thread.h"
67 #include "content/public/browser/download_manager.h" 67 #include "content/public/browser/download_manager.h"
68 #include "content/public/browser/notification_service.h" 68 #include "content/public/browser/notification_service.h"
69 #include "content/public/browser/plugin_data_remover.h" 69 #include "content/public/browser/plugin_data_remover.h"
70 #include "content/public/browser/ssl_host_state_delegate.h" 70 #include "content/public/browser/ssl_host_state_delegate.h"
71 #include "content/public/browser/storage_partition.h" 71 #include "content/public/browser/storage_partition.h"
72 #include "content/public/browser/user_metrics.h" 72 #include "content/public/browser/user_metrics.h"
73 #include "net/base/net_errors.h" 73 #include "net/base/net_errors.h"
74 #include "net/cookies/cookie_store.h" 74 #include "net/cookies/cookie_store.h"
75 #include "net/http/http_network_session.h"
76 #include "net/http/http_transaction_factory.h"
75 #include "net/http/transport_security_state.h" 77 #include "net/http/transport_security_state.h"
76 #include "net/ssl/channel_id_service.h" 78 #include "net/ssl/channel_id_service.h"
77 #include "net/ssl/channel_id_store.h" 79 #include "net/ssl/channel_id_store.h"
78 #include "net/url_request/url_request_context.h" 80 #include "net/url_request/url_request_context.h"
79 #include "net/url_request/url_request_context_getter.h" 81 #include "net/url_request/url_request_context_getter.h"
80 #include "storage/browser/quota/special_storage_policy.h" 82 #include "storage/browser/quota/special_storage_policy.h"
81 #include "url/origin.h" 83 #include "url/origin.h"
82 84
83 #if BUILDFLAG(ANDROID_JAVA_UI) 85 #if BUILDFLAG(ANDROID_JAVA_UI)
84 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" 86 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 const ContentSettingsPattern& secondary_pattern) { 178 const ContentSettingsPattern& secondary_pattern) {
177 return predicate.Run(primary_pattern); 179 return predicate.Run(primary_pattern);
178 } 180 }
179 181
180 void ClearHostnameResolutionCacheOnIOThread(IOThread* io_thread) { 182 void ClearHostnameResolutionCacheOnIOThread(IOThread* io_thread) {
181 DCHECK_CURRENTLY_ON(BrowserThread::IO); 183 DCHECK_CURRENTLY_ON(BrowserThread::IO);
182 184
183 io_thread->ClearHostCache(); 185 io_thread->ClearHostCache();
184 } 186 }
185 187
188 void ClearHttpAuthCacheOnIOThread(
189 scoped_refptr<net::URLRequestContextGetter> context_getter,
190 base::Time delete_begin) {
191 DCHECK_CURRENTLY_ON(BrowserThread::IO);
192
193 net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext()
194 ->http_transaction_factory()
195 ->GetSession();
196 DCHECK(http_session);
197 http_session->http_auth_cache()->Clear(base::Time::Now() - delete_begin);
198 http_session->CloseAllConnections();
199 }
200
186 void ClearNetworkPredictorOnIOThread(chrome_browser_net::Predictor* predictor) { 201 void ClearNetworkPredictorOnIOThread(chrome_browser_net::Predictor* predictor) {
187 DCHECK_CURRENTLY_ON(BrowserThread::IO); 202 DCHECK_CURRENTLY_ON(BrowserThread::IO);
188 DCHECK(predictor); 203 DCHECK(predictor);
189 204
190 predictor->DiscardInitialNavigationHistory(); 205 predictor->DiscardInitialNavigationHistory();
191 predictor->DiscardAllResults(); 206 predictor->DiscardAllResults();
192 } 207 }
193 208
194 #if !defined(DISABLE_NACL) 209 #if !defined(DISABLE_NACL)
195 void ClearNaClCacheOnIOThread(const base::Closure& callback) { 210 void ClearNaClCacheOnIOThread(const base::Closure& callback) {
(...skipping 692 matching lines...) Expand 10 before | Expand all | Expand 10 after
888 903
889 // When clearing cache, wipe accumulated network related data 904 // When clearing cache, wipe accumulated network related data
890 // (TransportSecurityState and HttpServerPropertiesManager data). 905 // (TransportSecurityState and HttpServerPropertiesManager data).
891 waiting_for_clear_networking_history_ = true; 906 waiting_for_clear_networking_history_ = true;
892 profile_->ClearNetworkingHistorySince( 907 profile_->ClearNetworkingHistorySince(
893 delete_begin_, 908 delete_begin_,
894 base::Bind(&BrowsingDataRemover::OnClearedNetworkingHistory, 909 base::Bind(&BrowsingDataRemover::OnClearedNetworkingHistory,
895 weak_ptr_factory_.GetWeakPtr())); 910 weak_ptr_factory_.GetWeakPtr()));
896 } 911 }
897 912
913 if (remove_mask & REMOVE_COOKIES || remove_mask & REMOVE_PASSWORDS) {
914 scoped_refptr<net::URLRequestContextGetter> request_context =
915 profile_->GetRequestContext();
916 waiting_for_clear_http_auth_cache_ = true;
917 BrowserThread::PostTaskAndReply(
918 BrowserThread::IO, FROM_HERE,
919 base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context),
920 delete_begin_),
921 base::Bind(&BrowsingDataRemover::OnClearedHttpAuthCache,
922 weak_ptr_factory_.GetWeakPtr()));
923 }
924
898 // Content Decryption Modules used by Encrypted Media store licenses in a 925 // Content Decryption Modules used by Encrypted Media store licenses in a
899 // private filesystem. These are different than content licenses used by 926 // private filesystem. These are different than content licenses used by
900 // Flash (which are deleted father down in this method). 927 // Flash (which are deleted father down in this method).
901 if (remove_mask & REMOVE_MEDIA_LICENSES) { 928 if (remove_mask & REMOVE_MEDIA_LICENSES) {
902 storage_partition_remove_mask |= 929 storage_partition_remove_mask |=
903 content::StoragePartition::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA; 930 content::StoragePartition::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA;
904 } 931 }
905 932
906 if (storage_partition_remove_mask) { 933 if (storage_partition_remove_mask) {
907 waiting_for_clear_storage_partition_data_ = true; 934 waiting_for_clear_storage_partition_data_ = true;
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
1078 } 1105 }
1079 1106
1080 bool BrowsingDataRemover::AllDone() { 1107 bool BrowsingDataRemover::AllDone() {
1081 return !waiting_for_clear_autofill_origin_urls_ && 1108 return !waiting_for_clear_autofill_origin_urls_ &&
1082 !waiting_for_clear_cache_ && 1109 !waiting_for_clear_cache_ &&
1083 !waiting_for_clear_flash_content_licenses_ && 1110 !waiting_for_clear_flash_content_licenses_ &&
1084 !waiting_for_clear_channel_ids_ && !waiting_for_clear_cookies_count_ && 1111 !waiting_for_clear_channel_ids_ && !waiting_for_clear_cookies_count_ &&
1085 !waiting_for_clear_domain_reliability_monitor_ && 1112 !waiting_for_clear_domain_reliability_monitor_ &&
1086 !waiting_for_clear_form_ && !waiting_for_clear_history_ && 1113 !waiting_for_clear_form_ && !waiting_for_clear_history_ &&
1087 !waiting_for_clear_hostname_resolution_cache_ && 1114 !waiting_for_clear_hostname_resolution_cache_ &&
1115 !waiting_for_clear_http_auth_cache_ &&
1088 !waiting_for_clear_keyword_data_ && !waiting_for_clear_nacl_cache_ && 1116 !waiting_for_clear_keyword_data_ && !waiting_for_clear_nacl_cache_ &&
1089 !waiting_for_clear_network_predictor_ && 1117 !waiting_for_clear_network_predictor_ &&
1090 !waiting_for_clear_networking_history_ && 1118 !waiting_for_clear_networking_history_ &&
1091 !waiting_for_clear_passwords_ && !waiting_for_clear_passwords_stats_ && 1119 !waiting_for_clear_passwords_ && !waiting_for_clear_passwords_stats_ &&
1092 !waiting_for_clear_platform_keys_ && !waiting_for_clear_plugin_data_ && 1120 !waiting_for_clear_platform_keys_ && !waiting_for_clear_plugin_data_ &&
1093 !waiting_for_clear_pnacl_cache_ && 1121 !waiting_for_clear_pnacl_cache_ &&
1094 #if BUILDFLAG(ANDROID_JAVA_UI) 1122 #if BUILDFLAG(ANDROID_JAVA_UI)
1095 !waiting_for_clear_precache_history_ && 1123 !waiting_for_clear_precache_history_ &&
1096 !waiting_for_clear_webapp_data_ && 1124 !waiting_for_clear_webapp_data_ &&
1097 !waiting_for_clear_webapp_history_ && 1125 !waiting_for_clear_webapp_history_ &&
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 waiting_for_clear_history_ = false; 1178 waiting_for_clear_history_ = false;
1151 NotifyIfDone(); 1179 NotifyIfDone();
1152 } 1180 }
1153 1181
1154 void BrowsingDataRemover::OnClearedHostnameResolutionCache() { 1182 void BrowsingDataRemover::OnClearedHostnameResolutionCache() {
1155 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1183 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1156 waiting_for_clear_hostname_resolution_cache_ = false; 1184 waiting_for_clear_hostname_resolution_cache_ = false;
1157 NotifyIfDone(); 1185 NotifyIfDone();
1158 } 1186 }
1159 1187
1188 void BrowsingDataRemover::OnClearedHttpAuthCache() {
1189 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1190 waiting_for_clear_http_auth_cache_ = false;
1191 NotifyIfDone();
1192 }
1193
1160 void BrowsingDataRemover::OnClearedNetworkPredictor() { 1194 void BrowsingDataRemover::OnClearedNetworkPredictor() {
1161 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1195 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1162 waiting_for_clear_network_predictor_ = false; 1196 waiting_for_clear_network_predictor_ = false;
1163 NotifyIfDone(); 1197 NotifyIfDone();
1164 } 1198 }
1165 1199
1166 void BrowsingDataRemover::OnClearedNetworkingHistory() { 1200 void BrowsingDataRemover::OnClearedNetworkingHistory() {
1167 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1201 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1168 waiting_for_clear_networking_history_ = false; 1202 waiting_for_clear_networking_history_ = false;
1169 NotifyIfDone(); 1203 NotifyIfDone();
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 waiting_for_clear_domain_reliability_monitor_ = false; 1347 waiting_for_clear_domain_reliability_monitor_ = false;
1314 NotifyIfDone(); 1348 NotifyIfDone();
1315 } 1349 }
1316 1350
1317 // static 1351 // static
1318 BrowsingDataRemover::CallbackSubscription 1352 BrowsingDataRemover::CallbackSubscription
1319 BrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback( 1353 BrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback(
1320 const BrowsingDataRemover::Callback& callback) { 1354 const BrowsingDataRemover::Callback& callback) {
1321 return GetOnBrowsingDataRemovedCallbacks()->Add(callback); 1355 return GetOnBrowsingDataRemovedCallbacks()->Add(callback);
1322 } 1356 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698