summaryrefslogtreecommitdiff
path: root/chromium/net/http/http_content_disposition.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-01-04 14:17:57 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-01-05 10:05:06 +0000
commit39d357e3248f80abea0159765ff39554affb40db (patch)
treeaba0e6bfb76de0244bba0f5fdbd64b830dd6e621 /chromium/net/http/http_content_disposition.cc
parent87778abf5a1f89266f37d1321b92a21851d8244d (diff)
downloadqtwebengine-chromium-39d357e3248f80abea0159765ff39554affb40db.tar.gz
BASELINE: Update Chromium to 55.0.2883.105
And updates ninja to 1.7.2 Change-Id: I20d43c737f82764d857ada9a55586901b18b9243 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/net/http/http_content_disposition.cc')
-rw-r--r--chromium/net/http/http_content_disposition.cc22
1 files changed, 10 insertions, 12 deletions
diff --git a/chromium/net/http/http_content_disposition.cc b/chromium/net/http/http_content_disposition.cc
index 3f7d6b5f8a1..05f3e1930d3 100644
--- a/chromium/net/http/http_content_disposition.cc
+++ b/chromium/net/http/http_content_disposition.cc
@@ -6,6 +6,7 @@
#include "base/base64.h"
#include "base/logging.h"
+#include "base/strings/string_piece.h"
#include "base/strings/string_tokenizer.h"
#include "base/strings/string_util.h"
#include "base/strings/sys_string_conversions.h"
@@ -344,33 +345,30 @@ HttpContentDisposition::~HttpContentDisposition() {
std::string::const_iterator HttpContentDisposition::ConsumeDispositionType(
std::string::const_iterator begin, std::string::const_iterator end) {
DCHECK(type_ == INLINE);
- std::string::const_iterator delimiter = std::find(begin, end, ';');
-
- std::string::const_iterator type_begin = begin;
- std::string::const_iterator type_end = delimiter;
- HttpUtil::TrimLWS(&type_begin, &type_end);
+ base::StringPiece header(begin, end);
+ size_t delimiter = header.find(';');
+ base::StringPiece type = header.substr(0, delimiter);
+ type = HttpUtil::TrimLWS(type);
// If the disposition-type isn't a valid token the then the
// Content-Disposition header is malformed, and we treat the first bytes as
// a parameter rather than a disposition-type.
- if (!HttpUtil::IsToken(type_begin, type_end))
+ if (type.empty() || !HttpUtil::IsToken(type))
return begin;
parse_result_flags_ |= HAS_DISPOSITION_TYPE;
- DCHECK(std::find(type_begin, type_end, '=') == type_end);
+ DCHECK(type.find('=') == base::StringPiece::npos);
- if (base::LowerCaseEqualsASCII(base::StringPiece(type_begin, type_end),
- "inline")) {
+ if (base::LowerCaseEqualsASCII(type, "inline")) {
type_ = INLINE;
- } else if (base::LowerCaseEqualsASCII(base::StringPiece(type_begin, type_end),
- "attachment")) {
+ } else if (base::LowerCaseEqualsASCII(type, "attachment")) {
type_ = ATTACHMENT;
} else {
parse_result_flags_ |= HAS_UNKNOWN_DISPOSITION_TYPE;
type_ = ATTACHMENT;
}
- return delimiter;
+ return begin + (type.data() + type.size() - header.data());
}
// http://tools.ietf.org/html/rfc6266