Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: flutter/flutter
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: f7b66f3e7b4d
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: cf9e8afe9a5e
Choose a head ref
  • 11 commits
  • 26 files changed
  • 9 contributors

Commits on Jul 10, 2026

  1. 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
    andywolff authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    e329e87 View commit details
    Browse the repository at this point in the history
  2. [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]>
    Ortes and harryterkelsen authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    914195c View commit details
    Browse the repository at this point in the history
  3. 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
    engine-flutter-autoroll authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    041dc6a View commit details
    Browse the repository at this point in the history
  4. 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
    b-luk authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    07f5016 View commit details
    Browse the repository at this point in the history
  5. [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
    andywolff authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    b8690a4 View commit details
    Browse the repository at this point in the history
  6. 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.
    mattkae authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    aa7e28b View commit details
    Browse the repository at this point in the history
  7. 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
    jmagman authored Jul 10, 2026
    Configuration menu
    Copy the full SHA
    4375491 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2026

  1. 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
    cbracken authored Jul 11, 2026
    Configuration menu
    Copy the full SHA
    f9cc6b0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8a9f61c View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2026

  1. 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
    engine-flutter-autoroll authored Jul 12, 2026
    Configuration menu
    Copy the full SHA
    fd9e216 View commit details
    Browse the repository at this point in the history
  2. 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.
    srawlins authored Jul 12, 2026
    Configuration menu
    Copy the full SHA
    cf9e8af View commit details
    Browse the repository at this point in the history
Loading