summaryrefslogtreecommitdiffstats
path: root/net/http/http_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/http/http_util.h')
-rw-r--r--net/http/http_util.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/net/http/http_util.h b/net/http/http_util.h
index d46ace4..9966c60 100644
--- a/net/http/http_util.h
+++ b/net/http/http_util.h
@@ -102,6 +102,28 @@ class HttpUtil {
// the end-of-headers marker as defined by LocateEndOfHeaders.
static std::string AssembleRawHeaders(const char* buf, int buf_len);
+ // Given a comma separated ordered list of language codes, return
+ // the list with a qvalue appended to each language.
+ // The way qvalues are assigned is rather simple. The qvalue
+ // starts with 1.0 and is decremented by 0.2 for each successive entry
+ // in the list until it reaches 0.2. All the entries after that are
+ // assigned the same qvalue of 0.2. Also, note that the 1st language
+ // will not have a qvalue added because the absence of a qvalue implicitly
+ // means q=1.0.
+ //
+ // When making a http request, this should be used to determine what
+ // to put in Accept-Language header. If a comma separated list of language
+ // codes *without* qvalue is sent, web servers regard all
+ // of them as having q=1.0 and pick one of them even though it may not
+ // be at the beginning of the list (see http://crbug.com/5899).
+ static std::string GenerateAcceptLanguageHeader(
+ const std::string& raw_language_list);
+
+ // Given a charset, return the list with a qvalue. If charset is utf-8,
+ // it will return 'utf-8,*;q=0.5'. Otherwise (e.g. 'euc-jp'), it'll return
+ // 'euc-jp,utf-8;q=0.7,*;q=0.3'.
+ static std::string GenerateAcceptCharsetHeader(const std::string& charset);
+
// Used to iterate over the name/value pairs of HTTP headers. To iterate
// over the values in a multi-value header, use ValuesIterator.
// See AssembleRawHeaders for joining line continuations (this iterator