449 Commits

Author SHA1 Message Date
Jackson Gardner
76caabd2c4 Reland (x2) "Output .js files as ES6 modules. (flutter#52023)" (flutter/engine#53718)
Second attempt to reland https://github.com/flutter/engine/pull/52023

Fixes since the previous reland attempt:
* We need to pass the skwasm main JS URI when loading the module so that it can pass that along to the worker. Since the worker uses the workaround to allow a cross script worker, it has trouble locating the main JS URI in relation to itself in a way that actually works for dynamic imports, so passing it along fixes that issue.
* Some of the Google3 tests relied on the relative default canvaskit path. Dynamic module imports seems to not handle relative paths the way we expect, so we do our own URL resolution using the URL constructor before passing it into the dynamic import API. Also cleaned up some of the other relative pathing stuff that we do around the base URI. in flutter.js
2024-07-10 16:19:28 +00:00
Jenn Magder
e517aa1ce2 Run safari-dart2js-html tests on macOS 13 (flutter/engine#53497)
https://github.com/flutter/engine/pull/53402 didn't work. Run these Safari tests on macOS 13 only until it can be fixed for macOS 14.
2024-06-21 20:50:57 +00:00
Jason Simmons
50586aac61 Manual roll of Dart SDK from e90b0a53e058 to dca20ab646c5 (flutter/engine#53410)
Updates dart2wasm invocation to add the --enable-experimental-wasm-interop flag.

(see https://dart.googlesource.com/sdk/+/6f21d19b02eb82c0b44b01dbdb21ec7a17e17120)
2024-06-15 00:52:56 +00:00
Jackson Gardner
5dd33ba48e Hack to prevent Safari from being backgrounded during unit tests. (flutter/engine#53402)
Safari actually pauses execution of our unit tests if the window becomes occluded or non-visible. As such, I am inserting this egregious hack which just makes the Safari window frontmost every 2 seconds so that the unit tests don't get stalled out.

This should fix https://github.com/flutter/flutter/issues/150023
2024-06-14 20:18:32 +00:00
Victoria Ashworth
91d74de0c6 Temporarily run Linux linux_web_engine Mac tests on Mac-13 only (flutter/engine#53318)
Temporary solution for https://github.com/flutter/flutter/issues/150023

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-10 23:11:17 +00:00
Jackson Gardner
7af7be3e5d Update Chrome to 125. (flutter/engine#53282)
Just updating Chrome For Testing because we're about six versions out of date now.
2024-06-07 22:02:21 +00:00
Jackson Gardner
24ca8a9440 Fixes a few issues in flutter_js (flutter/engine#53231)
This addresses a couple things:
https://github.com/flutter/flutter/issues/147610 (Treat `auto` renderer properly)
https://github.com/flutter/flutter/issues/149443 (Add an entrypoint base url config option)

This also adds a `useLocalCanvasKit` configuration option on the build config, which the flutter tool can use to fix https://github.com/flutter/flutter/issues/148713
2024-06-07 20:35:12 +00:00
Victoria Ashworth
a7057a3f7a Run tests on macOS 13 or 14 (flutter/engine#53252)
In preparation of upgrading our fleet to macOS 14, allow tests to run on either macOS 13 or 14.

Fixes https://github.com/flutter/flutter/issues/148879.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-06 17:40:15 +00:00
Yegor
6dc99dce8a [web] clean up dynamic calls, remove always_specify_types (flutter/engine#53228)
Remove the `avoid_dynamic_calls` exception in `web_ui`, and clean up all dynamic calls.
2024-06-06 02:16:55 +00:00
Emmanuel Ferdman
6bee81e9b6 [web] update version-lock file location (flutter/engine#52842)
PR #47573 renamed the version-lock file from `browser_lock.yaml` to `package_lock.yaml`. This PR adjusts sources to changes.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-04 17:50:04 +00:00
David Iglesias
ac58f0a9c2 [web] Add Ethiopic font fallback. (flutter/engine#53180)
Adds `Noto Sans Ethiopic` font as a fallback so Flutter web can render text in ethiopic scripts (for languages like Tigrinya or Amharic)

## Issues

* Fixes https://github.com/flutter/flutter/issues/149616

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-06-03 23:24:50 +00:00
David Iglesias
63260fb965 [web] Adds Noto Serif Tibetan fallback font. (flutter/engine#52971)
This PR adds the "Noto Serif Tibetan" fallback font to Flutter Web, so it can render Dzongkha, and other languages in Tibetan script.

(In order to add this fallback font, an automated script is run which updates the versions and glyphs of other fallback fonts at the same time)

(Bundle uploaded to CIPD)

## Issues

* Fixes https://github.com/flutter/flutter/issues/148797

## Testing

* Added unit test for font resolution with sample text
* Manually, in localhost, using the sample Dzongkha test from the Noto site:

<img width="959" alt="Screenshot 2024-05-21 at 2 01 19 PM" src="https://github.com/flutter/engine/assets/1255594/3f2db34d-c004-4b90-9fda-62a9cff817f9">

```
དེ་ཡང་ འཛམ་གླིང་ནང་གི་ཞི་བདེ་དང་དྲང་ཁྲིམས། དེ་ལས་དལ་དབང་ཚུ་གི་གཞི་འགྱམ་གཙོ་བོ་དེ་
```

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-05-21 22:22:26 +00:00
Jason Simmons
6a30864930 Manual roll of Dart SDK from 28e8e94f9e10 to 0b87dfedea5f (flutter/engine#52914)
The invocation of dart2wasm had to be updated because the dart-sdk flag was removed.

(see https://dart.googlesource.com/sdk/+/328ae02be189311aa26e500b8f4839e90362c20b)
2024-05-18 14:36:26 +00:00
Zachary Anderson
9404f5112e Revert "Prevent solo: true from being committed" (flutter/engine#51858)
Reverts flutter/engine#51712

Reason for revert: As discussed in
https://github.com/flutter/flutter/issues/143312, and in
https://discord.com/channels/608014603317936148/1224499330824802375. I
apologize if this seems hasty and not fully justified, but it is
important that the engine repo follows policies like this to make it
easier for our various teams to work together.
2024-04-02 20:19:12 -07:00
Mouad Debbar
b0300e2fc2 Prevent solo: true from being committed (flutter/engine#51712)
At some point, we inherited a change from the repo-level `analysis_options.yaml` that [allowed deprecated](https://github.com/flutter/engine/pull/50575) members to be used. We rely on that analyzer error to prevent `solo: true` from being committed in our tests ([example](c935c3ba36/lib/web_ui/test/ui/line_metrics_test.dart (L179)) of one that slipped recently).

This PR overrides the `deprecated_member_use` error to enable it inside the web engine.
2024-03-28 19:31:14 +00:00
Jackson Gardner
7aa5194894 Fix slash in chromium path. (flutter/engine#51527)
The previous code here introduced an extra slash. Our test platform was tolerant to this extra slash and essentially ignored it, but this probably won't work for most hosting solutions. I went ahead and added some extra validation to the URL when fetching so that we won't serve URLs that have the double slash in their path, in order to catch this if it regresses again.
2024-03-19 20:05:26 +00:00
Zachary Anderson
66fa3dd66c Pass some missing --disable-dart-dev and --suppress-analytics to dart (flutter/engine#51473) 2024-03-17 08:46:11 -07:00
Matan Lurey
31b0fb1ea3 Remove or replaced unused or duplicate code in SkiaGoldClient. (flutter/engine#51399)
- `get isAvailable` -> `SkiaGoldClient.isAvailable()`
- `get isLuciEnv` -> `SkiaGoldClient.isLuciEnv()`
- Remove unused `SkiaGoldHttpOverrides`
2024-03-14 08:45:34 -07:00
Jackson Gardner
f646f9a40c Reland "Move emscripten out of the buildroot into the flutter repo" (flutter/engine#51353)
This is a reland of the change moving the emsdk out of the buildroot, but without the removal of `web_dependencies`, since that removal was causing issues with the rollers.
2024-03-12 18:32:08 +00:00
David Iglesias
e62c718145 [web] Split initialization of the _flutter namespace and loader object. (flutter/engine#51294)
This makes it possible to more flexibly compose `{{flutter_js}}` and `{{flutter_build_options}}` in @eyebrowsoffire's [bootstrapping improvements PR](https://github.com/flutter/flutter/pull/144434).

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-11 23:21:17 +00:00
auto-submit[bot]
0c2c540e72 Reverts "Move emscripten out of the buildroot into the flutter repo. (#51299)" (flutter/engine#51330)
Reverts: flutter/engine#51299
Initiated by: zanderso
Reason for reverting: Blocking the autoroller
Original PR Author: eyebrowsoffire

Reviewed By: {matanlurey}

This change reverts the following previous change:
This migrates the emscripten toolchain into the flutter repo, as well as the fonts for web unit tests. Also, removed the `web_dependencies` thing which is no longer used.

This fixes https://github.com/flutter/flutter/issues/143332

Depends on a buildroot change here: https://github.com/flutter/buildroot/pull/833
2024-03-11 20:39:25 +00:00
Jackson Gardner
048ee12c07 Move emscripten out of the buildroot into the flutter repo. (flutter/engine#51299)
This migrates the emscripten toolchain into the flutter repo, as well as the fonts for web unit tests. Also, removed the `web_dependencies` thing which is no longer used.

This fixes https://github.com/flutter/flutter/issues/143332

Depends on a buildroot change here: https://github.com/flutter/buildroot/pull/833
2024-03-11 17:24:19 +00:00
Jackson Gardner
b8d198edc2 Temporarily disable goldens for Safari. (flutter/engine#50724)
Safari is producing too many golden diffs. See https://github.com/flutter/flutter/issues/143591. This disables them for now to stop the noise, but we should look into a longer term solution.
2024-02-16 21:14:10 +00:00
Michael Goderbauer
da30adfc6f Fix implementation imports outside of lib (flutter/engine#50727)
Work towards https://github.com/dart-lang/linter/issues/4859

There are libraries outside a `lib/` directory, which violate `implementation_imports`.
2024-02-16 20:19:33 +00:00
Matan Lurey
748e3f8e0b Remove legacy references to Cirrus and suspected dead-code. (flutter/engine#50442) 2024-02-10 22:08:23 +00:00
Jackson Gardner
e9e609ee85 Refactor flutter.js to do dart2wasm bootstrapping and CanvasKit/Skwasm preloading. (flutter/engine#49037)
This PR makes some major revisions to our flutter.js bootstrapper.
* Modularize flutter.js into multiple files to make it a little simpler to manage from source code. They are still bundled into a single .js file by esbuild.
* Added a `types.d.ts` file which contains declarations of the types of some of the objects used in the flutter.js API
* Deprecated the old `FlutterLoader.loadEntrypoint` API and added a new function simply called `FlutterLoader.load`, which has a few more capabilities:
  -  A build tool can inject a build config, that may describe multiple builds that `FlutterLoader.load` can attempt to use. It will use the first one that is compatible with the browser environment and the user's configuration.
  - It can also load wasm flutter apps.
  - It also pre-loads and instantiates CanvasKit (and Skwasm) as necessary depending on the build configuration.
  - `FlutterLoader.load` also immediately takes a flutter configuration object. If an `onEntrypointLoaded` callback is not provided by the user, it just does the expected thing and initializes the engine and immediately starts the app, passing the configuration along as needed.
 * `flutter.js` has the engine hash built into it now, which allows it to ascertain the correct CDN URLs for both CanvasKit and Skwasm.
2024-01-10 00:17:32 +00:00
Victoria Ashworth
1872d4bb32 Allow tests to run on macOS 13 (flutter/engine#48894)
Update macOS web tests to run on macOS 13 and arm64. Changed so test is consistent OS and architecture, which will cause less discrepancy in goldens.

Fixes https://github.com/flutter/flutter/issues/139924.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-13 19:57:09 +00:00
Victoria Ashworth
31210e4a38 Retry when safaridriver fails (flutter/engine#48791)
Starting `safaridriver` is flakey sometimes on macOS 13. It will occasionally error with "Operation not permitted". As a workaround, if it fails with that message, retry starting `safaridriver`.

Fixes https://github.com/flutter/flutter/issues/136972.

Example of fix on macOS 13 bot: https://ci.chromium.org/ui/p/flutter/builders/try/Mac%20Engine%20Drone/564967/overview
Note: The test is still failing due to https://github.com/flutter/flutter/issues/136279, but you can see it first has error "Operation not permitted" and retries and connects on second attempt.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-12-07 21:55:06 +00:00
Yegor
d1ed887379 [web] remove ulimit and add -i to felt (flutter/engine#47414)
The ulimit logic has been failing for me for months now and felt still
ran fine. I think we don't need it any more.

Also add the `-i` option for incremental runs of `felt`. It causes felt
to start faster because it doesn't run `pub get`. In the future, we can
also run felt from the snapshot for even faster start-up.
2023-12-01 21:06:49 -08:00
Jackson Gardner
5ea8187703 Use flutter.js in the actual test harness. (flutter/engine#47670)
Run the JS unit tests with flutter.js.

I am going to leave the dart2wasm tests doing the old `window.flutterConfiguration` setup for now, until I actually get dart2wasm/dart2js switching logic built into flutter.js itself.
2023-11-15 00:50:27 +00:00
Zachary Anderson
ef11fee4ed Move Skia to //flutter/third_party/skia (flutter/engine#47913)
As part of eliminating the Flutter buildroot
(https://github.com/flutter/flutter/issues/67373), we are moving all
third-party dependencies from //third_party to //flutter/third_party.

Once all third-party dependencies have been migrated, tooling and config
will be moved and the buildroot will be eliminated altogether.

To land this PR, we'll need to:
1. Stop the Skia -> Engine autoroller
1. Update the license goldens in this PR.
1. Update
https://skia.googlesource.com/skia-autoroll-internal-config/+/refs/heads/main/skia-infra-public/skia-flutter.cfg#55
1. Land this PR.
1. Re-start the Skia -> Engine autoroller
2023-11-13 20:04:35 -08:00
Jackson Gardner
9549a0fbe2 Bundle flutter.js via esbuild (flutter/engine#47573)
* Roll esbuild as a CIPD package along with the browser roller. I renamed `browser_lock`/`browser_roller` etc to `package_lock` and `package_roller` since it will handle more than just browsers now.
* Download the esbuild CIPD package via DEPS.
* Have a build rule for running esbuild on some JavaScript or TypeScript
* Bundle and minify `flutter.js` using esbuild.
* Include in `flutter_web_sdk` the original `flutter.js` source, the minified `flutter.js`, and a sourcemap file to map between thnm.
* Also slightly changed the structure to put the `flutter.js` stuff in `flutter_web_sdk/flutter_js` instead of just at the root level of `flutter_web_sdk`. This should be fine because I haven't merged the change that has the flutter tool consume this yet.
2023-11-03 20:24:29 +00:00
Kate Lovett
285a6acf76 Bump goldctl (flutter/engine#47391)
Related to https://github.com/flutter/flutter/issues/137177

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-10-31 16:45:14 +00:00
Nate Bosch
fbb4b6abd9 Update to the latest package:test (flutter/engine#46592)
- Update the pinned version of `test` to the latest published.
- Add support for reading the `source.location` of messages to the JS
  interop library.
- Update `host.dart` to support the new communication pattern with the
  test frame. See https://github.com/dart-lang/test/issues/2065
- Use `Runtime.edge` for the edge browser. We may deprecate or remove
  the constant. Edge is a more appropriate value for this usage.
2023-10-23 19:08:10 +00:00
Victoria Ashworth
ebe2cf39ca Only run web mac tests on macOS 12 (flutter/engine#46965)
Web Mac tests currently fail on macOS 13 (https://github.com/flutter/flutter/issues/136274, https://github.com/flutter/flutter/issues/136279) so we limit CI to only run on macOS 12.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-10-17 14:59:05 +00:00
skia-flutter-autoroll
b5701a2d66 Manual roll Dart SDK from c8143a7c026f to 5844b34768ce (1 revision) (flutter/engine#46909)
Manual roll requested by jacksongardner@google.com

https://dart.googlesource.com/sdk.git/+log/c8143a7c026f..5844b34768ce

2023-10-13 dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com Version 3.3.0-25.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-engine
Please CC dart-vm-team@google.com,jacksongardner@google.com,jsimmons@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter Engine: 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
2023-10-13 21:36:36 +00:00
Jackson Gardner
99de03845c Switch to Chrome For Testing instead of Chromium (flutter/engine#46683)
This switches over to using Chrome for Testing instead of Chromium. This requires some changes from the recipes repo (https://flutter-review.googlesource.com/c/recipes/+/51482) in order to coordinate the change in filestructure on the mac versions.
2023-10-11 21:24:11 +00:00
Daniel Chevalier
94df47fedc [web] Adds Noto Music fallback font (flutter/engine#46720)
Adds `Noto Music` font as a fallback font, and updates DEPS and font definitions after running the font roller script.

### Issues

Fixes: https://github.com/flutter/devtools/issues/6149

----

![](https://media.giphy.com/media/3ohzAv6kdQ4tukSNK8/giphy-downsized.gif)

I used [the developer API](https://developers.google.com/fonts/docs/developer_api?apix_params=%7B%22family%22%3A%5B%22Noto%20Music%22%5D%7D) to make sure the api works with this font.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-10-11 20:46:16 +00:00
Zachary Anderson
0a20e6f0f6 Roll goldctl forward (flutter/engine#46771)
For https://github.com/flutter/flutter/issues/135620
2023-10-11 16:10:05 +00:00
Jackson Gardner
2c58573690 Use dart:_wasm constructs to avoid dependence on WebAssembly.Function (flutter/engine#46388)
Use the newly exposed functionality in `dart:_wasm` to fix up two different hacks we have:
1) When creating an image from an image source, use `wasm:import` instead of `@Native` and pass the image source directly as an externref. (Direct wasm binding instead of a JS interop shim, yay).
2) When binding the surface callback, previously we were wrapping the callback in a JS function, and then using `WebAssembly.Function` to create a wasm function wrapper around that. Now, we can create a `WasmFuncRef` that is a direct reference to a dart function and pass that over. Now there are no intermediary JavaScript layers when skwasm calls back to us, and we no longer are dependent on the type reflection flag in Chrome.

This fixes https://github.com/flutter/flutter/issues/134556
2023-09-29 20:52:36 +00:00
Jackson Gardner
7f3c15c543 Update CI to Chrome 117 (flutter/engine#45842) 2023-09-19 16:27:49 +00:00
Michael Goderbauer
efc22ee283 Enable private field promotion (flutter/engine#45722)
New feature in upcoming Dart 3.2. See https://github.com/dart-lang/language/issues/2020. Feature is enabled by bumping the min SDK version to 3.2.

Part of https://github.com/flutter/flutter/issues/134476.
2023-09-14 21:02:03 +00:00
godofredoc
c9ce9f7fd5 Update webdriver imports. (flutter/engine#45816)
This is to be able to update the webdriver dependency.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-09-14 18:26:42 +00:00
Stephen Adams
182847ec84 [web] More efficient fallback font selection (flutter/engine#44526)
The PR improves the code size and runtime performance of fallback font selection.

### Performance improvements

Initialization of the data structures to support fallback font selection has been moved from creating the FallbackFontManager (first frame) to the first use, i.e. the first frame actually needing a fallback font.

The numbers reported below are for a lightly edited version of the counter demo that appends to the counter about ~300 missing code points that need ~25 fallback fonts to cover the missing code points. Timings taken from a few profiles on my performance workstation.

|  |  Before | After  | 
| --- | ---: | ---: |
| FallbackFontManager() |~100ms | <2ms |
| First need | 0ms | 12ms |
| Subsequent need | 20-30ms | <1ms |

### Size improvements

|  |  Before | After  | Δ |
| --- | ---: | ---: | ---: |
| main.dart.js | 1586405 | 1477319 | -109086 (-6.87%) |
| brotli -9 | 427304 | 401611 | -25693 (-6.01%) |

### Algorithm notes

#### Startup

The old algorithm built an interval tree from the code point ranges of the ~140 fallback fonts and uses the interval tree to build a list of fonts that support each missing code point. The new algorithm uses a binary search map that directly produces the list of fonts. There are fewer binary search ranges (~22k) than the aggregate ranges for all the fonts (~26k).
Most of the startup time gain comes from using a data unpacks directly into a useful form rather than needing processing to build an interval tree (~12ms vs ~100ms).

#### Running

The runtime for font selection is greatly improved for several reasons

- The code point space is partitioned into components so that code point counting can be batched.
- When a font is selected, the counts are updated incrementally rather than being recomputed.
- The counts are held in fields of the NotoFont and component objects rather than in Maps or Sets.

Batching, incremental update and avoiding hash tables are roughly multiplicative in effect.

## Issues

- https://github.com/flutter/flutter/issues/131440

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-08-31 22:42:20 +00:00
Jackson Gardner
69b2747ca3 Skwasm platform views (flutter/engine#43011)
This implements platform views in Skwasm. There are a number of substantial changes rolled up in this change, including:
* Reworked the rendering system to use multiple canvases with a single WebGL context, via ImageBitmap rendering.
* Reworked our object management and bindings to use the `__externref_t` construct in C code.
* Upgraded emscripten to a much newer version
* Generified skwasm's scene builder to be able to work with any renderer that can produce `ImageBitmap` objects from Pictures, and whose `Canvas`, `Picture` and `ImageFilter` objects conform to `SceneCanvas`/`ScenePicture`/`SceneImageFilter`

For platform views themselves, most stuff is implemented except for clipping. I plan on doing that in a subsequent change.
2023-08-28 16:29:14 +00:00
Ian Hickson
9881f4846b Make web tests start with an empty title (flutter/engine#43846)
Fixes https://github.com/flutter/flutter/issues/39159
2023-08-23 03:22:59 +00:00
Matan Lurey
ee235383f8 Update web_ui/** to explicitly pass --local-engine-host to the flutter tool. (flutter/engine#44613)
Partial work towards https://github.com/flutter/flutter/issues/132245.
2023-08-14 21:09:22 +00:00
Mouad Debbar
dc0147d3d3 [web] Silence pub get when it's successful (flutter/engine#44445)
In the spirit of keeping the happy path's output as clean as possible, let's hide the many lines printed by `pub get` even when it's successful.

If `pub get` fails, its output will be printed on the terminal.
2023-08-07 22:38:03 +00:00
Jackson Gardner
12c34f4b33 Roll Chrome to 115 (flutter/engine#44076)
Update the version of Chrome we use for unit tests to 115.
2023-07-28 15:03:05 +00:00
David Iglesias
1d2593d09f [web] Preserve canvaskit variant during tests. (flutter/engine#43868)
A ~~simpler~~ very similar version of https://github.com/flutter/engine/pull/43854

* Makes it harder for users to accidentally remove default configuration values, while still allowing them to do so if needed (configuration is now overridden with a subset of values, rather than passing a full configuration object).
  * Moves `merge` from the configuration object and into the override method.
* Removes a test-only configuration option:
  * `window._flutter_canvaskit_variant_for_test_only`

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2023-07-26 05:04:16 +00:00