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

Unified Diff: net/http/http_content_disposition.h

Issue 11478034: Add UMA for measuring Content-Dispostion header use and abuse. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Suppress accidental trigraph Created 8 years 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 | « content/browser/download/download_stats.cc ('k') | net/http/http_content_disposition.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_content_disposition.h
diff --git a/net/http/http_content_disposition.h b/net/http/http_content_disposition.h
index f3573a9dceadcc27a6c9c54e8b7c0452b4f3e2a4..2b4ca709eb3cbb581bab6c9101eda889fc0a3141 100644
--- a/net/http/http_content_disposition.h
+++ b/net/http/http_content_disposition.h
@@ -19,6 +19,37 @@ class NET_EXPORT HttpContentDisposition {
ATTACHMENT,
};
+ // Properties of the Content-Disposition header. Used for UMA.
+ enum ParseResultFlags {
+ INVALID = 0,
+
+ // A valid disposition-type is present.
+ HAS_DISPOSITION_TYPE = 1 << 0,
+
+ // The disposition-type is not 'inline' or 'attachment'.
+ HAS_UNKNOWN_DISPOSITION_TYPE = 1 << 1,
+
+ // Has a valid non-empty 'name' attribute.
+ HAS_NAME = 1 << 2,
+
+ // Has a valid non-empty 'filename' attribute.
+ HAS_FILENAME = 1 << 3,
+
+ // Has a valid non-empty 'filename*' attribute.
+ HAS_EXT_FILENAME = 1 << 4,
+
+ // The following fields are properties of the 'filename' attribute:
+
+ // Quoted-string contains non-ASCII characters.
+ HAS_NON_ASCII_STRINGS = 1 << 5,
+
+ // Quoted-string contains percent-encoding.
+ HAS_PERCENT_ENCODED_STRINGS = 1 << 6,
+
+ // Quoted-string contains RFC 2047 encoded words.
+ HAS_RFC2047_ENCODED_STRINGS = 1 << 7
+ };
+
HttpContentDisposition(const std::string& header,
const std::string& referrer_charset);
~HttpContentDisposition();
@@ -28,6 +59,9 @@ class NET_EXPORT HttpContentDisposition {
Type type() const { return type_; }
const std::string& filename() const { return filename_; }
+ // A combination of ParseResultFlags values.
+ int parse_result_flags() const { return parse_result_flags_; }
+
private:
void Parse(const std::string& header, const std::string& referrer_charset);
std::string::const_iterator ConsumeDispositionType(
@@ -35,6 +69,7 @@ class NET_EXPORT HttpContentDisposition {
Type type_;
std::string filename_;
+ int parse_result_flags_;
DISALLOW_COPY_AND_ASSIGN(HttpContentDisposition);
};
« no previous file with comments | « content/browser/download/download_stats.cc ('k') | net/http/http_content_disposition.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698