Index: net/ocsp/nss_ocsp.cc |
diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc |
index 33d1933f348ebbae152f5f5be3404e5f7e82958d..af6bf57964643b38d3153f9a9cc4557f475c3b60 100644 |
--- a/net/ocsp/nss_ocsp.cc |
+++ b/net/ocsp/nss_ocsp.cc |
@@ -20,6 +20,7 @@ |
#include "base/compiler_specific.h" |
#include "base/lazy_instance.h" |
#include "base/logging.h" |
+#include "base/memory/scoped_ptr.h" |
#include "base/message_loop/message_loop.h" |
#include "base/metrics/histogram.h" |
#include "base/stl_util.h" |
@@ -186,7 +187,6 @@ class OCSPRequestSession |
: url_(url), |
http_request_method_(http_request_method), |
timeout_(timeout), |
- request_(NULL), |
buffer_(new IOBuffer(kRecvBufferSize)), |
response_code_(-1), |
cv_(&lock_), |
@@ -217,7 +217,7 @@ class OCSPRequestSession |
} |
bool Started() const { |
- return request_ != NULL; |
+ return request_.get() != NULL; |
} |
void Cancel() { |
@@ -285,7 +285,7 @@ class OCSPRequestSession |
virtual void OnReceivedRedirect(URLRequest* request, |
const GURL& new_url, |
bool* defer_redirect) OVERRIDE { |
- DCHECK_EQ(request, request_); |
+ DCHECK_EQ(request_.get(), request); |
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_); |
if (!new_url.SchemeIs("http")) { |
@@ -296,7 +296,7 @@ class OCSPRequestSession |
} |
virtual void OnResponseStarted(URLRequest* request) OVERRIDE { |
- DCHECK_EQ(request, request_); |
+ DCHECK_EQ(request_.get(), request); |
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_); |
int bytes_read = 0; |
@@ -306,12 +306,12 @@ class OCSPRequestSession |
response_headers_->GetMimeType(&response_content_type_); |
request_->Read(buffer_.get(), kRecvBufferSize, &bytes_read); |
} |
- OnReadCompleted(request_, bytes_read); |
+ OnReadCompleted(request_.get(), bytes_read); |
} |
virtual void OnReadCompleted(URLRequest* request, |
int bytes_read) OVERRIDE { |
- DCHECK_EQ(request, request_); |
+ DCHECK_EQ(request_.get(), request); |
DCHECK_EQ(base::MessageLoopForIO::current(), io_loop_); |
do { |
@@ -321,8 +321,7 @@ class OCSPRequestSession |
} while (request_->Read(buffer_.get(), kRecvBufferSize, &bytes_read)); |
if (!request_->status().is_io_pending()) { |
- delete request_; |
- request_ = NULL; |
+ request_.reset(); |
g_ocsp_io_loop.Get().RemoveRequest(this); |
{ |
base::AutoLock autolock(lock_); |
@@ -344,9 +343,7 @@ class OCSPRequestSession |
} |
#endif |
if (request_) { |
- request_->Cancel(); |
- delete request_; |
- request_ = NULL; |
+ request_.reset(); |
g_ocsp_io_loop.Get().RemoveRequest(this); |
{ |
base::AutoLock autolock(lock_); |
@@ -397,8 +394,8 @@ class OCSPRequestSession |
g_ocsp_io_loop.Get().AddRequest(this); |
} |
- request_ = |
- new URLRequest(url_, DEFAULT_PRIORITY, this, url_request_context); |
+ request_ = url_request_context->CreateRequest( |
+ url_, DEFAULT_PRIORITY, this, NULL); |
// To meet the privacy requirements of incognito mode. |
request_->SetLoadFlags(LOAD_DISABLE_CACHE | LOAD_DO_NOT_SAVE_COOKIES | |
LOAD_DO_NOT_SEND_COOKIES); |
@@ -423,10 +420,10 @@ class OCSPRequestSession |
AddRef(); // Release after |request_| deleted. |
} |
- GURL url_; // The URL we eventually wound up at |
+ GURL url_; // The URL we eventually wound up at |
std::string http_request_method_; |
- base::TimeDelta timeout_; // The timeout for OCSP |
- URLRequest* request_; // The actual request this wraps |
+ base::TimeDelta timeout_; // The timeout for OCSP |
+ scoped_ptr<URLRequest> request_; // The actual request this wraps |
scoped_refptr<IOBuffer> buffer_; // Read buffer |
HttpRequestHeaders extra_request_headers_; |