30 Commits

Author SHA1 Message Date
Felipe Archondo
1820dbedd3
fix and re-enable SessionConnection unit tests (#19812)
[fuchsia] fix and re-enable SessionConnection unittests

This change waits until Scenic is initialized before beginning the test
logic. This should fix the issue where the test starts running before or
during Scenic startup.
2020-07-23 12:15:07 -04:00
George Wright
cdc5ed3ad9
Set caches directory on Fuchsia (#18321) 2020-05-20 11:05:55 -07:00
Drew Fisher
fb841071c2
fuchsia: remove use of replace_as_executable (second try) (#17313)
On Fuchsia, we can now get executable VMOs from trusted backing
filesystems.  This allows us to remove the use of replace_as_executable
in favor of opening files with `fdio_open_fd_at` with the
`OPEN_RIGHT_EXECUTABLE` flag and getting VMOs by calling
`fdio_get_vmo_exec`.

By moving the responsibility for executability into the filesystem, we
are able to remove `deprecated-ambient-replace-as-executable` from
component manifests for non-JIT runners (the JIT runners still call
replace_as_executable in Dart's allocator).  It wasn't abundantly clear
whether .cmx files for tests were used purely in AOT runtime
environments or also saw JIT usage, so I left those as-is.

For context: this is a second attempt at #16690, which was reverted
because it broke the Dart JIT runner.  The primary difference is that
this time around, we correctly handle absolute vs relative paths,
depending on whether library loading bottoms out in `fdio_open_fd` or
`fdio_open_fd_at`.  I've added additional assertions to help ensure any
new usages use the correct shape of path.

Testing: I verified locally that the flutter product runner works on
Astro, and also successfully ran the Dart JIT example test (which was
the thing blocking the google3 roll with the previous attempt at this
patchset).

Co-authored-by: Drew Fisher <zarvox@google.com>
2020-03-25 13:17:28 -07:00
Kaushik Iska
a16d97e507
Revert "fuchsia: remove use of replace_as_executable (#16690)" (#16829)
This reverts commit ff921cd608efaf3aecd3e3e0feb14bb540cc22ed.
2020-02-27 10:13:26 -08:00
Drew Fisher
ff921cd608
fuchsia: remove use of replace_as_executable (#16690)
On Fuchsia, we can now get executable VMOs from trusted backing
filesystems.  This allows us to remove the use of replace_as_executable
in favor of opening files with `fdio_open_fd_at` with the
`OPEN_RIGHT_EXECUTABLE` flag and getting VMOs by calling
`fdio_get_vmo_exec`.

By moving the responsibility for executability into the filesystem, we
should be able to remove deprecated-ambient-replace-as-executable from
component manifests for non-JIT runners (the JIT runners still call
replace_as_executable in Dart's allocator).

Test: verified locally that this works on Astro on a _user build with
the runtime allowlist tightened.
2020-02-25 13:24:07 -08:00
Felipe Archondo
11b770489f
[fuchsia] Migrate flutter runner to use Present2 (#14162)
No change in behavior expected. We have 2 frames in flight as before. By switching to Present2 and specifying a kMaxFramesInFlight however, we allow us greater flexibility to change how Flutter schedules its frames.

This change also adds tests for SessionConnection and VsyncRecorder.
2020-02-05 13:51:04 -08:00
Miguel
e08ff745d2 [fuchsia] Add LogSink to flutter_[jit & aot]_product_runner (#15697) 2020-01-23 15:15:33 -08:00
Filip Filmar
29998f07fa Configures ICU to load the timezone data (#13952)
The timezone data in Fuchsia is at a fixed path. This will have the
flutter runner attempt to load it and log, but not fail if loading
does not work out.

Added two tests

(1) Shows that the specific TZ data version loaded takes effect after
initialization

(2) Shows that when TZ data files are absent the initialization
continues.
2019-12-05 17:32:55 -08:00
David Worsham
2fc1e1bce1 Relanding: Add Flow unittests and fixtures (#14091) 2019-12-03 14:33:02 -08:00
liyuqian
84bf72917c
Revert PRs to unblock David and Jim's work (#14088)
* Revert "Add flow test fixtures and tests (#13986)"

This reverts commit 620f5281b819f304e8e9e945222e26b17b087cc3.

* Revert "Dynamically determine whether to use offscreen surface based on need (#13976)"

This reverts commit a86ef946563b020108320bbfb974bf7343284fd3.
2019-12-03 12:02:37 -08:00
David Worsham
620f5281b8 Add flow test fixtures and tests (#13986) 2019-12-03 09:43:02 -08:00
David Worsham
e2aa235ab8
Fix most fml tests on Fuchsia (#14007)
* Add fuchsia MessageLoopImpl; fix several tests
2019-11-25 14:16:50 -08:00
Filip Filmar
20e3c5bb83 Revert "[fuchsia] Temporarily disable intl provider (#13696)" (#13721)
This reverts commit 6c763bb551cbc06da59b6a55b4c5ee0eccb6575f.

The reverted code was not the root cause of the issues with rolling
flutter into fuchsia, so adding it back.

In addition, lowering the severity of the connection error at the outset
to WARNING; since it is not a hard failure.
2019-11-08 17:34:04 -08:00
Filip Filmar
6c763bb551 [fuchsia] Temporarily disable intl provider (#13696)
The intention of the property provider is to try to connect, not
bail out if connection is not possible.

This code tried to connect unconditionally, which is not what we wanted.
Removing this initialization code to enable a roll, and will fix in a
followup.
2019-11-05 18:51:37 -08:00
George Wright
f7d52fab07 Add fuchsia.intl.PropertyProvider to our services on Fuchsia (#13486)
This resolves the following error on Fuchsia: Component fuchsia-pkg://fuchsia.com/flutter_aot_product_runner#meta/flutter_aot_product_runner.cmx is not allowed to connect to fuchsia.intl.PropertyProvider because this service is not present in the component's sandbox.
2019-11-01 16:13:12 -07:00
Filip Filmar
693ca2d0cb [dart] Makes the intl services available (#13460)
This registers that the dart runner requires
`fuchsia.intl.PropertyProvider` service.  It is a way for the runner
to discover the system locale.
2019-11-01 16:04:49 -07:00
Filip Filmar
400e3b00fb Wires the locale provided by Fuchsia. (#13045)
The FIDL service `fuchsia.intl.PropertyProvider` is a service that
the flutter runner can use to obtain information on system preferred
locales.

This change sends a platform message "setLocale" on the channel
"flutter/localization", based on the values provided by the above
mentioned FIDL service.

Credit: most of this was initially written by @kpozin; I ported it
to out-of-tree flutter engine.

Tested:

1. Compile and publish the unit tests package as shown in
   the script below.
2. In a Fuchsia repository (pointed to by `$FUCHSIA_DIR`), run
   `fx serve`
3. `fx shell run fuchsia-pkg://fuchsia.com/flutter_runner_tests#meta/flutter_runner_tests.cmx`

The script used to update the unit tests.

```bash

set -x

FLUTTER_ENGINE_DIR="${FLUTTER_ENGINE_DIR:-$HOME/fx/flutter/engine/src}"
readonly OUT_DIR="${FLUTTER_ENGINE_DIR}/out"

(
  cd ${FLUTTER_ENGINE_DIR}
  ./flutter/tools/gn --fuchsia --fuchsia-cpu x64 --unoptimized
  ninja -j 100 -C "${OUT_DIR}/fuchsia_debug_unopt_x64"
  cp "${OUT_DIR}/compile_commands.json" "${FLUTTER_ENGINE_DIR}"

  echo "Publishing the tests package"
  "${FLUTTER_ENGINE_DIR}/fuchsia/sdk/linux/tools/pm" publish \
    -a -r $FUCHSIA_DIR/out/release/amber-files \
    -f "${FLUTTER_ENGINE_DIR}/out/fuchsia_debug_unopt_x64/flutter_runner_tests-0.far"
)
```
2019-10-23 15:05:19 -07:00
Dan Field
61e6f7dce5
[flutter_runner] a11y updates, tests! (#12380) 2019-10-04 13:30:56 -07:00
Kaushik Iska
1d62160fdb
Prettify all CMX files (#12800) 2019-10-04 12:32:54 -07:00
Kaushik Iska
bfd7c1c571
[flutter_runner] Update the cmx files to include TZ support (#12798)
This is so we can connect to the timezone service.
2019-10-04 11:37:40 -07:00
Tamir Duberstein
00f23b2e73 [fuchsia] add fuchsia.netstack.Netstack (#12325)
Needed in preparation for
https://dart-review.googlesource.com/c/sdk/+/117620.

Test:
  git grep -l -E '(socket\.Provider|NameLookup)' | \
  xargs grep -L fuchsia.netstack.Netstack
2019-09-18 12:01:49 -07:00
Kaushik Iska
b9a743ce8b
[flutter_runner] Add common libs to the test far (#11875)
* [flutter_runner] Add common libs to the test far

* Add flutter runner test build as part of CI
2019-09-04 11:17:25 -07:00
Kaushik Iska
728ff715e8
[fidl][flutter_runner] Port Migrate to new fit::optional compatible APIs (#11636)
* [fidl][flutter_runner] Port Migrate to new fit::optional compatible APIs

Updated all call-sites.

See: https://fuchsia-review.googlesource.com/c/fuchsia/+/304389

FIDL-564 #comment

Change-Id: I831712ffd4a47b8fc9cf1fe237b709a1b983109f

* fix observatory port and re-sync cmx files
2019-08-28 12:31:07 -07:00
Tamir Duberstein
29469f39c1 [lsc] Remove fuchsia.net.SocketProvider (#11316)
fuchsia.net.SocketProvider has been replaced with fuchsia.net.NameLookup
and fuchsia.posix.socket.Provider.
2019-08-21 07:38:25 -07:00
Kaushik Iska
ad3846effa
[flutter_runner] Port: Add connectToService, wrapping fdio_ns_connect. (#10644)
Use fdio_ns_connect to connect to services in a namespace. For pure
persistant fidl services the old path of creating a file descriptor and
then opening a channel to that file descriptor doesn't work.

We should provide a way to directly connect to a service without first
treating it as a file.

Test:
* workstation.frank, reboot button on main menu works.
* astro, device_settings "erase user data" reboot works.

Change-Id: I725ba9350547309bebb5530aa44236f841d88f99
2019-08-05 16:36:59 -07:00
Chris Bracken
c13374b9e8 [meta] add fuchsia.{net.NameLookup,posix.socket.Provider}
These protocols will replace fuchsia.net.SocketProvider.

Change-Id: I1425aa8b32c82e68f6176f5ffd8d8a9149b52de6

Ported from Topaz tree.
2019-06-28 17:40:00 -07:00
Chris Bracken
98f55f0e61 [trace clients] Remove fuchsia.tracelink.Registry
... replaced by fuchsia.tracing.provider.Registry.

PT-127

Change-Id: I8e1243e28292a2442c1ceb3b685a79979bd0bd42

Ported from Topaz tree.
2019-06-28 17:40:00 -07:00
Chris Bracken
366c881748 [trace clients] Add fuchsia.tracing.provider.Registry to cmx files
... being renamed from fuchsia.tracelink.Register.
fuchsia.tracelink.Registry will be removed after change lands in fuchsia.

PT-127

Change-Id: Ie876228cf9d1e6fb052877e65b47918fdd0b9696

Ported from Topaz tree.
2019-06-28 17:40:00 -07:00
ojhunt
05c034e5bb Update component manifests for ambient replace-as-executable (#9350)
Bug: SEC-314

dding this feature all fuchsia components as a pre-flight step
as we restrict the ability for arbitrary processes to make
VMOs executable.
2019-06-17 18:48:13 -07:00
Chinmay Garde
21ad7f051c
Move the Fuchsia Flutter Runner to //flutter/shell/platform/fuchsia/flutter (#8939)
This makes room for the Dart runner at //flutter/shell/platform/fuchsia/dart.
2019-05-12 14:29:34 -07:00