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

Unified Diff: net/http/http_util.h

Issue 1211363005: Parse HPKP report-uri and persist in TransportSecurityPersister (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: GetNext() fix Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/http/http_security_headers_unittest.cc ('k') | net/http/http_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_util.h
diff --git a/net/http/http_util.h b/net/http/http_util.h
index 79a41acd193cccddc4152fabb50e0760ba06b385..1bb3c93f8ab168152dc75205e00aabcc0d9c30cf 100644
--- a/net/http/http_util.h
+++ b/net/http/http_util.h
@@ -29,14 +29,6 @@ class NET_EXPORT HttpUtil {
// is stripped (username, password, reference).
static std::string SpecForRequest(const GURL& url);
- // Locates the next occurance of delimiter in line, skipping over quoted
- // strings (e.g., commas will not be treated as delimiters if they appear
- // within a quoted string). Returns the offset of the found delimiter or
- // line.size() if no delimiter was found.
- static size_t FindDelimiter(const std::string& line,
- size_t search_start,
- char delimiter);
-
// Parses the value of a Content-Type header. The resulting mime_type and
// charset values are normalized to lowercase. The mime_type and charset
// output values are only modified if the content_type_str contains a mime
@@ -323,9 +315,22 @@ class NET_EXPORT HttpUtil {
// calls to GetNext() or after the NameValuePairsIterator is destroyed.
class NET_EXPORT NameValuePairsIterator {
public:
+ // Whether or not values are optional. VALUES_OPTIONAL allows
+ // e.g. name1=value1;name2;name3=value3, whereas VALUES_NOT_OPTIONAL
+ // will treat it as a parse error because name2 does not have a
+ // corresponding equals sign.
+ enum OptionalValues { VALUES_OPTIONAL, VALUES_NOT_OPTIONAL };
+
+ NameValuePairsIterator(std::string::const_iterator begin,
+ std::string::const_iterator end,
+ char delimiter,
+ OptionalValues optional_values);
+
+ // Treats values as not optional by default (VALUES_NOT_OPTIONAL).
NameValuePairsIterator(std::string::const_iterator begin,
std::string::const_iterator end,
char delimiter);
+
~NameValuePairsIterator();
// Advances the iterator to the next pair, if any. Returns true if there
@@ -353,6 +358,8 @@ class NET_EXPORT HttpUtil {
value_end_);
}
+ bool value_is_quoted() const { return value_is_quoted_; }
+
// The value before unquoting (if any).
std::string raw_value() const { return std::string(value_begin_,
value_end_); }
@@ -373,6 +380,10 @@ class NET_EXPORT HttpUtil {
std::string unquoted_value_;
bool value_is_quoted_;
+
+ // True if values are required for each name/value pair; false if a
+ // name is permitted to appear without a corresponding value.
+ bool values_optional_;
};
};
« no previous file with comments | « net/http/http_security_headers_unittest.cc ('k') | net/http/http_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698