Chromium Code Reviews| Index: chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc |
| diff --git a/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc b/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc |
| index 39d3cc3f462c678aebfff654073563253d9166aa..c274a71bb58d7cf3d369bc28baba3c6282e228f9 100644 |
| --- a/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc |
| +++ b/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc |
| @@ -135,7 +135,7 @@ void MdDownloadsDOMHandler::RegisterMessages() { |
| void MdDownloadsDOMHandler::RenderViewReused( |
| content::RenderViewHost* render_view_host) { |
| - list_tracker_.Stop(); |
| + list_tracker_.Reset(); |
| } |
| void MdDownloadsDOMHandler::HandleGetDownloads(const base::ListValue* args) { |
| @@ -143,9 +143,9 @@ void MdDownloadsDOMHandler::HandleGetDownloads(const base::ListValue* args) { |
| bool terms_changed = list_tracker_.SetSearchTerms(*args); |
| if (terms_changed) |
| - list_tracker_.CallClearAll(); |
| + list_tracker_.Reset(); |
| - list_tracker_.Start(); |
| + list_tracker_.StartAndSendChunk(); |
| } |
| void MdDownloadsDOMHandler::HandleOpenFile(const base::ListValue* args) { |
| @@ -238,6 +238,10 @@ void MdDownloadsDOMHandler::HandleUndo(const base::ListValue* args) { |
| const IdSet last_removed_ids = removals_.back(); |
| removals_.pop_back(); |
| + const bool undoing_clear_all = last_removed_ids.size() > 1; |
| + if (undoing_clear_all) |
|
Dan Beam
2015/12/05 00:31:43
^ this is how
|
| + list_tracker_.Reset(); |
| + |
| for (auto id : last_removed_ids) { |
| content::DownloadItem* download = GetDownloadById(id); |
| if (!download) |
| @@ -251,6 +255,9 @@ void MdDownloadsDOMHandler::HandleUndo(const base::ListValue* args) { |
| model.SetIsBeingRevived(false); |
| } |
| + |
| + if (undoing_clear_all) |
| + list_tracker_.StartAndSendChunk(); |
| } |
| void MdDownloadsDOMHandler::HandleCancel(const base::ListValue* args) { |
| @@ -268,8 +275,7 @@ void MdDownloadsDOMHandler::HandleClearAll(const base::ListValue* args) { |
| CountDownloadsDOMEvents(DOWNLOADS_DOM_EVENT_CLEAR_ALL); |
| - list_tracker_.CallClearAll(); |
| - list_tracker_.Stop(); |
| + list_tracker_.Reset(); |
| DownloadVector downloads; |
| if (GetMainNotifierManager()) |
| @@ -278,7 +284,7 @@ void MdDownloadsDOMHandler::HandleClearAll(const base::ListValue* args) { |
| GetOriginalNotifierManager()->GetAllDownloads(&downloads); |
| RemoveDownloads(downloads); |
| - list_tracker_.Start(); |
| + list_tracker_.StartAndSendChunk(); |
| } |
| void MdDownloadsDOMHandler::RemoveDownloads(const DownloadVector& to_remove) { |