Index: content/browser/download/download_resource_handler.cc |
diff --git a/content/browser/download/download_resource_handler.cc b/content/browser/download/download_resource_handler.cc |
index d806d9449330cbb7adce8c3f5743334936d37967..cfbc96f1668c9cbc533802962893316ba4170ecc 100644 |
--- a/content/browser/download/download_resource_handler.cc |
+++ b/content/browser/download/download_resource_handler.cc |
@@ -62,10 +62,13 @@ static void StartOnUIThread( |
scoped_ptr<DownloadCreateInfo> info, |
scoped_ptr<DownloadResourceHandler::DownloadTabInfo> tab_info, |
scoped_ptr<ByteStreamReader> stream, |
+ DownloadManager* parent_download_manager, |
const DownloadUrlParameters::OnStartedCallback& started_cb) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
DownloadManager* download_manager = info->request_handle.GetDownloadManager(); |
+ if (!download_manager) |
+ download_manager = parent_download_manager; |
asanka
2015/11/20 19:57:46
I'd do this the other way. I.e. if parent_download
svaldez
2015/11/23 15:18:56
Done.
|
if (!download_manager) { |
// NULL in unittests or if the page closed right after starting the |
// download. |
@@ -252,6 +255,7 @@ bool DownloadResourceHandler::OnResponseStarted( |
base::Passed(&info), |
base::Passed(&tab_info_), |
base::Passed(&stream_reader), |
+ parent_download_manager_, |
// Pass to StartOnUIThread so that variable |
// access is always on IO thread but function |
// is called on UI thread. |