)]}'
{
  "commit": "107e4c79bd92ad03dd69a3ffa3824fe21125dfd2",
  "tree": "781e0cce8385fe51ed3cf26d796578222ebd191e",
  "parents": [
    "55c39c9432b79705d865aa8157311bcb0a0d1438"
  ],
  "author": {
    "name": "Yauhen Sampir",
    "email": "ysampir@gmail.com",
    "time": "Sat Aug 08 04:54:46 2026 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 07 18:54:46 2026 -0700"
  },
  "message": "[cronet_http] Add DNS configuration options to CronetEngine.build (#1945)\n\n* [cronet_http] Add DNS configuration options to CronetEngine.build\n\nExpose Cronet DnsOptions through new CronetEngine.build parameters:\nuseBuiltInDnsResolver, enableStaleDns, persistHostCache and\npersistHostCachePeriod.\n\nCronet enables QUIC by default, and with QUIC enabled it resolves hosts\nthrough its built-in DNS resolver. On some cellular networks and in\nbackground isolates (e.g. WorkManager) that resolver fails with\nERROR_HOSTNAME_NOT_RESOLVED while the system resolver works.\nuseBuiltInDnsResolver: false forces the system resolver;\nenableStaleDns/persistHostCache allow a freshly created engine to serve\nrecently used hosts from a persisted cache.\n\nsetDnsOptions is available on the stable CronetEngine.Builder in both\ncronet-api artifacts the plugin ships (play-services and embedded), and\nthe Java API layer transparently falls back to an experimental-options\nJSON patch on implementations that do not support DnsOptions natively,\nso no experimental bindings are required.\n\nHelps with https://github.com/dart-lang/http/issues/1217\n\n* [cronet_http] Add fine-grained stale-DNS options to CronetEngine.build\n\nuseStaleOnNameNotResolved, allowCrossNetworkUsage and maxStaleDnsExpiredDelay\nlet a request fall back to an expired host cache entry instead of failing\nwith ERROR_HOSTNAME_NOT_RESOLVED when a fresh DNS lookup fails -- independent\nof which resolver (built-in vs system) performed the lookup.\n\n* Update pkgs/cronet_http/lib/src/cronet_client.dart\n\nCo-authored-by: Brian Quinlan \u003cbquinlan@google.com\u003e\n\n* [cronet_http] Refine DnsOption documentation\n\nUpdates the description for `enableStaleDns` for improved clarity and removes internal details about Cronet\u0027s experimental options fallback for `DnsOptions`.\n\n---------\n\nCo-authored-by: Brian Quinlan \u003cbquinlan@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24171067fd9734fdc8adbe608c533611354dd914",
      "old_mode": 33188,
      "old_path": "pkgs/cronet_http/CHANGELOG.md",
      "new_id": "74de0c6e8e42097a423bbd46266ceb5f6974c90a",
      "new_mode": 33188,
      "new_path": "pkgs/cronet_http/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "b3e9dc43f61ef5a050a667bd2b6768ed19224d28",
      "old_mode": 33188,
      "old_path": "pkgs/cronet_http/example/integration_test/cronet_engine_test.dart",
      "new_id": "7ca1857584a2703cab332f0abf4d7af6bb965be6",
      "new_mode": 33188,
      "new_path": "pkgs/cronet_http/example/integration_test/cronet_engine_test.dart"
    },
    {
      "type": "modify",
      "old_id": "b78ec2d2b429006dca049c2aefb859321fe15393",
      "old_mode": 33188,
      "old_path": "pkgs/cronet_http/jnigen.yaml",
      "new_id": "ef8955f28f4d4d58922e9fb00b773e89410295d7",
      "new_mode": 33188,
      "new_path": "pkgs/cronet_http/jnigen.yaml"
    },
    {
      "type": "modify",
      "old_id": "6ccce6eb59a4cd1cd74ee57dca5f97b0d5fd134a",
      "old_mode": 33188,
      "old_path": "pkgs/cronet_http/lib/src/cronet_client.dart",
      "new_id": "b78a5d8ae5da71cce093429939c50e5906470679",
      "new_mode": 33188,
      "new_path": "pkgs/cronet_http/lib/src/cronet_client.dart"
    },
    {
      "type": "modify",
      "old_id": "77011c1c3534cff31f1963581e4bf5fe5be7055d",
      "old_mode": 33188,
      "old_path": "pkgs/cronet_http/lib/src/jni/jni_bindings.dart",
      "new_id": "a9c22037c0a82f0b707927490051fdff87627f77",
      "new_mode": 33188,
      "new_path": "pkgs/cronet_http/lib/src/jni/jni_bindings.dart"
    },
    {
      "type": "modify",
      "old_id": "45e97af8ec2f59b3427dc75bb5766d8d2013a7ec",
      "old_mode": 33188,
      "old_path": "pkgs/cronet_http/pubspec.yaml",
      "new_id": "27bfa08c8ef35dead8fb191710048ae48b12ea94",
      "new_mode": 33188,
      "new_path": "pkgs/cronet_http/pubspec.yaml"
    }
  ]
}
