Read FLTEnableWideGamut from Dart bundle#186509
Conversation
There was a problem hiding this comment.
Code Review
This pull request introduces the FLTEnableWideGamutFromBundle function to retrieve the wide gamut setting from a provided bundle, falling back to the main bundle if necessary, and updates the default settings logic to utilize this function. Unit tests were added to verify the lookup and fallback behavior. Feedback includes adding documentation and nullability annotations to the new function for consistency and style guide compliance, as well as replacing partial mocks of the main bundle singleton with class mocks in tests to prevent side effects.
f64919c to
aec841e
Compare
aec841e to
8050fa7
Compare
|
CC @LongCatIsLooong from triage |
|
Thank you for your contribution. It looks like the tests are failing. Before we review the PR further, please see what you can do to resolve the test failures. If you are unsure how to proceed, please reach out for help on the #hackers-new channel. |
|
Thanks. The only failing check I can see publicly is |
flutter/flutter@54e199a...701665b 2026-06-02 [email protected] Roll Skia from c97e939eb5c9 to 279b17fe9fc1 (16 revisions) (flutter/flutter#187425) 2026-06-02 [email protected] [Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR) (flutter/flutter#187281) 2026-06-02 [email protected] [Impeller] Allow attaching specific texture mip levels and slices (flutter/flutter#187066) 2026-06-02 [email protected] [Impeller] Fix GLES command submission status before context is current (flutter/flutter#187293) 2026-06-02 [email protected] Roll Dart SDK from 3cdc25e8ffe9 to d39850bf4a01 (9 revisions) (flutter/flutter#187409) 2026-06-01 [email protected] [Impeller] Use glVertexAttribDivisor on GLES3 and glVertexAttribDivisorEXT on GLES2 with the extension (flutter/flutter#187313) 2026-06-01 [email protected] [Android] Add Javadoc documentation to TextInputChannel (flutter/flutter#186018) 2026-06-01 [email protected] Read FLTEnableWideGamut from Dart bundle (flutter/flutter#186509) 2026-06-01 [email protected] [flutter_tools] Remove obsolete AndroidX console warning during Gradle builds (flutter/flutter#186077) 2026-06-01 [email protected] [skia] Update gni file list name hsw -> ml3 (flutter/flutter#184892) 2026-06-01 [email protected] [web] Always sync slider input attrs regardless of gesture mode (flutter/flutter#187217) 2026-06-01 [email protected] [flutter_driver] Don't throw when stderr is unavailable on web (flutter/flutter#187190) 2026-06-01 [email protected] Remove unused code in `FlutterPluginUtils.kt` (flutter/flutter#187012) 2026-06-01 [email protected] [flutter_tools] Fix `flutter drive --chrome-binary` being ignored on web (flutter/flutter#185481) 2026-06-01 [email protected] Eager failure when building and no XCode build settings (flutter/flutter#184726) 2026-06-01 [email protected] Fix Windows Korean IME caret position during composition (flutter/flutter#186353) 2026-06-01 [email protected] iOS: update provisioning profile for 2026-2027 cert (flutter/flutter#187280) 2026-06-01 [email protected] Sync CHANGELOG.md from stable (flutter/flutter#187380) 2026-06-01 [email protected] Reland "Move dart-lang/ai to a top level third party dependency in engine (#187268)" (flutter/flutter#187378) 2026-06-01 [email protected] Add vector_math to Framework triage (flutter/flutter#187389) 2026-06-01 [email protected] Roll Packages from e930ced to f5d50ca (4 revisions) (flutter/flutter#187381) 2026-06-01 [email protected] [flutter_tools] Reject archive entries that escape into a sibling directory by name prefix (#185794) (flutter/flutter#186647) 2026-06-01 [email protected] [flutter_tools] Fix widget_preview unawaited async write race condition (flutter/flutter#187177) 2026-06-01 [email protected] Roll pub packages (flutter/flutter#187375) 2026-06-01 [email protected] Roll Skia from 0aee4675e0ad to c97e939eb5c9 (7 revisions) (flutter/flutter#187371) 2026-06-01 [email protected] docs: Stack.clipBehavior = Clip.none does not extend hit testing (#160787) (flutter/flutter#186643) 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 Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
…r#11822) flutter/flutter@54e199a...701665b 2026-06-02 [email protected] Roll Skia from c97e939eb5c9 to 279b17fe9fc1 (16 revisions) (flutter/flutter#187425) 2026-06-02 [email protected] [Flutter GPU] Add block-compressed texture format support (BC, ETC2, ASTC LDR) (flutter/flutter#187281) 2026-06-02 [email protected] [Impeller] Allow attaching specific texture mip levels and slices (flutter/flutter#187066) 2026-06-02 [email protected] [Impeller] Fix GLES command submission status before context is current (flutter/flutter#187293) 2026-06-02 [email protected] Roll Dart SDK from 3cdc25e8ffe9 to d39850bf4a01 (9 revisions) (flutter/flutter#187409) 2026-06-01 [email protected] [Impeller] Use glVertexAttribDivisor on GLES3 and glVertexAttribDivisorEXT on GLES2 with the extension (flutter/flutter#187313) 2026-06-01 [email protected] [Android] Add Javadoc documentation to TextInputChannel (flutter/flutter#186018) 2026-06-01 [email protected] Read FLTEnableWideGamut from Dart bundle (flutter/flutter#186509) 2026-06-01 [email protected] [flutter_tools] Remove obsolete AndroidX console warning during Gradle builds (flutter/flutter#186077) 2026-06-01 [email protected] [skia] Update gni file list name hsw -> ml3 (flutter/flutter#184892) 2026-06-01 [email protected] [web] Always sync slider input attrs regardless of gesture mode (flutter/flutter#187217) 2026-06-01 [email protected] [flutter_driver] Don't throw when stderr is unavailable on web (flutter/flutter#187190) 2026-06-01 [email protected] Remove unused code in `FlutterPluginUtils.kt` (flutter/flutter#187012) 2026-06-01 [email protected] [flutter_tools] Fix `flutter drive --chrome-binary` being ignored on web (flutter/flutter#185481) 2026-06-01 [email protected] Eager failure when building and no XCode build settings (flutter/flutter#184726) 2026-06-01 [email protected] Fix Windows Korean IME caret position during composition (flutter/flutter#186353) 2026-06-01 [email protected] iOS: update provisioning profile for 2026-2027 cert (flutter/flutter#187280) 2026-06-01 [email protected] Sync CHANGELOG.md from stable (flutter/flutter#187380) 2026-06-01 [email protected] Reland "Move dart-lang/ai to a top level third party dependency in engine (#187268)" (flutter/flutter#187378) 2026-06-01 [email protected] Add vector_math to Framework triage (flutter/flutter#187389) 2026-06-01 [email protected] Roll Packages from e930ced to f5d50ca (4 revisions) (flutter/flutter#187381) 2026-06-01 [email protected] [flutter_tools] Reject archive entries that escape into a sibling directory by name prefix (#185794) (flutter/flutter#186647) 2026-06-01 [email protected] [flutter_tools] Fix widget_preview unawaited async write race condition (flutter/flutter#187177) 2026-06-01 [email protected] Roll pub packages (flutter/flutter#187375) 2026-06-01 [email protected] Roll Skia from 0aee4675e0ad to c97e939eb5c9 (7 revisions) (flutter/flutter#187371) 2026-06-01 [email protected] docs: Stack.clipBehavior = Clip.none does not extend hit testing (#160787) (flutter/flutter#186643) 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 Please CC [email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
Issue: Fixes flutter#135186. `FLTDefaultSettingsForBundle` only read `FLTEnableWideGamut` from the main/application bundle, so add-to-app projects could not set the flag on the Dart bundle passed to `FlutterDartProject`. Fix: Look up `FLTEnableWideGamut` from the supplied bundle first, then fall back to the main bundle, matching the precedence used for bundle-scoped settings. The lookup is factored into a small internal helper so the behavior can be tested independently of simulator/device wide-gamut hardware support. Tests: - `git diff --check` - Not run locally: `engine/src/flutter/bin/et format` and `engine/src/flutter/bin/et test --config ios_debug_sim_unopt //flutter/shell/platform/darwin/ios:ios_test_flutter`, because this checkout reports `You must run 'gclient sync -D' before using this tool.` Risk: Low. The patch changes only the iOS engine settings lookup for `FLTEnableWideGamut` and adds focused unit coverage for bundle precedence and main-bundle fallback. Existing default behavior is unchanged when neither bundle defines the key. Co-authored-by: LongCatIsLooong <[email protected]>
Issue: Fixes #135186.
FLTDefaultSettingsForBundleonly readFLTEnableWideGamutfrom the main/application bundle, so add-to-app projects could not set the flag on the Dart bundle passed toFlutterDartProject.Fix: Look up
FLTEnableWideGamutfrom the supplied bundle first, then fall back to the main bundle, matching the precedence used for bundle-scoped settings. The lookup is factored into a small internal helper so the behavior can be tested independently of simulator/device wide-gamut hardware support.Tests:
git diff --checkengine/src/flutter/bin/et formatandengine/src/flutter/bin/et test --config ios_debug_sim_unopt //flutter/shell/platform/darwin/ios:ios_test_flutter, because this checkout reportsYou must run 'gclient sync -D' before using this tool.Risk: Low. The patch changes only the iOS engine settings lookup for
FLTEnableWideGamutand adds focused unit coverage for bundle precedence and main-bundle fallback. Existing default behavior is unchanged when neither bundle defines the key.