)]}'
{
  "commit": "5e2f9270766bce1e0945d3707d89a935e853ce03",
  "tree": "5f7ee94a7e285889f2791277f399fe0f6cc84c5b",
  "parents": [
    "c197d7d724face21a64c29575f94aef2e1b40e20"
  ],
  "author": {
    "name": "jprat",
    "email": "jprat@google.com",
    "time": "Tue Aug 25 09:15:30 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Aug 25 09:16:06 2026 -0700"
  },
  "message": "Add `unknown_transfer_encoding` and `multiple_transfer_encoding_keys` defects and integration tests for `validate_transfer_encoding` flag.\n\nVerifies the behavior of invalid `Transfer-Encoding` headers (multiple headers, unknown encodings, and identity encoding) under the `balsa_validate_transfer_encoding` flag.\n\n**Invalid Requests (Multiple TE Keys / Unknown TE Value):**\nEnsures that requests with multiple Transfer-Encoding keys or unknown values are handled correctly.\n- Guard is ON: Rejection happens early in BalsaFrame (`400 Bad Request`) with details `http1.codec_error`.\n- Guard is OFF: Request bypasses Balsa\u0027s strict check, but is caught and rejected later by Envoy\u0027s core codec (`400 Bad Request`) with details `http1.invalid_transfer_encoding`.\n- Note on Defects: The newly added defects are NOT exported to Access Logs in either case because Balsa\u0027s early bailout prevents the visitor callbacks that copy defects to FilterState.\n\n**Identity Transfer Encoding:**\nEnsures that `Transfer-Encoding: identity` is allowed by BalsaFrame but ultimately rejected by Envoy\u0027s core codec as an invalid transfer encoding (`400 Bad Request`) regardless of Guard state as Envoy only allows `chunked` as the valid `Transfer-Encoding` value.\n\n**Invalid Responses (Multiple TE Keys / Unknown TE Value):**\nEnsures that responses from backends/upstreams with multiple TE keys or unknown values are handled correctly.\n- Guard is ON: Response is rejected with `502` by BalsaFrame.\n- Guard is OFF: Response is allowed by BalsaFrame early check, but Envoy core codec handles validation and rejects it later (`502`).\n\nPiperOrigin-RevId: 970595413\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "af17addcac6942d5e6d3dd422c5a607e37947aa3",
      "old_mode": 33188,
      "old_path": "quiche/balsa/balsa_frame.cc",
      "new_id": "f2fdba4d6769f31f8813d788045d7e9845aa19e5",
      "new_mode": 33188,
      "new_path": "quiche/balsa/balsa_frame.cc"
    },
    {
      "type": "modify",
      "old_id": "962ec616f244bea39bee43ed4246d5cea5ac257d",
      "old_mode": 33188,
      "old_path": "quiche/balsa/balsa_frame_test.cc",
      "new_id": "602379eaae483c97705c0dc2da4d44918046ca98",
      "new_mode": 33188,
      "new_path": "quiche/balsa/balsa_frame_test.cc"
    }
  ]
}
