| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/base/filename_util.h" | 5 #include "net/base/filename_util.h" |
| 6 | 6 |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/files/file_util.h" | 8 #include "base/files/file_util.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 // type. | 47 // type. |
| 48 base::FilePath::StringType preferred_mime_extension; | 48 base::FilePath::StringType preferred_mime_extension; |
| 49 if (!GetPreferredExtensionForMimeType(mime_type, &preferred_mime_extension)) | 49 if (!GetPreferredExtensionForMimeType(mime_type, &preferred_mime_extension)) |
| 50 return extension; | 50 return extension; |
| 51 | 51 |
| 52 // If the existing extension is in the list of valid extensions for the | 52 // If the existing extension is in the list of valid extensions for the |
| 53 // given type, use it. This avoids doing things like pointlessly renaming | 53 // given type, use it. This avoids doing things like pointlessly renaming |
| 54 // "foo.jpg" to "foo.jpeg". | 54 // "foo.jpg" to "foo.jpeg". |
| 55 std::vector<base::FilePath::StringType> all_mime_extensions; | 55 std::vector<base::FilePath::StringType> all_mime_extensions; |
| 56 GetExtensionsForMimeType(mime_type, &all_mime_extensions); | 56 GetExtensionsForMimeType(mime_type, &all_mime_extensions); |
| 57 if (ContainsValue(all_mime_extensions, extension)) | 57 if (base::ContainsValue(all_mime_extensions, extension)) |
| 58 return extension; | 58 return extension; |
| 59 | 59 |
| 60 // Get the "final" extension. In most cases, this is the same as the | 60 // Get the "final" extension. In most cases, this is the same as the |
| 61 // |extension|, but in cases like "foo.tar.gz", it's "gz" while | 61 // |extension|, but in cases like "foo.tar.gz", it's "gz" while |
| 62 // |extension| is "tar.gz". | 62 // |extension| is "tar.gz". |
| 63 base::FilePath::StringType final_extension = file_name.FinalExtension(); | 63 base::FilePath::StringType final_extension = file_name.FinalExtension(); |
| 64 // Erase preceding '.'. | 64 // Erase preceding '.'. |
| 65 if (!final_extension.empty()) | 65 if (!final_extension.empty()) |
| 66 final_extension.erase(final_extension.begin()); | 66 final_extension.erase(final_extension.begin()); |
| 67 | 67 |
| 68 // If there's a double extension, and the second extension is in the | 68 // If there's a double extension, and the second extension is in the |
| 69 // list of valid extensions for the given type, keep the double extension. | 69 // list of valid extensions for the given type, keep the double extension. |
| 70 // This avoids renaming things like "foo.tar.gz" to "foo.gz". | 70 // This avoids renaming things like "foo.tar.gz" to "foo.gz". |
| 71 if (ContainsValue(all_mime_extensions, final_extension)) | 71 if (base::ContainsValue(all_mime_extensions, final_extension)) |
| 72 return extension; | 72 return extension; |
| 73 return preferred_mime_extension; | 73 return preferred_mime_extension; |
| 74 } | 74 } |
| 75 | 75 |
| 76 } // namespace | 76 } // namespace |
| 77 | 77 |
| 78 void SanitizeGeneratedFileName(base::FilePath::StringType* filename, | 78 void SanitizeGeneratedFileName(base::FilePath::StringType* filename, |
| 79 bool replace_trailing) { | 79 bool replace_trailing) { |
| 80 const base::FilePath::CharType kReplace[] = FILE_PATH_LITERAL("-"); | 80 const base::FilePath::CharType kReplace[] = FILE_PATH_LITERAL("-"); |
| 81 if (filename->empty()) | 81 if (filename->empty()) |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 base::FilePath generated_name( | 321 base::FilePath generated_name( |
| 322 base::SysWideToNativeMB(base::UTF16ToWide(file_name))); | 322 base::SysWideToNativeMB(base::UTF16ToWide(file_name))); |
| 323 #endif | 323 #endif |
| 324 | 324 |
| 325 DCHECK(!generated_name.empty()); | 325 DCHECK(!generated_name.empty()); |
| 326 | 326 |
| 327 return generated_name; | 327 return generated_name; |
| 328 } | 328 } |
| 329 | 329 |
| 330 } // namespace net | 330 } // namespace net |
| OLD | NEW |