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

Unified Diff: android_webview/browser/net/aw_url_request_context_getter.cc

Issue 18618004: Change BrowserThreadDelegate to run Init() async. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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: android_webview/browser/net/aw_url_request_context_getter.cc
diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc
index 4028ec7ac6831defee786d10b5c09ff966ebfa2e..55bc244a3201aa66fe3e799691b4c0b791c714af 100644
--- a/android_webview/browser/net/aw_url_request_context_getter.cc
+++ b/android_webview/browser/net/aw_url_request_context_getter.cc
@@ -51,6 +51,22 @@ AwURLRequestContextGetter::~AwURLRequestContextGetter() {
BrowserThread::SetDelegate(BrowserThread::IO, NULL);
}
+void AwURLRequestContextGetter::InitializeOnUiThread() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ cookie_store_ = content::CreatePersistentCookieStore(
+ browser_context_->GetPath().Append(FILE_PATH_LITERAL("Cookies")),
+ false,
+ NULL,
+ NULL);
+ cookie_store_->GetCookieMonster()->SetPersistSessionCookies(true);
+
+ // The CookieMonster must be passed here so it happens synchronously to
+ // the main thread initialization (to avoid race condition in another
+ // thread trying to access the CookieManager API).
awong 2013/07/11 20:43:48 This comment is slightly out of date. We're alread
+ DidCreateCookieMonster(cookie_store_->GetCookieMonster());
+}
+
void AwURLRequestContextGetter::Init() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -84,21 +100,9 @@ void AwURLRequestContextGetter::Init() {
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::CACHE)));
main_http_factory_.reset(main_cache);
url_request_context_->set_http_transaction_factory(main_cache);
-
- scoped_refptr<net::CookieStore> cookie_store =
- content::CreatePersistentCookieStore(
- browser_context_->GetPath().Append(FILE_PATH_LITERAL("Cookies")),
- false,
- NULL,
- NULL);
- cookie_store->GetCookieMonster()->SetPersistSessionCookies(true);
- url_request_context_->set_cookie_store(cookie_store.get());
-
- // The CookieMonster must be passed here so it happens synchronously to
- // the main thread initialization (to avoid race condition in another
- // thread trying to access the CookieManager API).
- DidCreateCookieMonster(
- url_request_context_->cookie_store()->GetCookieMonster());
+ url_request_context_->set_cookie_store(cookie_store_.get());
joth 2013/07/16 20:19:52 url_request_context_->set_cookie_store(cookie_stor
+ // release our copy of cookie_store_, now url_request_context owns it
+ cookie_store_ = NULL;
}
void AwURLRequestContextGetter::PopulateNetworkSessionParams(

Powered by Google App Engine
This is Rietveld 408576698