Use base::MakeRefCounted instead of new to alloc net::IOBuffer instances.

This CL only handles the files in //net. The files outside of //net are
tackled separately, in https://crrev.com/c/1189548.

net::IOBuffer is (thread-safe) ref-counted. Asides from improving the
ability to reason about instance ownership locally, creating instances
via base::MakeRefCounted makes it possible to use 1-based ref-counting
in the future (see base/memory/ref_counted.h).

This CL is mechanical, to avoid introducing any behavior changes. The
difficult cases will be tackled by follow-up CLs. The following
transformations were performed.

* new IOBufferType(args) => base::MakeRefCounted<IOBufferType>(args)
* new IOBufferType => base::MakeRefCounted<IOBufferType>()
* scoped_refptr x(base::MakeRefCounted<IOBufferType>(args)) =>
  scoped_refptr x = base::MakeRefCounted<IOBufferType>(args)
* scoped_refptr<IOBufferType>(base::MakeRefCounted<IOBufferType>(args)) =>

  base::MakeRefCounted<IOBufferType>(args)
* In comments: creates a new IOBufferType => creates an IOBufferType
  (so it wouldn't trigger future searches for "new BufferType")
* Instantiated static members in HttpResponseBodyDrainer,
  HttpNetworkTransaction, HttpProxyClientSocket, WritersTest,
  UDPSocketTest, TestDelegate, UDPSocketPerfTest
  (needed to fix linker errors)
* arraysize -> base::size (where needed to pass presubmit checks)
* git cl format

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs;luci.chromium.try:linux_mojo;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_cronet_tester
Change-Id: Ic2cf8eb4dccfa4a97be893aff9a6053eaaf7d7af
Reviewed-on: https://chromium-review.googlesource.com/1188959
Reviewed-by: Bence Béky <[email protected]>
Commit-Queue: Victor Costan <[email protected]>
Cr-Commit-Position: refs/heads/master@{#586281}
diff --git a/net/quic/bidirectional_stream_quic_impl_unittest.cc b/net/quic/bidirectional_stream_quic_impl_unittest.cc
index 2dccbca..b47fb2b8 100644
--- a/net/quic/bidirectional_stream_quic_impl_unittest.cc
+++ b/net/quic/bidirectional_stream_quic_impl_unittest.cc
@@ -412,7 +412,7 @@
         client_headers_include_h2_stream_dependency_(std::get<1>(GetParam())),
         crypto_config_(quic::test::crypto_test_utils::ProofVerifierForTesting(),
                        quic::TlsClientHandshaker::CreateSslCtx()),
-        read_buffer_(new IOBufferWithSize(4096)),
+        read_buffer_(base::MakeRefCounted<IOBufferWithSize>(4096)),
         connection_id_(2),
         stream_id_(GetNthClientInitiatedStreamId(0)),
         client_maker_(version_,
@@ -849,7 +849,8 @@
   request.end_stream_on_headers = true;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->set_trailers_expected(true);
@@ -956,14 +957,16 @@
   request.priority = DEFAULT_PRIORITY;
 
   // Start first request.
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
                   session()->CreateHandle(destination_));
 
   // Start second request.
-  scoped_refptr<IOBuffer> read_buffer2(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer2 =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate2(
       new TestDelegateBase(read_buffer2.get(), kReadBufferSize));
   delegate2->Start(&request, net_log().bound(),
@@ -1034,7 +1037,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->DoNotSendRequestHeadersAutomatically();
@@ -1049,8 +1053,10 @@
   // separate packet.
   delegate->SendRequestHeaders();
   // Send a Data packet.
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1));
-  scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>(kBody1);
+  scoped_refptr<StringIOBuffer> buf2 =
+      base::MakeRefCounted<StringIOBuffer>(kBody2);
 
   std::vector<int> lengths = {buf1->size(), buf2->size()};
   delegate->SendvData({buf1, buf2}, lengths, !kFin);
@@ -1080,9 +1086,12 @@
   EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
 
   // Send a second Data packet.
-  scoped_refptr<StringIOBuffer> buf3(new StringIOBuffer(kBody3));
-  scoped_refptr<StringIOBuffer> buf4(new StringIOBuffer(kBody4));
-  scoped_refptr<StringIOBuffer> buf5(new StringIOBuffer(kBody5));
+  scoped_refptr<StringIOBuffer> buf3 =
+      base::MakeRefCounted<StringIOBuffer>(kBody3);
+  scoped_refptr<StringIOBuffer> buf4 =
+      base::MakeRefCounted<StringIOBuffer>(kBody4);
+  scoped_refptr<StringIOBuffer> buf5 =
+      base::MakeRefCounted<StringIOBuffer>(kBody5);
 
   delegate->SendvData({buf3, buf4, buf5},
                       {buf3->size(), buf4->size(), buf5->size()}, kFin);
@@ -1143,7 +1152,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->DoNotSendRequestHeadersAutomatically();
@@ -1153,7 +1163,8 @@
   delegate->WaitUntilNextCallback(kOnStreamReady);
 
   // Send a Data packet.
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>(kBody1);
 
   delegate->SendData(buf1, buf1->size(), false);
   delegate->WaitUntilNextCallback(kOnDataSent);
@@ -1182,7 +1193,8 @@
   EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
 
   // Send a second Data packet.
-  scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2));
+  scoped_refptr<StringIOBuffer> buf2 =
+      base::MakeRefCounted<StringIOBuffer>(kBody2);
 
   delegate->SendData(buf2, buf2->size(), true);
   delegate->WaitUntilNextCallback(kOnDataSent);
@@ -1243,7 +1255,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->DoNotSendRequestHeadersAutomatically();
@@ -1253,8 +1266,10 @@
   delegate->WaitUntilNextCallback(kOnStreamReady);
 
   // Send a Data packet.
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1));
-  scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>(kBody1);
+  scoped_refptr<StringIOBuffer> buf2 =
+      base::MakeRefCounted<StringIOBuffer>(kBody2);
 
   std::vector<int> lengths = {buf1->size(), buf2->size()};
   delegate->SendvData({buf1, buf2}, lengths, !kFin);
@@ -1284,9 +1299,12 @@
   EXPECT_EQ(static_cast<int>(strlen(kResponseBody)), cb.WaitForResult());
 
   // Send a second Data packet.
-  scoped_refptr<StringIOBuffer> buf3(new StringIOBuffer(kBody3));
-  scoped_refptr<StringIOBuffer> buf4(new StringIOBuffer(kBody4));
-  scoped_refptr<StringIOBuffer> buf5(new StringIOBuffer(kBody5));
+  scoped_refptr<StringIOBuffer> buf3 =
+      base::MakeRefCounted<StringIOBuffer>(kBody3);
+  scoped_refptr<StringIOBuffer> buf4 =
+      base::MakeRefCounted<StringIOBuffer>(kBody4);
+  scoped_refptr<StringIOBuffer> buf5 =
+      base::MakeRefCounted<StringIOBuffer>(kBody5);
 
   delegate->SendvData({buf3, buf4, buf5},
                       {buf3->size(), buf4->size(), buf5->size()}, kFin);
@@ -1337,7 +1355,8 @@
   request.priority = DEFAULT_PRIORITY;
   request.extra_headers.SetHeader("cookie", std::string(2048, 'A'));
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate(
       read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED));
   delegate->DoNotSendRequestHeadersAutomatically();
@@ -1348,7 +1367,8 @@
 
   // Attempt to send the headers and data.
   const char kBody1[] = "here are some data";
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>(kBody1);
   delegate->SendData(buf1, buf1->size(), !kFin);
 
   delegate->WaitUntilNextCallback(kOnFailed);
@@ -1371,7 +1391,8 @@
   request.priority = DEFAULT_PRIORITY;
   request.extra_headers.SetHeader("cookie", std::string(2048, 'A'));
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate(
       read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED));
   delegate->DoNotSendRequestHeadersAutomatically();
@@ -1383,8 +1404,10 @@
   // Attempt to send the headers and data.
   const char kBody1[] = "here are some data";
   const char kBody2[] = "data keep coming";
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody1));
-  scoped_refptr<StringIOBuffer> buf2(new StringIOBuffer(kBody2));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>(kBody1);
+  scoped_refptr<StringIOBuffer> buf2 =
+      base::MakeRefCounted<StringIOBuffer>(kBody2);
   std::vector<int> lengths = {buf1->size(), buf2->size()};
   delegate->SendvData({buf1, buf2}, lengths, !kFin);
 
@@ -1411,7 +1434,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1420,7 +1444,8 @@
   delegate->WaitUntilNextCallback(kOnStreamReady);
 
   // Send a DATA frame.
-  scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
+  scoped_refptr<StringIOBuffer> buf =
+      base::MakeRefCounted<StringIOBuffer>(kUploadData);
 
   delegate->SendData(buf, buf->size(), true);
   delegate->WaitUntilNextCallback(kOnDataSent);
@@ -1495,7 +1520,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1504,7 +1530,8 @@
   delegate->WaitUntilNextCallback(kOnStreamReady);
 
   // Send a DATA frame.
-  scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
+  scoped_refptr<StringIOBuffer> buf =
+      base::MakeRefCounted<StringIOBuffer>(kUploadData);
 
   delegate->SendData(buf, buf->size(), true);
   delegate->WaitUntilNextCallback(kOnDataSent);
@@ -1579,7 +1606,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1601,7 +1629,8 @@
   EXPECT_EQ("200", delegate->response_headers().find(":status")->second);
 
   // Client sends a data packet.
-  scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
+  scoped_refptr<StringIOBuffer> buf =
+      base::MakeRefCounted<StringIOBuffer>(kUploadData);
 
   delegate->SendData(buf, buf->size(), false);
   delegate->WaitUntilNextCallback(kOnDataSent);
@@ -1666,7 +1695,8 @@
   request.end_stream_on_headers = true;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1715,7 +1745,8 @@
   request.end_stream_on_headers = true;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1774,7 +1805,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1803,7 +1835,8 @@
   delegate->WaitUntilNextCallback(kOnFailed);
 
   // Try to send data after OnFailed(), should not get called back.
-  scoped_refptr<StringIOBuffer> buf(new StringIOBuffer(kUploadData));
+  scoped_refptr<StringIOBuffer> buf =
+      base::MakeRefCounted<StringIOBuffer>(kUploadData);
   delegate->SendData(buf, buf->size(), false);
 
   EXPECT_THAT(delegate->ReadData(cb.callback()),
@@ -1832,7 +1865,8 @@
   session()->connection()->CloseConnection(
       quic::QUIC_NO_ERROR, "test", quic::ConnectionCloseBehavior::SILENT_CLOSE);
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1855,7 +1889,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1879,7 +1914,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate(
       read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_FAILED));
   delegate->Start(&request, net_log().bound(),
@@ -1909,7 +1945,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(
       new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize,
                                DeleteStreamDelegate::ON_STREAM_READY));
@@ -1940,7 +1977,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->Start(&request, net_log().bound(),
@@ -1995,7 +2033,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(
       new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize,
                                DeleteStreamDelegate::ON_HEADERS_RECEIVED));
@@ -2043,7 +2082,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(new DeleteStreamDelegate(
       read_buffer.get(), kReadBufferSize, DeleteStreamDelegate::ON_DATA_READ));
   delegate->Start(&request, net_log().bound(),
@@ -2102,7 +2142,8 @@
   request.end_stream_on_headers = false;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
 
@@ -2112,7 +2153,8 @@
   delegate->WaitUntilNextCallback(kOnStreamReady);
 
   // Send a Data packet with fin set.
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer(kBody));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>(kBody);
   delegate->SendData(buf1, buf1->size(), /*fin*/ true);
   delegate->WaitUntilNextCallback(kOnDataSent);
 
@@ -2167,7 +2209,8 @@
   request.end_stream_on_headers = true;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<DeleteStreamDelegate> delegate(
       new DeleteStreamDelegate(read_buffer.get(), kReadBufferSize,
                                DeleteStreamDelegate::ON_TRAILERS_RECEIVED));
@@ -2235,7 +2278,8 @@
   request.end_stream_on_headers = true;
   request.priority = DEFAULT_PRIORITY;
 
-  scoped_refptr<IOBuffer> read_buffer(new IOBuffer(kReadBufferSize));
+  scoped_refptr<IOBuffer> read_buffer =
+      base::MakeRefCounted<IOBuffer>(kReadBufferSize);
   std::unique_ptr<TestDelegateBase> delegate(
       new TestDelegateBase(read_buffer.get(), kReadBufferSize));
   delegate->set_trailers_expected(true);
diff --git a/net/quic/quic_chromium_client_stream_test.cc b/net/quic/quic_chromium_client_stream_test.cc
index 8f6ab32..78f7d8b0 100644
--- a/net/quic/quic_chromium_client_stream_test.cc
+++ b/net/quic/quic_chromium_client_stream_test.cc
@@ -209,7 +209,8 @@
   }
 
   void ReadData(quic::QuicStringPiece expected_data) {
-    scoped_refptr<IOBuffer> buffer(new IOBuffer(expected_data.length() + 1));
+    scoped_refptr<IOBuffer> buffer =
+        base::MakeRefCounted<IOBuffer>(expected_data.length() + 1);
     EXPECT_EQ(static_cast<int>(expected_data.length()),
               stream_->Read(buffer.get(), expected_data.length() + 1));
     EXPECT_EQ(expected_data,
@@ -320,7 +321,7 @@
                                      true, callback.callback()));
 
   std::vector<scoped_refptr<IOBuffer>> buffers = {
-      scoped_refptr<IOBuffer>(new IOBuffer(10))};
+      base::MakeRefCounted<IOBuffer>(10)};
   std::vector<int> lengths = {10};
   EXPECT_EQ(
       ERR_CONNECTION_CLOSED,
@@ -372,7 +373,7 @@
 
   // Read the body and verify that it arrives correctly.
   TestCompletionCallback callback;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(2 * data_len));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(2 * data_len);
   EXPECT_EQ(data_len,
             handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback()));
   EXPECT_EQ(quic::QuicStringPiece(data),
@@ -388,7 +389,7 @@
 
   // Start to read the body.
   TestCompletionCallback callback;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(2 * data_len));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(2 * data_len);
   EXPECT_EQ(ERR_IO_PENDING,
             handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback()));
 
@@ -426,7 +427,7 @@
 
   // Start to read the body.
   TestCompletionCallback callback;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(2 * data_len));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(2 * data_len);
   EXPECT_EQ(ERR_IO_PENDING,
             handle_->ReadBody(
                 buffer.get(), 2 * data_len,
@@ -458,7 +459,7 @@
 
   // Read the body and verify that it arrives correctly.
   TestCompletionCallback callback;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(2 * data_len));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(2 * data_len);
   EXPECT_EQ(data_len,
             handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback()));
   EXPECT_EQ(quic::QuicStringPiece(data),
@@ -499,7 +500,7 @@
 
   // Read the body and verify that it arrives correctly.
   TestCompletionCallback callback;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(2 * data_len));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(2 * data_len);
   EXPECT_EQ(data_len,
             handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback()));
   EXPECT_EQ(quic::QuicStringPiece(data),
@@ -547,7 +548,7 @@
 
   // Read the body and verify that it arrives correctly.
   TestCompletionCallback callback;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(2 * data_len));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(2 * data_len);
   EXPECT_EQ(data_len,
             handle_->ReadBody(buffer.get(), 2 * data_len, callback.callback()));
   EXPECT_EQ(quic::QuicStringPiece(data),
@@ -624,9 +625,10 @@
 }
 
 TEST_P(QuicChromiumClientStreamTest, WritevStreamData) {
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer("hello world!"));
-  scoped_refptr<StringIOBuffer> buf2(
-      new StringIOBuffer("Just a small payload"));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>("hello world!");
+  scoped_refptr<StringIOBuffer> buf2 =
+      base::MakeRefCounted<StringIOBuffer>("Just a small payload");
 
   // All data written.
   EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
@@ -639,9 +641,10 @@
 }
 
 TEST_P(QuicChromiumClientStreamTest, WritevStreamDataAsync) {
-  scoped_refptr<StringIOBuffer> buf1(new StringIOBuffer("hello world!"));
-  scoped_refptr<StringIOBuffer> buf2(
-      new StringIOBuffer("Just a small payload"));
+  scoped_refptr<StringIOBuffer> buf1 =
+      base::MakeRefCounted<StringIOBuffer>("hello world!");
+  scoped_refptr<StringIOBuffer> buf2 =
+      base::MakeRefCounted<StringIOBuffer>("Just a small payload");
 
   // Only a part of the data is written.
   EXPECT_CALL(session_, WritevData(stream_, stream_->id(), _, _, _))
@@ -716,7 +719,7 @@
 
   // Now explicitly read the data.
   int data_len = arraysize(data) - 1;
-  scoped_refptr<IOBuffer> buffer(new IOBuffer(data_len + 1));
+  scoped_refptr<IOBuffer> buffer = base::MakeRefCounted<IOBuffer>(data_len + 1);
   ASSERT_EQ(data_len, stream2->Read(buffer.get(), data_len + 1));
   EXPECT_EQ(quic::QuicStringPiece(data),
             quic::QuicStringPiece(buffer->data(), data_len));
diff --git a/net/quic/quic_chromium_packet_reader.cc b/net/quic/quic_chromium_packet_reader.cc
index a2989106..95478db 100644
--- a/net/quic/quic_chromium_packet_reader.cc
+++ b/net/quic/quic_chromium_packet_reader.cc
@@ -28,8 +28,8 @@
       yield_after_packets_(yield_after_packets),
       yield_after_duration_(yield_after_duration),
       yield_after_(quic::QuicTime::Infinite()),
-      read_buffer_(
-          new IOBufferWithSize(static_cast<size_t>(quic::kMaxPacketSize))),
+      read_buffer_(base::MakeRefCounted<IOBufferWithSize>(
+          static_cast<size_t>(quic::kMaxPacketSize))),
       net_log_(net_log),
       weak_factory_(this) {}
 
diff --git a/net/quic/quic_chromium_packet_writer.cc b/net/quic/quic_chromium_packet_writer.cc
index ff122eb3..80458ac 100644
--- a/net/quic/quic_chromium_packet_writer.cc
+++ b/net/quic/quic_chromium_packet_writer.cc
@@ -87,7 +87,7 @@
     base::SequencedTaskRunner* task_runner)
     : socket_(socket),
       delegate_(nullptr),
-      packet_(new ReusableIOBuffer(quic::kMaxPacketSize)),
+      packet_(base::MakeRefCounted<ReusableIOBuffer>(quic::kMaxPacketSize)),
       write_in_progress_(false),
       force_write_blocked_(false),
       retry_count_(0),
@@ -108,16 +108,16 @@
 
 void QuicChromiumPacketWriter::SetPacket(const char* buffer, size_t buf_len) {
   if (UNLIKELY(!packet_)) {
-    packet_ = new ReusableIOBuffer(
+    packet_ = base::MakeRefCounted<ReusableIOBuffer>(
         std::max(buf_len, static_cast<size_t>(quic::kMaxPacketSize)));
     RecordNotReusableReason(NOT_REUSABLE_NULLPTR);
   }
   if (UNLIKELY(packet_->capacity() < buf_len)) {
-    packet_ = new ReusableIOBuffer(buf_len);
+    packet_ = base::MakeRefCounted<ReusableIOBuffer>(buf_len);
     RecordNotReusableReason(NOT_REUSABLE_TOO_SMALL);
   }
   if (UNLIKELY(!packet_->HasOneRef())) {
-    packet_ = new ReusableIOBuffer(
+    packet_ = base::MakeRefCounted<ReusableIOBuffer>(
         std::max(buf_len, static_cast<size_t>(quic::kMaxPacketSize)));
     RecordNotReusableReason(NOT_REUSABLE_REF_COUNT);
   }
diff --git a/net/quic/quic_http_stream.cc b/net/quic/quic_http_stream.cc
index 6f9105e..5cf110c 100644
--- a/net/quic/quic_http_stream.cc
+++ b/net/quic/quic_http_stream.cc
@@ -238,11 +238,13 @@
     // Set the body buffer size to be the size of the body clamped
     // into the range [10 * quic::kMaxPacketSize, 256 * quic::kMaxPacketSize].
     // With larger bodies, larger buffers reduce CPU usage.
-    raw_request_body_buf_ = new IOBufferWithSize(static_cast<size_t>(std::max(
-        10 * quic::kMaxPacketSize,
-        std::min(request_body_stream_->size(), 256 * quic::kMaxPacketSize))));
+    raw_request_body_buf_ =
+        base::MakeRefCounted<IOBufferWithSize>(static_cast<size_t>(std::max(
+            10 * quic::kMaxPacketSize, std::min(request_body_stream_->size(),
+                                                256 * quic::kMaxPacketSize))));
     // The request body buffer is empty at first.
-    request_body_buf_ = new DrainableIOBuffer(raw_request_body_buf_.get(), 0);
+    request_body_buf_ =
+        base::MakeRefCounted<DrainableIOBuffer>(raw_request_body_buf_.get(), 0);
   }
 
   // Store the response info.
@@ -618,7 +620,8 @@
     return rv;
   }
 
-  request_body_buf_ = new DrainableIOBuffer(raw_request_body_buf_.get(), rv);
+  request_body_buf_ =
+      base::MakeRefCounted<DrainableIOBuffer>(raw_request_body_buf_.get(), rv);
   if (rv == 0) {  // Reached the end.
     DCHECK(request_body_stream_->IsEOF());
   }
diff --git a/net/quic/quic_http_stream_test.cc b/net/quic/quic_http_stream_test.cc
index d5f39cc..0356f1b 100644
--- a/net/quic/quic_http_stream_test.cc
+++ b/net/quic/quic_http_stream_test.cc
@@ -193,7 +193,7 @@
         client_headers_include_h2_stream_dependency_(std::get<1>(GetParam())),
         crypto_config_(quic::test::crypto_test_utils::ProofVerifierForTesting(),
                        quic::TlsClientHandshaker::CreateSslCtx()),
-        read_buffer_(new IOBufferWithSize(4096)),
+        read_buffer_(base::MakeRefCounted<IOBufferWithSize>(4096)),
         promise_id_(GetNthServerInitiatedStreamId(0)),
         stream_id_(GetNthClientInitiatedStreamId(0)),
         connection_id_(2),
diff --git a/net/quic/quic_proxy_client_socket_unittest.cc b/net/quic/quic_proxy_client_socket_unittest.cc
index 81e38feb..9f0ed117 100644
--- a/net/quic/quic_proxy_client_socket_unittest.cc
+++ b/net/quic/quic_proxy_client_socket_unittest.cc
@@ -452,7 +452,8 @@
   }
 
   void AssertWriteReturns(const char* data, int len, int rv) {
-    scoped_refptr<IOBufferWithSize> buf(new IOBufferWithSize(len));
+    scoped_refptr<IOBufferWithSize> buf =
+        base::MakeRefCounted<IOBufferWithSize>(len);
     memcpy(buf->data(), data, len);
     EXPECT_EQ(rv,
               sock_->Write(buf.get(), buf->size(), write_callback_.callback(),
@@ -460,7 +461,8 @@
   }
 
   void AssertSyncWriteSucceeds(const char* data, int len) {
-    scoped_refptr<IOBufferWithSize> buf(new IOBufferWithSize(len));
+    scoped_refptr<IOBufferWithSize> buf =
+        base::MakeRefCounted<IOBufferWithSize>(len);
     memcpy(buf->data(), data, len);
     EXPECT_EQ(len,
               sock_->Write(buf.get(), buf->size(), CompletionOnceCallback(),
@@ -468,14 +470,14 @@
   }
 
   void AssertSyncReadEquals(const char* data, int len) {
-    scoped_refptr<IOBuffer> buf(new IOBuffer(len));
+    scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(len);
     ASSERT_EQ(len, sock_->Read(buf.get(), len, CompletionOnceCallback()));
     ASSERT_EQ(spdy::SpdyString(data, len), spdy::SpdyString(buf->data(), len));
     ASSERT_TRUE(sock_->IsConnected());
   }
 
   void AssertAsyncReadEquals(const char* data, int len) {
-    scoped_refptr<IOBuffer> buf(new IOBuffer(len));
+    scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(len);
     ASSERT_EQ(ERR_IO_PENDING,
               sock_->Read(buf.get(), len, read_callback_.callback()));
     EXPECT_TRUE(sock_->IsConnected());
@@ -489,7 +491,7 @@
 
   void AssertReadStarts(const char* data, int len) {
     // Issue the read, which will be completed asynchronously.
-    read_buf_ = new IOBuffer(len);
+    read_buf_ = base::MakeRefCounted<IOBuffer>(len);
     ASSERT_EQ(ERR_IO_PENDING,
               sock_->Read(read_buf_.get(), len, read_callback_.callback()));
     EXPECT_TRUE(sock_->IsConnected());
@@ -1038,7 +1040,7 @@
   AssertSyncReadEquals(kMsg33, kLen33);
 
   // Now attempt to do a read of more data than remains buffered
-  scoped_refptr<IOBuffer> buf(new IOBuffer(kLen33));
+  scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(kLen33);
   ASSERT_EQ(kLen3, sock_->Read(buf.get(), kLen33, CompletionOnceCallback()));
   ASSERT_EQ(spdy::SpdyString(kMsg3, kLen3),
             spdy::SpdyString(buf->data(), kLen3));
@@ -1552,7 +1554,7 @@
   EXPECT_TRUE(sock_->IsConnected());
 
   DeleteSockCallback read_callback(&sock_);
-  scoped_refptr<IOBuffer> read_buf(new IOBuffer(kLen1));
+  scoped_refptr<IOBuffer> read_buf = base::MakeRefCounted<IOBuffer>(kLen1);
   ASSERT_EQ(ERR_IO_PENDING,
             sock_->Read(read_buf.get(), kLen1, read_callback.callback()));
 
diff --git a/net/quic/quic_stream_factory_fuzzer.cc b/net/quic/quic_stream_factory_fuzzer.cc
index 0d9ce44e..c3054a4 100644
--- a/net/quic/quic_stream_factory_fuzzer.cc
+++ b/net/quic/quic_stream_factory_fuzzer.cc
@@ -189,7 +189,8 @@
   }
   callback.WaitForResult();
 
-  scoped_refptr<net::IOBuffer> buffer = new net::IOBuffer(kBufferSize);
+  scoped_refptr<net::IOBuffer> buffer =
+      base::MakeRefCounted<net::IOBuffer>(kBufferSize);
   rv = stream->ReadResponseBody(buffer.get(), kBufferSize, callback.callback());
   if (rv == ERR_IO_PENDING)
     callback.WaitForResult();