Index: chrome/browser/profiles/profile_io_data.cc |
=================================================================== |
--- chrome/browser/profiles/profile_io_data.cc (revision 104227) |
+++ chrome/browser/profiles/profile_io_data.cc (working copy) |
@@ -25,6 +25,7 @@ |
#include "chrome/browser/net/chrome_dns_cert_provenance_checker_factory.h" |
#include "chrome/browser/net/chrome_net_log.h" |
#include "chrome/browser/net/chrome_network_delegate.h" |
+#include "chrome/browser/net/http_server_properties_manager.h" |
#include "chrome/browser/net/pref_proxy_config_service.h" |
#include "chrome/browser/net/proxy_service_factory.h" |
#include "chrome/browser/notifications/desktop_notification_service_factory.h" |
@@ -255,14 +256,17 @@ |
params->profile = profile; |
profile_params_.reset(params.release()); |
- // The URLBlacklistManager has to be created on the UI thread to register |
- // observers of |pref_service|, and it also has to clean up on |
- // ShutdownOnUIThread to release these observers on the right thread. |
- // Don't pass it in |profile_params_| to make sure it is correctly cleaned up, |
- // in particular when this ProfileIOData isn't |initialized_| during deletion. |
+ // URLBlacklistManager and HttpServerPropertiesManager have to be created on |
+ // the UI thread to register observers of |pref_service|, and it also has to |
+ // clean up on ShutdownOnUIThread to release these observers on the right |
+ // thread. Don't pass it in |profile_params_| to make sure it is correctly |
+ // cleaned up, in particular when this ProfileIOData isn't |initialized_| |
+ // during deletion. |
#if defined(ENABLE_CONFIGURATION_POLICY) |
url_blacklist_manager_.reset(new policy::URLBlacklistManager(pref_service)); |
#endif |
+ http_server_properties_manager_.reset( |
+ new chrome_browser_net::HttpServerPropertiesManager(pref_service)); |
} |
ProfileIOData::AppRequestContext::AppRequestContext() {} |
@@ -408,6 +412,9 @@ |
IOThread::Globals* const io_thread_globals = io_thread->globals(); |
const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
+ if (http_server_properties_manager_.get()) |
+ http_server_properties_manager_->InitializeOnIOThread(); |
+ |
// Create the common request contexts. |
main_request_context_ = new ChromeURLRequestContext; |
extensions_request_context_ = new ChromeURLRequestContext; |
@@ -538,6 +545,8 @@ |
if (url_blacklist_manager_.get()) |
url_blacklist_manager_->ShutdownOnUIThread(); |
#endif |
+ if (http_server_properties_manager_.get()) |
+ http_server_properties_manager_->ShutdownOnUIThread(); |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
base::Bind( |