clear-downloads-button.patch 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. ## Replaces the Show all downloads button in the download bar with a button that clears all downloads
  2. --- a/chrome/browser/download/download_shelf.cc
  3. +++ b/chrome/browser/download/download_shelf.cc
  4. @@ -151,3 +151,8 @@ void DownloadShelf::OnGetDownloadDoneFor
  5. ShowDownload(OfflineItemModel::Wrap(manager, item.value()));
  6. }
  7. }
  8. +
  9. +void DownloadShelf::Clear() {
  10. + auto* const manager = profile()->GetDownloadManager();
  11. + if (manager) manager->RemoveDownloadsByURLAndTime(base::BindRepeating([](const GURL&) { return true; }), base::Time(), base::Time());
  12. +}
  13. --- a/chrome/browser/download/download_shelf.h
  14. +++ b/chrome/browser/download/download_shelf.h
  15. @@ -69,6 +69,8 @@ class DownloadShelf {
  16. virtual views::View* GetView() = 0;
  17. bool is_hidden() const { return is_hidden_; }
  18. + void Clear();
  19. +
  20. protected:
  21. virtual void DoShowDownload(DownloadUIModel::DownloadUIModelPtr download) = 0;
  22. virtual void DoOpen() = 0;
  23. --- a/chrome/browser/ui/views/download/download_shelf_view.cc
  24. +++ b/chrome/browser/ui/views/download/download_shelf_view.cc
  25. @@ -78,8 +78,8 @@ DownloadShelfView::DownloadShelfView(Bro
  26. SetVisible(false);
  27. show_all_view_ = AddChildView(std::make_unique<views::MdTextButton>(
  28. - base::BindRepeating(&chrome::ShowDownloads, browser),
  29. - l10n_util::GetStringUTF16(IDS_SHOW_ALL_DOWNLOADS)));
  30. + base::BindRepeating(&DownloadShelf::Clear, base::Unretained(this)),
  31. + l10n_util::GetStringUTF16(IDS_DOWNLOAD_LINK_CLEAR_ALL)));
  32. show_all_view_->SizeToPreferredSize();
  33. close_button_ = AddChildView(views::CreateVectorImageButton(