)]}'
{
  "commit": "2e79733d0b831ab194dde343845aca66d5bedde3",
  "tree": "6a1f72d163bcc16ddd785ee7e534f0f18871f2a7",
  "parents": [
    "15cbfc8083611e718fc527fd78bcd8296e2731c3"
  ],
  "author": {
    "name": "QUICHE team",
    "email": "quiche-dev@google.com",
    "time": "Mon Jun 29 05:46:14 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Jun 29 05:48:38 2026 -0700"
  },
  "message": "Measure non-compliant base64 encoding in Structured Headers.\n\nThis change introduces tracking to measure how often base64-encoded\nbyte sequences in Structured Headers deviate from the strict\nrequirements of RFC 8941.\n\nStrictBase64Decode validates that the input strictly adheres to the RFC\n8941 alphabet (ALPHA, DIGIT, +, /, and \u003d) before passing it to\nabsl::Base64Unescape.\n\nLenientBase64Decode: Preserves the legacy behavior, including manual\npadding synthesis and existing edge-case handling for whitespace.\n\nThe parser is updated to attempt strict decoding first. A boolean\nhistogram StructuredHeaders.Base64DecodingIsStrictCompliant tracks the\nresults:\n\nTrue is recorded when the input passes strict decoding. False is\nrecorded when the input fails strict decoding but succeeds with the\nlegacy lenient decoding.\n\nTherefore, the denominator is the total number of successful decodes,\nproducing a ratio that will help determine whether the legacy lenient\ndecoding can be removed safely.\n\nThis change does not itself move to strict-only decoding, but the\nknown-bug test cases in structured_headers_generated_test.cc behave\ncorrectly under that mode.\n\nPiperOrigin-RevId: 939782536\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9012bba514031c92b2c01d12db39845f8fb61094",
      "old_mode": 33188,
      "old_path": "quiche/common/structured_headers.cc",
      "new_id": "40794fb8a772d107e777467898e5d446b877ad05",
      "new_mode": 33188,
      "new_path": "quiche/common/structured_headers.cc"
    }
  ]
}
