Jason Simmons
3f99c8d192
Use "flutter pub get" to resolve packages when building the docs snippets tool ( #170381 )
...
"flutter pub get" should be used instead of "dart pub get" for packages
within the Flutter pub workspace.
This was causing issues for some runs of the docs_test builder on CI.
(example:
https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20docs_test/68448/overview )
2025-06-10 22:51:23 +00:00
Jonah Williams
d1f63480c4
[engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. ( #170389 )
...
Reland of https://github.com/flutter/flutter/pull/170313
We were missing a call to android_surface->SetupImpellerSurface(); which
happened to just work before.
2025-06-10 22:07:09 +00:00
Jia Hao
32b513bbb2
Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… ( #170309 )
...
…troyed. (flutter/engine#37539 )"
This reverts commit 7296b2b66dac82f04ebe9017320bde81a7b5f486.
In b/422322882, we have done a small experiment on addtoapp Android,
with and without a patched engine where `Dart_NotifyDestroyed` is not
called:
1. Add a Flutter view
2. Measure memory with `adb shell dumpsys meminfo`
3. Call detach
5. Measure memory again
"Call detach" refers to the following pseudocode:
```kt
flutterViewContainer.removeView(flutterView)
engine.activityControlSurface.detachFromActivity()
engine.lifecycleChannel.appIsDetached()
flutterView!!.detachFromFlutterEngine()
```
We observed that the memory recordings with and without the patched
engine are mostly the same. @a-siva also mentioned that
7296b2b66dac82f04ebe9017320bde81a7b5f486 could be no longer needed
today.
## 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.
- [ ] 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].
- [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
[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
2025-06-10 21:34:29 +00:00
likir09
f01d7e9291
fix: set versionCodeOverride when split-per-abi is specified ( #169816 )
...
Fix: set versionCodeOverride when using --split-per-abi during flutter
build
fixes : #169790
## 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] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-06-10 21:06:20 +00:00
John "codefu" McDole
45efd04bc9
fix: Skip native assets build test (flaky, takes 15m+) ( #170383 )
...
fixes #170382 , which is timing out at 6% flakey
2025-06-10 20:47:51 +00:00
Flutter GitHub Bot
3c02bf1613
Marks Linux web_benchmarks_ddc to be unflaky ( #167631 )
...
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Linux web_benchmarks_ddc"
}
-->
The test has been passing for [50 consecutive
runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux%20web_benchmarks_ddc%22 ).
This test can be marked as unflaky.
Co-authored-by: Mouad Debbar <mdebbar@google.com>
2025-06-10 20:46:52 +00:00
Flutter GitHub Bot
838f672f25
Marks Linux web_benchmarks_ddc_hot_reload to be unflaky ( #168807 )
...
<!-- meta-tags: To be used by the automation script only, DO NOT MODIFY.
{
"name": "Linux web_benchmarks_ddc_hot_reload"
}
-->
The test has been passing for [50 consecutive
runs](https://data.corp.google.com/sites/flutter_infra_metrics_datasite/flutter_check_test_flakiness_status_dashboard/?p=BUILDER_NAME:%22Linux%20web_benchmarks_ddc_hot_reload%22 ).
This test can be marked as unflaky.
Co-authored-by: Mouad Debbar <mdebbar@google.com>
2025-06-10 20:43:18 +00:00
auto-submit[bot]
03e445e71c
Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. ( #170313 )" ( #170377 )
...
<!-- start_original_pr_link -->
Reverts: flutter/flutter#170313
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jonahwilliams
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: broke tree
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: jonahwilliams
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {mboetger}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
The fact that this landed and failed no tests originally likely
indicates we have no tests using Engine.spawn APIs. Seems bad.
Fixes https://github.com/flutter/flutter/issues/170295
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-06-10 18:53:20 +00:00
Hannah Jin
cb01defdcf
[a11y] Semantics flag refactor step 2: embedder part ( #167738 )
...
issue: https://github.com/flutter/flutter/issues/166101 , overall goal is
to update semantics flag to be a struct/class to support more than 32
flags.
step 1: https://github.com/flutter/flutter/pull/167421 updated
semantics_node.h and dart:ui
step 2(this PR): Update Embedder part to use a struct instead of a int
bit mask.
step 3: https://github.com/flutter/flutter/pull/167771 Update Framework
use the SemanticsFlags class instead of bitmask
step 4 https://github.com/flutter/flutter/pull/168852 Update web engine
to use the new class and update SemanticsUpdateBuilder.updateNode to
pass the new class instead of bitmask
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] 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].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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: Chris Bracken <chris@bracken.jp>
Co-authored-by: Loïc Sharma <737941+loic-sharma@users.noreply.github.com>
2025-06-10 18:11:07 +00:00
engine-flutter-autoroll
83c86873fe
Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) ( #170363 )
...
https://dart.googlesource.com/sdk.git/+log/c26e7ca44805..6290dfd1d88a
2025-06-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-216.0.dev
2025-06-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-215.0.dev
2025-06-10 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-214.0.dev
2025-06-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-213.0.dev
2025-06-09 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-212.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC dart-vm-team@google.com ,jsimmons@google.com 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
2025-06-10 18:07:08 +00:00
Matan Lurey
70a780548d
Remove pubspec.lock files for flutter_tools and widget_preview_scaffold. ( #170364 )
...
Closes https://github.com/flutter/flutter/issues/170264 .
I believe these files were _accidentally_ introduced in
https://github.com/flutter/flutter/pull/168662 , as part of the
`workspace`-ifying of `flutter/flutter`; these two packages are _not_
part of the workspace, and there is special logic in
`bin/internal/shared.sh` (i.e. the entrypoint to `flutter`) that expects
this file to be updated:
2d30ce56fe/bin/internal/shared.sh (L131)
We can revisit this if the pub team has advice on what to do; for now
helps the periodic failures described in
https://github.com/flutter/flutter/issues/170264 .
2025-06-10 18:07:08 +00:00
Jonah Williams
389f10e678
[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. ( #170313 )
...
The fact that this landed and failed no tests originally likely
indicates we have no tests using Engine.spawn APIs. Seems bad.
Fixes https://github.com/flutter/flutter/issues/170295
2025-06-10 17:23:06 +00:00
Jonah Williams
2d30ce56fe
[engine] dont double free surface texture interop objects. ( #170284 )
...
Fixes https://github.com/flutter/flutter/issues/152459
I suspect the double free is related to
https://github.com/flutter/flutter/issues/162147 .
With the Impeller backend, the second free is performed by the reactor
and comes only after the application has returned to the foreground.
This increaases the likelyhood that we nuke a handle that is in active
use by another part of the system.
Since SurfaceTexture:: detachFromGLContext is documented as releasing
the texture, we don't need to free it at all and can "leak" it on our
side.
2025-06-10 16:25:12 +00:00
Michael Ludwig
ee0eb22cdb
Update test_vulkan_context.cc to use Vulkan 1.1 ( #170351 )
...
Skia is moving to require 1.1 as its minimum supported version instead
of 1.0.
This is part of an effort to clean up and consolidate Vulkan
initialization logic, which gets much easier with some of the extensions
that were promoted to 1.1. This is for skbug.com/422204178 and required
to roll https://skia-review.googlesource.com/c/skia/+/1002391 into
Flutter.
## 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] 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
[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
2025-06-10 16:25:12 +00:00
gaaclarke
8483f1a766
Updated templates to avoid the LaunchEngine ( #169998 )
...
## 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] 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
[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
2025-06-10 14:09:14 +00:00
gaaclarke
386f767f36
licenses_cpp: initial commit ( #169105 )
...
Initial commit for the c++ license checker.
This lays the foundation for all the technical challenges. The logic
isn't 100% what we want yet. This is a facsimile of the operations we
want to perform and currently it operates in 30s as opposed to 30m with
the old license chcker.
Included in this PR:
1) Sets up BUILD.gn
1) Makes RE2 available to the repo.
1) Sets up the test infrastructure (integration and unit tests).
1) Sets up the executable.
1) Sets up VSCode integration
1) Sets up the CI (macos builds for now)
1) Sets up logic
1) Sets up the crawling through the tree.
1) Sets up flex lexer for comments.
1) Runs git subprocesses.
1) Parses command line arguments.
1) Sets up data practices
1) Allow/deny lists added.
1) In memory representation of license catalog added.
## 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] 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
[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
2025-06-10 14:07:23 +00:00
Valentin Vignal
b086fe7b79
Add backgroundColor to Radio ( #169415 )
...
Part of https://github.com/flutter/flutter/issues/168787
Adds `backgroundColor` property to `Radio`
This code sample is now possible:
<details>
<summary>Example</summary>
```dart
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
void main() {
runApp(const MyWidget());
}
class MyWidget extends StatefulWidget {
const MyWidget({super.key});
@override
State<MyWidget> createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
bool? _value;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(
children: <Widget>[
Radio<bool>(
value: true,
groupValue: _value,
toggleable: true,
onChanged: (bool? value) {
setState(() {
// Toggle the value when the radio button is pressed
_value = value;
});
},
activeColor: Colors.red,
fillColor: MaterialStateProperty.resolveWith<Color>((Set<MaterialState> states) {
if (states.contains(MaterialState.selected)) {
return Colors.green;
}
return Colors.blue; // Default color when not selected
}),
backgroundColor: MaterialStateProperty.resolveWith<Color>((
Set<MaterialState> states,
) {
if (states.contains(MaterialState.selected)) {
return Colors.orange.withOpacity(0.5);
}
return Colors.purple.withOpacity(0.5); // Default background color when not selected
}),
),
Radio<bool>(
value: false,
groupValue: _value,
toggleable: true,
onChanged: (bool? value) {
setState(() {
// Toggle the value when the radio button is pressed
_value = value;
});
},
),
],
),
),
);
}
}
```
</details>
https://github.com/user-attachments/assets/d1a9d422-89f6-4b28-bb6c-add6ead13a21
## 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] 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
[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
2025-06-10 01:38:08 +00:00
gaaclarke
85867b0911
Export FlutterSceneDelegate ( #170169 )
...
This allows people to subclass FlutterSceneDelegate. This is necessary
for many workflows like capturing launchoptions.
## 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] 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
[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
2025-06-10 00:59:54 +00:00
gaaclarke
af6cd4e7ac
Removed the FlutterViewController.pluginRegistrant ( #169995 )
...
issue: https://github.com/flutter/flutter/issues/167267
We opted for FlutterAppDelegate.pluginRegistrant since the IBOutlets
couldn't be loaded the way we link Flutter (via a bespoke script instead
of using xcode).
## 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] 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
[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
2025-06-09 20:44:13 +00:00
Jim Graham
b9e7ba3fe4
[Impeller] Avoid allocating path for dashed lines ( #169881 )
...
We use the new algorithmically generated `PathSource` mechanism for
generating dashed lines to avoid allocating a growable path object.
2025-06-09 20:12:00 +00:00
chunhtai
60cbfb76a2
Fixes inputDecoration sibling explicit child not included in semantic… ( #170079 )
...
…s tree
<!--
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
-->
fixes https://github.com/flutter/flutter/issues/169499
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] 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].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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
2025-06-09 20:10:46 +00:00
Victoria Ashworth
89c91b8386
Remove lldb warnings ( #169673 )
...
The LLDB requirement is no longer pressing, so remove warnings for now.
## 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].
- [ ] 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].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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
2025-06-09 20:09:25 +00:00
Victoria Ashworth
56d4b7bd35
Invalidate build target when new output file is added ( #170253 )
...
Build targets are re-run when invalidated. This PR changes it so when a
new output file is added to the expected output files, the build target
will be invalidated and re-run.
This PR also changes `canSkip` to an async call.
These changes are needed for
https://github.com/flutter/flutter/issues/166486 .
## 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].
- [ ] 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].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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
2025-06-09 17:42:52 +00:00
Jim Graham
88a889a089
[Impeller] Fix vertex allocation counts for flat curves ( #170194 )
...
The code that estimated the vertex counts for filling paths was not
taking into account that the minimum number of points allocated for a
curve segment is 1. The iteration estimates will return "don't bother to
subdivide the curve" cases as "0 subdivisions" and we estimated no
vertices would be generated. In fact, the rendering code would always
emit the final point regardless of the subdivision estimate. Other cases
that returned a value >0 were already accurate.
2025-06-09 17:25:27 +00:00
Kostia Sokolovskyi
1b9502b007
Add debugOverridePlatformViewRegistry to HtmlElementView test. ( #170163 )
...
### Description
- Adds `debugOverridePlatformViewRegistry` usage to `HtmlElementView`
tests
- Removes private `debugOverridePlatformViewRegistry` from
`_html_element_view_web.dart`
## 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].
- [ ] 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].
- [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
[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
2025-06-09 15:01:53 +00:00
engine-flutter-autoroll
e9e989bef3
Roll Dart SDK from f8e88f6ce02a to c26e7ca44805 (1 revision) ( #170198 )
...
https://dart.googlesource.com/sdk.git/+log/f8e88f6ce02a..c26e7ca44805
2025-06-07 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-211.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC chinmaygarde@google.com ,dart-vm-team@google.com 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
2025-06-07 11:45:31 +00:00
engine-flutter-autoroll
2eec076321
Roll Dart SDK from 239174405ad0 to f8e88f6ce02a (14 revisions) ( #170182 )
...
https://dart.googlesource.com/sdk.git/+log/239174405ad0..f8e88f6ce02a
2025-06-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-210.0.dev
2025-06-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-209.0.dev
2025-06-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-208.0.dev
2025-06-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-207.0.dev
2025-06-06 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-206.0.dev
2025-06-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-205.0.dev
2025-06-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-204.0.dev
2025-06-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-203.0.dev
2025-06-05 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-202.0.dev
2025-06-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-201.0.dev
2025-06-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-200.0.dev
2025-06-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-199.0.dev
2025-06-04 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-198.0.dev
2025-06-03 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com
Version 3.9.0-197.0.dev
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dart-sdk-flutter
Please CC chinmaygarde@google.com ,dart-vm-team@google.com 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
2025-06-06 23:40:24 +00:00
Koji Wakamiya
f4bd508c28
Dispose ImmutableBuffer at web_ui.instantiateImageCodecFromBuffer and web_ui.instantiateImageCodecWithSize ( #161488 )
...
fix https://github.com/flutter/flutter/issues/150016
Fixed `instantiateImageCodecFromBuffer` and
`instantiateImageCodecWithSize` and added tests.
doc
> The buffer will be disposed by this method once the codec has been
created, so the caller must relinquish ownership of the buffer when they
call this method.
*
https://api.flutter.dev/flutter/dart-ui/instantiateImageCodecFromBuffer.html
*
https://api.flutter.dev/flutter/dart-ui/instantiateImageCodecWithSize.html
ui
bd1ebf2e14/engine/src/flutter/lib/ui/painting.dart (L2484-L2504)
bd1ebf2e14/engine/src/flutter/lib/ui/painting.dart (L2541-L2558)
web_ui
bd1ebf2e14/engine/src/flutter/lib/web_ui/lib/painting.dart (L640-L679)
## 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] 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
[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: Mouad Debbar <mdebbar@google.com>
2025-06-06 23:36:16 +00:00
Hannah Jin
7769f98c33
[a11y] Semanctis flag refactor step 4: web and updateNode ( #168852 )
...
issue: https://github.com/flutter/flutter/issues/166101 , overall goal is
to update semantics flag to be a struct/class to support more than 32
flags.
step 1: https://github.com/flutter/flutter/pull/167421 Update
semantics_node.h and dart:ui
step 2: https://github.com/flutter/flutter/pull/167738 Update Embedder
part to use a struct instead of a int bit mask.
step 3: https://github.com/flutter/flutter/pull/167771 Update Framework
use the SemanticsFlags class instead of bitmask
step 4 (this PR) Update web engine to use the new class and update
SemanticsUpdateBuilder.updateNode to pass a list of bools instead of
bitmask
TODO:
flutter_tester
use the SemanticsFlags class instead of bitmask
[apicheck_test.dart](https://github.com/flutter/flutter/pull/167421/files#diff-69aefaacf1041f639974044962123bfae0756ce86032ac1f26256099425d7a5a )
Add this test back
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] 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].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[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
2025-06-06 23:17:20 +00:00
Zachary Anderson
14472b4aed
Reland workflow cache ( #170111 )
...
Put the Android SDK and pub cache under the workflow's workspace
directory instead of the worker's `$HOME` directory. In order to avoid
the pub cache and Android SDK being nested inside of the Flutter
checkout, this change also moves the Flutter checkout to a subdirectory
of the workspace directory called `flutter`.
---------
Co-authored-by: John "codefu" McDole <codefu@google.com>
2025-06-06 22:57:26 +00:00
zhongliugo
ea83a6a072
Fix VoiceOver tab activation by adding tappable behavior to SemanticTab ( #170076 )
...
## Description
This pull request fixes VoiceOver tab activation by adding tappable
behavior to the SemanticTab class in the Flutter web engine. The fix
ensures that tabs can be properly activated using assistive technology
commands like VoiceOver's ctrl-option-space, making tab navigation fully
accessible for screen reader users.
## Before
When using VoiceOver to navigate tabs in a Flutter web app, users were
unable to activate tabs using the standard VoiceOver activation command
(ctrl-option-space). The SemanticTab class was missing the Tappable
semantic behavior that enables assistive technology interaction, causing
screen readers to treat tabs as non-interactive elements despite having
tap handlers in the Flutter framework.
**Before behavior:**
https://tab-0605-before.web.app/
- Navigate to a tab using VoiceOver (ctrl-option-arrow)
- Attempt to activate the tab with ctrl-option-space
- Tab does not respond to activation command
- Users cannot switch between tabs using assistive technology
## After
VoiceOver and other screen reader users can now properly activate tabs
using standard assistive technology commands. Tabs respond correctly to
ctrl-option-space and other activation gestures, providing full keyboard
accessibility for tab navigation.
**After behavior:**
https://tab-0605-after.web.app/
- Navigate to a tab using VoiceOver (ctrl-option-arrow)
- Activate the tab with ctrl-option-space
- Tab switches correctly, displaying the associated tab panel
- Consistent behavior across all assistive technologies
## Changes Made
- Added `addTappable()` call to `SemanticTab` constructor in `tabs.dart`
- Added test case "tab with tap action" to verify DOM elements receive
the `flt-tappable` attribute
- Ensures tabs with `hasTap: true` are properly marked as interactive
for assistive technologies
## Testing
Added unit test that verifies:
- Tabs with tap actions receive the `flt-tappable` DOM attribute
- SemanticTab properly integrates with the existing tappable behavior
system
## Issue Fixed
This PR addresses GitHub Issue #169279 , which reports that VoiceOver
doesn't allow users to click tabs in Flutter web applications.
## 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] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-06-06 22:15:18 +00:00
Jason Simmons
8caedde6cc
Redirect the output of the "pub upgrade" command run by bin/flutter to stderr ( #170174 )
...
The dev/bots/analyze.dart script is now running "flutter pub deps
--json" to query packages in the Flutter workspace (see
https://github.com/flutter/flutter/pull/169556 )
analyze.dart is capturing the stdout of that bin/flutter command and
expecting the output to contain only JSON. If the flutter_tools snapshot
needs to be rebuilt, then the output of the pub command invoked by the
rebuild should not show up in stdout.
2025-06-06 22:12:09 +00:00
Qun Cheng
39ce615530
Add landmark roles ( #168931 )
...
This PR is to add ARIA landmark roles to `SemanticsRole`: complementary,
contentInfo, main, navigation and region.
I skipped `sectionhead` because it is an abstract role based on the [MDN
docs](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/sectionhead_role#:~:text=The%20structural%20sectionhead%20role%20is%20an%20abstract%20role%20for%20the%20subclass%20roles%20that%20identify%20the%20labels%20or%20summaries%20of%20the%20sections%20they%20label.%20The%20role%20must%20not%20be%20used .)
.
Fixes https://github.com/flutter/flutter/issues/162138
## 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] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-06-06 21:51:08 +00:00
Alex Medinsh
ce058e0be0
Trigger CupertinoPicker haptics in the middle of the item ( #169670 )
...
Towards https://github.com/flutter/flutter/issues/169606
This PR only fixes the haptic behaviour of `CupertinoPicker`, which now
triggers only when passing the middle of the item. Haptic feedback is
now also not trigger when tapping on an item to scroll to.
## 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] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
2025-06-06 21:21:15 +00:00
engine-flutter-autoroll
631ab1729a
Roll Skia from c810c9ba87fe to 910070084066 (29 revisions) ( #170165 )
...
https://skia.googlesource.com/skia.git/+log/c810c9ba87fe..910070084066
2025-06-06 mike@reedtribe.org use SkSpan in SkMatrix API
2025-06-06 syoussefi@google.com [graphite][vulkan] Minimize graphics
pipeline key
2025-06-06 syoussefi@google.com [graphite][vulkan] Use vertex input
dynamic state
2025-06-06 mike@reedtribe.org don't define SK_SUPPORT_UNSPANNED_API: it
is in SkTypes.h
2025-06-06 mike@reedtribe.org static bounds methods
2025-06-06 syoussefi@google.com [vulkan] Fix feature checks for YCbCr's
chroma filter
2025-06-06 syoussefi@google.com [vulkan] Apply RelaxedPrecision to
texture/atomic intrinsics
2025-06-06 thomsmit@google.com Revert "[graphite] Fix clamping bug on
Intel UHD 630."
2025-06-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE
from ef31b3ed1c0e to db9624073324 (8 revisions)
2025-06-06
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-06-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Skia
Infra from 8b4c1b14163e to 3bbfa4528971 (9 revisions)
2025-06-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
SwiftShader from b62ac8aa106b to 11dc1b167af4 (2 revisions)
2025-06-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Dawn
from f8d7c6eea2f0 to 63ca6919b752 (19 revisions)
2025-06-06 syoussefi@google.com [graphite][vulkan] Optimize
sample-count-support check
2025-06-06 skia-autoroll@skia-public.iam.gserviceaccount.com Roll skcms
from e12ef7c0da42 to 1915b4d7ccd3 (1 revision)
2025-06-05 skia-autoroll@skia-public.iam.gserviceaccount.com Roll
vulkan-deps from 0dbc05833984 to 1c3b39ad6dc0 (3 revisions)
2025-06-05 syoussefi@google.com Replace bug ids with mapped ids in the
new issue tracker
2025-06-05
recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com
Roll recipe dependencies (trivial).
2025-06-05 bungeman@google.com Revert "[graphite] Use HW blends for
kPlus on unorm texture formats"
2025-06-05 bungeman@google.com Remove support for iOS12
2025-06-05 aswolfers@google.com Revert "Support GL texture for BGRA8
format"
2025-06-05 thomsmit@google.com [graphite] Fix clamping bug on Intel UHD
630.
2025-06-05 thomsmit@google.com [graphite] Disable
DynamicVerticesPaddingTest
2025-06-05 nicolettep@google.com Recommend persistent default install
location for Android NDK
2025-06-05 danieldilan@google.com Revert "[png] Simplify extra endian
transform for SkPngEncode"
2025-06-05 danieldilan@google.com Implement drawCoverageMask for
SkBitmapDevice
2025-06-05 syoussefi@google.com Fix resource loading in Android apks
2025-06-05 borenet@google.com [infra] Add jobs for MacOS 11
2025-06-05 mike@reedtribe.org Use SkSpan in pathbuilder API
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 brettos@google.com ,chinmaygarde@google.com,kjlubick@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
2025-06-06 19:49:35 +00:00
Victor Sanni
b5c1bbef58
Align persistent nav bar leading widget ( #170095 )
...
| Before | After |
| --- | --- |
| <img width="381" alt="before leading"
src="https://github.com/user-attachments/assets/ffd22324-75a4-4ff8-a06c-87f9148c198c "
/> | <img width="381" alt="after leading"
src="https://github.com/user-attachments/assets/36a1cd49-856b-462f-b321-6a016ffed382 "
/> |
Fixes [CupertinoNavigationBar leading is too
high](https://github.com/flutter/flutter/issues/18536 )
2025-06-06 19:18:19 +00:00
Kevin Moore
8a41339418
[engine/web] Migrate many things to switch expressions ( #170096 )
2025-06-06 19:10:51 +00:00
auto-submit[bot]
c958e8313c
Reverts "Lazy paths and frame object arenas ( #168996 )" ( #170164 )
...
<!-- start_original_pr_link -->
Reverts: flutter/flutter#168996
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: zanderso
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: Failing in post submit on
web_long_running_tests_3_5
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: eyebrowsoffire
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {mdebbar}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
The lifecycle of `Path` objects are currently not managed by the user.
That is to say, there is no `dispose` method on path objects and
therefore no explicit way to detect when the user is done with the path
object and the native-side object can be exposed. As of right now, we
use `FinalizationRegistry` to clean up the native-side objects when the
dart-side objects are garbage collected. However, this has a number of
issues:
* Adding objects to the finalization registry actually ends up
prolonging their lifetime in V8, since the V8 garbage collector will
only collect them in a major GC and not a minor GC once they are
registered with the finalization registry. See the following Chrome bug:
https://issues.chromium.org/issues/340777103
* We can run into OOM issues where the linear memory of canvaskit/skwasm
exceeds 2GB if the collection of paths go on too long.
* Even if the paths do get collected by the GC, they often happen
infrequently enough that paths over many frames have accumulated and are
being collected all at once. This gap can often be dozens or hundreds of
frames long, and when collection does occur it is freeing a lot of paths
at once, which causes a janky frame. I have seen this take upwards of
800ms on my M1 Macbook Pro.
There are some more details in
https://github.com/flutter/flutter/issues/153678
This PR alleviates this issue by creating a `LazyPath` object. This
object is added to an arena that explicitly collects the underlying
native objects at the end of each frame. The object also tracks the API
calls made to it so that if it is actually used across a frame boundary
that we can recreate the native object if it was freed.
Running our benchmarks, this has a non-trivial performance cost to
building and using these paths (30-50% in a microbenchmark, 3-6% in a
broader full app benchmark). However, as a team we've decided that this
cost is worth it to avoid OOM issues as well as the non-deterministic
jank associated with large collections of these objects.
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-06-06 17:58:16 +00:00
Daco Harkes
894fbf6d53
[native assets] Roll dependencies ( #169920 )
...
Roll to deps published today.
2025-06-06 17:30:54 +00:00
Mouad Debbar
48c6ef247d
Make DDC tests run on linux only ( #170155 )
...
I had previously allowed these tests to run on Mac and Windows
(https://github.com/flutter/flutter/pull/169860 ). But it turns out they
are flaky on those platforms too. So let's mark them back as linux-only.
2025-06-06 17:16:11 +00:00
Jenn Magder
d3170f4a96
Remove deprecated Objective-C iOS app create template ( #169547 )
...
Remove Objective-C template for new apps. Existing apps won't be
impacted.
Keep Objective-C templates for plugins, though their example apps will
be Swift instead. See
https://github.com/flutter/flutter/issues/148586#issuecomment-2121323676
Move `templates/app/ios-swift.tmpl` to `templates/app/ios.tmpl`.
Fixes https://github.com/flutter/flutter/issues/148586
## 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] 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
[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
2025-06-06 16:58:09 +00:00
Jackson Gardner
a11524896e
Lazy paths and frame object arenas ( #168996 )
...
The lifecycle of `Path` objects are currently not managed by the user.
That is to say, there is no `dispose` method on path objects and
therefore no explicit way to detect when the user is done with the path
object and the native-side object can be exposed. As of right now, we
use `FinalizationRegistry` to clean up the native-side objects when the
dart-side objects are garbage collected. However, this has a number of
issues:
* Adding objects to the finalization registry actually ends up
prolonging their lifetime in V8, since the V8 garbage collector will
only collect them in a major GC and not a minor GC once they are
registered with the finalization registry. See the following Chrome bug:
https://issues.chromium.org/issues/340777103
* We can run into OOM issues where the linear memory of canvaskit/skwasm
exceeds 2GB if the collection of paths go on too long.
* Even if the paths do get collected by the GC, they often happen
infrequently enough that paths over many frames have accumulated and are
being collected all at once. This gap can often be dozens or hundreds of
frames long, and when collection does occur it is freeing a lot of paths
at once, which causes a janky frame. I have seen this take upwards of
800ms on my M1 Macbook Pro.
There are some more details in
https://github.com/flutter/flutter/issues/153678
This PR alleviates this issue by creating a `LazyPath` object. This
object is added to an arena that explicitly collects the underlying
native objects at the end of each frame. The object also tracks the API
calls made to it so that if it is actually used across a frame boundary
that we can recreate the native object if it was freed.
Running our benchmarks, this has a non-trivial performance cost to
building and using these paths (30-50% in a microbenchmark, 3-6% in a
broader full app benchmark). However, as a team we've decided that this
cost is worth it to avoid OOM issues as well as the non-deterministic
jank associated with large collections of these objects.
2025-06-06 16:27:08 +00:00
Kostia Sokolovskyi
ed275039e1
[web] Allow overriding platformViewRegistry for testing. ( #170144 )
...
Closes https://github.com/flutter/flutter/issues/170143
### Description
- Adds `debugOverridePlatformViewRegistry` function to allow
`platformViewRegistry` overriding in tests
- Adds tests for the new functionality
## 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] 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
[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
2025-06-06 16:14:19 +00:00
engine-flutter-autoroll
4ffa9852f9
Roll Packages from ecba2dbf07ee to 974f1522ee03 (6 revisions) ( #170146 )
...
ecba2dbf07...974f1522ee
2025-06-06 robert.odrowaz@leancode.pl [camera_avfoundation]
Implementation swift migration - part 4 (flutter/packages#9219 )
2025-06-05 stevenmagdy92@gmail.com [go_router_builder] Use a mixin
instead of an extension (flutter/packages#9275 )
2025-06-05 stuartmorgan@google.com Roll Flutter master to 8b18dde7
(flutter/packages#9387 )
2025-06-05 10687576+bparrishMines@users.noreply.github.com
[camera_android_camerax] Fixes premature garbage collection of native
objects when app is under memory pressure (flutter/packages#9287 )
2025-06-05 22373191+Hari-07@users.noreply.github.com
[google_maps_flutter_platform_interface] Add a new zIndexInt param to
marker and deprecate zIndex (flutter/packages#9372 )
2025-06-05 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Java style improvements (flutter/packages#9234 )
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com 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
2025-06-06 15:42:25 +00:00
auto-submit[bot]
09405e87d8
Reverts "Add caching to the tool test workflow ( #169858 )" ( #170100 )
...
<!-- start_original_pr_link -->
Reverts: flutter/flutter#169858
<!-- end_original_pr_link -->
<!-- start_initiating_author -->
Initiated by: jtmcdole
<!-- end_initiating_author -->
<!-- start_revert_reason -->
Reason for reverting: https://github.com/flutter/flutter/issues/170099
Apparently the cache isn't restored correctly?
<!-- end_revert_reason -->
<!-- start_original_pr_author -->
Original PR Author: zanderso
<!-- end_original_pr_author -->
<!-- start_reviewers -->
Reviewed By: {jtmcdole}
<!-- end_reviewers -->
<!-- start_revert_body -->
This change reverts the following previous change:
No description provided.
<!-- end_revert_body -->
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2025-06-05 23:40:26 +00:00
Koji Wakamiya
de80553174
Remove AlarmClock from BrowserImageDecoder ( #161481 )
...
PR derived from https://github.com/flutter/flutter/pull/159945 .
Since `ui.Codec` is now disposed of externally, the close processing of
the resource by AlarmClock is no longer necessary. This fix works in
combination with #159945 and is stabilized by #161132 .
## 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].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] 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].
- [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
[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: Mouad Debbar <mdebbar@google.com>
2025-06-05 22:07:24 +00:00
Zachary Anderson
317be1f681
Add caching to the tool test workflow ( #169858 )
...
Co-authored-by: John "codefu" McDole <codefu@google.com>
2025-06-05 22:03:56 +00:00
Kate Lovett
cfc9e3e1be
Update triage page ( #170084 )
...
This PR reflects the rolling of go_router triage into framework triage:
- removes go_router team from triage docs
- Updates the framework triage links
- The incoming issue link was broken, pulling the wrong subset due to
`p: go_router`
- Added PR link for framework owned PRs in flutter/packages
I am following up with the triage team to remove the team-go_router
labels and reroute them to team-framework.
## 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].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] 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].
- [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
[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
2025-06-05 20:31:24 +00:00
Koji Wakamiya
2c9d898e2f
[Engine][Web] Fixed fallback font loading process ( #166212 )
...
fix https://github.com/flutter/flutter/issues/165299
Fixes a problem where the drawing does not render as expected if the
value of `maxCodePointsCovered` is greater for an unsuitable language
than for a font suitable for that language.
| before | after |
| :---: | :---: |
| <img
src="https://github.com/user-attachments/assets/137dc021-31ce-41a7-b7a9-843abd88b738 "
width="300" /> | <img
src="https://github.com/user-attachments/assets/fbfcc982-623a-4fe9-87a6-bf5bd7c88ebd "
width="300" /> |
## 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] 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
[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: Mouad Debbar <mouad.debbar@gmail.com>
2025-06-05 19:58:50 +00:00
Srujan Gaddam
7f26571eb1
Add connectedApps listener before we launch the browser ( #170010 )
...
Related to https://github.com/flutter/flutter/issues/169574
There's a race condition where we currently might listen for the
connected app after the stream has already sent the app. That would make
the app wait forever. This avoids that by registering the listener
before the browser even launches to make sure that the stream can't
possibly send a connected app before we get to listen to it.
## 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 `///`).
- [ ] 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 <mouad.debbar@gmail.com>
2025-06-05 17:24:08 +00:00