diff --git a/content/browser/debugger/devtools_http_handler_impl.cc b/content/browser/debugger/devtools_http_handler_impl.cc
index aacf2ea..7147ce6 100644
--- a/content/browser/debugger/devtools_http_handler_impl.cc
+++ b/content/browser/debugger/devtools_http_handler_impl.cc
@@ -249,13 +249,10 @@
       return;
     }
     std::string base_url = delegate_->GetFrontendResourcesBaseURL();
-    request = new net::URLRequest(GURL(base_url + filename),
-                                  this,
-                                  request_context);
+    request = request_context->CreateRequest(GURL(base_url + filename), this);
   } else if (info.path.find("/thumb/") == 0) {
-    request = new net::URLRequest(GURL("chrome:/" + info.path),
-                                  this,
-                                  request_context);
+    request = request_context->CreateRequest(
+        GURL("chrome:/" + info.path), this);
   } else {
     server_->Send404(connection_id);
     return;
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc
index 8f2b1755..5b0319a 100644
--- a/content/browser/download/download_manager_impl.cc
+++ b/content/browser/download/download_manager_impl.cc
@@ -41,6 +41,7 @@
 #include "content/public/browser/web_contents_delegate.h"
 #include "net/base/load_flags.h"
 #include "net/base/upload_data.h"
+#include "net/url_request/url_request_context.h"
 #include "webkit/glue/webkit_glue.h"
 
 using content::BrowserThread;
@@ -79,10 +80,9 @@
   // ResourceDispatcherHost{Base} is-not-a URLRequest::Delegate, and
   // DownloadUrlParameters can-not include resource_dispatcher_host_impl.h, so
   // we must down cast. RDHI is the only subclass of RDH as of 2012 May 4.
-  scoped_ptr<net::URLRequest> request(new net::URLRequest(
-      params->url(),
-      NULL,
-      params->resource_context()->GetRequestContext()));
+  scoped_ptr<net::URLRequest> request(
+      params->resource_context()->GetRequestContext()->CreateRequest(
+          params->url(), NULL));
   request->set_referrer(params->referrer().url.spec());
   webkit_glue::ConfigureURLRequestForReferrerPolicy(
       request.get(), params->referrer().policy);
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index 11738b2..aa971df 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -731,10 +731,8 @@
                                         const string16& suggested_name) {
   DownloadSaveInfo save_info;
   save_info.suggested_name = suggested_name;
-  scoped_ptr<net::URLRequest> request(new net::URLRequest(
-      url,
-      NULL,
-      resource_context_->GetRequestContext()));
+  scoped_ptr<net::URLRequest> request(
+      resource_context_->GetRequestContext()->CreateRequest(url, NULL));
   request->set_referrer(referrer.url.spec());
   webkit_glue::ConfigureURLRequestForReferrerPolicy(
       request.get(), referrer.policy);
diff --git a/content/browser/renderer_host/resource_dispatcher_host_impl.cc b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
index 450641e..85544664 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_impl.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
@@ -933,10 +933,9 @@
     // chance to reset some state before we complete the transfer.
     deferred_loader->WillCompleteTransfer();
   } else {
-    new_request.reset(new net::URLRequest(
-        request_data.url,
-        NULL,
-        filter_->GetURLRequestContext(request_data.resource_type)));
+    net::URLRequestContext* context =
+        filter_->GetURLRequestContext(request_data.resource_type);
+    new_request.reset(context->CreateRequest(request_data.url, NULL));
     request = new_request.get();
 
     request->set_method(request_data.method);
@@ -1256,7 +1255,7 @@
   }
 
   scoped_ptr<net::URLRequest> request(
-      new net::URLRequest(url, NULL, request_context));
+      request_context->CreateRequest(url, NULL));
   request->set_method("GET");
   request->set_referrer(MaybeStripReferrer(referrer.url).spec());
   webkit_glue::ConfigureURLRequestForReferrerPolicy(request.get(),
