summaryrefslogtreecommitdiffstats
path: root/chrome/browser/download/download_util.cc
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-11-18 18:32:45 +0000
committerBen Murdoch <benm@google.com>2010-11-18 18:38:07 +0000
commit513209b27ff55e2841eac0e4120199c23acce758 (patch)
treeaeba30bb08c5f47c57003544e378a377c297eee6 /chrome/browser/download/download_util.cc
parent164f7496de0fbee436b385a79ead9e3cb81a50c1 (diff)
downloadexternal_chromium-513209b27ff55e2841eac0e4120199c23acce758.zip
external_chromium-513209b27ff55e2841eac0e4120199c23acce758.tar.gz
external_chromium-513209b27ff55e2841eac0e4120199c23acce758.tar.bz2
Merge Chromium at r65505: Initial merge by git.
Change-Id: I31d8f1d8cd33caaf7f47ffa7350aef42d5fbdb45
Diffstat (limited to 'chrome/browser/download/download_util.cc')
-rw-r--r--chrome/browser/download/download_util.cc25
1 files changed, 17 insertions, 8 deletions
diff --git a/chrome/browser/download/download_util.cc b/chrome/browser/download/download_util.cc
index affa24a..1235285 100644
--- a/chrome/browser/download/download_util.cc
+++ b/chrome/browser/download/download_util.cc
@@ -20,7 +20,9 @@
#include "base/singleton.h"
#include "base/string16.h"
#include "base/string_number_conversions.h"
+#include "base/stringprintf.h"
#include "base/sys_string_conversions.h"
+#include "base/thread_restrictions.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
#include "base/win/windows_version.h"
@@ -150,8 +152,13 @@ void GenerateExtension(const FilePath& file_name,
extension.assign(default_extension);
#endif
- if (extension.empty())
+ if (extension.empty()) {
+ // The GetPreferredExtensionForMimeType call will end up going to disk. Do
+ // this on another thread to avoid slowing the IO thread.
+ // http://crbug.com/61827
+ base::ThreadRestrictions::ScopedAllowIO allow_io;
net::GetPreferredExtensionForMimeType(mime_type, &extension);
+ }
generated_extension->swap(extension);
}
@@ -442,8 +449,8 @@ void DragDownload(const DownloadItem* download,
OSExchangeData data;
if (icon) {
- drag_utils::CreateDragImageForFile(download->GetFileName().value(), icon,
- &data);
+ drag_utils::CreateDragImageForFile(
+ download->GetFileNameToReportUser().value(), icon, &data);
}
const FilePath full_path = download->full_path();
@@ -456,7 +463,7 @@ void DragDownload(const DownloadItem* download,
// Add URL so that we can load supported files when dragged to TabContents.
if (net::IsSupportedMimeType(mime_type)) {
data.SetURL(GURL(WideToUTF8(full_path.ToWStringHack())),
- download->GetFileName().ToWStringHack());
+ download->GetFileNameToReportUser().ToWStringHack());
}
#if defined(OS_WIN)
@@ -496,10 +503,10 @@ DictionaryValue* CreateDownloadItemValue(DownloadItem* download, int id) {
WideToUTF16Hack(base::TimeFormatShortDate(download->start_time())));
file_value->SetInteger("id", id);
file_value->SetString("file_path",
- WideToUTF16Hack(download->full_path().ToWStringHack()));
+ WideToUTF16Hack(download->GetTargetFilePath().ToWStringHack()));
// Keep file names as LTR.
string16 file_name = WideToUTF16Hack(
- download->GetFileName().ToWStringHack());
+ download->GetFileNameToReportUser().ToWStringHack());
file_name = base::i18n::GetDisplayStringInLTRDirectionality(file_name);
file_value->SetString("file_name", file_name);
file_value->SetString("url", download->url().spec());
@@ -709,8 +716,10 @@ int GetUniquePathNumberWithCrDownload(const FilePath& path) {
FilePath GetCrDownloadPath(const FilePath& suggested_path) {
FilePath::StringType file_name;
- SStringPrintf(&file_name, PRFilePathLiteral FILE_PATH_LITERAL(".crdownload"),
- suggested_path.value().c_str());
+ base::SStringPrintf(
+ &file_name,
+ PRFilePathLiteral FILE_PATH_LITERAL(".crdownload"),
+ suggested_path.value().c_str());
return FilePath(file_name);
}