Chromium Code Reviews| Index: chrome/browser/browsing_data/browsing_data_remover.cc |
| diff --git a/chrome/browser/browsing_data/browsing_data_remover.cc b/chrome/browser/browsing_data/browsing_data_remover.cc |
| index c58ab51a4923239b8d8d0f3ea16a5e224ae75b50..8f456f7efedba372733ecb1d82bb7f0b1e24c849 100644 |
| --- a/chrome/browser/browsing_data/browsing_data_remover.cc |
| +++ b/chrome/browser/browsing_data/browsing_data_remover.cc |
| @@ -72,6 +72,8 @@ |
| #include "content/public/browser/user_metrics.h" |
| #include "net/base/net_errors.h" |
| #include "net/cookies/cookie_store.h" |
| +#include "net/http/http_network_session.h" |
| +#include "net/http/http_transaction_factory.h" |
| #include "net/http/transport_security_state.h" |
| #include "net/ssl/channel_id_service.h" |
| #include "net/ssl/channel_id_store.h" |
| @@ -183,6 +185,19 @@ void ClearHostnameResolutionCacheOnIOThread(IOThread* io_thread) { |
| io_thread->ClearHostCache(); |
| } |
| +void ClearHttpAuthCacheOnIOThread( |
| + scoped_refptr<net::URLRequestContextGetter> context_getter, |
| + base::Time delete_begin, |
| + base::Time delete_end) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + |
| + net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext() |
| + ->http_transaction_factory() |
| + ->GetSession(); |
| + DCHECK(http_session); |
| + http_session->http_auth_cache()->Clear(delete_begin, delete_end); |
|
mmenke
2016/07/12 16:27:11
It makes no sense to clear auth but not closing al
Tomasz Moniuszko
2016/07/15 11:41:34
Done.
|
| +} |
| + |
| void ClearNetworkPredictorOnIOThread(chrome_browser_net::Predictor* predictor) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| DCHECK(predictor); |
| @@ -900,6 +915,19 @@ void BrowsingDataRemover::RemoveImpl( |
| weak_ptr_factory_.GetWeakPtr())); |
| } |
| + if (remove_mask & REMOVE_CACHE || remove_mask & REMOVE_COOKIES || |
|
mmenke
2016/07/12 16:27:11
Hrm...Should we really clear this when clearing th
msramek
2016/07/12 16:52:14
Since this will log you out of the affected sites,
asanka
2016/07/12 17:50:32
The semantics are related, but slightly different.
Tomasz Moniuszko
2016/07/15 11:41:34
REMOVE_CACHE test removed in Patch Set 5.
|
| + remove_mask & REMOVE_PASSWORDS) { |
| + scoped_refptr<net::URLRequestContextGetter> request_context = |
| + profile_->GetRequestContext(); |
| + waiting_for_clear_http_auth_cache_ = true; |
| + BrowserThread::PostTaskAndReply( |
| + BrowserThread::IO, FROM_HERE, |
| + base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context), |
| + delete_begin_, delete_end_), |
| + base::Bind(&BrowsingDataRemover::OnClearedHttpAuthCache, |
| + weak_ptr_factory_.GetWeakPtr())); |
| + } |
| + |
| if (remove_mask & REMOVE_WEBRTC_IDENTITY) { |
| storage_partition_remove_mask |= |
| content::StoragePartition::REMOVE_DATA_MASK_WEBRTC_IDENTITY; |
| @@ -1108,6 +1136,7 @@ bool BrowsingDataRemover::AllDone() { |
| !waiting_for_clear_domain_reliability_monitor_ && |
| !waiting_for_clear_form_ && !waiting_for_clear_history_ && |
| !waiting_for_clear_hostname_resolution_cache_ && |
| + !waiting_for_clear_http_auth_cache_ && |
| !waiting_for_clear_keyword_data_ && !waiting_for_clear_nacl_cache_ && |
| !waiting_for_clear_network_predictor_ && |
| !waiting_for_clear_networking_history_ && |
| @@ -1180,6 +1209,12 @@ void BrowsingDataRemover::OnClearedHostnameResolutionCache() { |
| NotifyIfDone(); |
| } |
| +void BrowsingDataRemover::OnClearedHttpAuthCache() { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + waiting_for_clear_http_auth_cache_ = false; |
| + NotifyIfDone(); |
| +} |
| + |
| void BrowsingDataRemover::OnClearedNetworkPredictor() { |
| DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| waiting_for_clear_network_predictor_ = false; |