| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/chrome_browsing_data_remover_delegate.h" | 5 #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 #include "components/search_engines/template_url_service.h" | 67 #include "components/search_engines/template_url_service.h" |
| 68 #include "components/sessions/core/tab_restore_service.h" | 68 #include "components/sessions/core/tab_restore_service.h" |
| 69 #include "components/translate/core/browser/language_model.h" | 69 #include "components/translate/core/browser/language_model.h" |
| 70 #include "components/web_cache/browser/web_cache_manager.h" | 70 #include "components/web_cache/browser/web_cache_manager.h" |
| 71 #include "content/public/browser/browsing_data_filter_builder.h" | 71 #include "content/public/browser/browsing_data_filter_builder.h" |
| 72 #include "content/public/browser/plugin_data_remover.h" | 72 #include "content/public/browser/plugin_data_remover.h" |
| 73 #include "content/public/browser/ssl_host_state_delegate.h" | 73 #include "content/public/browser/ssl_host_state_delegate.h" |
| 74 #include "content/public/browser/storage_partition.h" | 74 #include "content/public/browser/storage_partition.h" |
| 75 #include "net/cookies/cookie_store.h" | 75 #include "net/cookies/cookie_store.h" |
| 76 #include "net/http/http_transaction_factory.h" | 76 #include "net/http/http_transaction_factory.h" |
| 77 #include "net/reporting/reporting_browsing_data_remover.h" |
| 78 #include "net/reporting/reporting_service.h" |
| 77 #include "net/url_request/url_request_context.h" | 79 #include "net/url_request/url_request_context.h" |
| 78 #include "net/url_request/url_request_context_getter.h" | 80 #include "net/url_request/url_request_context_getter.h" |
| 79 #include "url/url_util.h" | 81 #include "url/url_util.h" |
| 80 | 82 |
| 81 #if defined(OS_ANDROID) | 83 #if defined(OS_ANDROID) |
| 82 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" | 84 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" |
| 83 #include "chrome/browser/android/webapps/webapp_registry.h" | 85 #include "chrome/browser/android/webapps/webapp_registry.h" |
| 84 #include "chrome/browser/precache/precache_manager_factory.h" | 86 #include "chrome/browser/precache/precache_manager_factory.h" |
| 85 #include "components/offline_pages/core/offline_page_feature.h" | 87 #include "components/offline_pages/core/offline_page_feature.h" |
| 86 #include "components/offline_pages/core/offline_page_model.h" | 88 #include "components/offline_pages/core/offline_page_model.h" |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 | 231 |
| 230 net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext() | 232 net::HttpNetworkSession* http_session = context_getter->GetURLRequestContext() |
| 231 ->http_transaction_factory() | 233 ->http_transaction_factory() |
| 232 ->GetSession(); | 234 ->GetSession(); |
| 233 DCHECK(http_session); | 235 DCHECK(http_session); |
| 234 http_session->http_auth_cache()->ClearEntriesAddedWithin(base::Time::Now() - | 236 http_session->http_auth_cache()->ClearEntriesAddedWithin(base::Time::Now() - |
| 235 delete_begin); | 237 delete_begin); |
| 236 http_session->CloseAllConnections(); | 238 http_session->CloseAllConnections(); |
| 237 } | 239 } |
| 238 | 240 |
| 241 void ClearReportingCacheOnIOThread( |
| 242 net::URLRequestContextGetter* context, |
| 243 int data_type_mask, |
| 244 const base::Callback<bool(const GURL&)>& origin_filter) { |
| 245 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 246 |
| 247 net::ReportingService* service = |
| 248 context->GetURLRequestContext()->reporting_service(); |
| 249 if (service) |
| 250 service->RemoveBrowsingData(data_type_mask, origin_filter); |
| 251 } |
| 252 |
| 239 // Returned by ChromeBrowsingDataRemoverDelegate::GetOriginTypeMatcher(). | 253 // Returned by ChromeBrowsingDataRemoverDelegate::GetOriginTypeMatcher(). |
| 240 bool DoesOriginMatchEmbedderMask(int origin_type_mask, | 254 bool DoesOriginMatchEmbedderMask(int origin_type_mask, |
| 241 const GURL& origin, | 255 const GURL& origin, |
| 242 storage::SpecialStoragePolicy* policy) { | 256 storage::SpecialStoragePolicy* policy) { |
| 243 DCHECK_EQ( | 257 DCHECK_EQ( |
| 244 0, | 258 0, |
| 245 origin_type_mask & | 259 origin_type_mask & |
| 246 (ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EMBEDDER_BEGIN - 1)) | 260 (ChromeBrowsingDataRemoverDelegate::ORIGIN_TYPE_EMBEDDER_BEGIN - 1)) |
| 247 << "|origin_type_mask| can only contain origin types defined in " | 261 << "|origin_type_mask| can only contain origin types defined in " |
| 248 << "the embedder."; | 262 << "the embedder."; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 clear_http_auth_cache_(sub_task_forward_callback_), | 333 clear_http_auth_cache_(sub_task_forward_callback_), |
| 320 clear_platform_keys_(sub_task_forward_callback_), | 334 clear_platform_keys_(sub_task_forward_callback_), |
| 321 #if defined(OS_ANDROID) | 335 #if defined(OS_ANDROID) |
| 322 clear_precache_history_(sub_task_forward_callback_), | 336 clear_precache_history_(sub_task_forward_callback_), |
| 323 clear_offline_page_data_(sub_task_forward_callback_), | 337 clear_offline_page_data_(sub_task_forward_callback_), |
| 324 #endif | 338 #endif |
| 325 #if BUILDFLAG(ENABLE_WEBRTC) | 339 #if BUILDFLAG(ENABLE_WEBRTC) |
| 326 clear_webrtc_logs_(sub_task_forward_callback_), | 340 clear_webrtc_logs_(sub_task_forward_callback_), |
| 327 #endif | 341 #endif |
| 328 clear_auto_sign_in_(sub_task_forward_callback_), | 342 clear_auto_sign_in_(sub_task_forward_callback_), |
| 343 clear_reporting_cache_(sub_task_forward_callback_), |
| 329 #if BUILDFLAG(ENABLE_PLUGINS) | 344 #if BUILDFLAG(ENABLE_PLUGINS) |
| 330 flash_lso_helper_(BrowsingDataFlashLSOHelper::Create(browser_context)), | 345 flash_lso_helper_(BrowsingDataFlashLSOHelper::Create(browser_context)), |
| 331 #endif | 346 #endif |
| 332 #if defined(OS_ANDROID) | 347 #if defined(OS_ANDROID) |
| 333 webapp_registry_(new WebappRegistry()), | 348 webapp_registry_(new WebappRegistry()), |
| 334 #endif | 349 #endif |
| 335 weak_ptr_factory_(this) {} | 350 weak_ptr_factory_(this) {} |
| 336 | 351 |
| 337 ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() {} | 352 ChromeBrowsingDataRemoverDelegate::~ChromeBrowsingDataRemoverDelegate() {} |
| 338 | 353 |
| (...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 999 mode = domain_reliability::CLEAR_BEACONS; | 1014 mode = domain_reliability::CLEAR_BEACONS; |
| 1000 | 1015 |
| 1001 clear_domain_reliability_monitor_.Start(); | 1016 clear_domain_reliability_monitor_.Start(); |
| 1002 service->ClearBrowsingData( | 1017 service->ClearBrowsingData( |
| 1003 mode, | 1018 mode, |
| 1004 filter, | 1019 filter, |
| 1005 clear_domain_reliability_monitor_.GetCompletionCallback()); | 1020 clear_domain_reliability_monitor_.GetCompletionCallback()); |
| 1006 } | 1021 } |
| 1007 } | 1022 } |
| 1008 | 1023 |
| 1024 if ((remove_mask & content::BrowsingDataRemover::DATA_TYPE_COOKIES) || |
| 1025 (remove_mask & DATA_TYPE_HISTORY)) { |
| 1026 scoped_refptr<net::URLRequestContextGetter> context = |
| 1027 profile_->GetRequestContext(); |
| 1028 |
| 1029 int data_type_mask = 0; |
| 1030 if (remove_mask & DATA_TYPE_HISTORY) |
| 1031 data_type_mask |= net::ReportingBrowsingDataRemover::DATA_TYPE_REPORTS; |
| 1032 if (remove_mask & content::BrowsingDataRemover::DATA_TYPE_COOKIES) |
| 1033 data_type_mask |= net::ReportingBrowsingDataRemover::DATA_TYPE_CLIENTS; |
| 1034 |
| 1035 clear_reporting_cache_.Start(); |
| 1036 BrowserThread::PostTaskAndReply( |
| 1037 BrowserThread::IO, FROM_HERE, |
| 1038 base::Bind(&ClearReportingCacheOnIOThread, |
| 1039 base::RetainedRef(std::move(context)), data_type_mask, |
| 1040 filter), |
| 1041 UIThreadTrampoline(clear_reporting_cache_.GetCompletionCallback())); |
| 1042 } |
| 1043 |
| 1009 ////////////////////////////////////////////////////////////////////////////// | 1044 ////////////////////////////////////////////////////////////////////////////// |
| 1010 // DATA_TYPE_WEB_APP_DATA | 1045 // DATA_TYPE_WEB_APP_DATA |
| 1011 #if defined(OS_ANDROID) | 1046 #if defined(OS_ANDROID) |
| 1012 // Clear all data associated with registered webapps. | 1047 // Clear all data associated with registered webapps. |
| 1013 if (remove_mask & DATA_TYPE_WEB_APP_DATA) | 1048 if (remove_mask & DATA_TYPE_WEB_APP_DATA) |
| 1014 webapp_registry_->UnregisterWebappsForUrls(filter); | 1049 webapp_registry_->UnregisterWebappsForUrls(filter); |
| 1015 #endif | 1050 #endif |
| 1016 | 1051 |
| 1017 ////////////////////////////////////////////////////////////////////////////// | 1052 ////////////////////////////////////////////////////////////////////////////// |
| 1018 // Remove external protocol data. | 1053 // Remove external protocol data. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1048 !clear_http_auth_cache_.is_pending() && | 1083 !clear_http_auth_cache_.is_pending() && |
| 1049 !clear_platform_keys_.is_pending() && | 1084 !clear_platform_keys_.is_pending() && |
| 1050 #if defined(OS_ANDROID) | 1085 #if defined(OS_ANDROID) |
| 1051 !clear_precache_history_.is_pending() && | 1086 !clear_precache_history_.is_pending() && |
| 1052 !clear_offline_page_data_.is_pending() && | 1087 !clear_offline_page_data_.is_pending() && |
| 1053 #endif | 1088 #endif |
| 1054 #if BUILDFLAG(ENABLE_WEBRTC) | 1089 #if BUILDFLAG(ENABLE_WEBRTC) |
| 1055 !clear_webrtc_logs_.is_pending() && | 1090 !clear_webrtc_logs_.is_pending() && |
| 1056 #endif | 1091 #endif |
| 1057 !clear_auto_sign_in_.is_pending() && | 1092 !clear_auto_sign_in_.is_pending() && |
| 1058 !clear_plugin_data_count_; | 1093 !clear_reporting_cache_.is_pending() && !clear_plugin_data_count_; |
| 1059 } | 1094 } |
| 1060 | 1095 |
| 1061 #if defined(OS_ANDROID) | 1096 #if defined(OS_ANDROID) |
| 1062 void ChromeBrowsingDataRemoverDelegate::OverrideWebappRegistryForTesting( | 1097 void ChromeBrowsingDataRemoverDelegate::OverrideWebappRegistryForTesting( |
| 1063 std::unique_ptr<WebappRegistry> webapp_registry) { | 1098 std::unique_ptr<WebappRegistry> webapp_registry) { |
| 1064 webapp_registry_ = std::move(webapp_registry); | 1099 webapp_registry_ = std::move(webapp_registry); |
| 1065 } | 1100 } |
| 1066 #endif | 1101 #endif |
| 1067 | 1102 |
| 1068 #if BUILDFLAG(ENABLE_PLUGINS) | 1103 #if BUILDFLAG(ENABLE_PLUGINS) |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1144 } | 1179 } |
| 1145 | 1180 |
| 1146 void ChromeBrowsingDataRemoverDelegate:: | 1181 void ChromeBrowsingDataRemoverDelegate:: |
| 1147 OnDeauthorizeFlashContentLicensesCompleted( | 1182 OnDeauthorizeFlashContentLicensesCompleted( |
| 1148 uint32_t request_id, | 1183 uint32_t request_id, |
| 1149 bool /* success */) { | 1184 bool /* success */) { |
| 1150 DCHECK_EQ(request_id, deauthorize_flash_content_licenses_request_id_); | 1185 DCHECK_EQ(request_id, deauthorize_flash_content_licenses_request_id_); |
| 1151 clear_flash_content_licenses_.GetCompletionCallback().Run(); | 1186 clear_flash_content_licenses_.GetCompletionCallback().Run(); |
| 1152 } | 1187 } |
| 1153 #endif | 1188 #endif |
| OLD | NEW |