diff options
author | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-13 03:44:24 +0000 |
---|---|---|
committer | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-13 03:44:24 +0000 |
commit | d49801990067e7fe9a3caf141f31c6e6ba58fcfc (patch) | |
tree | 502fef7a064f7e1b67291d418b897117e2427822 /net/url_request | |
parent | 96508147cf0947fdd4ae19d9ee7f5f2e13268a5f (diff) | |
download | chromium_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.cc | 14 | ||||
-rw-r--r-- | net/url_request/url_request_context.h | 24 | ||||
-rw-r--r-- | net/url_request/url_request_unittest.cc | 12 | ||||
-rw-r--r-- | net/url_request/url_request_unittest.h | 12 |
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_)); } }; |