diff options
-rw-r--r-- | chrome/browser/download/download_manager_unittest.cc | 8 | ||||
-rw-r--r-- | net/base/platform_mime_util_linux.cc | 29 |
2 files changed, 33 insertions, 4 deletions
diff --git a/chrome/browser/download/download_manager_unittest.cc b/chrome/browser/download/download_manager_unittest.cc index 91e0b1c..dd0cb46 100644 --- a/chrome/browser/download/download_manager_unittest.cc +++ b/chrome/browser/download/download_manager_unittest.cc @@ -24,10 +24,10 @@ #define TXT_EXT L".txt" #define TAR_EXT L".tar" #else -#define JPEG_EXT L"" -#define HTML_EXT L"" -#define TXT_EXT L"" -#define TAR_EXT L"" +#define JPEG_EXT L".jpg" +#define HTML_EXT L".html" +#define TXT_EXT L".txt" +#define TAR_EXT L".tar" #endif class DownloadManagerTest : public testing::Test { diff --git a/net/base/platform_mime_util_linux.cc b/net/base/platform_mime_util_linux.cc index 7debe35..b39fe27 100644 --- a/net/base/platform_mime_util_linux.cc +++ b/net/base/platform_mime_util_linux.cc @@ -38,8 +38,37 @@ bool PlatformMimeUtil::GetPlatformMimeTypeFromExtension( return true; } +struct MimeToExt { + const char* mime_type; + const char* ext; +}; + +const struct MimeToExt mime_type_ext_map[] = { + {"image/jpeg", "jpg"}, + {"image/png", "png"}, + {"image/gif", "gif"}, + {"text/html", "html"}, + {"video/mp4", "mp4"}, + {"video/mpeg", "mpg"}, + {"audio/mpeg", "mp3"}, + {"text/plain", "txt"}, + {"application/pdf", "pdf"}, + {"application/x-tar", "tar"} +}; + bool PlatformMimeUtil::GetPreferredExtensionForMimeType( const std::string& mime_type, FilePath::StringType* ext) const { + + for (size_t x = 0; + x < (sizeof(mime_type_ext_map) / sizeof(MimeToExt)); + x++) { + if (mime_type_ext_map[x].mime_type == mime_type) { + *ext = mime_type_ext_map[x].ext; + return true; + } + } + + // TODO(dhg): Fix this the right way by implementing whats said below. // Unlike GetPlatformMimeTypeFromExtension, this method doesn't have a // default list that it uses, but for now we are also returning false since // this doesn't really matter as much under Linux. |