)]}'
{
  "commit": "207bc9521b293a7328be7d042108247597e847b6",
  "tree": "f6847c34e6ddd122f071733960cab3af56b03045",
  "parents": [
    "2a72b580c8599f1357649fbf467d3d55ed7fb1a4"
  ],
  "author": {
    "name": "birenroy",
    "email": "birenroy@google.com",
    "time": "Tue Sep 15 08:51:26 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Sep 15 08:52:27 2026 -0700"
  },
  "message": "Modernizes HTTP/2 frame representations in spdy_protocol.h\n\nIntroduces value-semantic, standard-layout POD structs, C++20 type\ntraits, concepts, compile-time size calculation and serialization,\nand a 64-byte single-cache-line SpdyFrame variant based on the analysis in\ngo/http2-frame-representations.\n\nThis change introduces the types, but does not use them anywhere, yet.\n\nKey changes:\n- Defined standard-layout POD structs for all 14 HTTP/2 frame types\n  (DataFrame, HeadersFrame, PriorityFrame, RstStreamFrame, SettingsFrame,\n  PushPromiseFrame, PingFrame, GoAwayFrame, WindowUpdateFrame,\n  ContinuationFrame, AltSvcFrame, PriorityUpdateFrame, AcceptChFrame,\n  UnknownFrame).\n- Added C++20 FrameTraits\u003cT\u003e and Http2Frame concept.\n- Added compile-time FrameSize\u003cT\u003e and SerializeFrame\u003cT\u003e in SpdyFrameBuilder.\n- Added SpdyFrame variant fitting in 64 bytes (1 cache line) and dispatch\n  helpers.\n- Maintained backward compatibility for all existing SpdyFrameIR\n  classes and SpdyFrameVisitor without changing callers.\n\nPiperOrigin-RevId: 981852294\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ee879a4fa30bf57a748b54f56e76353e893eca36",
      "old_mode": 33188,
      "old_path": "quiche/http2/core/spdy_frame_builder.h",
      "new_id": "5628753799fd623170bb44ce101e02c7e2d0a842",
      "new_mode": 33188,
      "new_path": "quiche/http2/core/spdy_frame_builder.h"
    },
    {
      "type": "modify",
      "old_id": "9f400c43e638547c28067d3dfceb911efefdc87b",
      "old_mode": 33188,
      "old_path": "quiche/http2/core/spdy_framer.cc",
      "new_id": "699eb96da6bcc265db998ad5e209dd70efd08c1a",
      "new_mode": 33188,
      "new_path": "quiche/http2/core/spdy_framer.cc"
    },
    {
      "type": "modify",
      "old_id": "a5ec174d9dbcfdf5d463a8c91faa56baae892ca7",
      "old_mode": 33188,
      "old_path": "quiche/http2/core/spdy_protocol.h",
      "new_id": "8ee1af2a0a15e61975fa04ddc8d7d48eaa0f3152",
      "new_mode": 33188,
      "new_path": "quiche/http2/core/spdy_protocol.h"
    },
    {
      "type": "modify",
      "old_id": "1adef2943ac0a5aabf316a890051b431eb3964fc",
      "old_mode": 33188,
      "old_path": "quiche/http2/core/spdy_protocol_test.cc",
      "new_id": "82100e3040d6d8e071f792491960bd6882fe5d7e",
      "new_mode": 33188,
      "new_path": "quiche/http2/core/spdy_protocol_test.cc"
    }
  ]
}
