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

Side by Side Diff: components/mime_util/mime_util.cc

Issue 1423663012: Removing x-x509-user-cert mime handler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding tests. Created 4 years, 11 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 | « components/mime_util/mime_util.h ('k') | components/mime_util/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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/mime_util/mime_util.h" 5 #include "components/mime_util/mime_util.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/containers/hash_tables.h" 9 #include "base/containers/hash_tables.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/strings/string_util.h" 12 #include "base/strings/string_util.h"
13 #include "build/build_config.h" 13 #include "build/build_config.h"
14 14
15 #if !defined(OS_IOS) 15 #if !defined(OS_IOS)
16 // iOS doesn't use and must not depend on //media 16 // iOS doesn't use and must not depend on //media
17 #include "media/base/mime_util.h" 17 #include "media/base/mime_util.h"
18 #endif 18 #endif
19 19
20 namespace mime_util { 20 namespace mime_util {
21 21
22 namespace { 22 namespace {
23 23
24 // Dictionary of cryptographic file mime types.
25 struct CertificateMimeTypeInfo {
26 const char* const mime_type;
27 net::CertificateMimeType cert_type;
28 };
29
30 const CertificateMimeTypeInfo kSupportedCertificateTypes[] = {
31 {"application/x-x509-user-cert", net::CERTIFICATE_MIME_TYPE_X509_USER_CERT},
32 #if defined(OS_ANDROID)
33 {"application/x-x509-ca-cert", net::CERTIFICATE_MIME_TYPE_X509_CA_CERT},
34 {"application/x-pkcs12", net::CERTIFICATE_MIME_TYPE_PKCS12_ARCHIVE},
35 #endif
36 };
37
38 // From WebKit's WebCore/platform/MIMETypeRegistry.cpp: 24 // From WebKit's WebCore/platform/MIMETypeRegistry.cpp:
39 25
40 const char* const kSupportedImageTypes[] = {"image/jpeg", 26 const char* const kSupportedImageTypes[] = {"image/jpeg",
41 "image/pjpeg", 27 "image/pjpeg",
42 "image/jpg", 28 "image/jpg",
43 "image/webp", 29 "image/webp",
44 "image/png", 30 "image/png",
45 "image/gif", 31 "image/gif",
46 "image/bmp", 32 "image/bmp",
47 "image/vnd.microsoft.icon", // ico 33 "image/vnd.microsoft.icon", // ico
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 for (size_t i = 0; i < arraysize(kSupportedNonImageTypes); ++i) 128 for (size_t i = 0; i < arraysize(kSupportedNonImageTypes); ++i)
143 non_image_types_.insert(kSupportedNonImageTypes[i]); 129 non_image_types_.insert(kSupportedNonImageTypes[i]);
144 for (size_t i = 0; i < arraysize(kSupportedImageTypes); ++i) 130 for (size_t i = 0; i < arraysize(kSupportedImageTypes); ++i)
145 image_types_.insert(kSupportedImageTypes[i]); 131 image_types_.insert(kSupportedImageTypes[i]);
146 for (size_t i = 0; i < arraysize(kUnsupportedTextTypes); ++i) 132 for (size_t i = 0; i < arraysize(kUnsupportedTextTypes); ++i)
147 unsupported_text_types_.insert(kUnsupportedTextTypes[i]); 133 unsupported_text_types_.insert(kUnsupportedTextTypes[i]);
148 for (size_t i = 0; i < arraysize(kSupportedJavascriptTypes); ++i) { 134 for (size_t i = 0; i < arraysize(kSupportedJavascriptTypes); ++i) {
149 javascript_types_.insert(kSupportedJavascriptTypes[i]); 135 javascript_types_.insert(kSupportedJavascriptTypes[i]);
150 non_image_types_.insert(kSupportedJavascriptTypes[i]); 136 non_image_types_.insert(kSupportedJavascriptTypes[i]);
151 } 137 }
152 for (size_t i = 0; i < arraysize(kSupportedCertificateTypes); ++i)
153 non_image_types_.insert(kSupportedCertificateTypes[i].mime_type);
154 } 138 }
155 139
156 bool MimeUtil::IsSupportedImageMimeType(const std::string& mime_type) const { 140 bool MimeUtil::IsSupportedImageMimeType(const std::string& mime_type) const {
157 return image_types_.find(base::ToLowerASCII(mime_type)) != image_types_.end(); 141 return image_types_.find(base::ToLowerASCII(mime_type)) != image_types_.end();
158 } 142 }
159 143
160 bool MimeUtil::IsSupportedNonImageMimeType(const std::string& mime_type) const { 144 bool MimeUtil::IsSupportedNonImageMimeType(const std::string& mime_type) const {
161 return non_image_types_.find(base::ToLowerASCII(mime_type)) != 145 return non_image_types_.find(base::ToLowerASCII(mime_type)) !=
162 non_image_types_.end() || 146 non_image_types_.end() ||
163 #if !defined(OS_IOS) 147 #if !defined(OS_IOS)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 } 187 }
204 188
205 bool IsUnsupportedTextMimeType(const std::string& mime_type) { 189 bool IsUnsupportedTextMimeType(const std::string& mime_type) {
206 return g_mime_util.Get().IsUnsupportedTextMimeType(mime_type); 190 return g_mime_util.Get().IsUnsupportedTextMimeType(mime_type);
207 } 191 }
208 192
209 bool IsSupportedJavascriptMimeType(const std::string& mime_type) { 193 bool IsSupportedJavascriptMimeType(const std::string& mime_type) {
210 return g_mime_util.Get().IsSupportedJavascriptMimeType(mime_type); 194 return g_mime_util.Get().IsSupportedJavascriptMimeType(mime_type);
211 } 195 }
212 196
213 bool IsSupportedCertificateMimeType(const std::string& mime_type) {
214 net::CertificateMimeType file_type =
215 GetCertificateMimeTypeForMimeType(mime_type);
216 return file_type != net::CERTIFICATE_MIME_TYPE_UNKNOWN;
217 }
218
219 bool IsSupportedMimeType(const std::string& mime_type) { 197 bool IsSupportedMimeType(const std::string& mime_type) {
220 return g_mime_util.Get().IsSupportedMimeType(mime_type); 198 return g_mime_util.Get().IsSupportedMimeType(mime_type);
221 } 199 }
222 200
223 net::CertificateMimeType GetCertificateMimeTypeForMimeType(
224 const std::string& mime_type) {
225 // Don't create a map, there is only one entry in the table,
226 // except on Android.
227 for (size_t i = 0; i < arraysize(kSupportedCertificateTypes); ++i) {
228 if (base::EqualsCaseInsensitiveASCII(
229 mime_type, kSupportedCertificateTypes[i].mime_type)) {
230 return kSupportedCertificateTypes[i].cert_type;
231 }
232 }
233
234 return net::CERTIFICATE_MIME_TYPE_UNKNOWN;
235 }
236
237 } // namespace mime_util 201 } // namespace mime_util
OLDNEW
« no previous file with comments | « components/mime_util/mime_util.h ('k') | components/mime_util/mime_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698