OLD | NEW |
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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 #include "components/web_cache/browser/web_cache_manager.h" | 66 #include "components/web_cache/browser/web_cache_manager.h" |
67 #include "content/public/browser/browser_thread.h" | 67 #include "content/public/browser/browser_thread.h" |
68 #include "content/public/browser/download_manager.h" | 68 #include "content/public/browser/download_manager.h" |
69 #include "content/public/browser/notification_service.h" | 69 #include "content/public/browser/notification_service.h" |
70 #include "content/public/browser/plugin_data_remover.h" | 70 #include "content/public/browser/plugin_data_remover.h" |
71 #include "content/public/browser/ssl_host_state_delegate.h" | 71 #include "content/public/browser/ssl_host_state_delegate.h" |
72 #include "content/public/browser/storage_partition.h" | 72 #include "content/public/browser/storage_partition.h" |
73 #include "content/public/browser/user_metrics.h" | 73 #include "content/public/browser/user_metrics.h" |
74 #include "net/base/net_errors.h" | 74 #include "net/base/net_errors.h" |
75 #include "net/cookies/cookie_store.h" | 75 #include "net/cookies/cookie_store.h" |
| 76 #include "net/http/http_network_session.h" |
| 77 #include "net/http/http_transaction_factory.h" |
76 #include "net/http/transport_security_state.h" | 78 #include "net/http/transport_security_state.h" |
77 #include "net/ssl/channel_id_service.h" | 79 #include "net/ssl/channel_id_service.h" |
78 #include "net/ssl/channel_id_store.h" | 80 #include "net/ssl/channel_id_store.h" |
79 #include "net/url_request/url_request_context.h" | 81 #include "net/url_request/url_request_context.h" |
80 #include "net/url_request/url_request_context_getter.h" | 82 #include "net/url_request/url_request_context_getter.h" |
81 #include "storage/browser/quota/special_storage_policy.h" | 83 #include "storage/browser/quota/special_storage_policy.h" |
82 #include "url/origin.h" | 84 #include "url/origin.h" |
83 | 85 |
84 #if BUILDFLAG(ANDROID_JAVA_UI) | 86 #if BUILDFLAG(ANDROID_JAVA_UI) |
85 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" | 87 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 const ContentSettingsPattern& secondary_pattern) { | 169 const ContentSettingsPattern& secondary_pattern) { |
168 return predicate.Run(primary_pattern); | 170 return predicate.Run(primary_pattern); |
169 } | 171 } |
170 | 172 |
171 void ClearHostnameResolutionCacheOnIOThread(IOThread* io_thread) { | 173 void ClearHostnameResolutionCacheOnIOThread(IOThread* io_thread) { |
172 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 174 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
173 | 175 |
174 io_thread->ClearHostCache(); | 176 io_thread->ClearHostCache(); |
175 } | 177 } |
176 | 178 |
| 179 void ClearHttpAuthCacheOnIOThread( |
| 180 scoped_refptr<net::URLRequestContextGetter> context_getter, |
| 181 base::Time delete_begin) { |
| 182 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 183 |
| 184 net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext() |
| 185 ->http_transaction_factory() |
| 186 ->GetSession(); |
| 187 DCHECK(http_session); |
| 188 http_session->http_auth_cache()->ClearEntriesAddedWithin(base::Time::Now() - |
| 189 delete_begin); |
| 190 http_session->CloseAllConnections(); |
| 191 } |
| 192 |
177 void ClearNetworkPredictorOnIOThread(chrome_browser_net::Predictor* predictor) { | 193 void ClearNetworkPredictorOnIOThread(chrome_browser_net::Predictor* predictor) { |
178 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 194 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
179 DCHECK(predictor); | 195 DCHECK(predictor); |
180 | 196 |
181 predictor->DiscardInitialNavigationHistory(); | 197 predictor->DiscardInitialNavigationHistory(); |
182 predictor->DiscardAllResults(); | 198 predictor->DiscardAllResults(); |
183 } | 199 } |
184 | 200 |
185 #if !defined(DISABLE_NACL) | 201 #if !defined(DISABLE_NACL) |
186 void ClearNaClCacheOnIOThread(const base::Closure& callback) { | 202 void ClearNaClCacheOnIOThread(const base::Closure& callback) { |
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
962 | 978 |
963 // When clearing cache, wipe accumulated network related data | 979 // When clearing cache, wipe accumulated network related data |
964 // (TransportSecurityState and HttpServerPropertiesManager data). | 980 // (TransportSecurityState and HttpServerPropertiesManager data). |
965 waiting_for_clear_networking_history_ = true; | 981 waiting_for_clear_networking_history_ = true; |
966 profile_->ClearNetworkingHistorySince( | 982 profile_->ClearNetworkingHistorySince( |
967 delete_begin_, | 983 delete_begin_, |
968 base::Bind(&BrowsingDataRemover::OnClearedNetworkingHistory, | 984 base::Bind(&BrowsingDataRemover::OnClearedNetworkingHistory, |
969 weak_ptr_factory_.GetWeakPtr())); | 985 weak_ptr_factory_.GetWeakPtr())); |
970 } | 986 } |
971 | 987 |
| 988 if (remove_mask & REMOVE_COOKIES || remove_mask & REMOVE_PASSWORDS) { |
| 989 scoped_refptr<net::URLRequestContextGetter> request_context = |
| 990 profile_->GetRequestContext(); |
| 991 waiting_for_clear_http_auth_cache_ = true; |
| 992 BrowserThread::PostTaskAndReply( |
| 993 BrowserThread::IO, FROM_HERE, |
| 994 base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context), |
| 995 delete_begin_), |
| 996 base::Bind(&BrowsingDataRemover::OnClearedHttpAuthCache, |
| 997 weak_ptr_factory_.GetWeakPtr())); |
| 998 } |
| 999 |
972 // Content Decryption Modules used by Encrypted Media store licenses in a | 1000 // Content Decryption Modules used by Encrypted Media store licenses in a |
973 // private filesystem. These are different than content licenses used by | 1001 // private filesystem. These are different than content licenses used by |
974 // Flash (which are deleted father down in this method). | 1002 // Flash (which are deleted father down in this method). |
975 if (remove_mask & REMOVE_MEDIA_LICENSES) { | 1003 if (remove_mask & REMOVE_MEDIA_LICENSES) { |
976 storage_partition_remove_mask |= | 1004 storage_partition_remove_mask |= |
977 content::StoragePartition::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA; | 1005 content::StoragePartition::REMOVE_DATA_MASK_PLUGIN_PRIVATE_DATA; |
978 } | 1006 } |
979 | 1007 |
980 if (storage_partition_remove_mask) { | 1008 if (storage_partition_remove_mask) { |
981 waiting_for_clear_storage_partition_data_ = true; | 1009 waiting_for_clear_storage_partition_data_ = true; |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 | 1223 |
1196 bool BrowsingDataRemover::AllDone() { | 1224 bool BrowsingDataRemover::AllDone() { |
1197 return !waiting_for_synchronous_clear_operations_ && | 1225 return !waiting_for_synchronous_clear_operations_ && |
1198 !waiting_for_clear_autofill_origin_urls_ && | 1226 !waiting_for_clear_autofill_origin_urls_ && |
1199 !waiting_for_clear_cache_ && | 1227 !waiting_for_clear_cache_ && |
1200 !waiting_for_clear_flash_content_licenses_ && | 1228 !waiting_for_clear_flash_content_licenses_ && |
1201 !waiting_for_clear_channel_ids_ && !waiting_for_clear_cookies_count_ && | 1229 !waiting_for_clear_channel_ids_ && !waiting_for_clear_cookies_count_ && |
1202 !waiting_for_clear_domain_reliability_monitor_ && | 1230 !waiting_for_clear_domain_reliability_monitor_ && |
1203 !waiting_for_clear_form_ && !waiting_for_clear_history_ && | 1231 !waiting_for_clear_form_ && !waiting_for_clear_history_ && |
1204 !waiting_for_clear_hostname_resolution_cache_ && | 1232 !waiting_for_clear_hostname_resolution_cache_ && |
| 1233 !waiting_for_clear_http_auth_cache_ && |
1205 !waiting_for_clear_keyword_data_ && !waiting_for_clear_nacl_cache_ && | 1234 !waiting_for_clear_keyword_data_ && !waiting_for_clear_nacl_cache_ && |
1206 !waiting_for_clear_network_predictor_ && | 1235 !waiting_for_clear_network_predictor_ && |
1207 !waiting_for_clear_networking_history_ && | 1236 !waiting_for_clear_networking_history_ && |
1208 !waiting_for_clear_passwords_ && !waiting_for_clear_passwords_stats_ && | 1237 !waiting_for_clear_passwords_ && !waiting_for_clear_passwords_stats_ && |
1209 !waiting_for_clear_platform_keys_ && | 1238 !waiting_for_clear_platform_keys_ && |
1210 !waiting_for_clear_plugin_data_count_ && | 1239 !waiting_for_clear_plugin_data_count_ && |
1211 !waiting_for_clear_pnacl_cache_ && | 1240 !waiting_for_clear_pnacl_cache_ && |
1212 #if BUILDFLAG(ANDROID_JAVA_UI) | 1241 #if BUILDFLAG(ANDROID_JAVA_UI) |
1213 !waiting_for_clear_precache_history_ && | 1242 !waiting_for_clear_precache_history_ && |
1214 !waiting_for_clear_webapp_data_ && | 1243 !waiting_for_clear_webapp_data_ && |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1293 waiting_for_clear_history_ = false; | 1322 waiting_for_clear_history_ = false; |
1294 NotifyIfDone(); | 1323 NotifyIfDone(); |
1295 } | 1324 } |
1296 | 1325 |
1297 void BrowsingDataRemover::OnClearedHostnameResolutionCache() { | 1326 void BrowsingDataRemover::OnClearedHostnameResolutionCache() { |
1298 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1327 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1299 waiting_for_clear_hostname_resolution_cache_ = false; | 1328 waiting_for_clear_hostname_resolution_cache_ = false; |
1300 NotifyIfDone(); | 1329 NotifyIfDone(); |
1301 } | 1330 } |
1302 | 1331 |
| 1332 void BrowsingDataRemover::OnClearedHttpAuthCache() { |
| 1333 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 1334 waiting_for_clear_http_auth_cache_ = false; |
| 1335 NotifyIfDone(); |
| 1336 } |
| 1337 |
1303 void BrowsingDataRemover::OnClearedNetworkPredictor() { | 1338 void BrowsingDataRemover::OnClearedNetworkPredictor() { |
1304 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1339 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1305 waiting_for_clear_network_predictor_ = false; | 1340 waiting_for_clear_network_predictor_ = false; |
1306 NotifyIfDone(); | 1341 NotifyIfDone(); |
1307 } | 1342 } |
1308 | 1343 |
1309 void BrowsingDataRemover::OnClearedNetworkingHistory() { | 1344 void BrowsingDataRemover::OnClearedNetworkingHistory() { |
1310 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1345 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1311 waiting_for_clear_networking_history_ = false; | 1346 waiting_for_clear_networking_history_ = false; |
1312 NotifyIfDone(); | 1347 NotifyIfDone(); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1481 waiting_for_clear_offline_page_data_ = false; | 1516 waiting_for_clear_offline_page_data_ = false; |
1482 NotifyIfDone(); | 1517 NotifyIfDone(); |
1483 } | 1518 } |
1484 #endif | 1519 #endif |
1485 | 1520 |
1486 void BrowsingDataRemover::OnClearedDomainReliabilityMonitor() { | 1521 void BrowsingDataRemover::OnClearedDomainReliabilityMonitor() { |
1487 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 1522 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
1488 waiting_for_clear_domain_reliability_monitor_ = false; | 1523 waiting_for_clear_domain_reliability_monitor_ = false; |
1489 NotifyIfDone(); | 1524 NotifyIfDone(); |
1490 } | 1525 } |
OLD | NEW |