Skip to content

[pull] master from Hawthorne001:master - #1280

Merged
pull[bot] merged 4 commits into
MainbaseT:masterfrom
Hawthorne001:master
Sep 1, 2026
Merged

[pull] master from Hawthorne001:master#1280
pull[bot] merged 4 commits into
MainbaseT:masterfrom
Hawthorne001:master

Conversation

@pull

@pull pull Bot commented Sep 1, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

chunhtai and others added 4 commits September 1, 2026 00:48
<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

Some bug I found during implementing accessibilityOpaque. Separated them
out to this pr for easier review

## Pre-launch Checklist

- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] 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
…re (flutter#191980)

This is a prerequisite to re-implementing
flutter#190874. This addresses the
unsupported wide gamut issue which was originally present in that PR and
which caused it to be reverted.

Related: flutter#190401

### Previously:
- `CreateGradientBuffer` converts a gradient's colors and stops to an
interpolated list of colors. This interpolated list of colors is
converted to bytes with `ToR8G8B8A8()` and is returned in a
`GradientData`.
- The `R8G8B8A8` `GradientData` is passed to `CreateGradientTexture`,
which allocates a `PixelFormat::kR8G8B8A8UNormInt` texture.

Wide gamut colors can't be converted to `R8G8B8A8`, so they end up
getting clamped.

### Now:
- `CreateGradientBuffer` converts a gradient's colors and stops to an
interpolated list of colors (same as before). But now no conversion to
bytes happens here. The interpolated list of colors is directly returned
in a `GradientData`.
- The `Color`-based `GradientData` is passed to `CreateGradientTexture`.
`CreateGradientTexture` now handles the conversion to bytes. If there
are wide gamut colors, it converts to `kR32G32B32A32Float`. Otherwise it
does the old behavior of converting to `PixelFormat::kR8G8B8A8UNormInt`.

## 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
…ng plugin symlink creation (flutter#191496)

## Description

Fixes a crash during plugin symlink creation on Windows/Linux desktop
builds (`FileSystemException: Creation failed, OS Error: A file cannot
be created if it already exists., errno = 183` / `errno = 17`).

### Cause
Previously, `_createPlatformPluginSymlinks` checked `if
(link.existsSync()) continue;` before calling `link.createSync(path)`.
1. If a non-link entity (such as a regular directory or file from manual
extraction, git checkout, or previous builds) occupied the symlink path,
`Link.existsSync()` returned `false`. The tool then called
`link.createSync(path)`, crashing with `ERROR_ALREADY_EXISTS` (`errno =
183`) on Windows or `EEXIST` (`errno = 17`) on POSIX.
2. `Link.existsSync()` did not check if an existing symlink pointed to
the expected plugin target path. If a plugin's path changed (e.g. a
version upgrade in pub cache), existing symlinks pointing to outdated
paths were skipped.

### Fix
- Uses `typeSync(link.path, followLinks: false)` to inspect disk state
type-agnostically before symlink creation.
- Canonicalizes and compares `link.targetSync()` with `path`. If
matching, creation is skipped.
- Deletes stale or mismatched links via
`ErrorHandlingFileSystem.deleteIfExists(link)`, and removes conflicting
non-link entries before calling `link.createSync(path)`.

## Related Issues
* Fixes flutter#90028
* Related to flutter#131978
* Related to flutter#74227

## Tests
- `packages/flutter_tools/test/general.shard/plugins_test.dart`:
  - `createPluginSymlinks repairs broken symlinks without failing`
- `createPluginSymlinks replaces existing files with symlinks without
failing`
…2093)

https://skia.googlesource.com/skia.git/+log/5489a16a5998..e22ebf131e44

2026-09-01
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-08-31
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2026-08-31 ccameron@google.com Implement native Rust ICC parser
mirroring skcms
2026-08-31 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 4f73bfe8e159 to 4f7dccbd6565 (4 revisions)
2026-08-31 skia-autoroll@skia-public.iam.gserviceaccount.com Manual roll
Dawn from da6276ce63f6 to 3d786993a7de (9 revisions)

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
jsimmons@google.com,kjlubick@google.com,nathanasanchez@google.com 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
@pull pull Bot locked and limited conversation to collaborators Sep 1, 2026
@pull pull Bot added the ⤵️ pull label Sep 1, 2026
@pull
pull Bot merged commit 6484f2c into MainbaseT:master Sep 1, 2026
3 of 7 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

4 participants