| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
|
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
|
| index 675b05ce0eac90242ac431572271f9fe1b62102b..1b95890bd2fd6450a7b975ac4fdc06720599045c 100644
|
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
|
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
|
| @@ -99,6 +99,7 @@ DataReductionProxyRequestOptions::DataReductionProxyRequestOptions(
|
| DataReductionProxyConfig* config,
|
| scoped_refptr<base::SingleThreadTaskRunner> network_task_runner)
|
| : client_(GetString(client)),
|
| + use_assigned_credentials_(false),
|
| data_reduction_proxy_config_(config),
|
| network_task_runner_(network_task_runner) {
|
| GetChromiumBuildAndPatch(ChromiumVersion(), &build_, &patch_);
|
| @@ -110,6 +111,7 @@ DataReductionProxyRequestOptions::DataReductionProxyRequestOptions(
|
| DataReductionProxyConfig* config,
|
| scoped_refptr<base::SingleThreadTaskRunner> network_task_runner)
|
| : client_(GetString(client)),
|
| + use_assigned_credentials_(false),
|
| data_reduction_proxy_config_(config),
|
| network_task_runner_(network_task_runner) {
|
| GetChromiumBuildAndPatch(version, &build_, &patch_);
|
| @@ -227,7 +229,7 @@ void DataReductionProxyRequestOptions::SetHeader(
|
| net::HttpRequestHeaders* headers) {
|
| base::Time now = Now();
|
| // Authorization credentials must be regenerated if they are expired.
|
| - if (now > credentials_expiration_time_)
|
| + if (!use_assigned_credentials_ && (now > credentials_expiration_time_))
|
| UpdateCredentials();
|
| UpdateLoFi();
|
| const char kChromeProxyHeader[] = "Chrome-Proxy";
|
| @@ -264,8 +266,6 @@ void DataReductionProxyRequestOptions::ComputeCredentials(
|
| }
|
|
|
| void DataReductionProxyRequestOptions::UpdateCredentials() {
|
| - std::string session;
|
| - std::string credentials;
|
| base::Time now = Now();
|
| ComputeCredentials(now, &session_, &credentials_);
|
| credentials_expiration_time_ = now + base::TimeDelta::FromHours(24);
|
| @@ -293,6 +293,18 @@ void DataReductionProxyRequestOptions::PopulateConfigResponse(
|
| config_parser::TimeToISO8601(expiration_time));
|
| }
|
|
|
| +void DataReductionProxyRequestOptions::SetCredentials(
|
| + const std::string& session,
|
| + const std::string& credentials) {
|
| + DCHECK(network_task_runner_->BelongsToCurrentThread());
|
| + session_ = session;
|
| + credentials_ = credentials;
|
| + // Force skipping of credential regeneration. It should be handled by the
|
| + // caller.
|
| + use_assigned_credentials_ = true;
|
| + RegenerateRequestHeaderValue();
|
| +}
|
| +
|
| std::string DataReductionProxyRequestOptions::GetDefaultKey() const {
|
| const base::CommandLine& command_line =
|
| *base::CommandLine::ForCurrentProcess();
|
|
|