| Index: chrome/browser/download/download_manager.cc
|
| diff --git a/chrome/browser/download/download_manager.cc b/chrome/browser/download/download_manager.cc
|
| index fb9fb7b033c3cd2c04eb3451e860e5844c69f5a7..54d937b1e2b245948a3f2a7e1f6b62206c063b85 100644
|
| --- a/chrome/browser/download/download_manager.cc
|
| +++ b/chrome/browser/download/download_manager.cc
|
| @@ -33,6 +33,8 @@
|
| #include "chrome/browser/tab_contents/tab_util.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_list.h"
|
| +#include "chrome/browser/ui/download/download_tab_helper.h"
|
| +#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
|
| #include "chrome/common/chrome_paths.h"
|
| #include "content/browser/browser_thread.h"
|
| #include "content/browser/renderer_host/render_process_host.h"
|
| @@ -1069,20 +1071,23 @@ void DownloadManager::ShowDownloadInBrowser(
|
| // get this start completion event. If it does, tell the origin TabContents
|
| // to display its download shelf.
|
| TabContents* contents = process_handle->GetTabContents();
|
| + TabContentsWrapper* wrapper = NULL;
|
| + if (contents)
|
| + wrapper = TabContentsWrapper::GetCurrentWrapperForContents(contents);
|
|
|
| // If the contents no longer exists, we start the download in the last active
|
| // browser. This is not ideal but better than fully hiding the download from
|
| // the user.
|
| - if (!contents) {
|
| + if (!wrapper) {
|
| Browser* last_active = BrowserList::GetLastActive();
|
| if (last_active)
|
| - contents = last_active->GetSelectedTabContents();
|
| + wrapper = last_active->GetSelectedTabContentsWrapper();
|
| }
|
|
|
| - if (!contents)
|
| + if (!wrapper)
|
| return;
|
|
|
| - contents->OnStartDownload(download);
|
| + wrapper->download_tab_helper()->OnStartDownload(download);
|
| }
|
|
|
| // Clears the last download path, used to initialize "save as" dialogs.
|
|
|