OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 <map> | 5 #include <map> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "net/base/mime_util.h" | 8 #include "net/base/mime_util.h" |
9 #include "net/base/platform_mime_util.h" | 9 #include "net/base/platform_mime_util.h" |
10 | 10 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 const char* mime_type; | 75 const char* mime_type; |
76 const char* extensions; // comma separated list | 76 const char* extensions; // comma separated list |
77 }; | 77 }; |
78 | 78 |
79 static const MimeInfo primary_mappings[] = { | 79 static const MimeInfo primary_mappings[] = { |
80 { "text/html", "html,htm" }, | 80 { "text/html", "html,htm" }, |
81 { "text/css", "css" }, | 81 { "text/css", "css" }, |
82 { "text/xml", "xml" }, | 82 { "text/xml", "xml" }, |
83 { "image/gif", "gif" }, | 83 { "image/gif", "gif" }, |
84 { "image/jpeg", "jpeg,jpg" }, | 84 { "image/jpeg", "jpeg,jpg" }, |
| 85 { "image/webp", "webp" }, |
85 { "image/png", "png" }, | 86 { "image/png", "png" }, |
86 { "video/mp4", "mp4,m4v" }, | 87 { "video/mp4", "mp4,m4v" }, |
87 { "audio/x-m4a", "m4a" }, | 88 { "audio/x-m4a", "m4a" }, |
88 { "audio/mp3", "mp3" }, | 89 { "audio/mp3", "mp3" }, |
89 { "video/ogg", "ogv,ogm" }, | 90 { "video/ogg", "ogv,ogm" }, |
90 { "audio/ogg", "ogg,oga" }, | 91 { "audio/ogg", "ogg,oga" }, |
91 { "video/webm", "webm" }, | 92 { "video/webm", "webm" }, |
92 { "audio/webm", "webm" }, | 93 { "audio/webm", "webm" }, |
93 { "audio/wav", "wav" }, | 94 { "audio/wav", "wav" }, |
94 { "application/xhtml+xml", "xhtml,xht" }, | 95 { "application/xhtml+xml", "xhtml,xht" }, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 return false; | 186 return false; |
186 return GetMimeTypeFromExtension(file_name_str.substr(1), result); | 187 return GetMimeTypeFromExtension(file_name_str.substr(1), result); |
187 } | 188 } |
188 | 189 |
189 // From WebKit's WebCore/platform/MIMETypeRegistry.cpp: | 190 // From WebKit's WebCore/platform/MIMETypeRegistry.cpp: |
190 | 191 |
191 static const char* const supported_image_types[] = { | 192 static const char* const supported_image_types[] = { |
192 "image/jpeg", | 193 "image/jpeg", |
193 "image/pjpeg", | 194 "image/pjpeg", |
194 "image/jpg", | 195 "image/jpg", |
| 196 "image/webp", |
195 "image/png", | 197 "image/png", |
196 "image/gif", | 198 "image/gif", |
197 "image/bmp", | 199 "image/bmp", |
198 "image/x-icon", // ico | 200 "image/x-icon", // ico |
199 "image/x-xbitmap" // xbm | 201 "image/x-xbitmap" // xbm |
200 }; | 202 }; |
201 | 203 |
202 // A list of media types: http://en.wikipedia.org/wiki/Internet_media_type | 204 // A list of media types: http://en.wikipedia.org/wiki/Internet_media_type |
203 // A comprehensive mime type list: http://plugindoc.mozdev.org/winmime.php | 205 // A comprehensive mime type list: http://plugindoc.mozdev.org/winmime.php |
204 static const char* const supported_media_types[] = { | 206 static const char* const supported_media_types[] = { |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 namespace { | 542 namespace { |
541 | 543 |
542 // From http://www.w3schools.com/media/media_mimeref.asp and | 544 // From http://www.w3schools.com/media/media_mimeref.asp and |
543 // http://plugindoc.mozdev.org/winmime.php | 545 // http://plugindoc.mozdev.org/winmime.php |
544 static const char* kStandardImageTypes[] = { | 546 static const char* kStandardImageTypes[] = { |
545 "image/bmp", | 547 "image/bmp", |
546 "image/cis-cod", | 548 "image/cis-cod", |
547 "image/gif", | 549 "image/gif", |
548 "image/ief", | 550 "image/ief", |
549 "image/jpeg", | 551 "image/jpeg", |
| 552 "image/webp", |
550 "image/pict", | 553 "image/pict", |
551 "image/pipeg", | 554 "image/pipeg", |
552 "image/png", | 555 "image/png", |
553 "image/svg+xml", | 556 "image/svg+xml", |
554 "image/tiff", | 557 "image/tiff", |
555 "image/x-cmu-raster", | 558 "image/x-cmu-raster", |
556 "image/x-cmx", | 559 "image/x-cmx", |
557 "image/x-icon", | 560 "image/x-icon", |
558 "image/x-portable-anymap", | 561 "image/x-portable-anymap", |
559 "image/x-portable-bitmap", | 562 "image/x-portable-bitmap", |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 template<class T> | 656 template<class T> |
654 void HashSetToVector(base::hash_set<T>* source, std::vector<T>* target) { | 657 void HashSetToVector(base::hash_set<T>* source, std::vector<T>* target) { |
655 size_t old_target_size = target->size(); | 658 size_t old_target_size = target->size(); |
656 target->resize(old_target_size + source->size()); | 659 target->resize(old_target_size + source->size()); |
657 size_t i = 0; | 660 size_t i = 0; |
658 for (typename base::hash_set<T>::iterator iter = source->begin(); | 661 for (typename base::hash_set<T>::iterator iter = source->begin(); |
659 iter != source->end(); ++iter, ++i) { | 662 iter != source->end(); ++iter, ++i) { |
660 target->at(old_target_size + i) = *iter; | 663 target->at(old_target_size + i) = *iter; |
661 } | 664 } |
662 } | 665 } |
663 | |
664 } | 666 } |
665 | 667 |
666 void GetImageExtensions(std::vector<FilePath::StringType>* extensions) { | 668 void GetImageExtensions(std::vector<FilePath::StringType>* extensions) { |
667 base::hash_set<FilePath::StringType> unique_extensions; | 669 base::hash_set<FilePath::StringType> unique_extensions; |
668 GetExtensionsHelper(kStandardImageTypes, | 670 GetExtensionsHelper(kStandardImageTypes, |
669 arraysize(kStandardImageTypes), | 671 arraysize(kStandardImageTypes), |
670 "image/", | 672 "image/", |
671 &unique_extensions); | 673 &unique_extensions); |
672 HashSetToVector(&unique_extensions, extensions); | 674 HashSetToVector(&unique_extensions, extensions); |
673 } | 675 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 | 708 |
707 GetExtensionsFromHardCodedMappings(secondary_mappings, | 709 GetExtensionsFromHardCodedMappings(secondary_mappings, |
708 arraysize(secondary_mappings), | 710 arraysize(secondary_mappings), |
709 mime_type, | 711 mime_type, |
710 &unique_extensions); | 712 &unique_extensions); |
711 | 713 |
712 HashSetToVector(&unique_extensions, extensions); | 714 HashSetToVector(&unique_extensions, extensions); |
713 } | 715 } |
714 | 716 |
715 } // namespace net | 717 } // namespace net |
OLD | NEW |