Refactor OHTTP client error checking

This CL is a functional no-op. It refactors code modified in cl/843891434 to:
* simplify status checks
* switch naming to match spec
* use `using` to simplify function type definitions

PiperOrigin-RevId: 844898207
diff --git a/quiche/quic/masque/masque_ohttp_client.cc b/quiche/quic/masque/masque_ohttp_client.cc
index 20e46d2..003ef84 100644
--- a/quiche/quic/masque/masque_ohttp_client.cc
+++ b/quiche/quic/masque/masque_ohttp_client.cc
@@ -9,6 +9,7 @@
 #include <string>
 #include <utility>
 
+#include "absl/cleanup/cleanup.h"
 #include "absl/status/status.h"
 #include "absl/status/statusor.h"
 #include "absl/strings/match.h"
@@ -289,20 +290,17 @@
     return absl::InternalError(
         "Received unexpected response for unknown request");
   }
-  absl::Status status = response.status();
-  if (status.ok()) {
-    status = CheckStatusAndContentType(*response, "message/ohttp-res");
-    if (status.ok()) {
-      status = HandleOhttpResponse(request_id, response);
-      if (status.ok()) {
-        absl::StatusOr<BinaryHttpResponse> binary_response =
-            TryExtractBinaryResponse(request_id, it->second, *response);
-        status = HandleBinaryResponse(binary_response);
-      }
-    }
-  }
-  pending_ohttp_requests_.erase(it);
-  return status;
+  auto cleanup =
+      absl::MakeCleanup([this, it]() { pending_ohttp_requests_.erase(it); });
+  QUICHE_RETURN_IF_ERROR(response.status());
+  QUICHE_RETURN_IF_ERROR(
+      CheckStatusAndContentType(*response, "message/ohttp-res"));
+  QUICHE_RETURN_IF_ERROR(CheckGatewayResponse(*response));
+  absl::StatusOr<BinaryHttpResponse> binary_response =
+      TryExtractBinaryResponse(request_id, it->second, *response);
+  QUICHE_RETURN_IF_ERROR(binary_response.status());
+  QUICHE_RETURN_IF_ERROR(CheckEncapsulatedResponse(*binary_response));
+  return absl::OkStatus();
 }
 
 void MasqueOhttpClient::OnPoolResponse(MasqueConnectionPool* /*pool*/,
diff --git a/quiche/quic/masque/masque_ohttp_client.h b/quiche/quic/masque/masque_ohttp_client.h
index b8c5736..9d0d4c3 100644
--- a/quiche/quic/masque/masque_ohttp_client.h
+++ b/quiche/quic/masque/masque_ohttp_client.h
@@ -76,13 +76,12 @@
   absl::StatusOr<quiche::BinaryHttpResponse> TryExtractBinaryResponse(
       RequestId request_id, quiche::ObliviousHttpRequest::Context& context,
       const Message& response);
-  virtual absl::Status HandleOhttpResponse(
-      RequestId request_id, const absl::StatusOr<Message>& response) {
-    return response.status();
+  virtual absl::Status CheckGatewayResponse(const Message& response) {
+    return absl::OkStatus();
   }
-  virtual absl::Status HandleBinaryResponse(
-      const absl::StatusOr<quiche::BinaryHttpResponse>& binary_response) {
-    return binary_response.status();
+  virtual absl::Status CheckEncapsulatedResponse(
+      const quiche::BinaryHttpResponse& response) {
+    return absl::OkStatus();
   }
 
  private: