| Index: chrome/browser/ui/views/download/download_danger_prompt_views.cc
|
| diff --git a/chrome/browser/ui/views/download/download_danger_prompt_views.cc b/chrome/browser/ui/views/download/download_danger_prompt_views.cc
|
| index 050d591035ada262e89f03b2544727ea9f2496be..cb3f6ceefe63571ecde13d3f360119d88c59f225 100644
|
| --- a/chrome/browser/ui/views/download/download_danger_prompt_views.cc
|
| +++ b/chrome/browser/ui/views/download/download_danger_prompt_views.cc
|
| @@ -330,11 +330,15 @@ void DownloadDangerPromptViews::RunDone(Action action) {
|
| OnDone done = done_;
|
| done_.Reset();
|
| if (download_ != NULL) {
|
| - const bool accept = action == DownloadDangerPrompt::ACCEPT;
|
| - RecordDownloadDangerPrompt(accept, *download_);
|
| - if (!download_->GetURL().is_empty() &&
|
| - !download_->GetBrowserContext()->IsOffTheRecord()) {
|
| - SendSafeBrowsingDownloadRecoveryReport(accept, *download_);
|
| + // If this download is no longer dangerous, or is already canceled or
|
| + // completed, don't send any report.
|
| + if (download_->IsDangerous() && !download_->IsDone()) {
|
| + const bool accept = action == DownloadDangerPrompt::ACCEPT;
|
| + RecordDownloadDangerPrompt(accept, *download_);
|
| + if (!download_->GetURL().is_empty() &&
|
| + !download_->GetBrowserContext()->IsOffTheRecord()) {
|
| + SendSafeBrowsingDownloadRecoveryReport(accept, *download_);
|
| + }
|
| }
|
| download_->RemoveObserver(this);
|
| download_ = NULL;
|
|
|