| 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..9f6ca90840361bee65f036c4690068f80ee84094 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 RemoveDownloadByURLAndTime(
|
| + 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
|
| @@ -591,28 +590,28 @@ int DownloadManagerImpl::RemoveDownloads(const DownloadRemover& remover) {
|
| return count;
|
| }
|
|
|
| -int DownloadManagerImpl::RemoveDownloadsByOriginAndTime(
|
| - const url::Origin& origin,
|
| +int DownloadManagerImpl::RemoveDownloadsByURLAndTime(
|
| + 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));
|
| + return RemoveDownloads(base::Bind(&RemoveDownloadByURLAndTime,
|
| + 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 RemoveDownloadsByURLAndTime(
|
| + 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 = RemoveDownloadsByURLAndTime(
|
| + empty_filter, base::Time(), base::Time());
|
| RecordClearAllSize(num_deleted);
|
| return num_deleted;
|
| }
|
|
|