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) { |