Remove HttpDecoder::set_visitor().

Since all call sites have a visitor ready when HttpDecoder is instantiated, pass
that in HttpDecoder constructor instead of a set_visitor() method.  Also make
HttpDecoder::visitor_ member constant.  Just one fewer way to hold HttpDecoder
wrong.

While touching this area already, use |QuicMakeUnique| instead of |new| for
initializing unique_ptr<HttpDecoderVisitor> members.  And add quic_ptr_util.h
include to every file touched that needs it, even if no QuicMakeUnique is added
with this CL.

Also remove unused QuicReceiveControlStreamTest::decoder_ member.

gfe-relnote: n/a, change only affects QUIC v99.
PiperOrigin-RevId: 257306155
Change-Id: I6b27704dc6001f69668a36cd6072aaa24a95b389
diff --git a/quic/core/http/quic_spdy_stream.cc b/quic/core/http/quic_spdy_stream.cc
index 0748d45..6b7c48f 100644
--- a/quic/core/http/quic_spdy_stream.cc
+++ b/quic/core/http/quic_spdy_stream.cc
@@ -22,6 +22,7 @@
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_mem_slice_storage.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
 #include "net/third_party/quiche/src/spdy/core/spdy_protocol.h"
@@ -170,7 +171,8 @@
       trailers_consumed_(false),
       priority_sent_(false),
       headers_bytes_to_be_marked_consumed_(0),
-      http_decoder_visitor_(new HttpDecoderVisitor(this)),
+      http_decoder_visitor_(QuicMakeUnique<HttpDecoderVisitor>(this)),
+      decoder_(http_decoder_visitor_.get()),
       body_buffer_(sequencer()),
       sequencer_offset_(0),
       is_decoder_processing_input_(false),
@@ -188,7 +190,6 @@
           spdy_session_->connection()->transport_version())) {
     sequencer()->set_level_triggered(true);
   }
-  decoder_.set_visitor(http_decoder_visitor_.get());
 }
 
 QuicSpdyStream::QuicSpdyStream(PendingStream* pending,
@@ -206,7 +207,8 @@
       trailers_consumed_(false),
       priority_sent_(false),
       headers_bytes_to_be_marked_consumed_(0),
-      http_decoder_visitor_(new HttpDecoderVisitor(this)),
+      http_decoder_visitor_(QuicMakeUnique<HttpDecoderVisitor>(this)),
+      decoder_(http_decoder_visitor_.get()),
       body_buffer_(sequencer()),
       sequencer_offset_(sequencer()->NumBytesConsumed()),
       is_decoder_processing_input_(false),
@@ -223,7 +225,6 @@
           spdy_session_->connection()->transport_version())) {
     sequencer()->set_level_triggered(true);
   }
-  decoder_.set_visitor(http_decoder_visitor_.get());
 }
 
 QuicSpdyStream::~QuicSpdyStream() {}