[Downloads] ByteStreamReader must be destroyed on its home thread.

[email protected]
CQ_EXTRA_TRYBOTS=tryserver.chromium.linux:linux_chromium_tsan_rel_ng
BUG=576234

Review URL: https://codereview.chromium.org/1578263005

Cr-Commit-Position: refs/heads/master@{#369249}
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc
index 273a4c2..97c0a85e 100644
--- a/content/browser/download/download_manager_impl.cc
+++ b/content/browser/download/download_manager_impl.cc
@@ -379,6 +379,9 @@
       info->request_handle->CancelRequest();
       if (!on_started.is_null())
         on_started.Run(NULL, DOWNLOAD_INTERRUPT_REASON_USER_CANCELED);
+      // The ByteStreamReader lives and dies on the FILE thread.
+      BrowserThread::DeleteSoon(BrowserThread::FILE, FROM_HERE,
+                                stream.release());
       return;
     }
     download = item_iterator->second;