summaryrefslogtreecommitdiffstats
path: root/net/url_request
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-13 03:44:24 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-13 03:44:24 +0000
commitd49801990067e7fe9a3caf141f31c6e6ba58fcfc (patch)
tree502fef7a064f7e1b67291d418b897117e2427822 /net/url_request
parent96508147cf0947fdd4ae19d9ee7f5f2e13268a5f (diff)
downloadchromium_src-d49801990067e7fe9a3caf141f31c6e6ba58fcfc.zip
chromium_src-d49801990067e7fe9a3caf141f31c6e6ba58fcfc.tar.gz
chromium_src-d49801990067e7fe9a3caf141f31c6e6ba58fcfc.tar.bz2
Use automatic memory management for URLRequestContext's members.
Also make ProxyService refcounted so the sharing between profiles is explicit. Review URL: http://codereview.chromium.org/13701 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6966 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/url_request')
-rw-r--r--net/url_request/url_request_context.cc14
-rw-r--r--net/url_request/url_request_context.h24
-rw-r--r--net/url_request/url_request_unittest.cc12
-rw-r--r--net/url_request/url_request_unittest.h12
4 files changed, 29 insertions, 33 deletions
diff --git a/net/url_request/url_request_context.cc b/net/url_request/url_request_context.cc
new file mode 100644
index 0000000..84c2229
--- /dev/null
+++ b/net/url_request/url_request_context.cc
@@ -0,0 +1,14 @@
+// Copyright (c) 2008 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/url_request/url_request_context.h"
+
+// These headers are used implicitly by the destructor when destroying the
+// scoped_[ref]ptr.
+
+#include "net/proxy/proxy_service.h"
+#include "net/base/cookie_monster.h"
+
+URLRequestContext::URLRequestContext() : is_off_the_record_(false) {}
+URLRequestContext::~URLRequestContext() {}
diff --git a/net/url_request/url_request_context.h b/net/url_request/url_request_context.h
index 5ea25db..7b7d392 100644
--- a/net/url_request/url_request_context.h
+++ b/net/url_request/url_request_context.h
@@ -28,13 +28,8 @@ class ProxyService;
class URLRequestContext :
public base::RefCountedThreadSafe<URLRequestContext> {
public:
- URLRequestContext()
- : proxy_service_(NULL),
- http_transaction_factory_(NULL),
- cookie_store_(NULL),
- is_off_the_record_(false) {
- }
-
+ URLRequestContext();
+
// Get the proxy service for this context.
net::ProxyService* proxy_service() const {
return proxy_service_;
@@ -42,11 +37,11 @@ class URLRequestContext :
// Gets the http transaction factory for this context.
net::HttpTransactionFactory* http_transaction_factory() {
- return http_transaction_factory_;
+ return http_transaction_factory_.get();
}
// Gets the cookie store for this context.
- net::CookieMonster* cookie_store() { return cookie_store_; }
+ net::CookieMonster* cookie_store() { return cookie_store_.get(); }
// Gets the cookie policy for this context.
net::CookiePolicy* cookie_policy() { return &cookie_policy_; }
@@ -68,14 +63,13 @@ class URLRequestContext :
// Do not call this directly. TODO(darin): extending from RefCounted* should
// not require a public destructor!
- virtual ~URLRequestContext() {}
+ virtual ~URLRequestContext();
protected:
- // The following members are expected to be initialized and owned by
- // subclasses.
- net::ProxyService* proxy_service_;
- net::HttpTransactionFactory* http_transaction_factory_;
- net::CookieMonster* cookie_store_;
+ // The following members are expected to be initialized by subclasses.
+ scoped_refptr<net::ProxyService> proxy_service_;
+ scoped_ptr<net::HttpTransactionFactory> http_transaction_factory_;
+ scoped_ptr<net::CookieMonster> cookie_store_;
net::CookiePolicy cookie_policy_;
net::AuthCache ftp_auth_cache_;
std::string user_agent_;
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index d344319..193cc21 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -29,7 +29,6 @@
#include "net/disk_cache/disk_cache.h"
#include "net/http/http_cache.h"
#include "net/http/http_network_layer.h"
-#include "net/proxy/proxy_resolver_null.h"
#include "net/proxy/proxy_service.h"
#include "net/url_request/url_request.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -42,15 +41,10 @@ namespace {
class URLRequestHttpCacheContext : public URLRequestContext {
public:
URLRequestHttpCacheContext() {
- proxy_service_ = new net::ProxyService(new net::ProxyResolverNull);
- http_transaction_factory_ =
+ proxy_service_ = net::ProxyService::CreateNull();
+ http_transaction_factory_.reset(
new net::HttpCache(net::HttpNetworkLayer::CreateFactory(proxy_service_),
- disk_cache::CreateInMemoryCacheBackend(0));
- }
-
- virtual ~URLRequestHttpCacheContext() {
- delete http_transaction_factory_;
- delete proxy_service_;
+ disk_cache::CreateInMemoryCacheBackend(0)));
}
};
diff --git a/net/url_request/url_request_unittest.h b/net/url_request/url_request_unittest.h
index e2b8ca3..58b3f606d 100644
--- a/net/url_request/url_request_unittest.h
+++ b/net/url_request/url_request_unittest.h
@@ -23,7 +23,6 @@
#include "net/base/net_errors.h"
#include "net/http/http_network_layer.h"
#include "net/url_request/url_request.h"
-#include "net/proxy/proxy_resolver_null.h"
#include "net/proxy/proxy_service.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "googleurl/src/url_util.h"
@@ -35,14 +34,9 @@ const std::string kDefaultHostName("localhost");
class TestURLRequestContext : public URLRequestContext {
public:
TestURLRequestContext() {
- proxy_service_ = new net::ProxyService(new net::ProxyResolverNull);
- http_transaction_factory_ =
- net::HttpNetworkLayer::CreateFactory(proxy_service_);
- }
-
- virtual ~TestURLRequestContext() {
- delete http_transaction_factory_;
- delete proxy_service_;
+ proxy_service_ = net::ProxyService::CreateNull();
+ http_transaction_factory_.reset(
+ net::HttpNetworkLayer::CreateFactory(proxy_service_));
}
};