| 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..eb020009b13e1af93aff80f086b84029ffde67c9 100644
|
| --- a/content/browser/download/download_manager_impl.cc
|
| +++ b/content/browser/download/download_manager_impl.cc
|
| @@ -46,6 +46,7 @@
|
| #include "net/base/upload_bytes_element_reader.h"
|
| #include "net/url_request/url_request_context.h"
|
| #include "url/origin.h"
|
| +#include "url/origin_filter.h"
|
|
|
| namespace content {
|
| namespace {
|
| @@ -556,19 +557,13 @@ 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 RemoveDownloadByOriginAndTime(const url::Origin& origin,
|
| +bool RemoveDownloadByOriginAndTime(const url::OriginFilter* origins,
|
| 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);
|
| + return origins->MatchesURL(download_item->GetURL()) &&
|
| + download_item->GetStartTime() >= remove_begin &&
|
| + (remove_end.is_null() || download_item->GetStartTime() < remove_end);
|
| }
|
|
|
| } // namespace
|
| @@ -592,27 +587,23 @@ int DownloadManagerImpl::RemoveDownloads(const DownloadRemover& remover) {
|
| }
|
|
|
| int DownloadManagerImpl::RemoveDownloadsByOriginAndTime(
|
| - const url::Origin& origin,
|
| + const url::OriginFilter* origins,
|
| base::Time remove_begin,
|
| base::Time remove_end) {
|
| return RemoveDownloads(base::Bind(&RemoveDownloadByOriginAndTime,
|
| - base::ConstRef(origin), remove_begin,
|
| + base::Unretained(origins), remove_begin,
|
| remove_end));
|
| }
|
|
|
| -int DownloadManagerImpl::RemoveDownloadsBetween(base::Time remove_begin,
|
| - base::Time remove_end) {
|
| - return RemoveDownloads(
|
| - base::Bind(&RemoveDownloadBetween, remove_begin, remove_end));
|
| -}
|
| -
|
| int DownloadManagerImpl::RemoveDownloads(base::Time remove_begin) {
|
| - return RemoveDownloadsBetween(remove_begin, base::Time());
|
| + return RemoveDownloadsByOriginAndTime(url::OriginFilter::Empty().get(),
|
| + remove_begin, base::Time());
|
| }
|
|
|
| int DownloadManagerImpl::RemoveAllDownloads() {
|
| // The null times make the date range unbounded.
|
| - int num_deleted = RemoveDownloadsBetween(base::Time(), base::Time());
|
| + int num_deleted = RemoveDownloadsByOriginAndTime(
|
| + url::OriginFilter::Empty().get(), base::Time(), base::Time());
|
| RecordClearAllSize(num_deleted);
|
| return num_deleted;
|
| }
|
|
|