-
Notifications
You must be signed in to change notification settings - Fork 30.8k
Comparing changes
Open a pull request
base repository: flutter/flutter
base: f7b66f3e7b4d
head repository: flutter/flutter
compare: cf9e8afe9a5e
- 11 commits
- 26 files changed
- 9 contributors
Commits on Jul 10, 2026
-
Android_hardware_smoke_test: Cache flutter engine when running vulkan…
… backend instrumented tests (#189026) Improvement related to #182123 Repeatedly creating and destroying the native Vulkan engine context across multiple sequential Activity scenarios triggered a race condition between Android's system compositor (`SurfaceControl` / `WindowManager`) releasing platform view buffers in the background and the GPU driver cleaning up its device context. On devices using Mali GPUs (e.g., Pixel 7), this can result in a native crash: ``` Abort message: 'FORTIFY: pthread_mutex_lock called on a destroyed mutex (...)' ``` To avoid this crash, we cache the engine across Vulkan tests. But we can't do the same for OpenGLES tests. When reusing a cached `FlutterEngine` instance across Activity transitions with OpenGL ES, the engine's EGL context fails to bind (`eglMakeCurrent` fails with `EGL_BAD_ACCESS`) to the new Activity's surface. This is because the context and surfaces are tied to the prior Activity/Window lifecycle. Launching a fresh engine instance for OpenGL ES avoids this failure. ``` E/libEGL (21131): eglMakeCurrentImpl:1100 error 3002 (EGL_BAD_ACCESS) E/flutter (21131): [ERROR:flutter/impeller/toolkit/egl/egl.cc(56)] EGL Error: Bad Access (12290) in ../../../flutter/impeller/toolkit/egl/context.cc:55 E/libEGL (21131): call to OpenGL ES API with no current context (logged once per thread) E/flutter (21131): [ERROR:flutter/shell/gpu/gpu_surface_gl_impeller.cc(76)] Could not make the context current to acquire the frame. ``` ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for e329e87 - Browse repository at this point
Copy the full SHA e329e87View commit details -
[skwasm][canvaskit] Honor Paint.filterQuality in Canvas.drawAtlas (#1…
…86108) ## Description Skwasm's `Canvas.drawAtlas` previously hardcoded `SamplingOptionsForQuality(FilterQuality::medium)` regardless of `Paint.filterQuality`, so pixel-art tilemaps (e.g. `flame_tiled` atlases at `FilterQuality.none`) rendered blurry on web/skwasm while every other backend correctly honored the paint. ### Use case / why this matters `Canvas.drawAtlas` exists to batch many sprite quads sourced from a single atlas image into ~one GPU draw call (one vertex buffer, one texture bind, one shader pipeline). For a Flame + Tiled pixel-art game, a typical 64x64 tilemap forwards ~4 096 sprites/frame: rendering them via `drawImageRect` would mean 4 096 draw calls + state changes/frame, while `drawAtlas` collapses that to roughly one. That's the path `flame_tiled` takes for tilemap rendering, and it's the canonical reason an app reaches for this API. `Paint.filterQuality` is a no-op for most callers (the default linear/mipmap sampling is what they want), but pixel art is the explicit exception: low-resolution art scaled by non-integer camera factors needs `FilterQuality.none` (nearest-neighbor) to keep hard pixel edges. Native iOS/Android already honor this; on web/skwasm the hardcoded `medium` was overriding it and softening every tile. ### Implementation The native iOS/Android path was already correct: `lib/ui/painting/canvas.cc:Canvas::drawAtlas` translates `paint.filterQuality` -> `DlImageSampling` via `ImageFilter::SamplingFromIndex` and threads it through `DisplayListBuilder::DrawAtlas` (which carries `DlImageSampling` in `DrawAtlasBaseOp`). Both `display_list/skia/dl_sk_canvas.cc` and Impeller's `dl_dispatcher.cc` honor it. Skwasm was the only engine that ignored the paint. This PR threads `paint.filterQuality` through skwasm's existing FFI in the same shape that `canvas_drawImage` and `canvas_drawImageRect` already use: - `skwasm/canvas.cc:canvas_drawAtlas` now takes `Skwasm::FilterQuality quality` and passes `SamplingOptionsForQuality(quality)` to `DrawAtlas` instead of the hardcoded `medium`. - `skwasm_impl/raw/raw_canvas.dart:canvasDrawAtlas` FFI gains an `int filterQuality` slot in the trailing position, matching `canvasDrawImage`/`canvasDrawImageRect`. - `skwasm_impl/canvas.dart:drawAtlas` and `drawRawAtlas` extract `paint.filterQuality.index` and pass it through. - `skwasm/helpers.h` adds `static_assert`s pinning `Skwasm::FilterQuality`'s integer values to dart:ui's `FilterQuality.index` ordering, so any future drift in either enum becomes a compile error rather than a silently wrong sampling mode. Two golden tests in `lib/web_ui/test/ui/draw_atlas_golden_test.dart` lock the behavior in: - A matrix test over all four `FilterQuality` values, drawing a 2x2 checker at a non-integer scale chosen so bilinear sampling emits one mathematically perfect 50/50 gray pixel that nearest-neighbour cannot produce — a strong discriminator between the modes. - A null-`colors` regression test (see below) covering the second fix in this PR. A second commit on this branch addresses a pre-existing null-`colors` deref in `canvas_drawAtlas` that was flagged in review (the Dart wrapper passes `nullptr` when the caller's `colors` list is null; the C++ side was looping `colors[i]` regardless and was only saved from crashing by WASM reads at address 0 returning zeros). Kept in this PR rather than split out — it sits in the same function as the filterQuality fix and the C++ change is small enough that bundling stays reviewable. ## CanvasKit CanvasKit is now fixed the same way (the earlier "out of scope" reasoning was wrong: CanvasKit's `Canvas.drawAtlas` JS binding has accepted an optional `sampling` argument since CanvasKit 0.25.1 (2021), dispatching internally to `_drawAtlasCubic`/`_drawAtlasOptions` — no Skia CL needed). - `canvaskit/canvas.dart:_drawAtlas` now passes `toSkFilterOptions(paint.filterQuality)` to `SkCanvas.drawAtlas`, the same `FilterQuality` -> sampling mapping `drawImage`/`drawImageRect` already use. - `canvaskit_api.dart` threads the `CkFilterOptions sampling` argument through the `drawAtlas` binding. All four `FilterQuality` values now resolve to identical `SkSamplingOptions` on both renderers (including `high` -> Mitchell B=C=1/3), so the `drawAtlas` goldens converge across CanvasKit and skwasm instead of diverging per renderer. ## Refs - flutter-team-archive/engine#24797 — prior decision to keep `Paint.filterQuality` as the sampling source for Canvas methods rather than adding explicit per-call sampling parameters - #152312 — related family of `drawAtlas` filtering bugs ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making. - [x] All existing and new tests are passing. [Contributor Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/master/docs/contributing/Tree-hygiene.md [Flutter Style Guide]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md [C++, Objective-C, Java style guides]: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#dart-style --------- Signed-off-by: Ortes <[email protected]> Co-authored-by: Harry Terkelsen <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 914195c - Browse repository at this point
Copy the full SHA 914195cView commit details -
Roll Skia from ab3a7b98c94d to 6ecffccd32d5 (15 revisions) (#189270)
https://skia.googlesource.com/skia.git/+log/ab3a7b98c94d..6ecffccd32d5 2026-07-10 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-07-10 [email protected] Add Bazel task to build on Intel Macs 2026-07-10 [email protected] [rust bmp] Reduce fixed overhead for small decodes 2026-07-10 [email protected] Roll vulkan-deps from 7ea2d2b72528 to ef0d2fd00095 (4 revisions) 2026-07-10 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-07-10 [email protected] Roll ANGLE from efe382b830f8 to fc174c46a137 (13 revisions) 2026-07-10 [email protected] Roll debugger-app-base from 7d52f7d9b6c7 to 60e75023b30b 2026-07-10 [email protected] Roll Skia Infra from 6e680898a941 to a736e8709729 (7 revisions) 2026-07-10 [email protected] Roll Dawn from 44d9faab2712 to 318132945735 (25 revisions) 2026-07-10 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-07-10 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-07-09 [email protected] Roll vulkan-deps from b85f8363a07f to 7ea2d2b72528 (9 revisions) 2026-07-09 [email protected] [infra] Update dimensions for devonf Android devices 2026-07-09 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-07-09 [email protected] Updated "procs_utils" build rules to support PNG encoding If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for 041dc6a - Browse repository at this point
Copy the full SHA 041dc6aView commit details -
UberSDF thin roundrect handling (#189224)
This fixes thin UberSDF roundrect drawing, in the same way that #188821 fixed it for normal rects. Prerequisite for using UberSDF for lines. - Factors out some of the rect-upscaling code in DrawRect to an UpscaleRect helper function, so it can be shared by DrawRect and DrawRoundRect. - Adds a roundRectPixelSize function in uber_sdf.frag, similar to rectPixelSize but for round rects. - Adds unit tests for UpscaleRect, and a new golden tests for "DrawLinesWithFilledRoundRects" ## Screenshot ### DrawLinesWithFilledRoundRects Before: <img width="1024" height="800" alt="roundrect ubersdf before" src="https://github.com/user-attachments/assets/c490318f-0579-4425-82ec-ca5a7fd51d89" /> After: <img width="1024" height="800" alt="roundrect ubersdf after" src="https://github.com/user-attachments/assets/cd7bc780-fbc8-46aa-a034-6a9c1db69ad9" /> ## Video ### DrawLinesWithFilledRoundRects Before: https://github.com/user-attachments/assets/612af65d-bce5-45d2-a1aa-7636a60f3254 After: https://github.com/user-attachments/assets/4090d72c-eba9-4e28-8c8a-495bcce9b82b ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 07f5016 - Browse repository at this point
Copy the full SHA 07f5016View commit details -
[android_hardware_smoke_test] Synchronize platform view compositing (#…
…189151) Fixes #189079 - one in 100 runs failed with blank/black golden screenshots on the Vulkan backend for platform view tests in the `android_hardware_smoke_test` integration test suite. Previously, the driver tests (goldens.dart) hardcoded a 3 frame wait before screenshotting. In CI, native views occasionally did not paint that quickly, causing blank screenshot failures. To resolve this, we replace the hardcoded wait with a native drawing synchronization mechanism: the Kotlin `TextView` subclass overrides `onDraw` to notify Dart over Method Channels when it paints. I tried a tree-wide `OnDrawListener`, but it fired too early, so I went with this. Dart awaits this draw signal followed by 1 frame to ensure the compositor submits the frame before capturing coordinates. Verified on my local device by temporarily marking the native view as invisible for 3 seconds. Tests produced black screens before this change and correct results after this change. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for b8690a4 - Browse repository at this point
Copy the full SHA b8690a4View commit details -
Fix PopupWindowControllerLinux missing WindowControllerLinux implemen…
…tation (#189189) ## What's new? - `PopupWindowControllerLinux` now implements `WindowControllerLinux` like everyone else ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing.
Configuration menu - View commit details
-
Copy full SHA for aa7e28b - Browse repository at this point
Copy the full SHA aa7e28bView commit details -
Increase number of 'Mac tool_integration_tests' subshards from 5 to 10 (
#189040) Rename builders from `tool_integration_tests_1_5` to `tool_integration_tests_1` so the total number isn't encoded in the builder name. Because it currently _is_ encoded in the builder name (which isn't parsed, it's just informational) the original builders need to become `bringup:true` unnecessarily, since adding shards creates new builders. Queue times are ~4 seconds, which means we seem to have enough capacity, so throwing more shards at this problem shouldn't be an issue. Will keep an eye on queue times after this change, though. Fixes #189039 ### 7 shards Shard | Time -- | -- | 1 | [23 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_1_5/26349) 2 | [14 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_2_5/29560) 3 | [14 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_3_5/29422) 4 | [16 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_4_5/29435) 5 | [25 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_5_5/29533 ) ### 9 shards Shard | Time -- | -- | 1|[19+ minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_1_5/26351/overview) 2|[13 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_2_5/29562/overview) 3|[11 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_3_5/29424/overview) 4|[15 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_4_5/29437/overview) 5|[13 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_5_5/29535/overview) ### 10 shards Shard | Time -- | -- | 1|[13 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_1_5/26352/overview) 2|[22 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_2_5/29563?) 3|[9 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_3_5/29425/overview) 4|[12 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_4_5/29438/overview) 5|[9.5 minutes](https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20tool_integration_tests_5_5/29536/overview) ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for 4375491 - Browse repository at this point
Copy the full SHA 4375491View commit details
Commits on Jul 11, 2026
-
iOS: clean up swiftc.py after migration to target triples (#189240)
In #189174, we migrated back to using target triples in swiftc.py in order to more closely mirror the commandline interface to `swiftc` itself. This is a followup that cleans up some extra function parameters that are no longer necessary now that we're getting the target triple in args. This cleans up a few remaining diffs from the reversion of the target triple splitting from https://github.com/flutter/flutter/pull/185712/changes#diff-d57f937ed2d743b17635dd069689072eba124f649f307228915c25d55b19ed62. No test changes since this is a refactor with no semantic change. The test is the build (and transitively, all the tests it builds and runs). Issue: #185741 ## Pre-launch Checklist - [X] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [X] I read the [AI contribution guidelines] and understand my responsibilities, or I am not using AI tools. - [X] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [X] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [X] I signed the [CLA]. - [X] I listed at least one issue that this PR fixes in the description above. - [X] I updated/added relevant documentation (doc comments with `///`). - [X] I added new tests to check the change I am making, or this PR is [test-exempt]. - [X] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [X] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. If this change needs to override an active code freeze, provide a comment explaining why. The code freeze workflow can be overridden by code reviewers. See pinned issues for any active code freezes with guidance. **Note**: The Flutter team is currently trialing the use of [Gemini Code Assist for GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code). Comments from the `gemini-code-assist` bot should not be taken as authoritative feedback from the Flutter team. If you find its comments useful you can update your code accordingly, but if you are unsure or disagree with the feedback, please feel free to wait for a Flutter team member's review for guidance on which automated comments should be addressed. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [AI contribution guidelines]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Configuration menu - View commit details
-
Copy full SHA for f9cc6b0 - Browse repository at this point
Copy the full SHA f9cc6b0View commit details -
Roll Fuchsia Linux SDK from czpzDg9ABY2oKLAOY... to vhIlDkWIy21IrlB9E…
…... (#189309) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/fuchsia-linux-sdk-flutter Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for 8a9f61c - Browse repository at this point
Copy the full SHA 8a9f61cView commit details
Commits on Jul 12, 2026
-
Roll Skia from 6ecffccd32d5 to 8bf65996caba (5 revisions) (#189333)
https://skia.googlesource.com/skia.git/+log/6ecffccd32d5..8bf65996caba 2026-07-12 [email protected] Roll vulkan-deps from 054012628d6f to f6d1d22e985f (4 revisions) 2026-07-11 [email protected] Roll vulkan-deps from 69340ba4efec to 054012628d6f (1 revision) 2026-07-11 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). 2026-07-11 [email protected] Roll vulkan-deps from ef0d2fd00095 to 69340ba4efec (11 revisions) 2026-07-11 recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com Roll recipe dependencies (trivial). If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/skia-flutter-autoroll Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Configuration menu - View commit details
-
Copy full SHA for fd9e216 - Browse repository at this point
Copy the full SHA fd9e216View commit details -
Flip from deprecated strict analysis modes to lint rules (#187692)
Work towards dart-lang/sdk#63517. Each of the 'strict analysis modes' has been replaced with a lint rule, for consistency purposes. Also some deprecated lint rules are removed from the file, as they will be removed soon.
Configuration menu - View commit details
-
Copy full SHA for cf9e8af - Browse repository at this point
Copy the full SHA cf9e8afView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff f7b66f3e7b4d...cf9e8afe9a5e