)]}'
{
  "commit": "a08432b8931f07d04f992db7be7ca40e6204d0ad",
  "tree": "2d225cccaa4af3d1e24289f9422f161dc1fc78f0",
  "parents": [
    "69410eba34e1fbd10b92921cb3f22016f1e2d153"
  ],
  "author": {
    "name": "Andy Wolff",
    "email": "awolff@google.com",
    "time": "Mon Jun 15 14:17:35 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 15 21:17:35 2026 +0000"
  },
  "message": "Add a platform view test to android_hardware_smoke_test (#187913)\n\nExpand test coverage to address more of\nhttps://github.com/flutter/flutter/issues/182123\n\nThis adds a test with a platform view. In order to get both the flutter\npixels and the native pixels fully composited, we have to initiate the\nscreenshot from the test runner, not the app. This has a few\nconsequences for the architecture and data flow of the tests. Details in\nthe changes to README.md.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0257f58d87fa2dfbd27721003b0e5223f783a0a7",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/README.md",
      "new_id": "06598d7bbe7632a7cbf02d8965f5a15b1b2139b8",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/README.md"
    },
    {
      "type": "modify",
      "old_id": "51ce6938ca15cbe99f0e9dc655e3df8f396c6588",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/android/app/src/androidTest/java/com/example/android_hardware_smoke_test/FlutterActivityTest.kt",
      "new_id": "7fe1ecc41f2280b5e5acee0e20065ef68516a351",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/android/app/src/androidTest/java/com/example/android_hardware_smoke_test/FlutterActivityTest.kt"
    },
    {
      "type": "modify",
      "old_id": "6ad5c2001fa2510acec2ee6578ceaccb8a727410",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/android/app/src/main/kotlin/com/example/android_hardware_smoke_test/MainActivity.kt",
      "new_id": "7217fabdd3a596e33f7bcb0d16b3fa374d07fb88",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/android/app/src/main/kotlin/com/example/android_hardware_smoke_test/MainActivity.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fd341d56cb29d23e9a07796b1ca0c6131027e9af",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/android/app/src/main/kotlin/com/example/android_hardware_smoke_test/NativeTextView.kt"
    },
    {
      "type": "modify",
      "old_id": "41f07ec7d8b5f08b90f3c1ea59cfb91d28632f4a",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/integration_test/integration_test_wrapper.dart",
      "new_id": "dc4b6979db40c6eb7c58c41c2f95b9b13154d534",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/integration_test/integration_test_wrapper.dart"
    },
    {
      "type": "modify",
      "old_id": "9fd54d39f1b367dcbca83d3f3e5762aae3b9d062",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/lib/goldens.dart",
      "new_id": "7ea84a6697764d8700dddf9d04936d0ebc0f2600",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/lib/goldens.dart"
    },
    {
      "type": "modify",
      "old_id": "8b5124b8df4842e14225ebdc3db94dec714f8ff6",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/lib/main.dart",
      "new_id": "498a3ec1ad503422ad7698683ad421289cee2e61",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/lib/main.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "41906301dcad92460bcdfaa24b171dc6e6d5f6cc",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/lib/pixel_exact_local_file_comparator.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "279cf891afe114fa9ba57f2e1963786ce63fab5c",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/lib/platform_view.dart"
    },
    {
      "type": "modify",
      "old_id": "74ee34614fce2021fdcda32e403d61426c72d819",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/pubspec.yaml",
      "new_id": "b375b9f8254fade70ab1aada16d08c0570495220",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "3ecf51b41a71cdc12cd8888895f8ff1373cda362",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/test/widget_test.dart",
      "new_id": "c61c167c3bae8b8a151350e243b3a851b1d0c731",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/test/widget_test.dart"
    },
    {
      "type": "modify",
      "old_id": "166a1f519294c6ae6bd4f8f976c6a7126cc1e1d1",
      "old_mode": 33188,
      "old_path": "dev/integration_tests/android_hardware_smoke_test/test_driver/driver_test.dart",
      "new_id": "7f83c11a8c4450493118f986aca24876662bbdd0",
      "new_mode": 33188,
      "new_path": "dev/integration_tests/android_hardware_smoke_test/test_driver/driver_test.dart"
    }
  ]
}
