Chromium Code Reviews| Index: net/base/filename_util_internal.cc |
| diff --git a/net/base/filename_util_internal.cc b/net/base/filename_util_internal.cc |
| index 49b6a3db923d52fef031f1a666563422241dc793..f02f26caa15c2c6906036b2b73280e76d3b7d896 100644 |
| --- a/net/base/filename_util_internal.cc |
| +++ b/net/base/filename_util_internal.cc |
| @@ -229,11 +229,13 @@ base::string16 GetSuggestedFilenameImpl( |
| FILE_PATH_LITERAL("download"); |
| std::string filename; // In UTF-8 |
| bool overwrite_extension = false; |
| - |
| + bool is_name_from_content_disposition = false; |
| // Try to extract a filename from content-disposition first. |
| if (!content_disposition.empty()) { |
| HttpContentDisposition header(content_disposition, referrer_charset); |
| filename = header.filename(); |
| + if (!filename.empty()) |
| + is_name_from_content_disposition = true; |
| } |
| // Then try to use the suggested name. |
| @@ -275,7 +277,12 @@ base::string16 GetSuggestedFilenameImpl( |
| } |
| replace_illegal_characters_callback.Run(&result_str, '-'); |
| base::FilePath result(result_str); |
| - GenerateSafeFileName(mime_type, overwrite_extension, &result); |
| + // extension is not appended to filename derived from content-disposition, |
| + // if it doesnot have one |
| + if (is_name_from_content_disposition) |
| + GenerateSafeFileName("", overwrite_extension, &result); |
|
asanka
2014/10/10 19:52:25
Let's not hack around our APIs and be explicit abo
asanka
2014/10/23 08:21:49
After looking at alternatives, it seems this isn't
arun87.kumar
2014/10/23 09:37:23
On 2014/10/23 08:21:49, asanka wrote:
Done.
|
| + else |
| + GenerateSafeFileName(mime_type, overwrite_extension, &result); |
| base::string16 result16; |
| if (!FilePathToString16(result, &result16)) { |