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

Unified Diff: chrome/browser/profiles/profile_io_data.cc

Issue 6825038: Create a content::ResourceContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Own database_tracker. Created 9 years, 8 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: chrome/browser/profiles/profile_io_data.cc
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
index aade3dc55d65c6c7ad1de476f3e437166b8e7e7a..b7b4829c61d50b0e6f0485d6ac4a85f5323cf9a4 100644
--- a/chrome/browser/profiles/profile_io_data.cc
+++ b/chrome/browser/profiles/profile_io_data.cc
@@ -8,7 +8,9 @@
#include "base/basictypes.h"
#include "base/command_line.h"
+#include "base/compiler_specific.h"
#include "base/logging.h"
+#include "base/stl_util-inl.h"
#include "base/string_number_conversions.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/custom_handlers/protocol_handler_registry.h"
@@ -23,11 +25,13 @@
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "content/browser/browser_thread.h"
+#include "content/browser/resource_context.h"
#include "content/common/notification_service.h"
#include "net/http/http_util.h"
#include "net/proxy/proxy_config_service_fixed.h"
#include "net/proxy/proxy_script_fetcher_impl.h"
#include "net/proxy/proxy_service.h"
+#include "webkit/database/database_tracker.h"
namespace {
@@ -121,12 +125,11 @@ class ChromeCookieMonsterDelegate : public net::CookieMonster::Delegate {
} // namespace
-// static
-void ProfileIOData::InitializeProfileParams(Profile* profile,
- ProfileParams* params) {
+void ProfileIOData::InitializeProfileParams(Profile* profile) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
PrefService* pref_service = profile->GetPrefs();
+ scoped_ptr<ProfileParams> params(new ProfileParams);
params->is_incognito = profile->IsOffTheRecord();
params->clear_local_state_on_exit =
pref_service->GetBoolean(prefs::kClearSiteDataOnExit);
@@ -177,6 +180,7 @@ void ProfileIOData::InitializeProfileParams(Profile* profile,
ProxyServiceFactory::CreateProxyConfigService(
profile->GetProxyConfigTracker()));
params->profile_id = profile->GetRuntimeId();
+ profile_params_.reset(params.release());
}
ProfileIOData::RequestContext::RequestContext() {}
@@ -189,7 +193,8 @@ ProfileIOData::ProfileParams::ProfileParams()
ProfileIOData::ProfileParams::~ProfileParams() {}
ProfileIOData::ProfileIOData(bool is_incognito)
- : initialized_(false) {
+ : initialized_(false),
+ ALLOW_THIS_IN_INITIALIZER_LIST(resource_context_(this)) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
}
@@ -242,35 +247,50 @@ ProfileIOData::GetIsolatedAppRequestContext(
return context;
}
+const content::ResourceContext& ProfileIOData::GetResourceContext() const {
+ return resource_context_;
+}
+
+ProfileIOData::ResourceContext::ResourceContext(const ProfileIOData* io_data)
+ : io_data_(io_data) {
+ DCHECK(io_data);
+}
eroman 2011/04/15 03:05:27 nit: add a newline after this.
willchan no longer on Chromium 2011/04/15 16:58:02 Done.
+ProfileIOData::ResourceContext::~ResourceContext() {}
+
+void ProfileIOData::ResourceContext::EnsureInitialized() const {
+ io_data_->LazyInitialize();
+}
+
void ProfileIOData::LazyInitialize() const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
if (initialized_)
return;
- LazyInitializeInternal();
+ DCHECK(profile_params_.get());
+ database_tracker_ = profile_params_->database_tracker;
+ resource_context_.set_database_tracker(database_tracker_);
+ LazyInitializeInternal(profile_params_.get());
+ profile_params_.reset();
initialized_ = true;
}
-// static
void ProfileIOData::ApplyProfileParamsToContext(
- const ProfileParams& profile_params,
- ChromeURLRequestContext* context) {
- context->set_is_incognito(profile_params.is_incognito);
- context->set_accept_language(profile_params.accept_language);
- context->set_accept_charset(profile_params.accept_charset);
- context->set_referrer_charset(profile_params.referrer_charset);
- context->set_user_script_dir_path(profile_params.user_script_dir_path);
+ ChromeURLRequestContext* context) const {
+ context->set_is_incognito(profile_params_->is_incognito);
+ context->set_accept_language(profile_params_->accept_language);
+ context->set_accept_charset(profile_params_->accept_charset);
+ context->set_referrer_charset(profile_params_->referrer_charset);
+ context->set_user_script_dir_path(profile_params_->user_script_dir_path);
context->set_host_content_settings_map(
- profile_params.host_content_settings_map);
- context->set_host_zoom_map(profile_params.host_zoom_map);
+ profile_params_->host_content_settings_map);
+ context->set_host_zoom_map(profile_params_->host_zoom_map);
context->set_transport_security_state(
- profile_params.transport_security_state);
- context->set_ssl_config_service(profile_params.ssl_config_service);
- context->set_database_tracker(profile_params.database_tracker);
- context->set_appcache_service(profile_params.appcache_service);
- context->set_blob_storage_context(profile_params.blob_storage_context);
- context->set_file_system_context(profile_params.file_system_context);
- context->set_extension_info_map(profile_params.extension_info_map);
- context->set_prerender_manager(profile_params.prerender_manager);
+ profile_params_->transport_security_state);
+ context->set_ssl_config_service(profile_params_->ssl_config_service);
+ context->set_appcache_service(profile_params_->appcache_service);
+ context->set_blob_storage_context(profile_params_->blob_storage_context);
+ context->set_file_system_context(profile_params_->file_system_context);
+ context->set_extension_info_map(profile_params_->extension_info_map);
+ context->set_prerender_manager(profile_params_->prerender_manager);
}
void ProfileIOData::ShutdownOnUIThread() {

Powered by Google App Engine
This is Rietveld 408576698