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

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

Issue 935333002: Update from https://crrev.com/316786 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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/file_stream_context_win.cc ('k') | net/base/mime_util.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 #ifndef NET_BASE_MIME_UTIL_H__ 5 #ifndef NET_BASE_MIME_UTIL_H__
6 #define NET_BASE_MIME_UTIL_H__ 6 #define NET_BASE_MIME_UTIL_H__
7 7
8 // This file defines MIME utility functions. All of them assume the MIME type
9 // to be of the format specified by rfc2045. According to it, MIME types are
10 // case strongly insensitive except parameter values, which may or may not be
11 // case sensitive.
12 //
13 // These utilities perform a *case-sensitive* matching for parameter values,
14 // which may produce some false negatives. Except that, matching is
15 // case-insensitive.
16 //
17 // All constants in mime_util.cc must be written in lower case, except parameter
18 // values, which can be any case.
19
8 #include <string> 20 #include <string>
9 #include <vector> 21 #include <vector>
10 22
11 #include "base/files/file_path.h" 23 #include "base/files/file_path.h"
12 #include "net/base/net_export.h" 24 #include "net/base/net_export.h"
13 25
14 namespace net { 26 namespace net {
15 27
16 // Get the mime type (if any) that is associated with the given file extension. 28 // Get the mime type (if any) that is associated with the given file extension.
17 // Returns true if a corresponding mime type exists. 29 // Returns true if a corresponding mime type exists.
(...skipping 25 matching lines...) Expand all
43 NET_EXPORT bool IsSupportedMediaMimeType(const std::string& mime_type); 55 NET_EXPORT bool IsSupportedMediaMimeType(const std::string& mime_type);
44 NET_EXPORT bool IsSupportedNonImageMimeType(const std::string& mime_type); 56 NET_EXPORT bool IsSupportedNonImageMimeType(const std::string& mime_type);
45 NET_EXPORT bool IsUnsupportedTextMimeType(const std::string& mime_type); 57 NET_EXPORT bool IsUnsupportedTextMimeType(const std::string& mime_type);
46 NET_EXPORT bool IsSupportedJavascriptMimeType(const std::string& mime_type); 58 NET_EXPORT bool IsSupportedJavascriptMimeType(const std::string& mime_type);
47 NET_EXPORT bool IsSupportedCertificateMimeType(const std::string& mime_type); 59 NET_EXPORT bool IsSupportedCertificateMimeType(const std::string& mime_type);
48 60
49 // Convenience function. 61 // Convenience function.
50 NET_EXPORT bool IsSupportedMimeType(const std::string& mime_type); 62 NET_EXPORT bool IsSupportedMimeType(const std::string& mime_type);
51 63
52 // Returns true if this the mime_type_pattern matches a given mime-type. 64 // Returns true if this the mime_type_pattern matches a given mime-type.
53 // Checks for absolute matching and wildcards. mime-types should be in 65 // Checks for absolute matching and wildcards. MIME types are case insensitive.
54 // lower case.
55 NET_EXPORT bool MatchesMimeType(const std::string& mime_type_pattern, 66 NET_EXPORT bool MatchesMimeType(const std::string& mime_type_pattern,
56 const std::string& mime_type); 67 const std::string& mime_type);
57 68
58 // Returns true if the |type_string| is a correctly-formed mime type specifier 69 // Returns true if the |type_string| is a correctly-formed mime type specifier
59 // with no parameter, i.e. string that matches the following ABNF (see the 70 // with no parameter, i.e. string that matches the following ABNF (see the
60 // definition of content ABNF in RFC2045 and media-type ABNF httpbis p2 71 // definition of content ABNF in RFC2045 and media-type ABNF httpbis p2
61 // semantics). 72 // semantics).
62 // 73 //
63 // token "/" token 74 // token "/" token
64 // 75 //
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 // support only a subset of codecs, but |codecs| was empty. Also returned if 129 // support only a subset of codecs, but |codecs| was empty. Also returned if
119 // all the codecs in |codecs| are supported, but additional codec parameters 130 // all the codecs in |codecs| are supported, but additional codec parameters
120 // were supplied (such as profile) for which the support cannot be decided. 131 // were supplied (such as profile) for which the support cannot be decided.
121 // * Returns IsNotSupported if either the |mime_type| is not supported or the 132 // * Returns IsNotSupported if either the |mime_type| is not supported or the
122 // |mime_type| is supported but at least one of the codecs within |codecs| is 133 // |mime_type| is supported but at least one of the codecs within |codecs| is
123 // not supported for the |mime_type|. 134 // not supported for the |mime_type|.
124 NET_EXPORT SupportsType IsSupportedStrictMediaMimeType( 135 NET_EXPORT SupportsType IsSupportedStrictMediaMimeType(
125 const std::string& mime_type, 136 const std::string& mime_type,
126 const std::vector<std::string>& codecs); 137 const std::vector<std::string>& codecs);
127 138
128 // Get the extensions associated with the given mime type. This should be passed 139 // Get the extensions associated with the given mime type. There could be
129 // in lower case. There could be multiple extensions for a given mime type, like 140 // multiple extensions for a given mime type, like "html,htm" for "text/html",
130 // "html,htm" for "text/html", or "txt,text,html,..." for "text/*". 141 // or "txt,text,html,..." for "text/*".
131 // Note that we do not erase the existing elements in the the provided vector. 142 // Note that we do not erase the existing elements in the the provided vector.
132 // Instead, we append the result to it. 143 // Instead, we append the result to it.
133 NET_EXPORT void GetExtensionsForMimeType( 144 NET_EXPORT void GetExtensionsForMimeType(
134 const std::string& mime_type, 145 const std::string& mime_type,
135 std::vector<base::FilePath::StringType>* extensions); 146 std::vector<base::FilePath::StringType>* extensions);
136 147
137 // Test only method that removes proprietary media types and codecs from the 148 // Test only method that removes proprietary media types and codecs from the
138 // list of supported MIME types and codecs. These types and codecs must be 149 // list of supported MIME types and codecs. These types and codecs must be
139 // removed to ensure consistent layout test results across all Chromium 150 // removed to ensure consistent layout test results across all Chromium
140 // variations. 151 // variations.
(...skipping 21 matching lines...) Expand all
162 std::string* post_data); 173 std::string* post_data);
163 174
164 // Adds the final delimiter to a multi-part upload request. 175 // Adds the final delimiter to a multi-part upload request.
165 NET_EXPORT void AddMultipartFinalDelimiterForUpload( 176 NET_EXPORT void AddMultipartFinalDelimiterForUpload(
166 const std::string& mime_boundary, 177 const std::string& mime_boundary,
167 std::string* post_data); 178 std::string* post_data);
168 179
169 } // namespace net 180 } // namespace net
170 181
171 #endif // NET_BASE_MIME_UTIL_H__ 182 #endif // NET_BASE_MIME_UTIL_H__
OLDNEW
« no previous file with comments | « net/base/file_stream_context_win.cc ('k') | net/base/mime_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698