diff --git a/mozilla/xpfe/components/download-manager/resources/locale/downloadmanager.ent b/mozilla/xpfe/components/download-manager/resources/locale/downloadmanager.ent index 63c2448dda0..2dbcb3d7554 100644 --- a/mozilla/xpfe/components/download-manager/resources/locale/downloadmanager.ent +++ b/mozilla/xpfe/components/download-manager/resources/locale/downloadmanager.ent @@ -5,7 +5,7 @@ - + diff --git a/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp b/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp index 4fd99b169a2..6204d10ad15 100644 --- a/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp +++ b/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp @@ -544,6 +544,16 @@ nsDownloadManager::CancelDownload(const char* aPersistentDescriptor) if (NS_FAILED(rv)) return rv; } + // if there's a progress dialog open for the item, + // we have to notify it that we're cancelling + nsCOMPtr dialog; + internalDownload->GetDialog(getter_AddRefs(dialog)); + if (dialog) { + observer = do_QueryInterface(dialog); + rv = observer->Observe(download, "oncancel", nsnull); + if (NS_FAILED(rv)) return rv; + } + return rv; }