Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(295)

Side by Side Diff: net/base/mime_util.cc

Issue 885443002: Roll Chrome into Mojo. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT mojo Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/base/mime_sniffer.cc ('k') | net/base/mime_util_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <algorithm> 5 #include <algorithm>
6 #include <iterator> 6 #include <iterator>
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 167
168 // Lookup table for string compare based string -> Codec mappings. 168 // Lookup table for string compare based string -> Codec mappings.
169 StringToCodecMappings string_to_codec_map_; 169 StringToCodecMappings string_to_codec_map_;
170 }; // class MimeUtil 170 }; // class MimeUtil
171 171
172 // This variable is Leaky because we need to access it from WorkerPool threads. 172 // This variable is Leaky because we need to access it from WorkerPool threads.
173 static base::LazyInstance<MimeUtil>::Leaky g_mime_util = 173 static base::LazyInstance<MimeUtil>::Leaky g_mime_util =
174 LAZY_INSTANCE_INITIALIZER; 174 LAZY_INSTANCE_INITIALIZER;
175 175
176 struct MimeInfo { 176 struct MimeInfo {
177 const char* mime_type; 177 const char* const mime_type;
178 const char* extensions; // comma separated list 178 const char* const extensions; // comma separated list
179 }; 179 };
180 180
181 static const MimeInfo primary_mappings[] = { 181 static const MimeInfo primary_mappings[] = {
182 { "text/html", "html,htm,shtml,shtm" }, 182 { "text/html", "html,htm,shtml,shtm" },
183 { "text/css", "css" }, 183 { "text/css", "css" },
184 { "text/xml", "xml" }, 184 { "text/xml", "xml" },
185 { "image/gif", "gif" }, 185 { "image/gif", "gif" },
186 { "image/jpeg", "jpeg,jpg" }, 186 { "image/jpeg", "jpeg,jpg" },
187 { "image/webp", "webp" }, 187 { "image/webp", "webp" },
188 { "image/png", "png" }, 188 { "image/png", "png" },
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 "application/xhtml+xml", 378 "application/xhtml+xml",
379 "application/json", 379 "application/json",
380 "multipart/related", // For MHTML support. 380 "multipart/related", // For MHTML support.
381 "multipart/x-mixed-replace" 381 "multipart/x-mixed-replace"
382 // Note: ADDING a new type here will probably render it AS HTML. This can 382 // Note: ADDING a new type here will probably render it AS HTML. This can
383 // result in cross site scripting. 383 // result in cross site scripting.
384 }; 384 };
385 385
386 // Dictionary of cryptographic file mime types. 386 // Dictionary of cryptographic file mime types.
387 struct CertificateMimeTypeInfo { 387 struct CertificateMimeTypeInfo {
388 const char* mime_type; 388 const char* const mime_type;
389 CertificateMimeType cert_type; 389 CertificateMimeType cert_type;
390 }; 390 };
391 391
392 static const CertificateMimeTypeInfo supported_certificate_types[] = { 392 static const CertificateMimeTypeInfo supported_certificate_types[] = {
393 { "application/x-x509-user-cert", 393 { "application/x-x509-user-cert",
394 CERTIFICATE_MIME_TYPE_X509_USER_CERT }, 394 CERTIFICATE_MIME_TYPE_X509_USER_CERT },
395 #if defined(OS_ANDROID) 395 #if defined(OS_ANDROID)
396 { "application/x-x509-ca-cert", CERTIFICATE_MIME_TYPE_X509_CA_CERT }, 396 { "application/x-x509-ca-cert", CERTIFICATE_MIME_TYPE_X509_CA_CERT },
397 { "application/x-pkcs12", CERTIFICATE_MIME_TYPE_PKCS12_ARCHIVE }, 397 { "application/x-pkcs12", CERTIFICATE_MIME_TYPE_PKCS12_ARCHIVE },
398 #endif 398 #endif
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 if ((!mimeType.compare("application/vnd.apple.mpegurl") || 491 if ((!mimeType.compare("application/vnd.apple.mpegurl") ||
492 !mimeType.compare("application/x-mpegurl")) && 492 !mimeType.compare("application/x-mpegurl")) &&
493 base::android::BuildInfo::GetInstance()->sdk_int() < 14) { 493 base::android::BuildInfo::GetInstance()->sdk_int() < 14) {
494 return false; 494 return false;
495 } 495 }
496 return true; 496 return true;
497 } 497 }
498 #endif 498 #endif
499 499
500 struct MediaFormatStrict { 500 struct MediaFormatStrict {
501 const char* mime_type; 501 const char* const mime_type;
502 const char* codecs_list; 502 const char* const codecs_list;
503 }; 503 };
504 504
505 // Following is the list of RFC 6381 compliant codecs: 505 // Following is the list of RFC 6381 compliant codecs:
506 // mp4a.66 - MPEG-2 AAC MAIN 506 // mp4a.66 - MPEG-2 AAC MAIN
507 // mp4a.67 - MPEG-2 AAC LC 507 // mp4a.67 - MPEG-2 AAC LC
508 // mp4a.68 - MPEG-2 AAC SSR 508 // mp4a.68 - MPEG-2 AAC SSR
509 // mp4a.69 - MPEG-2 extension to MPEG-1 509 // mp4a.69 - MPEG-2 extension to MPEG-1
510 // mp4a.6B - MPEG-1 audio 510 // mp4a.6B - MPEG-1 audio
511 // mp4a.40.2 - MPEG-4 AAC LC 511 // mp4a.40.2 - MPEG-4 AAC LC
512 // mp4a.40.02 - MPEG-4 AAC LC (leading 0 in aud-oti for compatibility) 512 // mp4a.40.02 - MPEG-4 AAC LC (leading 0 in aud-oti for compatibility)
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 return false; 792 return false;
793 793
794 if (!right.empty() && 794 if (!right.empty() &&
795 base_type.rfind(right) != base_type.length() - right.length()) 795 base_type.rfind(right) != base_type.length() - right.length())
796 return false; 796 return false;
797 797
798 return MatchesMimeTypeParameters(mime_type_pattern, mime_type); 798 return MatchesMimeTypeParameters(mime_type_pattern, mime_type);
799 } 799 }
800 800
801 // See http://www.iana.org/assignments/media-types/media-types.xhtml 801 // See http://www.iana.org/assignments/media-types/media-types.xhtml
802 static const char* legal_top_level_types[] = { 802 static const char* const legal_top_level_types[] = {
803 "application", 803 "application",
804 "audio", 804 "audio",
805 "example", 805 "example",
806 "image", 806 "image",
807 "message", 807 "message",
808 "model", 808 "model",
809 "multipart", 809 "multipart",
810 "text", 810 "text",
811 "video", 811 "video",
812 }; 812 };
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 "video/sd-video", 1216 "video/sd-video",
1217 "video/webm", 1217 "video/webm",
1218 "video/x-dv", 1218 "video/x-dv",
1219 "video/x-m4v", 1219 "video/x-m4v",
1220 "video/x-mpeg", 1220 "video/x-mpeg",
1221 "video/x-ms-asf", 1221 "video/x-ms-asf",
1222 "video/x-ms-wmv" 1222 "video/x-ms-wmv"
1223 }; 1223 };
1224 1224
1225 struct StandardType { 1225 struct StandardType {
1226 const char* leading_mime_type; 1226 const char* const leading_mime_type;
1227 const char* const* standard_types; 1227 const char* const* standard_types;
1228 size_t standard_types_len; 1228 size_t standard_types_len;
1229 }; 1229 };
1230 static const StandardType kStandardTypes[] = { 1230 static const StandardType kStandardTypes[] = {
1231 { "image/", kStandardImageTypes, arraysize(kStandardImageTypes) }, 1231 { "image/", kStandardImageTypes, arraysize(kStandardImageTypes) },
1232 { "audio/", kStandardAudioTypes, arraysize(kStandardAudioTypes) }, 1232 { "audio/", kStandardAudioTypes, arraysize(kStandardAudioTypes) },
1233 { "video/", kStandardVideoTypes, arraysize(kStandardVideoTypes) }, 1233 { "video/", kStandardVideoTypes, arraysize(kStandardVideoTypes) },
1234 { NULL, NULL, 0 } 1234 { NULL, NULL, 0 }
1235 }; 1235 };
1236 1236
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
1379 post_data->append("\r\n" + value + "\r\n"); 1379 post_data->append("\r\n" + value + "\r\n");
1380 } 1380 }
1381 1381
1382 void AddMultipartFinalDelimiterForUpload(const std::string& mime_boundary, 1382 void AddMultipartFinalDelimiterForUpload(const std::string& mime_boundary,
1383 std::string* post_data) { 1383 std::string* post_data) {
1384 DCHECK(post_data); 1384 DCHECK(post_data);
1385 post_data->append("--" + mime_boundary + "--\r\n"); 1385 post_data->append("--" + mime_boundary + "--\r\n");
1386 } 1386 }
1387 1387
1388 } // namespace net 1388 } // namespace net
OLDNEW
« no previous file with comments | « net/base/mime_sniffer.cc ('k') | net/base/mime_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698