31 Commits

Author SHA1 Message Date
Chris Bracken
fd24007cac
Roll Dart to 67ab3be10d35d994641da167cc806f20a7ffa679 (#9638)
This is a reland of #9364 with fixes for Fuchsia.

000cf0560c clean up type_literal_test
0f20911022 Improve type_literal_test
a108bef7fb [vm, bytecode] Interpreter support for newer recognized natives.
2a15d38759 Revert "[llvm] Add initial scaffolding"
13b470ac46 Parse error expectations in tests.
b71d2d9996 [llvm] Add initial scaffolding
5f2bcd9d6c [vm/bytecode] Reuse flow graph building for recognized methods

This includes a breaking change: https://dart-review.googlesource.com/c/sdk/+/105241
```
  Dart_CreateIsolate -> Dart_CreateIsolateGroup
  Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
  Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
  Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
  Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
  Dart_IsolateData -> Dart_IsolateGroupData
  Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
  Dart_InitializeParams.create -> Dart_InitializeParams.create_group
  Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
  Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate
```
2019-07-01 15:47:49 -07:00
Chris Bracken
64b9eef5c1
Revert "Roll Dart to 67ab3be10d35d994641da167cc806f20a7ffa679 (#9634)" (#9637)
This broke the Fuchsia build.

This reverts commit 45e1ad27400d5d48941ebffc76537aae11af9ea8.
2019-07-01 14:28:35 -07:00
Chris Bracken
45e1ad2740
Roll Dart to 67ab3be10d35d994641da167cc806f20a7ffa679 (#9634)
000cf0560c clean up type_literal_test
0f20911022 Improve type_literal_test
a108bef7fb [vm, bytecode] Interpreter support for newer recognized natives.
2a15d38759 Revert "[llvm] Add initial scaffolding"
13b470ac46 Parse error expectations in tests.
b71d2d9996 [llvm] Add initial scaffolding
5f2bcd9d6c [vm/bytecode] Reuse flow graph building for recognized methods

This includes a breaking change: https://dart-review.googlesource.com/c/sdk/+/105241
```
  Dart_CreateIsolate -> Dart_CreateIsolateGroup
  Dart_IsolateCreateCallback -> Dart_IsolateGroupCreateCallback
  Dart_IsolateCleanupCallback -> Dart_IsolateGroupShutdownCallback
  Dart_CreateIsolateFromKernel -> Dart_CreateIsolateGroupFromKernel
  Dart_CurrentIsolateData -> Dart_CurrentIsolateGroupData
  Dart_IsolateData -> Dart_IsolateGroupData
  Dart_GetNativeIsolateData -> Dart_GetNativeIsolateGroupData
  Dart_InitializeParams.create -> Dart_InitializeParams.create_group
  Dart_InitializeParams.cleanup -> Dart_InitializeParams.shutdown_group
  Dart_InitializeParams.shutdown -> Dart_InitializeParams.shutdown_isolate
```
2019-07-01 12:55:57 -07:00
Tamir Duberstein
e7f8ca1de9 [all] add fuchsia.{net.NameLookup,posix.socket.Provider} (#9546)
These services will replace fuchsia.net.SocketProvider.

Note that dart_{aot,jit}_product_runner.cmx were invalid before this
change. I'm not sure how that was allowed to happen.
2019-06-30 13:07:41 -07:00
Chris Bracken
6c6a0d7534
[trace clients] Remove fuchsia.tracelink.Registry (#9593)
... replaced by fuchsia.tracing.provider.Registry.

PT-127

Change-Id: I8e1243e28292a2442c1ceb3b685a79979bd0bd42

This is a followup to 98f55f0e6115847c1f389c0e816d8e2d2a1555ff.
Ported from the Topaz tree.
2019-06-29 00:58:15 -07:00
Chris Bracken
131085ecad [crash] switch to async crash analysis
with the synchronous call, this actually blocks the Flutter component
from serving its out/directory and prevents the Inspect synchronous
discovery

DX-1568 #done #comment

TESTED=`fx shell run fuchsia-pkg://fuchsia.com/crasher_dart#meta/crasher_dart.cmx` (report id 0b59643af026bc37)
TESTED=`fx shell sessionctl add_mod fuchsia-pkg://fuchsia.com/crasher_flutter#meta/crasher_flutter.cmx` then clicked on "Th

Change-Id: I8b0abd1034dba66cd7bb1d6768322cab36ed453b

Ported from Topaz tree.
2019-06-28 17:40:00 -07:00
Chris Bracken
0ea826d720 [dart/flutter_runner] Copy package.resolved_url for TRACE_DURATION
Ensure that the string data backing package.resolved_url is not modified
or moved by making a copy to pass as the argument value for
TRACE_DURATION.

PT-169 #comment

Change-Id: I1ef6ab9b1ecf350e82134d1d616a841611ac19c6

Ported from Topaz tree.
2019-06-28 17:40:00 -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
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
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
38b3827268 [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#
Change-Id: I489318c2e31f752f76c80a81245e203861d44d94

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
Chris Bracken
06b29ae838 [trace clients] Replace trace-provider with trace-provider-with-fdio
PT-63

Change-Id: I9acd5aeba5f82e6d58ec324f0f64bf109a413410

Ported from Topaz tree.
2019-06-28 17:40:00 -07:00
Chris Bracken
a83fe3e562
Roll Fuchsia SDK to latest (#9509)
This rolls to CIPD package versions:
macOS SDK: pWygawI3vBzP9dYloEvKka8r1p0NpLLZzZQ-yMYI1UIC
Linux SDK: L_ORUWXyDEC29pSiSyKIwGqcFMQFsV91E3h_wPbUIUkC

Applies two breaking changes from the SDK:
* `zx_clock_get_new()` has been eliminated and replaced with
  `zx_clock_get()`. See:
  https://fuchsia-review.googlesource.com/c/fuchsia/+/293688
* Scenic `Metrics` no longer supports operator==; instead we use
  `fidl::Equals()`.
2019-06-26 17:16:16 -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
Zachary Anderson
0a2e28d797
Revert tracing changes (#9296)
* Revert "[fuchsia] Fix alignment of Fuchsia/non-Fuchsia tracing (#9289)"

This reverts commit f80ac5f571479053b134e60bca77603269b2ce2a.

* Revert "Align fuchsia and non-fuchsia tracing (#9199)"

This reverts commit 78265484623037c6544dfd5380367bca29fa27b0.
2019-06-12 10:25:49 -07:00
Dan Field
7826548462
Align fuchsia and non-fuchsia tracing (#9199) 2019-06-05 15:14:27 -07:00
Kevin Lindkvist
69ebe5fb28 Remove references to Fuchsia's ContextWriter (#9157) 2019-05-31 16:12:07 -07:00
Chris Bracken
0f1ff3bdb3
Correct typos, adopt US spellings (#9081)
Corects a bnuch of typeos throughout teh engien codebsae. Also makes
a couple minor Commonwealth -> US spelling adjustments for consistency
with the rest of Flutter's codebase.

Made use of `misspell` tool:
https://github.com/client9/misspell
2019-05-25 13:14:46 -07:00
Chris Bracken
d946e3e893
Rename Fuchsia Dart and Flutter runners (#9003)
four_gate -> flutter_runner
dt_rush -> dart_runner
2019-05-17 17:04:40 -07:00
Adam Barth
197feb5119
[fuchsia] Update zx_clock_get callers (#8998)
Fuchsia is changing zx_clock_get to return a zx_status_t. This change
prepares us for that change.
2019-05-17 16:37:28 -07:00
Matthew Dempsky
3cdfa807fa Replace ararysize macro with fml::size function (#8975)
This is forward compatible with std::size and similar to how Chromium
removed use of the arraysize macro.
2019-05-15 12:43:47 -07:00
Matthew Dempsky
66087301cd Roll tonic and update #includes (#8950) 2019-05-14 11:57:09 -07:00
Chinmay Garde
96ffc893ec
Copy the Dart Runner from //topaz into the engine. (#8949) 2019-05-13 14:48:20 -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
Zachary Anderson
27409dc1ce
[fuchsia] Guard out-of-tree Fuchsia targets to fix in-tree build (#8923) 2019-05-09 14:14:52 -07:00
Chinmay Garde
93d1c37946
Remove absolute path in new Fuchsia SDK based runner target dependency. (#8888)
Only ran into this as I was wiring up the bots to build the new targets.
2019-05-07 17:26:45 -07:00
Chinmay Garde
0b406c3de3
Copy the Flutter Runner from //topaz into the engine. (#8886)
Build rules and include paths have been updated as necessary.
No other functional change.
2019-05-07 17:24:18 -07:00
Chinmay Garde
0c7a3f25f5
Copy //dart-pkg/zircon|fuchsia from Topaz into the engine. (#8884)
Build rules and include paths have been updated as necessary. No other functional change.
2019-05-07 15:06:15 -07:00
Chinmay Garde
d71704488e
Copy //runtime/dart/utils from Topaz into the engine. (#8871)
Build rules and include paths have been updated as necessary. No other functional change.
2019-05-07 13:59:43 -07:00