Chromium Code Reviews| Index: chrome/browser/ui/webui/downloads_dom_handler.cc |
| diff --git a/chrome/browser/ui/webui/downloads_dom_handler.cc b/chrome/browser/ui/webui/downloads_dom_handler.cc |
| index 514ae7a0157fa46445cbfb804f5e7814e6292aef..3c9f22dc8b17726f8fba8f69e50ba2e8b0075ff9 100644 |
| --- a/chrome/browser/ui/webui/downloads_dom_handler.cc |
| +++ b/chrome/browser/ui/webui/downloads_dom_handler.cc |
| @@ -179,14 +179,6 @@ void DownloadsDOMHandler::OnDownloadUpdated(content::DownloadItem* download) { |
| if (it == download_items_.end()) |
| return; |
| - if (download->GetState() == content::DownloadItem::REMOVING) { |
| - (*it)->RemoveObserver(this); |
| - *it = NULL; |
| - // A later ModelChanged() notification will change the WebUI's |
| - // view of the downloads list. |
| - return; |
| - } |
| - |
| const int id = static_cast<int>(it - download_items_.begin()); |
| ListValue results_value; |
| @@ -194,6 +186,17 @@ void DownloadsDOMHandler::OnDownloadUpdated(content::DownloadItem* download) { |
| web_ui()->CallJavascriptFunction("downloadUpdated", results_value); |
| } |
| +void DownloadsDOMHandler::OnDownloadDestroyed( |
| + content::DownloadItem* download) { |
| + download->RemoveObserver(this); |
| + OrderedDownloads::iterator it = std::find(download_items_.begin(), |
| + download_items_.end(), |
| + download); |
| + *it = NULL; |
|
Evan Stade
2012/07/26 21:34:18
why are you nulling rather than erasing?
benjhayden
2012/07/27 19:43:34
I presume in case we receive an event from the dow
|
| + // A later ModelChanged() notification will change the WebUI's |
| + // view of the downloads list. |
| +} |
| + |
| // A download has started or been deleted. Query our DownloadManager for the |
| // current set of downloads. |
| void DownloadsDOMHandler::ModelChanged(content::DownloadManager* manager) { |