Index: chrome/browser/net/chrome_url_request_context.cc |
diff --git a/chrome/browser/net/chrome_url_request_context.cc b/chrome/browser/net/chrome_url_request_context.cc |
index 81a04020d9eb4ef6aa21e578882356545cfef0d0..8eea46ab07c5ad0ab0162eb98e7c7ac0c3a635ea 100644 |
--- a/chrome/browser/net/chrome_url_request_context.cc |
+++ b/chrome/browser/net/chrome_url_request_context.cc |
@@ -315,8 +315,10 @@ ChromeURLRequestContext* FactoryForOriginal::Create() { |
scoped_refptr<SQLitePersistentCookieStore> cookie_db = |
new SQLitePersistentCookieStore(cookie_store_path_); |
+ cookie_db->SetClearLocalStateOnExit(clear_local_state_on_exit_); |
context->set_cookie_store(new net::CookieMonster(cookie_db.get(), |
cookie_monster_delegate_)); |
+ |
jochen (gone - plz use gerrit)
2010/12/02 15:09:51
nit no empty line plz
pastarmovj
2010/12/02 16:29:07
Done.
|
} |
context->set_cookie_policy( |
@@ -705,6 +707,15 @@ void ChromeURLRequestContextGetter::Observe( |
this, |
&ChromeURLRequestContextGetter::OnDefaultCharsetChange, |
default_charset)); |
+ } else if (*pref_name_in == prefs::kClearSiteDataOnExit) { |
+ bool clear_site_data = |
+ prefs->GetBoolean(prefs::kClearSiteDataOnExit); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ NewRunnableMethod( |
+ this, |
+ &ChromeURLRequestContextGetter::OnClearSiteDataOnExitChange, |
+ clear_site_data)); |
} |
} else { |
NOTREACHED(); |
@@ -717,6 +728,7 @@ void ChromeURLRequestContextGetter::RegisterPrefsObserver(Profile* profile) { |
registrar_.Init(profile->GetPrefs()); |
registrar_.Add(prefs::kAcceptLanguages, this); |
registrar_.Add(prefs::kDefaultCharset, this); |
+ registrar_.Add(prefs::kClearSiteDataOnExit, this); |
} |
// static |
@@ -742,6 +754,12 @@ void ChromeURLRequestContextGetter::OnDefaultCharsetChange( |
GetIOContext()->OnDefaultCharsetChange(default_charset); |
} |
+void ChromeURLRequestContextGetter::OnClearSiteDataOnExitChange( |
+ bool clear_site_data) { |
+ GetCookieStore()->GetCookieMonster()->GetPersistentCookieStore()-> |
+ SetClearLocalStateOnExit(clear_site_data); |
+} |
+ |
void ChromeURLRequestContextGetter::GetCookieStoreAsyncHelper( |
base::WaitableEvent* completion, |
net::CookieStore** result) { |
@@ -882,6 +900,7 @@ ChromeURLRequestContextFactory::ChromeURLRequestContextFactory(Profile* profile) |
std::string default_charset = prefs->GetString(prefs::kDefaultCharset); |
accept_charset_ = |
net::HttpUtil::GenerateAcceptCharsetHeader(default_charset); |
+ clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit); |
// At this point, we don't know the charset of the referring page |
// where a url request originates from. This is used to get a suggested |