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

Side by Side Diff: chrome/browser/net/chrome_url_request_context.cc

Issue 5430004: Refactored cookies persistent store clean-up on shutdown. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Lock protected the clear on exit flag. Created 10 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/net/chrome_url_request_context.h" 5 #include "chrome/browser/net/chrome_url_request_context.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/message_loop_proxy.h" 9 #include "base/message_loop_proxy.h"
10 #include "base/string_number_conversions.h" 10 #include "base/string_number_conversions.h"
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 308
309 context->set_ftp_transaction_factory( 309 context->set_ftp_transaction_factory(
310 new net::FtpNetworkLayer(context->host_resolver())); 310 new net::FtpNetworkLayer(context->host_resolver()));
311 311
312 // setup cookie store 312 // setup cookie store
313 if (!context->cookie_store()) { 313 if (!context->cookie_store()) {
314 DCHECK(!cookie_store_path_.empty()); 314 DCHECK(!cookie_store_path_.empty());
315 315
316 scoped_refptr<SQLitePersistentCookieStore> cookie_db = 316 scoped_refptr<SQLitePersistentCookieStore> cookie_db =
317 new SQLitePersistentCookieStore(cookie_store_path_); 317 new SQLitePersistentCookieStore(cookie_store_path_);
318 cookie_db->SetClearLocalStateOnExit(clear_local_state_on_exit_);
318 context->set_cookie_store(new net::CookieMonster(cookie_db.get(), 319 context->set_cookie_store(new net::CookieMonster(cookie_db.get(),
319 cookie_monster_delegate_)); 320 cookie_monster_delegate_));
320 } 321 }
321 322
322 context->set_cookie_policy( 323 context->set_cookie_policy(
323 new ChromeCookiePolicy(host_content_settings_map_)); 324 new ChromeCookiePolicy(host_content_settings_map_));
324 325
325 appcache_service_->set_request_context(context); 326 appcache_service_->set_request_context(context);
326 327
327 context->set_net_log(io_thread()->net_log()); 328 context->set_net_log(io_thread()->net_log());
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 accept_language)); 699 accept_language));
699 } else if (*pref_name_in == prefs::kDefaultCharset) { 700 } else if (*pref_name_in == prefs::kDefaultCharset) {
700 std::string default_charset = 701 std::string default_charset =
701 prefs->GetString(prefs::kDefaultCharset); 702 prefs->GetString(prefs::kDefaultCharset);
702 BrowserThread::PostTask( 703 BrowserThread::PostTask(
703 BrowserThread::IO, FROM_HERE, 704 BrowserThread::IO, FROM_HERE,
704 NewRunnableMethod( 705 NewRunnableMethod(
705 this, 706 this,
706 &ChromeURLRequestContextGetter::OnDefaultCharsetChange, 707 &ChromeURLRequestContextGetter::OnDefaultCharsetChange,
707 default_charset)); 708 default_charset));
709 } else if (*pref_name_in == prefs::kClearSiteDataOnExit) {
710 bool clear_site_data =
711 prefs->GetBoolean(prefs::kClearSiteDataOnExit);
712 BrowserThread::PostTask(
713 BrowserThread::IO, FROM_HERE,
714 NewRunnableMethod(
715 this,
716 &ChromeURLRequestContextGetter::OnClearSiteDataOnExitChange,
717 clear_site_data));
708 } 718 }
709 } else { 719 } else {
710 NOTREACHED(); 720 NOTREACHED();
711 } 721 }
712 } 722 }
713 723
714 void ChromeURLRequestContextGetter::RegisterPrefsObserver(Profile* profile) { 724 void ChromeURLRequestContextGetter::RegisterPrefsObserver(Profile* profile) {
715 CheckCurrentlyOnMainThread(); 725 CheckCurrentlyOnMainThread();
716 726
717 registrar_.Init(profile->GetPrefs()); 727 registrar_.Init(profile->GetPrefs());
718 registrar_.Add(prefs::kAcceptLanguages, this); 728 registrar_.Add(prefs::kAcceptLanguages, this);
719 registrar_.Add(prefs::kDefaultCharset, this); 729 registrar_.Add(prefs::kDefaultCharset, this);
730 registrar_.Add(prefs::kClearSiteDataOnExit, this);
720 } 731 }
721 732
722 // static 733 // static
723 ChromeURLRequestContextGetter* 734 ChromeURLRequestContextGetter*
724 ChromeURLRequestContextGetter::CreateRequestContextForMedia( 735 ChromeURLRequestContextGetter::CreateRequestContextForMedia(
725 Profile* profile, const FilePath& disk_cache_path, int cache_size, 736 Profile* profile, const FilePath& disk_cache_path, int cache_size,
726 bool off_the_record) { 737 bool off_the_record) {
727 return new ChromeURLRequestContextGetter( 738 return new ChromeURLRequestContextGetter(
728 profile, 739 profile,
729 new FactoryForMedia(profile, 740 new FactoryForMedia(profile,
730 disk_cache_path, 741 disk_cache_path,
731 cache_size, 742 cache_size,
732 off_the_record)); 743 off_the_record));
733 } 744 }
734 745
735 void ChromeURLRequestContextGetter::OnAcceptLanguageChange( 746 void ChromeURLRequestContextGetter::OnAcceptLanguageChange(
736 const std::string& accept_language) { 747 const std::string& accept_language) {
737 GetIOContext()->OnAcceptLanguageChange(accept_language); 748 GetIOContext()->OnAcceptLanguageChange(accept_language);
738 } 749 }
739 750
740 void ChromeURLRequestContextGetter::OnDefaultCharsetChange( 751 void ChromeURLRequestContextGetter::OnDefaultCharsetChange(
741 const std::string& default_charset) { 752 const std::string& default_charset) {
742 GetIOContext()->OnDefaultCharsetChange(default_charset); 753 GetIOContext()->OnDefaultCharsetChange(default_charset);
743 } 754 }
744 755
756 void ChromeURLRequestContextGetter::OnClearSiteDataOnExitChange(
757 bool clear_site_data) {
758 GetCookieStore()->GetCookieMonster()->
759 SetClearPersistentStoreOnExit(clear_site_data);
760 }
761
745 void ChromeURLRequestContextGetter::GetCookieStoreAsyncHelper( 762 void ChromeURLRequestContextGetter::GetCookieStoreAsyncHelper(
746 base::WaitableEvent* completion, 763 base::WaitableEvent* completion,
747 net::CookieStore** result) { 764 net::CookieStore** result) {
748 // Note that CookieStore is refcounted, yet we do not add a reference. 765 // Note that CookieStore is refcounted, yet we do not add a reference.
749 *result = GetURLRequestContext()->cookie_store(); 766 *result = GetURLRequestContext()->cookie_store();
750 completion->Signal(); 767 completion->Signal();
751 } 768 }
752 769
753 // ---------------------------------------------------------------------------- 770 // ----------------------------------------------------------------------------
754 // ChromeURLRequestContext 771 // ChromeURLRequestContext
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 io_thread_(g_browser_process->io_thread()) { 892 io_thread_(g_browser_process->io_thread()) {
876 CheckCurrentlyOnMainThread(); 893 CheckCurrentlyOnMainThread();
877 PrefService* prefs = profile->GetPrefs(); 894 PrefService* prefs = profile->GetPrefs();
878 895
879 // Set up Accept-Language and Accept-Charset header values 896 // Set up Accept-Language and Accept-Charset header values
880 accept_language_ = net::HttpUtil::GenerateAcceptLanguageHeader( 897 accept_language_ = net::HttpUtil::GenerateAcceptLanguageHeader(
881 prefs->GetString(prefs::kAcceptLanguages)); 898 prefs->GetString(prefs::kAcceptLanguages));
882 std::string default_charset = prefs->GetString(prefs::kDefaultCharset); 899 std::string default_charset = prefs->GetString(prefs::kDefaultCharset);
883 accept_charset_ = 900 accept_charset_ =
884 net::HttpUtil::GenerateAcceptCharsetHeader(default_charset); 901 net::HttpUtil::GenerateAcceptCharsetHeader(default_charset);
902 clear_local_state_on_exit_ = prefs->GetBoolean(prefs::kClearSiteDataOnExit);
885 903
886 // At this point, we don't know the charset of the referring page 904 // At this point, we don't know the charset of the referring page
887 // where a url request originates from. This is used to get a suggested 905 // where a url request originates from. This is used to get a suggested
888 // filename from Content-Disposition header made of raw 8bit characters. 906 // filename from Content-Disposition header made of raw 8bit characters.
889 // Down the road, it can be overriden if it becomes known (for instance, 907 // Down the road, it can be overriden if it becomes known (for instance,
890 // when download request is made through the context menu in a web page). 908 // when download request is made through the context menu in a web page).
891 // At the moment, it'll remain 'undeterministic' when a user 909 // At the moment, it'll remain 'undeterministic' when a user
892 // types a URL in the omnibar or click on a download link in a page. 910 // types a URL in the omnibar or click on a download link in a page.
893 // For the latter, we need a change on the webkit-side. 911 // For the latter, we need a change on the webkit-side.
894 // We initialize it to the default charset here and a user will 912 // We initialize it to the default charset here and a user will
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 context->set_host_zoom_map(host_zoom_map_); 950 context->set_host_zoom_map(host_zoom_map_);
933 context->set_transport_security_state( 951 context->set_transport_security_state(
934 transport_security_state_); 952 transport_security_state_);
935 context->set_ssl_config_service(ssl_config_service_); 953 context->set_ssl_config_service(ssl_config_service_);
936 context->set_appcache_service(appcache_service_); 954 context->set_appcache_service(appcache_service_);
937 context->set_database_tracker(database_tracker_); 955 context->set_database_tracker(database_tracker_);
938 context->set_blob_storage_context(blob_storage_context_); 956 context->set_blob_storage_context(blob_storage_context_);
939 context->set_browser_file_system_context(browser_file_system_context_); 957 context->set_browser_file_system_context(browser_file_system_context_);
940 context->set_extension_info_map(extension_info_map_); 958 context->set_extension_info_map(extension_info_map_);
941 } 959 }
OLDNEW
« no previous file with comments | « chrome/browser/net/chrome_url_request_context.h ('k') | chrome/browser/net/sqlite_persistent_cookie_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698