)]}'
{
  "commit": "5f7d9064b407377f20b720798abc84fbc6cfbda4",
  "tree": "d61b1f186ec9a5c8d71813ed2fb8cae742f5042f",
  "parents": [
    "6a915248fb825a662bd51d5f51ade3af6f3ef620"
  ],
  "author": {
    "name": "danzh",
    "email": "danzh@google.com",
    "time": "Mon Sep 08 07:28:46 2025 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Mon Sep 08 07:29:49 2025 -0700"
  },
  "message": "Enforce `QuicConnectionMigrationManager` and `QuicSpdyClientSessionWithMigration` to use QuicForceBlockablePacketWriter during construction.\n\nAnd add a new subclass `QuicClientPathValidationContext` to enforce that client-side path validation contexts provide a `QuicForceBlockablePacketWriter`.\n\nWith both enforcement, remove unsafe static_cast from QuicConnection::writer() to `QuicForceBlockablePacketWriter` in `QuicConnectionMigrationManager` by caching the `QuicForceBlockablePacketWriter` object in QuicSpdyClientSessionWithMigration whenever there are path changes.\n\nPiperOrigin-RevId: 804421523\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1988d84ae66be5027973160a7988bd42b1c2f88d",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_connection_migration_manager.cc",
      "new_id": "a88dc5fb42c7aecc68b5afb16c62ac572e5c2289",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_connection_migration_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "243d63dfe8a3aa417d149d66d3c76e6531185c3a",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_connection_migration_manager.h",
      "new_id": "25ebf12d94d7f8399ca3e54201870d7f79c2ae4d",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_connection_migration_manager.h"
    },
    {
      "type": "modify",
      "old_id": "aff6e2826c104aec27db4b26a60b377ac389f99e",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_connection_migration_manager_test.cc",
      "new_id": "f933d5b5040df8dbe27d11d0f18fe3ecaae8e161",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_connection_migration_manager_test.cc"
    },
    {
      "type": "modify",
      "old_id": "7b55176af0f81d761a84af66f57784c75807a605",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_client_session_with_migration.cc",
      "new_id": "6e80690ad2645e9cc8e00146242afdb79149ecf8",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_client_session_with_migration.cc"
    },
    {
      "type": "modify",
      "old_id": "f4aeab23a572b0c7c48d5eb8e5be92516a93000c",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_client_session_with_migration.h",
      "new_id": "6d3346d68833ae3e124123cc28cd8515aeb1c125",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_client_session_with_migration.h"
    },
    {
      "type": "modify",
      "old_id": "0134587682069bdeff764de85e114c6fd0814095",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_path_context_factory.h",
      "new_id": "5fa5c2d5ecc71c91a13a894d9e1fc42088da6d3d",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_path_context_factory.h"
    }
  ]
}
