| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h
|
| index e5f7ce13931ad443e4b2105a966dfd6cbe2a6be3..5a0b3b0092e84bac90a365571bce22c0f77c841d 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.h
|
| @@ -14,6 +14,7 @@
|
| #include "base/time/time.h"
|
|
|
| namespace base {
|
| +class DictionaryValue;
|
| class SingleThreadTaskRunner;
|
| }
|
|
|
| @@ -65,6 +66,22 @@ class DataReductionProxyRequestOptions {
|
| public:
|
| static bool IsKeySetOnCommandLine();
|
|
|
| + // A pair of functions to convert the session and credentials for the Data
|
| + // Reduction Proxy to and from a single string; they are used to encode the
|
| + // session and credentials values into the |session_key| field of the
|
| + // ClientConfig protocol buffer. The delimiter used is '|', as it is not a
|
| + // valid character in a session or credentials string.
|
| + //
|
| + // CreateLocalSessionKey joins session and credentials with the delimiter.
|
| + static std::string CreateLocalSessionKey(const std::string& session,
|
| + const std::string& credentials);
|
| +
|
| + // ParseLocalSessionKey splits the output of CreateLocalSessionKey into its
|
| + // two components. |session| and |credentials| must not be null.
|
| + static bool ParseLocalSessionKey(const std::string& session_key,
|
| + std::string* session,
|
| + std::string* credentials);
|
| +
|
| // Constructs a DataReductionProxyRequestOptions object with the given
|
| // client type, config, and network task runner.
|
| DataReductionProxyRequestOptions(
|
| @@ -104,6 +121,10 @@ class DataReductionProxyRequestOptions {
|
| // SetKeyOnIO is called.
|
| void SetKeyOnIO(const std::string& key);
|
|
|
| + // Populates |response| with the Data Reduction Proxy authentication info.
|
| + // Virtualized for testing.
|
| + virtual void PopulateConfigResponse(base::DictionaryValue* response) const;
|
| +
|
| protected:
|
| void SetHeader(net::HttpRequestHeaders* headers);
|
|
|
| @@ -114,7 +135,7 @@ class DataReductionProxyRequestOptions {
|
| const std::string& key);
|
| // Visible for testing.
|
| virtual base::Time Now() const;
|
| - virtual void RandBytes(void* output, size_t length);
|
| + virtual void RandBytes(void* output, size_t length) const;
|
|
|
| // Visible for testing.
|
| virtual std::string GetDefaultKey() const;
|
| @@ -153,7 +174,7 @@ class DataReductionProxyRequestOptions {
|
| // the data reduction proxy.
|
| void ComputeCredentials(const base::Time& now,
|
| std::string* session,
|
| - std::string* credentials);
|
| + std::string* credentials) const;
|
|
|
| // Generates and updates the session ID and credentials.
|
| void UpdateCredentials();
|
| @@ -186,9 +207,9 @@ class DataReductionProxyRequestOptions {
|
| std::string lofi_;
|
| std::vector<std::string> experiments_;
|
|
|
| - // The last time the session was updated. Used to ensure that a session is
|
| + // The time at which the session expires. Used to ensure that a session is
|
| // never used for more than twenty-four hours.
|
| - base::Time last_credentials_update_time_;
|
| + base::Time credentials_expiration_time_;
|
|
|
| DataReductionProxyConfig* data_reduction_proxy_config_;
|
|
|
|
|