Index: content/browser/download/download_manager_impl.cc |
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc |
index 97c0a85e71467d22ca6882bf0cb6d34230a05d2e..0cc3bac95293dcd7b9a8c481d20ffb423eb68619 100644 |
--- a/content/browser/download/download_manager_impl.cc |
+++ b/content/browser/download/download_manager_impl.cc |
@@ -556,19 +556,18 @@ void DownloadManagerImpl::RemoveUrlDownloader(UrlDownloader* downloader) { |
namespace { |
-bool RemoveDownloadBetween(base::Time remove_begin, |
- base::Time remove_end, |
- const DownloadItemImpl* download_item) { |
- return download_item->GetStartTime() >= remove_begin && |
- (remove_end.is_null() || download_item->GetStartTime() < remove_end); |
+bool EmptyFilter(const GURL& url) { |
+ return true; |
} |
-bool RemoveDownloadByOriginAndTime(const url::Origin& origin, |
- base::Time remove_begin, |
- base::Time remove_end, |
- const DownloadItemImpl* download_item) { |
- return origin.IsSameOriginWith(url::Origin(download_item->GetURL())) && |
- RemoveDownloadBetween(remove_begin, remove_end, download_item); |
+bool RemoveDownloadByOriginAndTime( |
+ const base::Callback<bool(const GURL&)>& url_filter, |
+ base::Time remove_begin, |
+ base::Time remove_end, |
+ const DownloadItemImpl* download_item) { |
+ return url_filter.Run(download_item->GetURL()) && |
+ download_item->GetStartTime() >= remove_begin && |
+ (remove_end.is_null() || download_item->GetStartTime() < remove_end); |
} |
} // namespace |
@@ -592,27 +591,27 @@ int DownloadManagerImpl::RemoveDownloads(const DownloadRemover& remover) { |
} |
int DownloadManagerImpl::RemoveDownloadsByOriginAndTime( |
- const url::Origin& origin, |
+ const base::Callback<bool(const GURL&)>& url_filter, |
base::Time remove_begin, |
base::Time remove_end) { |
return RemoveDownloads(base::Bind(&RemoveDownloadByOriginAndTime, |
- base::ConstRef(origin), remove_begin, |
- remove_end)); |
-} |
- |
-int DownloadManagerImpl::RemoveDownloadsBetween(base::Time remove_begin, |
- base::Time remove_end) { |
- return RemoveDownloads( |
- base::Bind(&RemoveDownloadBetween, remove_begin, remove_end)); |
+ url_filter, |
+ remove_begin, remove_end)); |
} |
int DownloadManagerImpl::RemoveDownloads(base::Time remove_begin) { |
- return RemoveDownloadsBetween(remove_begin, base::Time()); |
+ const base::Callback<bool(const GURL&)> empty_filter = |
+ base::Bind(&EmptyFilter); |
+ return RemoveDownloadsByOriginAndTime( |
+ empty_filter, remove_begin, base::Time()); |
} |
int DownloadManagerImpl::RemoveAllDownloads() { |
+ const base::Callback<bool(const GURL&)> empty_filter = |
+ base::Bind(&EmptyFilter); |
// The null times make the date range unbounded. |
- int num_deleted = RemoveDownloadsBetween(base::Time(), base::Time()); |
+ int num_deleted = RemoveDownloadsByOriginAndTime( |
+ empty_filter, base::Time(), base::Time()); |
RecordClearAllSize(num_deleted); |
return num_deleted; |
} |