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

Unified Diff: components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.cc

Issue 412143009: Moved data reduction proxy initialization logic to ProfileImplIOData (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
Index: components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.cc
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.cc
index 6130eda1b94f3017ca29bfdb067696a723d74a41..a687789db44352ca566732072ed7cd4ea847cbb5 100644
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.cc
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.cc
@@ -4,7 +4,9 @@
#include "components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler.h"
+#include "base/bind.h"
#include "base/command_line.h"
+#include "base/message_loop/message_loop_proxy.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
@@ -36,19 +38,21 @@ bool DataReductionProxyAuthRequestHandler::IsKeySetOnCommandLine() {
}
DataReductionProxyAuthRequestHandler::DataReductionProxyAuthRequestHandler(
- DataReductionProxyParams* params)
- : data_reduction_proxy_params_(params) {
- version_ = kProtocolVersion;
-#if defined(OS_ANDROID)
- client_ = kClientChromeAndroid;
-#elif defined(OS_IOS)
- client_ = kClientChromeIOS;
-#endif
+ DataReductionProxyParams* params,
+ base::MessageLoopProxy* io_thread_proxy)
+ : data_reduction_proxy_params_(params),
+ io_thread_proxy_(io_thread_proxy) {
Init();
}
void DataReductionProxyAuthRequestHandler::Init() {
- InitAuthentication(GetDefaultKey());
+ std::string client;
+#if defined(OS_ANDROID)
+ client = kClientChromeAndroid;
+#elif defined(OS_IOS)
+ client = kClientChromeIOS;
+#endif
+ InitAuthentication(GetDefaultKey(), client, kProtocolVersion);
}
@@ -82,6 +86,7 @@ void DataReductionProxyAuthRequestHandler::MaybeAddRequestHeader(
net::URLRequest* request,
const net::ProxyServer& proxy_server,
net::HttpRequestHeaders* request_headers) {
+ DCHECK(io_thread_proxy_->BelongsToCurrentThread());
if (!proxy_server.is_valid())
return;
if (data_reduction_proxy_params_ &&
@@ -108,31 +113,50 @@ void DataReductionProxyAuthRequestHandler::AddAuthorizationHeader(
}
void DataReductionProxyAuthRequestHandler::InitAuthentication(
- const std::string& key) {
+ const std::string& key,
+ const std::string& client,
+ const std::string& version) {
key_ = key;
int64 timestamp =
(Now() - base::Time::UnixEpoch()).InMilliseconds() / 1000;
int32 rand[3];
RandBytes(rand, 3 * sizeof(rand[0]));
- session_ = base::StringPrintf("%lld-%u-%u-%u",
- static_cast<long long>(timestamp),
- rand[0],
- rand[1],
- rand[2]);
- credentials_ = base::UTF16ToUTF8(AuthHashForSalt(timestamp, key_));
-
- DVLOG(1) << "session: [" << session_ << "] "
- << "password: [" << credentials_ << "]";
+ std::string session = base::StringPrintf("%lld-%u-%u-%u",
+ static_cast<long long>(timestamp),
+ rand[0],
+ rand[1],
+ rand[2]);
+ std::string credentials = base::UTF16ToUTF8(AuthHashForSalt(timestamp, key_));
+
+ DVLOG(1) << "session: [" << session << "] "
+ << "password: [" << credentials << "]";
+ io_thread_proxy_->PostTask(FROM_HERE, base::Bind(
+ &DataReductionProxyAuthRequestHandler::InitAuthenticationOnIOThread,
+ base::Unretained(this),
+ session,
+ credentials,
+ client,
+ version));
+}
+
+void DataReductionProxyAuthRequestHandler::InitAuthenticationOnIOThread(
+ const std::string& session,
+ const std::string& credentials,
+ const std::string& client,
+ const std::string& version) {
+ DCHECK(io_thread_proxy_->BelongsToCurrentThread());
+ session_ = session;
+ credentials_ = credentials;
+ client_ = client;
+ version_ = version;
}
void DataReductionProxyAuthRequestHandler::SetKey(const std::string& key,
const std::string& client,
const std::string& version) {
- client_ = client;
- version_ = version;
if (!key.empty())
- InitAuthentication(key);
+ InitAuthentication(key, client, version);
}

Powered by Google App Engine
This is Rietveld 408576698