25 Commits

Author SHA1 Message Date
sjindel-google 343d9f2a03 Re-land "Use ELF for Dart AOT snapshots on Fuchsia. #13896" (#15360)
The bug in the original CL was that we were not running replace_as_executable in OpenVmo if the namespace was not provided.

This was a divergence in behavior for MappedResource::LoadFromNamespace compared to the current implementation.
2020-01-10 14:34:59 +01:00
Miguel b98e299645 [fuchsia] Add diagnostics directory to the remote dirs and ensure entry exists (#15258)
This reverts commit 4312d37eb1.

Once https://fuchsia-review.googlesource.com/c/topaz/+/351729 lands, the
diagnostics directory will be present, this would be safe to do and the
roller won't be blocked again.
2020-01-09 17:28:16 -08:00
George Wright a50f1ef56a Migrate flutter_runner from flutter_runner::{Thread,Loop} to fml::{Thread,MessageLoop} (#15118) 2020-01-07 19:24:45 -08:00
Francisco Magdaleno bdc9708d23 Revert "Use ELF for Dart AOT snapshots on Fuchsia. (#13896)" (#14823)
This reverts commit 09c434d265.
2019-12-27 16:15:24 -08:00
Dan Field 129c0e30d8 View ref pair (#14602) 2019-12-20 15:55:02 -08:00
sjindel-google 09c434d265 Use ELF for Dart AOT snapshots on Fuchsia. (#13896)
We will still support loading blobs until build rules in Fuchsia are updated.
2019-12-19 14:11:20 +01:00
Kaushik Iska 4312d37eb1 Revert "[fuchsia] Add diagnostics directory to the set of remote dirs (#14470)" (#14566)
This reverts commit 94654dbe63.
2019-12-18 18:58:37 -08:00
Miguel 94654dbe63 [fuchsia] Add diagnostics directory to the set of remote dirs (#14470) 2019-12-12 14:50:49 -08:00
Nathan Rogers 1ce85bec2f [flutter_runner] Enable Skia tracing by default on Fuchsia (#13457)
Since Flutter tracing is wired up to Fuchsia system level tracing (and
that includes Skia tracing within Flutter), it makes more sense to
enable Skia tracing by default on Fuchsia, and to control Flutter Skia
tracing, rely on whether Fuchsia system tracing is enabled, in progress,
and contains the "skia" category.
2019-12-11 21:03:12 -08:00
Craig Stout b2ab78fb41 [shell][fuchsia] Add lib/async/default.h
For async_get_default_dispatcher().
2019-12-09 15:21:45 -08: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
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
Dan Field 819a9f5898 Sync dart_runner (#12375) 2019-09-20 12:58:08 -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 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
Dan Field 00a12c411f Add missing CL, fix targets for Fuchsia (#12338) 2019-09-18 15:06:50 -07:00
Jason Simmons 2592d6efe2 [flutter_runner] Port the accessibility bridge from Topaz (#12054) 2019-09-10 11:29:08 -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 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
Chris Bracken 97eb094aac [flutter] Re-enable unhandled error reporting
This re-enables unhandled Dart error handling in Flutter applications,
which was removed in a76b958.

The error handling as originally landed was unsafe. Specifically, in the
case where the unhandled error handler was triggered during shutdown,
there was a race condition which could cause a crash in the following
scenario:
1. Runner::OnApplicationTerminate() is triggered, which posts a task to
   the application's platform thread will free the Application instance
   and terminate the platform thread.
2. Before that task is serviced, the unhandled error handler is called
   (by hooks.dart -> window.cc -> ui_dart_state.cc) on the UI thread.
3. The kill task is serviced and the Application dtor and Thread::Quit()
   are called, terminating the platform thread.
4. The unhandled error handler attempts to post a task to the platform
   thread, whose thread was killed in step 3. This triggers a crash.

Fixing this requires a mechanism for the message loop to know that the
associated thread has been terminated out from under it.

This patch adds mitigation for this scenario, but remains
non-threadsafe/racy. We pass the unhandled error handler a weak pointer
to the Application and check it before posting a task to the platform
thread. This has two issues:
1. WeakPtr isn't threadsafe, and assumes that all operations occur on a
   single thread. We're checking its value (which is mutated on the
   platform thread) on the UI thread without synchronization.
2. Even with a guarantee that the WeakPtr state were synchronized,
   there's a window between when we check the weak pointer and when we
   post to the platform thread in which application shutdown and thread
   destruction may occur.

This unsafe mitigation is being landed in order to unblock a high
priority bug (FL-256) on a short schedule, and a proper refactoring will
be required to make this properly threadsafe.

Change-Id: If60d1d3ca5799d82597f8a3acc4ddd3871058972

Ported from Topaz tree.
2019-06-28 17:40:00 -07:00
Chris Bracken a48c21a731 [flutter_runner] Rename outgoing 'public' to 'svc'.
This is the topaz counterpart to
https://fuchsia-review.googlesource.com/c/fuchsia/+/277254.

This is a backwards-incompatible ABI change that will be landed together
with that CL. All clients have been migrated to be compatible with the
new ABI.

Change-Id: I07bb460ce3c6971eb671874db1f90e8c4906e656

Ported from Topaz tree.
2019-06-28 17:40:00 -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