| 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 d10d8e6ea3e21058cda65ae2a1fa6bccf9425349..7841676f0960073e9cb74f5aaa905e3d7a098e84 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::OnDownloadDestructed(
|
| + content::DownloadItem* download) {
|
| + download->RemoveObserver(this);
|
| + OrderedDownloads::iterator it = std::find(download_items_.begin(),
|
| + download_items_.end(),
|
| + download);
|
| + *it = NULL;
|
| + // 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) {
|
|
|