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

Side by Side Diff: net/http/http_util.cc

Issue 448853002: Move StringToLowerASCII to base namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « net/http/http_response_headers.cc ('k') | net/proxy/proxy_bypass_rules.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 // The rules for parsing content-types were borrowed from Firefox: 5 // The rules for parsing content-types were borrowed from Firefox:
6 // http://lxr.mozilla.org/mozilla/source/netwerk/base/src/nsURLHelper.cpp#834 6 // http://lxr.mozilla.org/mozilla/source/netwerk/base/src/nsURLHelper.cpp#834
7 7
8 #include "net/http/http_util.h" 8 #include "net/http/http_util.h"
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 // include a comma, so this check makes us a bit more tolerant. 158 // include a comma, so this check makes us a bit more tolerant.
159 if (content_type_str.length() != 0 && 159 if (content_type_str.length() != 0 &&
160 content_type_str != "*/*" && 160 content_type_str != "*/*" &&
161 content_type_str.find_first_of('/') != std::string::npos) { 161 content_type_str.find_first_of('/') != std::string::npos) {
162 // Common case here is that mime_type is empty 162 // Common case here is that mime_type is empty
163 bool eq = !mime_type->empty() && LowerCaseEqualsASCII(begin + type_val, 163 bool eq = !mime_type->empty() && LowerCaseEqualsASCII(begin + type_val,
164 begin + type_end, 164 begin + type_end,
165 mime_type->data()); 165 mime_type->data());
166 if (!eq) { 166 if (!eq) {
167 mime_type->assign(begin + type_val, begin + type_end); 167 mime_type->assign(begin + type_val, begin + type_end);
168 StringToLowerASCII(mime_type); 168 base::StringToLowerASCII(mime_type);
169 } 169 }
170 if ((!eq && *had_charset) || type_has_charset) { 170 if ((!eq && *had_charset) || type_has_charset) {
171 *had_charset = true; 171 *had_charset = true;
172 charset->assign(begin + charset_val, begin + charset_end); 172 charset->assign(begin + charset_val, begin + charset_end);
173 StringToLowerASCII(charset); 173 base::StringToLowerASCII(charset);
174 } 174 }
175 } 175 }
176 } 176 }
177 177
178 // static 178 // static
179 // Parse the Range header according to RFC 2616 14.35.1 179 // Parse the Range header according to RFC 2616 14.35.1
180 // ranges-specifier = byte-ranges-specifier 180 // ranges-specifier = byte-ranges-specifier
181 // byte-ranges-specifier = bytes-unit "=" byte-range-set 181 // byte-ranges-specifier = bytes-unit "=" byte-range-set
182 // byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec ) 182 // byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec )
183 // byte-range-spec = first-byte-pos "-" [last-byte-pos] 183 // byte-range-spec = first-byte-pos "-" [last-byte-pos]
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 "trailer", 321 "trailer",
322 "transfer-encoding", 322 "transfer-encoding",
323 "upgrade", 323 "upgrade",
324 "user-agent", 324 "user-agent",
325 "via", 325 "via",
326 }; 326 };
327 } // anonymous namespace 327 } // anonymous namespace
328 328
329 // static 329 // static
330 bool HttpUtil::IsSafeHeader(const std::string& name) { 330 bool HttpUtil::IsSafeHeader(const std::string& name) {
331 std::string lower_name(StringToLowerASCII(name)); 331 std::string lower_name(base::StringToLowerASCII(name));
332 if (StartsWithASCII(lower_name, "proxy-", true) || 332 if (StartsWithASCII(lower_name, "proxy-", true) ||
333 StartsWithASCII(lower_name, "sec-", true)) 333 StartsWithASCII(lower_name, "sec-", true))
334 return false; 334 return false;
335 for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) { 335 for (size_t i = 0; i < arraysize(kForbiddenHeaderFields); ++i) {
336 if (lower_name == kForbiddenHeaderFields[i]) 336 if (lower_name == kForbiddenHeaderFields[i])
337 return false; 337 return false;
338 } 338 }
339 return true; 339 return true;
340 } 340 }
341 341
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 TrimLWS(&values_begin_, &values_end_); 785 TrimLWS(&values_begin_, &values_end_);
786 786
787 // if we got a header name, then we are done. 787 // if we got a header name, then we are done.
788 return true; 788 return true;
789 } 789 }
790 return false; 790 return false;
791 } 791 }
792 792
793 bool HttpUtil::HeadersIterator::AdvanceTo(const char* name) { 793 bool HttpUtil::HeadersIterator::AdvanceTo(const char* name) {
794 DCHECK(name != NULL); 794 DCHECK(name != NULL);
795 DCHECK_EQ(0, StringToLowerASCII<std::string>(name).compare(name)) 795 DCHECK_EQ(0, base::StringToLowerASCII<std::string>(name).compare(name))
796 << "the header name must be in all lower case"; 796 << "the header name must be in all lower case";
797 797
798 while (GetNext()) { 798 while (GetNext()) {
799 if (LowerCaseEqualsASCII(name_begin_, name_end_, name)) { 799 if (LowerCaseEqualsASCII(name_begin_, name_end_, name)) {
800 return true; 800 return true;
801 } 801 }
802 } 802 }
803 803
804 return false; 804 return false;
805 } 805 }
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 value_is_quoted_ = true; 898 value_is_quoted_ = true;
899 // Do not store iterators into this. See declaration of unquoted_value_. 899 // Do not store iterators into this. See declaration of unquoted_value_.
900 unquoted_value_ = HttpUtil::Unquote(value_begin_, value_end_); 900 unquoted_value_ = HttpUtil::Unquote(value_begin_, value_end_);
901 } 901 }
902 } 902 }
903 903
904 return true; 904 return true;
905 } 905 }
906 906
907 } // namespace net 907 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_response_headers.cc ('k') | net/proxy/proxy_bypass_rules.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698