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

Unified Diff: chrome/browser/browsing_data/browsing_data_remover.cc

Issue 1251243003: Support restricting browsing data removal for downloads by origin. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Remove unneeded DCHECK; Initialize and clear download URLs along test fixture life cycle. Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
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 4f41816acf8f53878debeae4744c75ea5201a23f..dec339ac34e6fb5b68cc8758f72784f354994ba6 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.cc
+++ b/chrome/browser/browsing_data/browsing_data_remover.cc
@@ -67,6 +67,7 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
#include "storage/browser/quota/special_storage_policy.h"
+#include "url/origin.h"
#if defined(OS_ANDROID)
#include "chrome/browser/precache/precache_manager_factory.h"
@@ -232,7 +233,6 @@ BrowsingDataRemover::BrowsingDataRemover(Profile* profile,
waiting_for_clear_webrtc_logs_(false),
#endif
remove_mask_(0),
- remove_origin_(GURL()),
origin_type_mask_(0),
storage_partition_for_testing_(NULL) {
DCHECK(profile);
@@ -259,13 +259,13 @@ void BrowsingDataRemover::Remove(int remove_mask, int origin_type_mask) {
}
void BrowsingDataRemover::RemoveImpl(int remove_mask,
- const GURL& origin,
+ const GURL& remove_url,
int origin_type_mask) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
set_removing(true);
remove_mask_ = remove_mask;
- remove_origin_ = origin;
origin_type_mask_ = origin_type_mask;
+ url::Origin remove_origin(remove_url);
PrefService* prefs = profile_->GetPrefs();
bool may_delete_history = prefs->GetBoolean(
@@ -302,8 +302,8 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
profile_, ServiceAccessType::EXPLICIT_ACCESS);
if (history_service) {
std::set<GURL> restrict_urls;
- if (!remove_origin_.is_empty())
- restrict_urls.insert(remove_origin_);
+ if (!remove_url.is_empty())
+ restrict_urls.insert(remove_url);
content::RecordAction(UserMetricsAction("ClearBrowsingData_History"));
waiting_for_clear_history_ = true;
@@ -367,8 +367,8 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
keywords_model->Load();
waiting_for_clear_keyword_data_ = true;
} else if (keywords_model) {
- keywords_model->RemoveAutoGeneratedForOriginBetween(remove_origin_,
- delete_begin_, delete_end_);
+ keywords_model->RemoveAutoGeneratedForOriginBetween(
+ remove_url, delete_begin_, delete_end_);
}
// The PrerenderManager keeps history of prerendered pages, so clear that.
@@ -385,7 +385,7 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
// If the caller is removing history for all hosts, then clear ancillary
// historical information.
- if (remove_origin_.is_empty()) {
+ if (remove_url.is_empty()) {
// We also delete the list of recently closed tabs. Since these expire,
// they can't be more than a day old, so we can simply clear them all.
TabRestoreService* tab_service =
@@ -468,7 +468,11 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads"));
content::DownloadManager* download_manager =
BrowserContext::GetDownloadManager(profile_);
- download_manager->RemoveDownloadsBetween(delete_begin_, delete_end_);
+ if (remove_origin.unique())
+ download_manager->RemoveDownloadsBetween(delete_begin_, delete_end_);
+ else
+ download_manager->RemoveDownloadsByOriginAndTime(
+ remove_origin, delete_begin_, delete_end_);
DownloadPrefs* download_prefs = DownloadPrefs::FromDownloadManager(
download_manager);
download_prefs->SetSaveFilePath(download_prefs->DownloadPath());
@@ -708,11 +712,8 @@ void BrowsingDataRemover::RemoveImpl(int remove_mask,
}
storage_partition->ClearData(
- storage_partition_remove_mask,
- quota_storage_remove_mask,
- remove_origin_,
- base::Bind(&DoesOriginMatchMask, origin_type_mask_),
- delete_begin_,
+ storage_partition_remove_mask, quota_storage_remove_mask, remove_url,
+ base::Bind(&DoesOriginMatchMask, origin_type_mask_), delete_begin_,
delete_end_,
base::Bind(&BrowsingDataRemover::OnClearedStoragePartitionData,
base::Unretained(this)));
« no previous file with comments | « chrome/browser/browsing_data/browsing_data_remover.h ('k') | chrome/browser/browsing_data/browsing_data_remover_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698