85 Commits

Author SHA1 Message Date
Ian McKellar
f0371e2f8f
Work around Fuchsia a11y / ICU name conflict (#13885)
ICU #defines TRUE and FALSE but these are used as enum member name by
the Fuchsia i18n FIDL library. This #undefs TRUE and FALSE before
including the generated FIDL header.

Fixes https://github.com/flutter/flutter/issues/44817
2019-11-15 21:16:44 -08:00
James Robinson
0832dfde5a [flow][fuchsia] Add more tracing to layers and Fuchsia surface pool (#13864)
This adds more trace events to more layer operations and enhances the
trace counters for the Fuchsia vulkan surface pool to include retained
surface counts, emit stats on recycle events that might change the
surface count, and by separating counters which measure bytes from
counters which measure counts to make analysis simpler.
2019-11-14 15:31:37 -08:00
George Wright
7041238576
Create a WeakPtrFactory for use on the UI thread in VsyncWaiter (#13781) 2019-11-12 15:46:07 -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
gabeschine
31cd2dfca2 Remove usage of fuchsia.modular.Clipboard. (#13763)
It is deprecated and will go away.
2019-11-08 17:13:17 -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
Ryan Macnak
f6900001eb
Roll Dart to 6a65ea9cad4b014f88d2f1be1b321db493725a1c. (#13294)
Remove dead shared snapshot arguments to Dart_CreateIsolateGroup.

6a65ea9cad4b [vm] Remove shared snapshot and reused instructions features.
db8370e36147 [gardening] Fix frontend-server dartdevc windows test.
4601bd7bffea Modified supertype check error message to be more descriptive.
0449905e2de6 [CFE] Add a serialization-and-unserialization step to strong test
c8b903c2f94f Update CHANGELOG.md
2a12a13d9684 [Test] Skips emit_aot_size_info_flag_test on crossword.
b26127fe01a5 [cfe] Add reachability test skeleton
2019-10-22 13:14:20 -07:00
Jason Simmons
f0c9edcfa5
Do not request executable permission on Fuchsia file mappings unless it is required (#13290)
Fixes https://github.com/flutter/flutter/issues/43273
2019-10-22 11:24:51 -07:00
Dan Field
7d55166fca
unbreak unopt fuchsia (#12805) 2019-10-04 14:10:46 -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
Dan Field
20ce0f6b69
Reland fuchsia build improvements (#12795) 2019-10-04 12:07:57 -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
Dan Field
2e163b2780
Revert "Build AOT and test targets, generate FARs when building Fuchsia (#12761)" (#12781)
This reverts commit f3d04a98b49364a6054a8083eaeb6342ff06d941.
2019-10-03 17:20:21 -07:00
Dan Field
f3d04a98b4
Build AOT and test targets, generate FARs when building Fuchsia (#12761) 2019-10-03 16:10:33 -07:00
Kaushik Iska
7b4f7564ee
[flutter_runner] Make rd and rx uniform (#12733)
* [flutter_runner] Make rd and rx uniform

Currently we pass paths for readonly files and pass
in fds for rx. Now passing in fds everywhere.

* pass full paths
2019-10-01 19:24:19 -07:00
Kaushik Iska
c53b076673
[flutter_runner] Verified Execution for read exec on Fuchsia (#12703)
Note: `fdio_open_fd` does not default to `AT_FDCWD` so we need to
specify absolute paths.
2019-09-30 14:04:40 -07:00
Kaushik Iska
6fcd795b4c
[flutter_runner] Refactor thread_application pair to ActiveApplication (#12573) 2019-09-27 13:38:25 -07:00
George Wright
d1901a2d15
Reword confusing messaging surrounding unhandled exception in flutter_runner on Fuchsia (#12428)
- Don't use 'unhandled' as that implies fatality which this is not
- Don't mention shutdown because this is not necessarily an exception-after-shutdown issue

Follow-up issue filed https://github.com/flutter/flutter/issues/41506 to implement the unit test for this.
2019-09-27 12:50:20 -07:00
Kaushik Iska
c25cdfee2b
Remove references to topaz (#12565)
* Add clangd directory to gitignore

* Remove references to TOPAZ_ from #ifdefs

We missed these in the migration.
2019-09-27 10:24:44 -07:00
Dan Field
819a9f5898
Sync dart_runner (#12375) 2019-09-20 12:58:08 -07:00
Siva
50b3538399
 Roll src/third_party/dart 7c1821c4aa...ea969c358e (#12339)
* Roll src/third_party/dart 7c1821c4aa...ea969c358e (6 commits)

dart-lang/sdk@7c1821c4aa [NNBD/VM] Restructure VM patch files for the NNBD dart sdk split
dart-lang/sdk@0c23664c8f [vm/fuzzer] Reduce number of methods per class
dart-lang/sdk@3135eb569d [vm/bytecode] Fix initial scope in field initializers
dart-lang/sdk@1345fb80ac Use TypeParameterElement instead of TypeParameterType in inference.
dart-lang/sdk@430ff6d649 Migration: fix "matching" functionality of edge testing infrastructure.
dart-lang/sdk@f1bff1b512 Add option to run ddb with observatory
2019-09-19 16:07:34 -07:00
Kaushik Iska
8dcd105f66
[flutter_runner] Port vulkan surface changes (#12350)
[flutter_runner] use dedicated allocation info

    This informs the vulkan driver that we're allocating memory
    dedicated to a single image. This is required for aemu and
    might also allow future drivers to make optimizations currently
    not possible.

    No change in behavior. Existing tests (modular_tests,
    scenic_tests, etc.) are sufficient and regressions will be
    prevented by running these tests on aemu.

    DX-939 #comment

    Test: fx shell run fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx --base_shell=fuchsia-pkg://fuchsia.com/spinning_cube#meta/spinning_cube.cmx
    Change-Id: If4ecd9aaa09f12f94654a68e8e9fe979748f44af

    [flutter_runner] use external image create info

    DX-939 #progress
    MA-394 #progress

    This informs the vulkan driver that we're creating an image
    that will be backed by external memory. The driver driver can
    decide to use different memory requirements based on the if
    memory for the image can be exported or not.

    No change in behavior. Existing tests (modular_tests,
    scenic_tests, etc.) are sufficient and regressions will be
    prevented by running these tests on aemu.

    Test: fx shell run fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx --base_shell=fuchsia-pkg://fuchsia.com/spinning_cube#meta/spinning_cube.cmx
    Change-Id: I489318c2e31f752f76c80a81245e203861d44d94
2019-09-18 19:06:12 -07:00
Kaushik Iska
eed16d34bd
[flutter_runner] Explicitly set |trace_skia| to false (#12349)
Explicitly set |Application|'s |flutter::Settings| |trace_skia| field to
false (it currently defaults to false), in order to slightly simplify
the enabling skia trace events workflow.

PT-145 #comment-patch

Change-Id: Ib40f9ed3dc6f824056465db2cd45309c78b7e3b4
2019-09-18 18:02:43 -07:00
Kaushik Iska
c33f2d2885
[flutter_runner] Port the new compilation trace from topaz (#12348) 2019-09-18 18:02:34 -07:00
Kaushik Iska
9036234cfe
[flutter_runner][async] Migrate dart/flutter to new async-loop APIs (#12347)
Change-Id: I11ca124878d2652798ed49958c42aa10ae019ef9
2019-09-18 17:45:53 -07:00
Kaushik Iska
725dc259cd
[flutter_runner] Move from runner context to component context (#12346)
* [flutter_runner] Move from runner context to component context

* remove the file references
2019-09-18 17:45:46 -07:00
Kaushik Iska
33ad6757e8
[flutter_runner] Port over the tuning advice (#12345) 2019-09-18 17:32:08 -07:00
Kaushik Iska
e0a24d6369
[flutter_runner] Remove usages of shared snapshots from CC sources (#12343)
Build rules still reference creating share snapshot data and instructions. This makes the engine to always pass them as empty to the dart vm. To be followed up with a change to alter the build rules to stop referencing the shared snapshots.

This is not being used currently and the fact that the runner will be built outside of the flutter tree means that the apps will not have much to gain via shared snapshots. The rationale behind this change is to partially make migrating the runner out of topaz tree easier.

Change-Id: Ibc4dd6a298d65082416af753522f5a17c88a750a
2019-09-18 17:31:54 -07:00
Kaushik Iska
7f7250f476
[flutter_runner] Do not use prebuilts just yet (#12340) 2019-09-18 15:31:57 -07:00
Dan Field
00a12c411f
Add missing CL, fix targets for Fuchsia (#12338) 2019-09-18 15:06:50 -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
Ankit Dave
3b09d9f1ec [flutter] Remove old A11y API's. (#12308) 2019-09-17 15:40:17 -07:00
Kaushik Iska
2bdfb61a04
Namespace patched SDK names to not conflict with Topaz (#12218) 2019-09-11 08:19:58 -07:00
Jason Simmons
bfa43e1792
[flutter_runner] Generate symbols for the Dart VM profiler (#12048)
Ported from the original implementation in the Topaz tree.
2019-09-10 14:35:42 -07:00
Jason Simmons
2592d6efe2
[flutter_runner] Port the accessibility bridge from Topaz (#12054) 2019-09-10 11:29:08 -07:00
Kaushik Iska
c9ea4dba8d
[flutter_runner] Refactor our build rules to make them more inline with topaz. (#12034)
Also add flutter tool support for topaz in-tree builds that already have
a dependency on the framework repository.

After this the only major changes left are profiler symbols and
Framework mode.

This should make making topaz use our buldrules significantly easier.
2019-09-06 15:30:37 -07:00
Kaushik Iska
7ea9884ab0
[flutter_runner] Kernel platform files can now be built in topaz (#12016)
- Tested this compatibility in topaz repo. The build rules can now be
used to build kernel_platform_files in topaz tree, after this change we
can migrate the platform*dill and vm*snapshot files in topaz to use the
engine built artifacts.

- Also removes some namespace conflicts for dart configuration.
2019-09-06 14:34:26 -07:00
Kaushik Iska
453d06b1ab
[flutter_runner] Plumb Flutter component arguments to the Dart entrypoint (#12026)
port of Change-Id: Ibcd4a110b84805af02a436a2a5bcf2cf3d2029a4
2019-09-06 14:16:13 -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
746c7a1cc4
Add a sample unit test target to flutter runner (#11847) 2019-09-04 07:58:52 -07:00
Martin Kustermann
74a3c73e3c
Roll src/third_party/dart 35382f9b14..05c28c6115 (#11702)
* Roll src/third_party/dart 35382f9b14..05c28c6115

dart-lang/sdk@05c28c6115 Reland "Scaffolding for dart:wasm"
dart-lang/sdk@d57a8f7451 [vm/bytecode] Remove DebugCheck in synthetic non-local transfer (no source pos).
dart-lang/sdk@b565c8c20f Don't serialize not serializable constant variable initializers.
dart-lang/sdk@ce12a2722d Migration: handle named parameters in _substituteFunctionAfterFormals.
dart-lang/sdk@a290271dea [vm/bytecode] Throw should be 'debug checked', but not ReThrow.
dart-lang/sdk@63133a2a8c [cfe] Handle extension instance method tearoff
dart-lang/sdk@a147d4e8d2 [cfe] Handle simple use of extension instance members
dart-lang/sdk@e9fdeb2db8 Migration: add support for creating instances without supplying type arguments.
dart-lang/sdk@66e349da9c Migration: Clean up substitution logic in getOrComputeElementType
dart-lang/sdk@e9a44ba6a8 fix extension instance field error
dart-lang/sdk@15a7b57d8e split endFields into endClass/Mixin/ExtensionFields events
dart-lang/sdk@ed1b4ffba1 Add tests of extensions of mixins
dart-lang/sdk@ef36f1ba0d [vm/fuzzer] Reduce limit on methods and classes
dart-lang/sdk@7b17602c74 [vm/bytecode] Include function name into source fingerprints
dart-lang/sdk@851701d2a4 add BREAK suggestions to switch cases
dart-lang/sdk@57f7941eef [cfe] Remove 'functionNestingLevel' for VariableDeclaration.forValue
2019-08-29 22:06:42 +02:00
Kaushik Iska
03318327d2
[flutter_runner] Port Expose ViewBound Wireframe Functionality (#11635)
Expose scenic's ability to toggle wireframe debug
rendering of view bounds in flutter_runner. This is done
by registering a new function on the platform_views channel
with the PlatformView.

Note: Unittests have not been enabled, will enable once we
have sufficient infra.

SCN-1351 #done

Change-Id: Id4c8ef65cc39a967087d7fa6c9f595da8cfe5f01
2019-08-28 12:46:24 -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
21ae92651a
[b/139487101] Dont present session twice (#11222) 2019-08-19 12:03:06 -07:00
Kaushik Iska
971a639151
Allow for dynamic thread merging on IOS for embedded view mutations (#9819)
After pre-roll we know if there have been any mutations made to the IOS embedded UIViews. If there are any mutations and the thread configuration is such chat the mutations will be committed on an illegal thread (GPU thread), we merge the threads and keep them merged until the lease expires. The lease is currently set to expire after 10 frames of no mutations. If there are any mutations in the interim we extend the lease.

TaskRunnerMerger will ultimately be responsible for enforcing the correct thread configurations.

This configuration will be inactive even after this change since still use the same thread when we create the iOS engine. That is slated to change in the coming PRs.
2019-08-12 12:32:38 -07:00