Chromium Code Reviews| 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 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 244 void BrowsingDataRemover::set_removing(bool is_removing) { | 244 void BrowsingDataRemover::set_removing(bool is_removing) { |
| 245 DCHECK(is_removing_ != is_removing); | 245 DCHECK(is_removing_ != is_removing); |
| 246 is_removing_ = is_removing; | 246 is_removing_ = is_removing; |
| 247 } | 247 } |
| 248 | 248 |
| 249 void BrowsingDataRemover::Remove(int remove_mask, int origin_type_mask) { | 249 void BrowsingDataRemover::Remove(int remove_mask, int origin_type_mask) { |
| 250 RemoveImpl(remove_mask, GURL(), origin_type_mask); | 250 RemoveImpl(remove_mask, GURL(), origin_type_mask); |
| 251 } | 251 } |
| 252 | 252 |
| 253 void BrowsingDataRemover::RemoveImpl(int remove_mask, | 253 void BrowsingDataRemover::RemoveImpl(int remove_mask, |
| 254 const GURL& origin, | 254 const GURL& origin, |
|
Mike West
2015/07/22 20:16:03
Please add a TODO to replace this with `url::Origi
| |
| 255 int origin_type_mask) { | 255 int origin_type_mask) { |
| 256 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 256 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 257 set_removing(true); | 257 set_removing(true); |
| 258 remove_mask_ = remove_mask; | 258 remove_mask_ = remove_mask; |
| 259 remove_origin_ = origin; | 259 remove_origin_ = origin; |
| 260 origin_type_mask_ = origin_type_mask; | 260 origin_type_mask_ = origin_type_mask; |
| 261 | 261 |
| 262 PrefService* prefs = profile_->GetPrefs(); | 262 PrefService* prefs = profile_->GetPrefs(); |
| 263 bool may_delete_history = prefs->GetBoolean( | 263 bool may_delete_history = prefs->GetBoolean( |
| 264 prefs::kAllowDeletingBrowserHistory); | 264 prefs::kAllowDeletingBrowserHistory); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 281 UserMetricsAction("ClearBrowsingData_MaskContainsExtension")); | 281 UserMetricsAction("ClearBrowsingData_MaskContainsExtension")); |
| 282 } | 282 } |
| 283 // If this fires, we added a new BrowsingDataHelper::OriginTypeMask without | 283 // If this fires, we added a new BrowsingDataHelper::OriginTypeMask without |
| 284 // updating the user metrics above. | 284 // updating the user metrics above. |
| 285 static_assert( | 285 static_assert( |
| 286 BrowsingDataHelper::ALL == (BrowsingDataHelper::UNPROTECTED_WEB | | 286 BrowsingDataHelper::ALL == (BrowsingDataHelper::UNPROTECTED_WEB | |
| 287 BrowsingDataHelper::PROTECTED_WEB | | 287 BrowsingDataHelper::PROTECTED_WEB | |
| 288 BrowsingDataHelper::EXTENSION), | 288 BrowsingDataHelper::EXTENSION), |
| 289 "OriginTypeMask has been updated without updating user metrics"); | 289 "OriginTypeMask has been updated without updating user metrics"); |
| 290 | 290 |
| 291 std::set<GURL> restrict_urls; | |
|
Mike West
2015/07/22 20:16:03
1. Why do we need a set here if we're adding a sin
Timo Reimann
2015/07/22 23:22:15
According to git history, the set was added back i
Mike West
2015/07/23 09:56:49
If there's a reasonable use case for multiple orig
Timo Reimann
2015/07/23 23:11:07
As of now, only for history::HistoryService::Expir
| |
| 292 if (!remove_origin_.is_empty()) | |
| 293 restrict_urls.insert(remove_origin_); | |
| 294 | |
| 291 if ((remove_mask & REMOVE_HISTORY) && may_delete_history) { | 295 if ((remove_mask & REMOVE_HISTORY) && may_delete_history) { |
| 292 history::HistoryService* history_service = | 296 history::HistoryService* history_service = |
| 293 HistoryServiceFactory::GetForProfile( | 297 HistoryServiceFactory::GetForProfile( |
| 294 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 298 profile_, ServiceAccessType::EXPLICIT_ACCESS); |
| 295 if (history_service) { | 299 if (history_service) { |
| 296 std::set<GURL> restrict_urls; | |
| 297 if (!remove_origin_.is_empty()) | |
| 298 restrict_urls.insert(remove_origin_); | |
| 299 content::RecordAction(UserMetricsAction("ClearBrowsingData_History")); | 300 content::RecordAction(UserMetricsAction("ClearBrowsingData_History")); |
| 300 waiting_for_clear_history_ = true; | 301 waiting_for_clear_history_ = true; |
| 301 | 302 |
| 302 history_service->ExpireLocalAndRemoteHistoryBetween( | 303 history_service->ExpireLocalAndRemoteHistoryBetween( |
| 303 WebHistoryServiceFactory::GetForProfile(profile_), | 304 WebHistoryServiceFactory::GetForProfile(profile_), |
| 304 restrict_urls, delete_begin_, delete_end_, | 305 restrict_urls, delete_begin_, delete_end_, |
| 305 base::Bind(&BrowsingDataRemover::OnHistoryDeletionDone, | 306 base::Bind(&BrowsingDataRemover::OnHistoryDeletionDone, |
| 306 base::Unretained(this)), | 307 base::Unretained(this)), |
| 307 &history_task_tracker_); | 308 &history_task_tracker_); |
| 308 | 309 |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 436 // The SSL Host State that tracks SSL interstitial "proceed" decisions may | 437 // The SSL Host State that tracks SSL interstitial "proceed" decisions may |
| 437 // include origins that the user has visited, so it must be cleared. | 438 // include origins that the user has visited, so it must be cleared. |
| 438 if (profile_->GetSSLHostStateDelegate()) | 439 if (profile_->GetSSLHostStateDelegate()) |
| 439 profile_->GetSSLHostStateDelegate()->Clear(); | 440 profile_->GetSSLHostStateDelegate()->Clear(); |
| 440 } | 441 } |
| 441 | 442 |
| 442 if ((remove_mask & REMOVE_DOWNLOADS) && may_delete_history) { | 443 if ((remove_mask & REMOVE_DOWNLOADS) && may_delete_history) { |
| 443 content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads")); | 444 content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads")); |
| 444 content::DownloadManager* download_manager = | 445 content::DownloadManager* download_manager = |
| 445 BrowserContext::GetDownloadManager(profile_); | 446 BrowserContext::GetDownloadManager(profile_); |
| 446 download_manager->RemoveDownloadsBetween(delete_begin_, delete_end_); | 447 download_manager->RemoveDownloadsBetween(restrict_urls, |
| 448 delete_begin_, | |
| 449 delete_end_); | |
| 447 DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager( | 450 DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager( |
| 448 download_manager); | 451 download_manager); |
| 449 download_prefs->SetSaveFilePath(download_prefs->DownloadPath()); | 452 download_prefs->SetSaveFilePath(download_prefs->DownloadPath()); |
| 450 } | 453 } |
| 451 | 454 |
| 452 uint32 storage_partition_remove_mask = 0; | 455 uint32 storage_partition_remove_mask = 0; |
| 453 | 456 |
| 454 // We ignore the REMOVE_COOKIES request if UNPROTECTED_WEB is not set, | 457 // We ignore the REMOVE_COOKIES request if UNPROTECTED_WEB is not set, |
| 455 // so that callers who request REMOVE_SITE_DATA with PROTECTED_WEB | 458 // so that callers who request REMOVE_SITE_DATA with PROTECTED_WEB |
| 456 // don't accidentally remove the cookies that are associated with the | 459 // don't accidentally remove the cookies that are associated with the |
| (...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1105 waiting_for_clear_domain_reliability_monitor_ = false; | 1108 waiting_for_clear_domain_reliability_monitor_ = false; |
| 1106 NotifyAndDeleteIfDone(); | 1109 NotifyAndDeleteIfDone(); |
| 1107 } | 1110 } |
| 1108 | 1111 |
| 1109 // static | 1112 // static |
| 1110 BrowsingDataRemover::CallbackSubscription | 1113 BrowsingDataRemover::CallbackSubscription |
| 1111 BrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback( | 1114 BrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback( |
| 1112 const BrowsingDataRemover::Callback& callback) { | 1115 const BrowsingDataRemover::Callback& callback) { |
| 1113 return GetOnBrowsingDataRemovedCallbacks()->Add(callback); | 1116 return GetOnBrowsingDataRemovedCallbacks()->Add(callback); |
| 1114 } | 1117 } |
| OLD | NEW |