Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Unified Diff: trunk/src/chrome/browser/download/chrome_download_manager_delegate.cc

Issue 61623006: Revert 233460 "Prefer opening PDF downloads in the browser." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
-}

Powered by Google App Engine
This is Rietveld 408576698