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..a60b1f930a74375924143a30916118a2e361c506 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,13 @@ base::string16 GetSuggestedFilenameImpl( |
| } |
| replace_illegal_characters_callback.Run(&result_str, '-'); |
| base::FilePath result(result_str); |
| - GenerateSafeFileName(mime_type, overwrite_extension, &result); |
| + // extension should not appended to filename derived from |
| + // content-disposition, if it doesnot have one. |
|
asanka
2014/10/23 17:58:44
Nit: does not
arun87.kumar
2014/10/28 11:43:55
On 2014/10/23 17:58:44, asanka wrote:
Done.
|
| + // Hence mimetype and overwrite_extension values are not used. |
| + if (is_name_from_content_disposition) |
| + GenerateSafeFileName("", false, &result); |
| + else |
| + GenerateSafeFileName(mime_type, overwrite_extension, &result); |
| base::string16 result16; |
| if (!FilePathToString16(result, &result16)) { |