Index: trunk/src/chrome/browser/download/chrome_download_manager_delegate.cc |
=================================================================== |
--- trunk/src/chrome/browser/download/chrome_download_manager_delegate.cc (revision 233496) |
+++ trunk/src/chrome/browser/download/chrome_download_manager_delegate.cc (working copy) |
@@ -6,7 +6,6 @@ |
#include <string> |
-#include "base/basictypes.h" |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/callback.h" |
@@ -23,12 +22,10 @@ |
#include "chrome/browser/download/download_crx_util.h" |
#include "chrome/browser/download/download_file_picker.h" |
#include "chrome/browser/download/download_history.h" |
-#include "chrome/browser/download/download_item_model.h" |
#include "chrome/browser/download/download_path_reservation_tracker.h" |
#include "chrome/browser/download/download_prefs.h" |
#include "chrome/browser/download/download_service.h" |
#include "chrome/browser/download/download_service_factory.h" |
-#include "chrome/browser/download/download_stats.h" |
#include "chrome/browser/download/download_target_determiner.h" |
#include "chrome/browser/download/save_package_file_picker.h" |
#include "chrome/browser/extensions/api/downloads/downloads_api.h" |
@@ -36,19 +33,13 @@ |
#include "chrome/browser/platform_util.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_finder.h" |
-#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" |
#include "chrome/common/chrome_constants.h" |
#include "chrome/common/pref_names.h" |
#include "components/user_prefs/pref_registry_syncable.h" |
#include "content/public/browser/download_item.h" |
#include "content/public/browser/download_manager.h" |
#include "content/public/browser/notification_source.h" |
-#include "content/public/browser/page_navigator.h" |
#include "extensions/common/constants.h" |
-#include "net/base/mime_util.h" |
-#include "net/base/net_util.h" |
#if defined(OS_CHROMEOS) |
#include "chrome/browser/chromeos/drive/download_handler.h" |
@@ -170,26 +161,6 @@ |
#endif // FULL_SAFE_BROWSING |
-// Called on the blocking pool to determine the MIME type for |path|. |
-void GetMimeTypeAndReplyOnUIThread( |
- const base::FilePath& path, |
- const base::Callback<void(const std::string&)>& callback) { |
- std::string mime_type; |
- net::GetMimeTypeFromFile(path, &mime_type); |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, base::Bind(callback, mime_type)); |
-} |
- |
-bool IsOpenInBrowserPreferreredForFile(const base::FilePath& path) { |
- // On Android, always prefer opening with an external app. |
-#if !defined(OS_ANDROID) && defined(ENABLE_PLUGINS) |
- // TODO(asanka): Consider other file types and MIME types. |
- if (path.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) |
- return true; |
-#endif |
- return false; |
-} |
- |
} // namespace |
ChromeDownloadManagerDelegate::ChromeDownloadManagerDelegate(Profile* profile) |
@@ -249,17 +220,13 @@ |
bool ChromeDownloadManagerDelegate::DetermineDownloadTarget( |
DownloadItem* download, |
const content::DownloadTargetCallback& callback) { |
- DownloadTargetDeterminer::CompletionCallback target_determined_callback = |
- base::Bind(&ChromeDownloadManagerDelegate::OnDownloadTargetDetermined, |
- this, |
- download->GetId(), |
- callback); |
DownloadTargetDeterminer::Start( |
download, |
- GetPlatformDownloadPath(profile_, download, PLATFORM_TARGET_PATH), |
+ GetPlatformDownloadPath( |
+ profile_, download, PLATFORM_TARGET_PATH), |
download_prefs_.get(), |
this, |
- target_determined_callback); |
+ callback); |
return true; |
} |
@@ -404,51 +371,16 @@ |
callback); |
} |
-void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler( |
- DownloadItem* download) { |
+void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { |
+ DCHECK_EQ(DownloadItem::COMPLETE, download->GetState()); |
+ if (!download->CanOpenDownload()) |
+ return; |
base::FilePath platform_path( |
GetPlatformDownloadPath(profile_, download, PLATFORM_TARGET_PATH)); |
DCHECK(!platform_path.empty()); |
platform_util::OpenItem(platform_path); |
} |
-void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) { |
- DCHECK_EQ(DownloadItem::COMPLETE, download->GetState()); |
- DCHECK(!download->GetTargetFilePath().empty()); |
- if (!download->CanOpenDownload()) |
- return; |
- |
- if (!DownloadItemModel(download).ShouldPreferOpeningInBrowser()) { |
- RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_DEFAULT_PLATFORM); |
- OpenDownloadUsingPlatformHandler(download); |
- return; |
- } |
- |
-#if !defined(OS_ANDROID) |
- content::WebContents* web_contents = download->GetWebContents(); |
- Browser* browser = |
- web_contents ? chrome::FindBrowserWithWebContents(web_contents) : NULL; |
- scoped_ptr<chrome::ScopedTabbedBrowserDisplayer> browser_displayer; |
- if (!browser || |
- !browser->CanSupportWindowFeature(Browser::FEATURE_TABSTRIP)) { |
- browser_displayer.reset(new chrome::ScopedTabbedBrowserDisplayer( |
- profile_, chrome::GetActiveDesktop())); |
- browser = browser_displayer->browser(); |
- } |
- content::OpenURLParams params( |
- net::FilePathToFileURL(download->GetTargetFilePath()), |
- content::Referrer(), |
- NEW_FOREGROUND_TAB, |
- content::PAGE_TRANSITION_LINK, |
- false); |
- browser->OpenURL(params); |
- RecordDownloadOpenMethod(DOWNLOAD_OPEN_METHOD_DEFAULT_BROWSER); |
-#else |
- // ShouldPreferOpeningInBrowser() should never be true on Android. |
- NOTREACHED(); |
-#endif |
-} |
- |
void ChromeDownloadManagerDelegate::ShowDownloadInShell( |
DownloadItem* download) { |
if (!download->CanShowInFolder()) |
@@ -591,14 +523,6 @@ |
callback.Run(content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS); |
} |
-void ChromeDownloadManagerDelegate::GetFileMimeType( |
- const base::FilePath& path, |
- const GetFileMimeTypeCallback& callback) { |
- BrowserThread::PostBlockingPoolTask( |
- FROM_HERE, |
- base::Bind(&GetMimeTypeAndReplyOnUIThread, path, callback)); |
-} |
- |
#if defined(FULL_SAFE_BROWSING) |
void ChromeDownloadManagerDelegate::CheckClientDownloadDone( |
uint32 download_id, |
@@ -662,19 +586,3 @@ |
crx_installers_.erase(installer.get()); |
callback.Run(installer->did_handle_successfully()); |
} |
- |
-void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined( |
- int32 download_id, |
- const content::DownloadTargetCallback& callback, |
- scoped_ptr<DownloadTargetInfo> target_info) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DownloadItem* item = download_manager_->GetDownload(download_id); |
- if (!target_info->target_path.empty() && item && |
- IsOpenInBrowserPreferreredForFile(target_info->target_path) && |
- target_info->is_filetype_handled_securely) |
- DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true); |
- callback.Run(target_info->target_path, |
- target_info->target_disposition, |
- target_info->danger_type, |
- target_info->intermediate_path); |
-} |