summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-19 03:43:19 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-19 03:43:19 +0000
commit13c30929c4c0daaf891554ddb52ebebb80a36afa (patch)
tree919dc81ccd716828c8a09edca0d68531b9e4b27b
parent5fc341a9731fd518bbe6314a3eec3ebc98109de7 (diff)
downloadchromium_src-13c30929c4c0daaf891554ddb52ebebb80a36afa.zip
chromium_src-13c30929c4c0daaf891554ddb52ebebb80a36afa.tar.gz
chromium_src-13c30929c4c0daaf891554ddb52ebebb80a36afa.tar.bz2
Cleanup some callers now that the restriction that ChromeURLRequestContextGetter be released from the IO thread is gone.
This was an anoyance for consumers of URLRequestContextGetter, as they would play tricks doing manual AddRef/Release. The actual removal of this policy happened in: r32129. BUG=None Test=Existing tests don't crash/leak. Review URL: http://codereview.chromium.org/332006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32488 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/automation/automation_profile_impl.cc8
-rw-r--r--chrome/browser/automation/automation_profile_impl.h5
-rw-r--r--chrome/browser/external_tab_container.cc10
-rw-r--r--chrome/browser/profile.cc15
-rw-r--r--chrome/browser/profile.h12
-rw-r--r--chrome/browser/sync/glue/http_bridge.cc12
-rw-r--r--chrome/browser/sync/glue/http_bridge.h5
7 files changed, 10 insertions, 57 deletions
diff --git a/chrome/browser/automation/automation_profile_impl.cc b/chrome/browser/automation/automation_profile_impl.cc
index 37caf33..ca208f6 100644
--- a/chrome/browser/automation/automation_profile_impl.cc
+++ b/chrome/browser/automation/automation_profile_impl.cc
@@ -158,14 +158,6 @@ class Factory : public ChromeURLRequestContextFactory {
int tab_handle_;
};
-// TODO(eroman): This duplicates CleanupRequestContext() from profile.cc.
-void CleanupRequestContext(ChromeURLRequestContextGetter* context) {
- context->CleanupOnUIThread();
-
- // Clean up request context on IO thread.
- ChromeThread::ReleaseSoon(ChromeThread::IO, FROM_HERE, context);
-}
-
ChromeURLRequestContextGetter* CreateAutomationURLRequestContextForTab(
int tab_handle,
Profile* profile,
diff --git a/chrome/browser/automation/automation_profile_impl.h b/chrome/browser/automation/automation_profile_impl.h
index 040c278..f2bc6c2 100644
--- a/chrome/browser/automation/automation_profile_impl.h
+++ b/chrome/browser/automation/automation_profile_impl.h
@@ -19,9 +19,6 @@ ChromeURLRequestContextGetter* CreateAutomationURLRequestContextForTab(
Profile* profile,
IPC::Message::Sender* automation_client);
-// Cleans up the request context on the IO thread.
-void CleanupRequestContext(ChromeURLRequestContextGetter* context);
-
-};
+}
#endif // CHROME_BROWSER_AUTOMATION_AUTOMATION_PROFILE_IMPL_H_
diff --git a/chrome/browser/external_tab_container.cc b/chrome/browser/external_tab_container.cc
index 9689ade..3d9251a 100644
--- a/chrome/browser/external_tab_container.cc
+++ b/chrome/browser/external_tab_container.cc
@@ -172,10 +172,7 @@ void ExternalTabContainer::Uninitialize() {
tab_contents_ = NULL;
}
- if (request_context_.get()) {
- AutomationRequestContext::CleanupRequestContext(
- request_context_.release());
- }
+ request_context_ = NULL;
}
bool ExternalTabContainer::Reinitialize(
@@ -699,11 +696,6 @@ bool ExternalTabContainer::OnGoToEntryOffset(int offset) {
void ExternalTabContainer::InitializeAutomationRequestContext(
int tab_handle) {
- if (request_context_.get()) {
- AutomationRequestContext::CleanupRequestContext(
- request_context_.release());
- }
-
request_context_ =
AutomationRequestContext::CreateAutomationURLRequestContextForTab(
tab_handle, tab_contents_->profile(),
diff --git a/chrome/browser/profile.cc b/chrome/browser/profile.cc
index 32e3306..c1cd54d 100644
--- a/chrome/browser/profile.cc
+++ b/chrome/browser/profile.cc
@@ -129,12 +129,8 @@ bool HasACacheSubdir(const FilePath &dir) {
URLRequestContextGetter* Profile::default_request_context_;
static void CleanupRequestContext(ChromeURLRequestContextGetter* context) {
- if (context) {
+ if (context)
context->CleanupOnUIThread();
-
- // Clean up request context on IO thread.
- ChromeThread::ReleaseSoon(ChromeThread::IO, FROM_HERE, context);
- }
}
// static
@@ -200,7 +196,6 @@ class OffTheRecordProfileImpl : public Profile,
extensions_request_context_(NULL),
start_time_(Time::Now()) {
request_context_ = ChromeURLRequestContextGetter::CreateOffTheRecord(this);
- request_context_->AddRef();
// Register for browser close notifications so we can detect when the last
// off-the-record window is closed, in which case we can clean our states
@@ -400,7 +395,6 @@ class OffTheRecordProfileImpl : public Profile,
if (!extensions_request_context_) {
extensions_request_context_ =
ChromeURLRequestContextGetter::CreateOffTheRecordForExtensions(this);
- extensions_request_context_->AddRef();
}
return extensions_request_context_;
@@ -549,9 +543,9 @@ class OffTheRecordProfileImpl : public Profile,
Profile* profile_;
// The context to use for requests made from this OTR session.
- ChromeURLRequestContextGetter* request_context_;
+ scoped_refptr<ChromeURLRequestContextGetter> request_context_;
- ChromeURLRequestContextGetter* extensions_request_context_;
+ scoped_refptr<ChromeURLRequestContextGetter> extensions_request_context_;
// The download manager that only stores downloaded items in memory.
scoped_refptr<DownloadManager> download_manager_;
@@ -938,7 +932,6 @@ URLRequestContextGetter* ProfileImpl::GetRequestContext() {
cache_path = GetCachePath(cache_path);
request_context_ = ChromeURLRequestContextGetter::CreateOriginal(
this, cookie_path, cache_path, max_size);
- request_context_->AddRef();
// The first request context is always a normal (non-OTR) request context.
// Even when Chromium is started in OTR mode, a normal profile is always
@@ -966,7 +959,6 @@ URLRequestContextGetter* ProfileImpl::GetRequestContextForMedia() {
media_request_context_ =
ChromeURLRequestContextGetter::CreateOriginalForMedia(
this, cache_path, max_size);
- media_request_context_->AddRef();
}
return media_request_context_;
@@ -989,7 +981,6 @@ URLRequestContextGetter* ProfileImpl::GetRequestContextForExtensions() {
extensions_request_context_ =
ChromeURLRequestContextGetter::CreateOriginalForExtensions(
this, cookie_path);
- extensions_request_context_->AddRef();
}
return extensions_request_context_;
diff --git a/chrome/browser/profile.h b/chrome/browser/profile.h
index 7497e6d..98e7aab 100644
--- a/chrome/browser/profile.h
+++ b/chrome/browser/profile.h
@@ -116,9 +116,6 @@ class Profile {
// from any thread. This CAN return NULL if a first request context has not
// yet been created. If necessary, listen on the UI thread for
// NOTIFY_DEFAULT_REQUEST_CONTEXT_AVAILABLE.
- //
- // The returned object is ref'd by the profile. Callers who AddRef() it (to
- // keep it alive longer than the profile) must Release() it on the I/O thread.
static URLRequestContextGetter* GetDefaultRequestContext();
// Returns a unique Id that can be used to identify this profile at runtime.
@@ -278,9 +275,6 @@ class Profile {
// Returns the request context information associated with this profile. Call
// this only on the UI thread, since it can send notifications that should
// happen on the UI thread.
- //
- // The returned object is ref'd by the profile. Callers who AddRef() it (to
- // keep it alive longer than the profile) must Release() it on the I/O thread.
virtual URLRequestContextGetter* GetRequestContext() = 0;
// Returns the request context for media resources asociated with this
@@ -548,11 +542,11 @@ class ProfileImpl : public Profile,
scoped_ptr<ProfileSyncService> sync_service_;
- ChromeURLRequestContextGetter* request_context_;
+ scoped_refptr<ChromeURLRequestContextGetter> request_context_;
- ChromeURLRequestContextGetter* media_request_context_;
+ scoped_refptr<ChromeURLRequestContextGetter> media_request_context_;
- ChromeURLRequestContextGetter* extensions_request_context_;
+ scoped_refptr<ChromeURLRequestContextGetter> extensions_request_context_;
scoped_ptr<SSLConfigServiceManager> ssl_config_service_manager_;
diff --git a/chrome/browser/sync/glue/http_bridge.cc b/chrome/browser/sync/glue/http_bridge.cc
index 56d3ebf9..95d95ac 100644
--- a/chrome/browser/sync/glue/http_bridge.cc
+++ b/chrome/browser/sync/glue/http_bridge.cc
@@ -46,17 +46,9 @@ HttpBridgeFactory::HttpBridgeFactory(
DCHECK(baseline_context_getter != NULL);
request_context_getter_ =
new HttpBridge::RequestContextGetter(baseline_context_getter);
- request_context_getter_->AddRef();
}
HttpBridgeFactory::~HttpBridgeFactory() {
- if (request_context_getter_) {
- // Clean up request context getter on IO thread.
- bool posted = ChromeThread::ReleaseSoon(
- ChromeThread::IO, FROM_HERE, request_context_getter_);
- DCHECK(posted);
- request_context_getter_ = NULL;
- }
}
sync_api::HttpPostProviderInterface* HttpBridgeFactory::Create() {
@@ -116,13 +108,9 @@ HttpBridge::HttpBridge(HttpBridge::RequestContextGetter* context_getter)
request_succeeded_(false),
http_response_code_(-1),
http_post_completed_(false, false) {
- context_getter_for_request_->AddRef();
}
HttpBridge::~HttpBridge() {
- bool posted = ChromeThread::ReleaseSoon(
- ChromeThread::IO, FROM_HERE, context_getter_for_request_);
- DCHECK(posted);
}
void HttpBridge::SetUserAgent(const char* user_agent) {
diff --git a/chrome/browser/sync/glue/http_bridge.h b/chrome/browser/sync/glue/http_bridge.h
index 9ac5af8..5287344 100644
--- a/chrome/browser/sync/glue/http_bridge.h
+++ b/chrome/browser/sync/glue/http_bridge.h
@@ -146,7 +146,7 @@ class HttpBridge : public base::RefCountedThreadSafe<HttpBridge>,
// Gets a customized URLRequestContext for bridged requests. See
// RequestContext definition for details.
- RequestContextGetter* context_getter_for_request_;
+ scoped_refptr<RequestContextGetter> context_getter_for_request_;
// Our hook into the network layer is a URLFetcher. USED ONLY ON THE IO LOOP,
// so we can block created_on_loop_ while the fetch is in progress.
@@ -196,8 +196,7 @@ class HttpBridgeFactory
// This request context is built on top of the baseline context and shares
// common components.
HttpBridge::RequestContextGetter* GetRequestContextGetter();
- // We must Release() this from the IO thread.
- HttpBridge::RequestContextGetter* request_context_getter_;
+ scoped_refptr<HttpBridge::RequestContextGetter> request_context_getter_;
DISALLOW_COPY_AND_ASSIGN(HttpBridgeFactory);
};