)]}'
{
  "commit": "fd387ea02e2863fa4121f36fb5e7ff0a270af6f7",
  "tree": "0ff0f3443f1c5bd5f64124b51f17a7261e6a4e7d",
  "parents": [
    "0b45284ce1c9ee97132f4a64d1208365e745de9b"
  ],
  "author": {
    "name": "birenroy",
    "email": "birenroy@google.com",
    "time": "Wed May 15 12:59:20 2024 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed May 15 13:00:33 2024 -0700"
  },
  "message": "Introduces new `Http2VisitorInterface` methods for DATA frame generation.\n\nAn outline of changes:\n* Adds `Http2VisitorInterface::OnReadyToSendDataForStream()`, which the codec calls when it is ready to send a `DATA` frame; the visitor implementation indicates how many bytes can be sent in this frame.\n* Adds `Http2VisitorInterface::SendDataFrame()`, which the codec calls with a frame header; the visitor implementation should send the frame header and then the indicated number of payload bytes.\n* Replaces the existing \"data provider\" implementation with one that calls back through `NgHttp2Adapter`. This allows the adapter to forward the read callback to a `DataFrameSource`, if present for the stream, or to the visitor implementation otherwise.\n\nThis change brings the QUICHE `oghttp2` API more in line with its predecessor. Library users can continue to use the old behavior for now by passing a `DataFrameSource` to `SubmitRequest()`/`SubmitResponse()`.\n\nAt some point in the future, the `DataFrameSource` parameter will be removed, and all library users will have to use the new behavior.\n\nPiperOrigin-RevId: 634047735\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7f2f4a41d30835d900e33fc8ac1e6bf8dcc0e1cf",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/callback_visitor.cc",
      "new_id": "f03ee40520ec9e6bc06a3a048f66e36990bd7997",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/callback_visitor.cc"
    },
    {
      "type": "modify",
      "old_id": "2f2336b27a7b256cdbecd5e3acebd23f49ccd863",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/callback_visitor.h",
      "new_id": "f1d7a3ac6610831aa4159780770005b5633afba7",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/callback_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "fa8491d879f1beeae154bda6055d05cc00655425",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/http2_visitor_interface.h",
      "new_id": "531c0afcd30ba00e5064423f16266b4602540733",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/http2_visitor_interface.h"
    },
    {
      "type": "modify",
      "old_id": "86345d3651aaa47a24c8ab62d6ed735abe82bde8",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/mock_http2_visitor.h",
      "new_id": "40d3c807ff33700c0ef13634828b86c9e97c5ead",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/mock_http2_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "cdea62b05197e8c9a61b777b14cd7e1000b1568b",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_adapter.cc",
      "new_id": "23593ce38880592c626145b2bc18dd767ece7c0f",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_adapter.cc"
    },
    {
      "type": "modify",
      "old_id": "6f4b405ba89e4fa9e3514dbbb4c2588e9acd58a5",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_adapter.h",
      "new_id": "8fa54e4420d91006b5b551929d6f9bd051743871",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_adapter.h"
    },
    {
      "type": "modify",
      "old_id": "c621176536a8feca8ec09f7a74ce65ad91e4623a",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_adapter_test.cc",
      "new_id": "c03fc1b290c09c838a9d3ef54f798bab6c08cf11",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_adapter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "200a70999055bb2878cb831230f8cfac3b1ccf09",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_callbacks.cc",
      "new_id": "6a93e4356cd6bbc3953deac3ff66bf20d0313c3f",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_callbacks.cc"
    },
    {
      "type": "modify",
      "old_id": "dfdff066457e853dad5c413ebe2eeccf4fb319a7",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_callbacks.h",
      "new_id": "367db373e6d951502cdc3891daa463d9b73eb599",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_callbacks.h"
    },
    {
      "type": "modify",
      "old_id": "c0d76d197b36f60a46b477ce9a771657b102a2cc",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_data_provider.cc",
      "new_id": "3475210ff226d506d93ac29469ddda03a3ccebb9",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_data_provider.cc"
    },
    {
      "type": "modify",
      "old_id": "a3f095773440316929f600cba6a0be765f7f41c6",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_data_provider.h",
      "new_id": "a0c9cd9b21c6720e315b3f942dfbc6e00c184c38",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_data_provider.h"
    },
    {
      "type": "modify",
      "old_id": "caaaf51c19296e0623c3116ebe8dad194f3f3832",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_data_provider_test.cc",
      "new_id": "6ebc8b9b93ce08ef48b5187341051d40c2c59dd7",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_data_provider_test.cc"
    },
    {
      "type": "modify",
      "old_id": "ab3f3378da45232f4957eabbd4564ad0e9b33859",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/nghttp2_session_test.cc",
      "new_id": "164971b5f5e627d96e1863fb017cdadda4c4ecec",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/nghttp2_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e232307a9e84eb42442dacbe3f5a105f59bcdd34",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_adapter.cc",
      "new_id": "0a827bd3cdcd3c6cf3314e3c3dea7c0c87daf0f4",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_adapter.cc"
    },
    {
      "type": "modify",
      "old_id": "41010cbaf59ef681c78fc5e9a1c475d2baef22fe",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_adapter_test.cc",
      "new_id": "14fba310a9078c943f6006a148ac25b90c93cc08",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_adapter_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f47385c11509a8f15c3bf5199deb28747bda8e87",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_session.cc",
      "new_id": "cbc13d354ceb04e9cdca4ddbe964bdfddf40ead7",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_session.cc"
    },
    {
      "type": "modify",
      "old_id": "3f370192b73c890057377e942ee38ce19b0a71eb",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/oghttp2_session.h",
      "new_id": "8d6756fc4380f892a45d4350f560495356bdae3f",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/oghttp2_session.h"
    },
    {
      "type": "modify",
      "old_id": "d55045f3c8b3cc66346ac6873e66c0f1bd0091e4",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/recording_http2_visitor.cc",
      "new_id": "0b989f0833abec9e6c8f94d331290b2d29dd92ee",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/recording_http2_visitor.cc"
    },
    {
      "type": "modify",
      "old_id": "d796fe721ba95fc4b4fb1481137444ef025cc430",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/recording_http2_visitor.h",
      "new_id": "b7835ee653bd214002062a08f995e111a63a774a",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/recording_http2_visitor.h"
    },
    {
      "type": "modify",
      "old_id": "a72bc1dbbf63d333dea51aa41954c1cbf6c689e7",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/test_utils.cc",
      "new_id": "1e6765c84aeae9ebd672ffa0d3fde0e93c33bbb6",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/test_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "047da91760ce3d69a3bb472c766c21db06debb7a",
      "old_mode": 33188,
      "old_path": "quiche/http2/adapter/test_utils.h",
      "new_id": "5c7a6872ccc3b6b0789fd637a6a67f98a0abf7b8",
      "new_mode": 33188,
      "new_path": "quiche/http2/adapter/test_utils.h"
    }
  ]
}
