* Add PlatformView support for Fuchsia
This change allows embedding views provided by fuchsia components into
a flutter app running on Fuchsia. This conforms to Flutters idiomatic
approach to composite PlatformView alongside other rendered layers.
This uses the `view embedder` infrastructure to allow
`PlatformViewLayer`
to hold fuchsia views. This is meant to eventually supplant the legacy
`SceneHost` and `ChildViewLayer` mechanism to embed fuchsia `ChildView`.
To see how this will get used check out:
https://fuchsia-review.googlesource.com/c/experiences/+/398536/6/examples/hello_experiences/lib/fuchsia_view.dart
Includes unittests for platform_view.cc.
Note: This change has no impact on the legacy code to embed fuchsia
views.
* Rename OnCreateViewMethodCall to OnCreateView
Same for OnDestroyViewMethodCall to OnDestroyView
Co-authored-by: Sanjay Chouksey <sanjayc@google.com>
Adds a test that verifies that the view of the local time is the same in
the Dart isolate and the process that is running the test.
Specifically, this test is useful to verify that the code paths for
timezone retrieval do not break while the underlying FIDL protocols are
being refactored.
However, since the check is generally useful, the test is written as a
general flutter test.
Running this on Fuchsia required adding `fuchsia.intl.ProfileProvider`
to the CMX file that is used for all build Fuchsia packages.
Testing is a bit involved on Fuchsia. You must build the Fuchsia
package `fluter/shell/common:shell_tests` and publish it to the dev
repository for your Fuchsia device. It seems that a way to do so is to
modify the script `flutter/tools/fuchsia/build_fuchsia_artifacts.py` and
modify its function `GetTargetsToBuild` like so:
```
def GetTargetsToBuild(product=False):
targets_to_build = [
'flutter/shell/platform/fuchsia:fuchsia',
'flutter/shell/common:shell_tests',
]
return targets_to_build
```
Next, the Fuchsia packages need to be compiled and published.
Once done, the following `fx` invocation will run the test, assuming
that you have your Fuchsia setup:
```
fx shell run \
fuchsia-pkg://fuchsia.com/shell_tests#meta/shell_tests.cmx \
-- --gtest_filter=ShellTest.LocaltimesMatch
```
For error messages in the Windows embedding, use stderr rather than
Windows debug logging, so that it will go to the console where, e.g.,
'flutter run' will display it.
1. Manual roll of Dart 021a49e88c...4b9aa2bd7e
dart-lang/sdk@4b9aa2bd7e Revert "[VM/Runtime] Cleanup package config initialization code"
dart-lang/sdk@d44457f79d [Core Libraries] Eliminate the fork in the core libraries.
dart-lang/sdk@29e93bcdbd [VM/Runtime] Cleanup package config initialization code
dart-lang/sdk@07e2921287 [ddc] Cleanup false assumption from subtype check
dart-lang/sdk@62893f9b00 Reland "[vm] Check prefix.loadLibrary is called and returns before prefix members are used."
dart-lang/sdk@ed9112e862 Sort declarations in api_test.dart
dart-lang/sdk@a9bb706ce2 Migration: allow the client to specify which files to analyze/migrate.
dart-lang/sdk@651464c909 Implement the rest of the ArgumentList ASTNode logic in the context type visitor in feature_computer.dart, tests added in feature_computer_test.dart
dart-lang/sdk@c7d9fa996b Clean up some unnecessary code in completion manager
dart-lang/sdk@e11eb2cd08 [nnbd_migration] Fix#42263, tool inserting ! on toString/hashCode
2. Adjusted all flutter libraries.yaml files to account for elimination of the
fork in the Dart core librarie
3. Adjusted flutter gn file to account for elimination of the fork in the
Dart core librarie
As part of migrating Fuchsia from legacy SceneHost/ChildView based code
to Flutter Embedder based PlatformView, we need to expose the raw zircon
handle. Since we are converting a private getter to public getter, this
does not affect any existing code.
Co-authored-by: Sanjay Chouksey <sanjayc@google.com>
* Reland "Call Shell::NotifyLowMemoryWarning on Android Trim and LowMemory events (#18979)" (#19023)"
This reverts commit 0a852d8ad7e0b132d86c0a604f2c41a110f2b3b6.
This allows Fuchsia components executed by the Flutter runner to
specify a directory containing assets if they wish to store assets
separate from program data. This is specified in the program metadata
field within the component's specification with the new "assets"
attribute. If this attribute is absent, assets are loaded relative to
the path specified in the "data" attribute as before.
This is useful in the short term to use a location in the package where
we can store small files more efficiently. It is also potentially
useful longer term to enforce a stronger separatation between
executable program data and non-executable assets.
This commit adds some basic unit testing for the data parsing to the
flutter_runner_tests suite.