Reverting this broke the flow tests for the performance overlay:
```
../../flutter/flow/layers/performance_overlay_layer_unittests.cc:70: Failure
Value of: golden_data != nullptr
Actual: false
Expected: true
```
This reverts commit 8427d73c8340c9e51492689ee66261a4a72cac9e.
* Revert "Revert "Add mock capability to PerformanceOverlayLayer (#7537)" (#7765)"
This reverts commit 693645e4645001ae460d5794fa6f5c7066677955.
* Add command line args for golden dir and font file
The shell was already designed to cleanly shut down the VM but it couldnt
earlier as |Dart_Initialize| could never be called after a |Dart_Cleanup|. This
meant that shutting down an engine instance could not shut down the VM to save
memory because newly created engines in the process after that point couldn't
restart the VM. There can only be one VM running in a process at a time.
This patch separate the previous DartVM object into one that references a
running instance of the DartVM and a set of immutable dependencies that
components can reference even as the VM is shutting down.
Unit tests have been added to assert that non-overlapping engine launches use
difference VM instances.
Behavior (visual) changes should be very minor. Things that are to be expected:
* A few things were not color managed correctly by the transform canvas (color emoji, some color filters). Those will be handled correctly with the tagged surfaces (although we're always transforming to sRGB, so nothing should change until we target a wider gamut).
* Image filtering will happen in the source color space, rather than the destination. Very minor.
* The transform canvas did caching of images in the destination color space. Now, the conversion happens at draw time. If there are performance issues, images can be pre-converted to the destination with makeColorSpace().
* Update GetCallbackHandle to use Dart_IsTearOff instead of a string
comparison to determine whether or not a closure was provided as an
argument to PluginUtilities.GetCallbackHandle.
Fixes#24394
As of the migration to Dart 2, it has been necessary to compile Dart to
kernel prior to execution. The embedder currently requires that the
resulting kernel file be named `kernel_blob.bin` and be located at the
root of the assets directory passed to the embedder API.
This patch updates the test_fixtures build rule to perform a kernel
compile using frontend_server, outputting `kernel_blob.bin` to
`fixtures/test_target_name` directory, and updates the embedder
unittests to specify the kernel file rather than the Dart source file.
Since the kernel compiler requires a `main()` function to be defined, it
also updates `simple_main.dart` from runtime_unittests to define
`main()` rather than `simple_main()`.
This also updates all existing sub-targets to be testonly.
This relands commit ac9e521a1ddbb99816a93d92ce9fb70e950b3763, which was
reverted in commit 494112582932af98b282617d7a34b1fbb8c90307. Rather than
running as prebuilt_dart_action, we use dart_action to ensure the
frontend snapshot it compatible with the VM on which it's executed.
This reverts commit ac9e521a1ddbb99816a93d92ce9fb70e950b3763.
This broke dynamic release mode builds of
//flutter/runtime:runtime_fixtures_kernel (likely all product-mode
builds).
Compile embedder unit test Dart to kernel
As of the migration to Dart 2, it has been necessary to compile Dart to
kernel prior to execution. The embedder currently requires that the
resulting kernel file be named `kernel_blob.bin` and be located at the
root of the assets directory passed to the embedder API.
This patch updates the test_fixtures build rule to perform a kernel
compile using frontend_server, outputting `kernel_blob.bin` to
`fixtures/test_target_name` directory, and updates the embedder
unittests to specify the kernel file rather than the Dart source file.
Since the kernel compiler requires a `main()` function to be defined, it
also updates `simple_main.dart` from runtime_unittests to define
`main()` rather than `simple_main()`.
This also updates all existing sub-targets to be testonly.
* Add Locale.fromComponents.
* Change toString from underscores to dashes. Expand the unit tests.
* Rename 'fromComponents' to 'create'. Change variants from String to List<String>.
* Use default for language parameter. Use hashCode/hashList.
* Have toString() stick with old (underscore) behaviour.
* Demonstrate empty-list bug in assert code.
* Fix empty-list assert bug.
* Add ignores for lint issues. Unsure about 71340 though.
* Fix operator== via _listEquals.
* Remove length-checking asserts: we're anyway not checking characters in fields.
* Documentation update.
* Change reasoning for ignore:prefer_initializing_formals.
* Try 'fromSubtags' as new constructor name.
* Documentation improvements based on Pull Request review.
* Assert-fail for invalid-length subtags and drop bad subtags in production code.
* Revert "Assert-fail for invalid-length subtags and drop bad subtags in production code."
This reverts commit d6f06f5e7b3537d60000c47641580475ef16abbe.
* Re-fix Locale.toString() for variants=[].
* Tear out variants, in case we want to have one fewer pointer in the future.
* Make named parameters' names consistent with member names.
* Also remove _listEquals: no longer in use.
* Lint fix.
* Fix code review nits.
* Lint fix for assert, and a couple more not-zero-length-string asserts.
* Code Review: two of three nits addressed...
* Review fix: change 'should' to 'must' for subtag prescriptions.
* Assert-check that countryCode is never ''.
Provide a relative, per-image limit to the amount of memory
that's used to cache decoded image frames. Adds an overridable default
that developers can set to control how much memory images are allowed
to use decoded vs undecoded. The cap is set in flutter/flutter#22452.
Note that required frames are always cached regardless of the ratio cap,
because they're currently necessary for the GIF to animate. Previously
cached unessential frames are not cleared in response to the cache
hitting or exceeding the cap.
Addresses #20998 and #14344.
This replaces `ci/test.sh` with `run_tests.sh`. `run_tests.sh` includes
`ci/test.sh` and multiple other tests.
Partially addresses flutter/flutter#22682. Temporarily skipped tests
should be fixed and re-enabled in a follow-up commit.
For consistency with the rest of dart:ui, check required parameters with
assert(param != null) rather than throwing ArgumentError. ArgumentError
is typically reserved for checking the validity of non-null args -- e.g.
that a list has the required number of elements.