Remove IETF QUIC Application Close frame, replace with Connection Close

This CL removes the IETF QUIC Application Close frame and replaces it with the Connection Close frame.  QuicConnectionCloseFrame::close_type indicates whether the frame is a Google QUIC Connection Close, IETF QUIC Connection Close/Transport or IETF QUIC Connection Close/Application.

The QuicFramer::...ApplicationCloseFrame... methods are removed.

gfe-relnote: N/A affects only IETF-QUIC/V99 code. Application Close was IETF-QUIC only.
PiperOrigin-RevId: 242881293
Change-Id: I783cbf4e5f27d2e5abe3e8b518006de03c815e1a
diff --git a/quic/core/quic_dispatcher.cc b/quic/core/quic_dispatcher.cc
index 8024394..c9f5fbf 100644
--- a/quic/core/quic_dispatcher.cc
+++ b/quic/core/quic_dispatcher.cc
@@ -138,6 +138,11 @@
                        bool ietf_quic) {
     QuicConnectionCloseFrame* frame =
         new QuicConnectionCloseFrame(error_code, error_details);
+    // TODO(fkastenholz): The framer version may be incorrect in some cases.
+    if (framer_->transport_version() == QUIC_VERSION_99) {
+      frame->close_type = IETF_QUIC_TRANSPORT_CONNECTION_CLOSE;
+    }
+
     if (!creator_.AddSavedFrame(QuicFrame(frame), NOT_RETRANSMISSION)) {
       QUIC_BUG << "Unable to add frame to an empty packet";
       delete frame;
@@ -916,7 +921,7 @@
 }
 
 bool QuicDispatcher::OnApplicationCloseFrame(
-    const QuicApplicationCloseFrame& /*frame*/) {
+    const QuicConnectionCloseFrame& /*frame*/) {
   DCHECK(false);
   return false;
 }