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: 5e805bfd5816
Choose a base ref
...
head repository: flutter/flutter
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: ee8b48245d7a
Choose a head ref
  • 17 commits
  • 229 files changed
  • 14 contributors

Commits on Oct 30, 2026

  1. [flutter_tools] Inject dependencies into iOS, macOS, and Windows appl…

    …ication packages (#194047)
    
    Eliminates ambient `globals.dart` usage in
    `ios/application_package.dart`, `macos/application_package.dart`,
    `windows/application_package.dart`, and
    `flutter_application_package.dart` by injecting `PlistParser` and
    `ToolContext` explicitly.
    
    Part of #47161
    
    ## 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], 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] All existing and new tests are passing.
    bkonyi authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    a1ba683 View commit details
    Browse the repository at this point in the history
  2. Use uniforms in the Porter Duff blend shader instead of specializatio…

    …n constants (#195458)
    
    Changes the Porter Duff blend shader to use uniforms instead of
    specialization constants for the blending coefficients. As each
    specialized variant triggered a full shader compile, this removes 14
    shader compiles (~23%) from the engine initialization path, it also
    removes overhead from swapping shaders.
    
    This was how the shader was initially configured. It was modified to use
    specialization constants because of compilation issues on adreno chips
    using Vulkan ([PR](#161273),
    [issue](#161209)). However,
    those chips are now blacklisted from Vulkan
    ([PR](#178833)) - so no
    compilation issues occur.
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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.
    walley892 authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    5d7f53a View commit details
    Browse the repository at this point in the history
  3. Roll Skia from c0c46ee9f938 to 121d04c01e2d (9 revisions) (#195687)

    https://skia.googlesource.com/skia.git/+log/c0c46ee9f938..121d04c01e2d
    
    2026-10-30 [email protected] [sksl] Add subgroup arithmetic intrinsics
    2026-10-30 [email protected] Reland "miracleptr: Rewrite
    src/core references to raw_ref"
    2026-10-30 [email protected] Roll
    vulkan-deps from 3e43f3a7c7a0 to 771ad08d3047 (3 revisions)
    2026-10-30 [email protected] [SkRecorder] Implement
    SkContext::makeRecorder and BackendSelection
    2026-10-30 [email protected] Add raw_ptr overloads for
    sk_ref_sp and SkRef
    2026-10-30 [email protected] Disable skia_use_partition_alloc
    on Wasm
    2026-10-30 [email protected] Revert "miracleptr: Rewrite
    src/core references to raw_ref"
    2026-10-30 [email protected] Add missing std headers to no-op
    raw_ptr/raw_ref
    2026-10-30 [email protected] [Ganesh] Ensure flush token is
    advanced at the end of every flush
    
    If this roll has caused a breakage, revert this CL and set the roller
    to dry run mode 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 Oct 30, 2026
    Configuration menu
    Copy the full SHA
    cc8dbed View commit details
    Browse the repository at this point in the history
  4. Apply view metrics overrides below the framework (#194311)

    Part of flutter/devtools#9893 (the DevTools accessibility page). Design:
    [flutter.dev/go/view-metrics-overrides](https://flutter.dev/go/view-metrics-overrides).
    
    #192764 added the `debugViewMetricsOverrides` registry and the
    `ext.flutter.viewMetricsOverride` service extension. This PR makes those
    overrides take effect, which the DevTools override controls depend on.
    Next up: `flutter_test` support for test views with their own ids, and
    moving `ext.flutter.brightnessOverride` onto the registry.
    
    ## What this does
    
    In debug mode, `BindingBase.platformDispatcher` wraps
    `PlatformDispatcher.instance`. The wrapper and its views report
    overridden metrics, so everything that reads them through the binding
    (`MediaQuery`, `RenderView`, gestures, semantics, image resolution,
    accessibility evaluations) sees the overrides without any
    override-specific code. Changing an override fires the same `dart:ui`
    callbacks a real platform change would.
    
    `RenderView`, `View`, `RawView` and `MediaQueryData.fromView` map a raw
    engine view to the binding's wrapped one, so overrides apply to it too.
    Widget tests see overrides through `TestWidgetsFlutterBinding`, and
    explicit test values still take precedence. Profile and release builds
    are unchanged.
    
    New API: `debugApplyViewMetricsOverrides` wraps a dispatcher, for
    bindings that supply their own, and `debugViewWithMetricsOverrides` maps
    a raw engine view to its wrapper.
    
    ## Behavior changes and caveats
    
    - Debug only: `View.of(context)` and the binding's views are no longer
    `identical` to the ones `PlatformDispatcher.instance` reports. A view's
    `platformDispatcher` is a wrapper for that view, not
    `PlatformDispatcher.instance` or an app binding's dispatcher. Compare
    views by `viewId`.
    - Debug only: a `FlutterView` test double passed to `View`, `RawView`,
    `RenderView` or `MediaQueryData.fromView` must implement
    `platformDispatcher` and `viewId`.
    - `TestPlatformDispatcher.scaleFontSize` asks the wrapped dispatcher
    unless `textScaleFactorTestValue` is set, so non-linear text scaling
    applies in tests. A fake dispatcher without `scaleFontSize` still gets
    linear scaling.
    - An overridden `physicalSize` lays out at that size but still renders
    into the real surface, anchored top-left.
    - An ancestor `MediaQuery` still wins over platform-wide overrides, as
    it does over real platform settings. `debugBrightnessOverride` still
    wins over an overridden brightness.
    - `ui.window`, direct `PlatformDispatcher.instance` reads and
    engine-drawn content (platform views, system UI, keyboard) don't see
    overrides.
    - Text scalers compare by `textScaleFactor`, so a new `textScaling`
    table with the same first-point ratio only reaches already laid-out text
    when that text lays out again.
    
    ## Tests
    
    - `foundation/debug_view_metrics_override_test.dart`: the wrappers, per
    metric and per view, plus view identity, normalization, change
    notifications and validation.
    - `widgets/debug_view_metrics_override_test.dart`: end to end through
    `MediaQuery`, views, layout, pointer events, semantics, images and
    accessibility evaluations, and precedence of explicit test values.
    - `service_extensions_test.dart` covers an override set through the
    extension. `platform_dispatcher_test.dart` covers `scaleFontSize`
    delegation and its fallback for fakes.
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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].
    
    <!-- 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/CONTRIBUTING.ai.md
    [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
    [flutter/website]: https://github.com/flutter/website
    [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
    victorsanni authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    0c2e34f View commit details
    Browse the repository at this point in the history
  5. [tool] Migrate Cache.flutterRoot static state to instance configurati…

    …on (#190795)
    
    Replaces static `Cache.flutterRoot` state and ambient `globals` usage
    across `Cache` and its callers with instance configuration and explicit
    `ToolContext` dependency injection, and consolidates `ToolContext`
    parameter passing across call sites.
    
    Part of #47161
    
    ## 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], 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] All existing and new tests are passing.
    bkonyi authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    7dae021 View commit details
    Browse the repository at this point in the history
  6. Update golden file testing docs (#195449)

    This updates documentation on golden file testing in flutter/flutter
    that had fallen out of date
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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/CONTRIBUTING.ai.md
    [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
    [flutter/website]: https://github.com/flutter/website
    [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
    
    ---------
    
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    Piinks and gemini-code-assist[bot] authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    03c32a3 View commit details
    Browse the repository at this point in the history
  7. [web] Anchor platform view slots to top-left to fix RTL document layo…

    …ut (#194601)
    
    Platform view slots use `position: absolute` with CSS transforms to
    position elements. When the host document uses `dir="rtl"`, the browser
    defaults the static position of unconstrained absolute elements to the
    right edge instead of the left, pushing the slot offscreen when the 2D
    translation matrix is applied.
    This explicitly sets `top: 0` and `left: 0` in `_resetAnchor` to ensure
    the transform origin and base coordinates always
    start at (0, 0).
    
    ## Description
    
    When Flutter Web is embedded in a webpage where `<html dir="rtl">` or
    `<body dir="rtl">` is set, platform views (`HtmlElementView`) render
    offscreen to the right.
    Fixes #195150
    
    ### Cause
    `<flt-platform-view-slot>` uses `position: absolute` without explicit
    `top`/`left` anchors. Per CSS 2.1 §10.3.7, an unconstrained absolutely
    positioned element's static horizontal position aligns to the containing
    block's right edge in an RTL context. When Flutter translates the
    element with `transform: matrix(1, 0, 0, 1, x, y)`, the `+x` translation
    offsets from the right edge rather than (0, 0) top-left, throwing the
    view offscreen.
    
    ### Fix
    Explicitly set `top: 0` and `left: 0` in `_resetAnchor`
    (`embedder.dart`) for platform view slots so coordinate transforms
    always calculate from (0, 0).
    
    
    ## Tests Added
    
    - `test/ui/platform_view_position_test.dart`: Added `Platform view slot
    coordinates are anchored to top-left even in RTL document` validating
    slot position and rect when `domDocument.documentElement.dir == 'rtl'`.
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [ ] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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.
    
    ---------
    
    Co-authored-by: Mouad Debbar <[email protected]>
    Co-authored-by: Mouad Debbar <[email protected]>
    Co-authored-by: zhongliugo <[email protected]>
    4 people authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    52f8db0 View commit details
    Browse the repository at this point in the history
  8. Roll Skia from 121d04c01e2d to ce0b85b46db6 (6 revisions) (#195699)

    https://skia.googlesource.com/skia.git/+log/121d04c01e2d..ce0b85b46db6
    
    2026-10-30 [email protected] [skparagraph] Leave room for the soft
    hyphen when justifying
    2026-10-30 [email protected] [skparagraph] Do not make invalid cluster
    ranges in justify
    2026-10-30 [email protected] Make SkRemoteGlyphCache_b576664769 bounds
    check scaler independent
    2026-10-30 [email protected] Prepare src/core for the raw_ptr
    rewrite
    2026-10-30 [email protected] Fix integer overflow and oversized glyph
    rasterization in SDF generation
    2026-10-30 [email protected] [sfnt] Validate table bounds in
    RenameFont
    
    If this roll has caused a breakage, revert this CL and set the roller
    to dry run mode 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 Oct 30, 2026
    Configuration menu
    Copy the full SHA
    5253d01 View commit details
    Browse the repository at this point in the history
  9. [Android] Let the raster thread use every core of a chip without litt…

    …le cores (#195071)
    
    `CPUSpeedTracker` counts the CPUs with the lowest `cpuinfo_max_freq` as
    efficiency cores, and the raster thread is set to the other cores
    (`kNotEfficiency`, renamed `kNotLittle` in this PR). On a chip without
    little cores, those are full-size cores. On the Snapdragon 8 Elite and 8
    Elite Gen 5 (two prime and six performance Oryon cores) the raster
    thread only gets the two prime cores. They are mostly idle, so raster
    frames start at the cluster's lowest frequency. See #195070 for
    measurements.
    
    This change also reads `/sys/devices/system/cpu/cpuN/cpu_capacity`, the
    kernel's rating of each CPU, scaled so that the fastest is 1024. When
    every CPU has a capacity and none is below half of the fastest, the chip
    has no little cores, and `kNotLittle` is every core.
    
    - Why half: little cores rate well below it. Upstream SM8650 device
    trees put the Cortex-A520 at about 37% of the X4 at their top
    frequencies. The SM8850's performance cores are at 762 of 1024.
    - Equal capacities, or a CPU without one, change nothing. A kernel
    without capacity data reports 1024 for every CPU.
    - Other affinities do not change. `kEfficiency` is still the slowest
    group, so background threads stay off the prime cores.
    - `kNotEfficiency` is renamed `kNotLittle`, since on these chips it
    includes the efficiency cores. Each `CpuAffinity` value's doc says which
    cores it covers, and that performance and efficiency there are speed
    groups, not the industry's core types.
    - Chips with little cores (Snapdragon 8 Gen 1–3, Tensor, Exynos 2400)
    should keep the current set. I have only read the capacities of the
    SM8850.
    - Other chips without little cores also get every core. Examples:
    Dimensity 9300/9400 (the slowest group is four Cortex-A720), Snapdragon
    8s Gen 4, and Snapdragon 8 Elite Gen 6. On the 8 Elite Gen 6 the six
    performance cores report two top frequencies (4.03 and 3.74 GHz), so
    today three of them count as efficiency cores. I have not measured these
    chips.
    - On the Dimensity 9600 Pro (2 × C2-Ultra at 4.55 GHz, 3 × C2-Pro at
    4.35 GHz, 3 × C2-Pro at 3.1 GHz), the 3.1 GHz cores should rate near
    half, so it may go either way. Either way the raster thread keeps at
    least the five cores it gets today.
    
    This keeps the current design and only widens it where the capacities
    are clear. A chip whose performance cores rate below half of its prime
    cores would still leave the raster thread on the prime cores. The more
    general fix would be to stop pinning the raster thread, as Android does
    not pin a native app's RenderThread. That needs measurements on the
    devices that flutter-team-archive/engine#45673
    and #153690 were about, so this change leaves it out.
    
    Tests: three new `CpuAffinity` tests in `fml_unittests`. `NoLittleCores`
    fails without this change. I ran the `CpuAffinity` tests against the
    changed files in a standalone build with clang++ and g++, not in a full
    engine build. On an SM8850 phone, setting the raster threads to every
    core from the app (the same result as this change) gave the numbers in
    #195070. I have not tested a custom engine build on the device.
    
    Fixes #195070
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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].
    
    <!-- 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/CONTRIBUTING.ai.md
    [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
    [flutter/website]: https://github.com/flutter/website
    [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
    Lopution authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    e65eafa View commit details
    Browse the repository at this point in the history
  10. Adds Vulkan sync validation test run (#195596)

    Adds new test run that just runs a handful of tests with vulkan
    synchronization validation layers on. The synchronization layers are
    heavy so we opted for this instead of running every tests with them on.
    
    fixes #195502
    
    ## 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 in-code documentation (doc comments with
    `///`).
    - [x] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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/CONTRIBUTING.ai.md
    [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
    [flutter/website]: https://github.com/flutter/website
    [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
    gaaclarke authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    184243b View commit details
    Browse the repository at this point in the history
  11. Roll Skia from ce0b85b46db6 to 466994d27b1e (3 revisions) (#195711)

    engine-flutter-autoroll authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    7d3f5d0 View commit details
    Browse the repository at this point in the history
  12. Document that Positioned also works inside an Overlay (#190607)

    `Positioned` works inside an `Overlay` as well as a `Stack`, but its
    documentation only described the `Stack` case. This updates the
    documentation across `Positioned`, `PositionedDirectional`, the animated
    variants and the transition variants.
    
    Fixes #107903.
    
    The path restriction now covers both `RenderObjectWidget`s and other
    `ParentDataWidget`s, including `Expanded`, and identifies the boundary
    for each of the three overlay builders. `Overlay` documents the
    positioned-child alignment and normal non-positioned-child sizing, with
    links to `canSizeOverlay` and `alwaysSizeToContent` for the cases where
    a child determines the overlay size.
    
    Documentation only; no behavior or API changes.
    
    Validation from the review rounds is recorded in the inline replies and
    summary comments. The latest corrections are in `a9cecb891`.
    
    ## 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]. This PR is test-exempt because it only edits dartdoc
    text, with no behavioral or API changes.
    - [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].
    
    <!-- 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
    
    ---------
    
    Co-authored-by: Victor Sanni <[email protected]>
    fahaddoc and victorsanni authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    c478de9 View commit details
    Browse the repository at this point in the history
  13. Fix XcodeProjectInterpreter dependency cycle in flutter_tools (#195694)

    Defer `xcode` and `xcodeProjectInterpreter` evaluation in
    `globals.projectFactory` by passing `xcodeBuilder: () => xcode` and
    `xcodeProjectInterpreterBuilder: () => xcodeProjectInterpreter` instead
    of eagerly evaluating the `context.get` getters.
    
    Previously, accessing `globals.projectFactory` (e.g., via `Cache` during
    `Analytics` initialization) eagerly evaluated `globals.xcode` and
    `globals.xcodeProjectInterpreter`, triggering an `AppContext` dependency
    cycle (`Analytics -> Cache -> Xcode -> XcodeProjectInterpreter`).
    
    Includes a regression test in
    `packages/flutter_tools/test/general.shard/globals_test.dart`.
    
    Part of #47161
    Related to #188471
    
    ## 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.
    - [ ] I updated/added relevant in-code documentation (doc comments with
    `///`).
    - [ ] If this PR introduces a new feature or capability, I created and
    linked a website documentation issue or PR in [flutter/website] (or
    verified none is needed).
    - [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/CONTRIBUTING.ai.md
    [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
    [flutter/website]: https://github.com/flutter/website
    [breaking change policy]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
    [Data Driven Fixes]:
    https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
    kevmoo authored Oct 30, 2026
    Configuration menu
    Copy the full SHA
    f696546 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2026

  1. Configuration menu
    Copy the full SHA
    d4143a7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    da87ea6 View commit details
    Browse the repository at this point in the history
  3. Roll Skia from 284054bec98a to 9bab765df357 (2 revisions) (#195726)

    https://skia.googlesource.com/skia.git/+log/284054bec98a..9bab765df357
    
    2026-10-31
    recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
    Roll recipe dependencies (trivial).
    2026-10-31
    recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
    Roll recipe dependencies (trivial).
    
    If this roll has caused a breakage, revert this CL and set the roller
    to dry run mode 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 Oct 31, 2026
    Configuration menu
    Copy the full SHA
    3480cd0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ee8b482 View commit details
    Browse the repository at this point in the history
Loading