107 Commits

Author SHA1 Message Date
gaaclarke
01cd18efc9 Made it so you can specify the old gen heap size. (flutter/engine#15259) 2020-01-08 10:20:52 -08:00
Dan Field
5ac5df1fdd Fix mDNS for iOS13 (flutter/engine#13451) 2019-11-01 15:29:15 -07:00
Chinmay Garde
b659646ffb Allow embedders to specify arbitrary data to the isolate on launch. (flutter/engine#13047)
Since this is currently only meant to be used by the embedding internally, the setter in Objective-C is only exposed via the FlutterDartProject private class extension. Unit tests have been added to the shell_unittests harness.

Fixes https://github.com/flutter/flutter/issues/37641
2019-10-10 12:31:14 -07:00
liyuqian
7bffe3c0a8 SkSL precompile (flutter/engine#12412)
For https://github.com/flutter/flutter/issues/40686

Unit tests added:
- CacheSkSLWorks
- VisitFilesCanBeCalledTwice
- CanListFilesRecursively
2019-10-08 11:51:28 -07:00
Jonah Williams
c341326d6a Add support for JIT release mode (flutter/engine#12446) 2019-09-27 11:20:54 -07:00
Chris Bracken
cbd9b0b7d9 Fix gn breakage on non-Fuchsia macOS host builds (flutter/engine#11019)
Ensure that we always pull in the ensure_fuchsia_sdk gn variable.

Fixes breakage introduced in flutter/engine#11016 when building outside
of a Fuchsia tree (e.g. in a stock Flutter engine tree0 on macOS hosts.
2019-08-14 21:55:47 -07:00
Chris Bracken
7b02398ee0 Fix gn breakage on Fuchsia macOS host builds (flutter/engine#11016)
When building Fuchsia on macOS hosts, ensure that we reference the
correct clang toolchain path. This patch also prevents bitcode
compilation on Fuchsia tree builds on macOS.
2019-08-14 18:21:40 -07:00
sjindel-google
c39a23f1b6 Ensure debug-mode apps are always attached on iOS. (flutter/engine#10186) 2019-08-06 01:07:33 +02:00
Kaushik Iska
92f9dac0f7 [dart_runner] dart jit runner and dart jit product runner (flutter/engine#10179)
We now build dart runner as well
2019-07-26 13:29:46 -07:00
Jason Simmons
b48ddc3d9c Declare a copy of the enable_bitcode flag within the Flutter build scripts for use in Fuchsia builds (flutter/engine#10003)
enable_bitcode is defined in build/toolchain/clang.gni, which exists in the
Flutter buildroot but not in the Fuchsia source tree.
2019-07-22 12:06:16 -07:00
Jason Simmons
d4894e906d Fall back to a fully qualified path to libapp.so if the library can not be loaded by name (flutter/engine#9762)
libapp.so contains compiled application Dart code.  On most Android systems,
this library can be loaded by calling dlopen("libapp.so"), which will search
Android's default library directories.

On some Android devices this does not work as expected.  As a workaround, this
patch provides a fallback path to libapp.so based on ApplicationInfo.nativeLibraryDir.

Fixes https://github.com/flutter/flutter/issues/35838
2019-07-11 12:39:42 -07:00
Jason Simmons
20bc546d69 Minimal integration with the Skia text shaper module (flutter/engine#9556)
This converts the libtxt Paragraph and ParagraphBuilder classes into
interfaces with Minikin and SkShaper/SkParagraph based implementations.

Use the --enable-skshaper GN flag to select the Skia shaper implementation
at build time.
2019-07-10 14:13:55 -07:00
Chris Bracken
15fcb8aeca Add --observatory-host switch (flutter/engine#9485)
Adds --observatory-host, which allows callers to specify the localhost
IP binding directly. Allows users to set 0.0.0.0 or the host IP address
as is possible in the standalone VM, rather than restricting users to
loopback.

We retain the default behaviour of binding to loopback since the vast
majority of observatory use-cases involve local access (e.g. host tests
on flutter_tester) or port-forwarded local access (e.g. flutter driver
device tests). However, some scenarios, such as QA test labs, may
benefit from binding to a publicly-accessible IP address.
2019-06-25 13:20:39 -07:00
Jason Simmons
0e29357616 Remove build flags for dynamic patching (flutter/engine#9394) 2019-06-20 15:25:04 -07:00
liyuqian
fb0ea0ef4c Add onReportTimings and FrameRasterizedCallback API (flutter/engine#8983)
Using it, a Flutter app can monitor missing frames in the release mode, and a custom Flutter runner (e.g., Fuchsia) can add a custom FrameRasterizedCallback.

Related issues:
https://github.com/flutter/flutter/issues/26154
https://github.com/flutter/flutter/issues/31444
https://github.com/flutter/flutter/issues/32447

Need review as soon as possible so we can merge this before the end of May to catch the milestone.

Tests added:
* NoNeedToReportTimingsByDefault
* NeedsReportTimingsIsSetWithCallback
* ReportTimingsIsCalled
* FrameRasterizedCallbackIsCalled
* FrameTimingSetsAndGetsProperly
* onReportTimings preserves callback zone
* FrameTiming.toString has the correct format

This will need a manual engine roll as the TestWindow defined in the framework needs to implement onReportTimings.
2019-06-06 10:42:48 -07:00
Jason Simmons
f1ef8c2748 Add a minimal set of symbols to the dynamic symbol table for Linux executables (flutter/engine#8937)
This will reduce executable size.
2019-05-13 16:12:58 -07:00
Chinmay Garde
56e7bf84b1 Wire up Fuchsia SDK related updated for shell dependencies. #8869
This does not actually import the runners into the engine. It only sets up the targets so they need no modifications are necessary when the migration is done. The engine has been verified to build in both buildroots.
2019-05-06 18:01:59 -07:00
Zachary Anderson
0299216745 Plumb arguments from Settings to Dart main() (flutter/engine#8710) 2019-04-25 07:57:54 -07:00
Chinmay Garde
93d4b6ced4 Revert "Remove unused Settings::ToString. (#8642)" (flutter/engine#8689)
This reverts commit 36c47b759e12aa181e5a4d8a530ec2ed6700fbdb.

Reland tracked in https://github.com/flutter/flutter/issues/31433.
2019-04-22 14:31:33 -07:00
liyuqian
358e88cabf Revert "Only allow mappings for ICU initialization. (#8656)" (flutter/engine#8682)
This reverts commit dfaa1c9292238e73c56d36f7264adc63ea53745c.

Reverts flutter/engine#8656

Reason:  https://github.com/flutter/engine/pull/8656 seems to break the framework windows tests and the engine roll (see https://cirrus-ci.com/task/4704667236827136 and https://github.com/flutter/flutter/pull/31330). The failure has been consistent for 7 consecutive engine-to-framework auto-rolls.

TBR: @chinmaygarde
2019-04-22 10:28:54 -07:00
Chinmay Garde
572b7b80fb Allow native bindings in secondary isolates. (flutter/engine#8658)
The callbacks can be wired in via the Settings object. Both runtime and shell unit-tests have been patched to test this.
2019-04-19 17:36:36 -07:00
Chinmay Garde
dfaa1c9292 Only allow mappings for ICU initialization. (flutter/engine#8656)
If the mapping callback is not set or it the callback returns invalid data, ICU initialization will be embedder responsibility.

This affects all embedders and the following have been audited:
* Android: Via a symbol mapping.
* iOS: Via a file mapping.
* Embedder: Via a file mapping.
* Fuchsia: Via a VMO mapping
* Test shells and Flutter tester: Via file mapping with ICU data needing to be next to the executable.
2019-04-19 15:01:40 -07:00
Chinmay Garde
7758ff9f51 Cleanup references to FLX archives from the engine. (flutter/engine#8653) 2019-04-19 12:49:07 -07:00
Chinmay Garde
36c47b759e Remove unused Settings::ToString. (flutter/engine#8642)
This was used in some embedder implementations. But that was a while ago.
2019-04-18 18:54:06 -07:00
Chinmay Garde
6edfaf7855 Remove the flutter_aot GN argument. (flutter/engine#8581)
This argument has been defunct for a while. It was originally added as a
means of testing the AOT machinery in debug modes.
2019-04-15 12:57:45 -07:00
Kaushik Iska
f9648fe057 Revert Versions API (flutter/engine#7828)
* Revert "Fix versions implementation (#7726)"

This reverts commit 82b3db052387161a8eed5f98f08080f1a60b7dfb.

* Revert "Expose the Flutter engine, Dart and Skia versions to Dart. (#7634)"

This reverts commit ec6f6c35b36548a2cf745c0a4b3cb8e5b6ee0e72.

* remove namespace shell stuff

* fix format

* fix licenses
2019-04-12 14:23:13 -07:00
Ben Konyi
c1a253633c Added support for authentication codes for the VM service (flutter/engine#8527) 2019-04-10 14:38:58 -07:00
Chinmay Garde
1fd28a143a Rename the blink namespace to flutter. (flutter/engine#8517)
Some components in the Flutter engine were derived from the forked blink codebase. While the forked components have either been removed or rewritten, the use of the blink namespace has mostly (and inconsistently) remained. This renames the blink namesapce to flutter for consistency. There are no functional changes in this patch.
2019-04-09 12:44:42 -07:00
Chinmay Garde
772798ca7c Document the leak_vm flag. (flutter/engine#8462) 2019-04-05 15:37:14 -07:00
Chinmay Garde
19d5a39d24 Enable shutting down all root isolates in a VM. (flutter/engine#8457)
This reverts commit 9cd2e8351c47b7a78c1005341f4b5e1a2f125695.
2019-04-05 13:34:40 -07:00
Chinmay Garde
9cd2e8351c Revert "Enable shutting down all root isolates in a VM. (#8402)" (flutter/engine#8431)
This reverts commit 56252a8aacaf29a17853e3ade6978972689dff18.
2019-04-03 17:08:56 -07:00
Chinmay Garde
56252a8aac Enable shutting down all root isolates in a VM. (flutter/engine#8402) 2019-04-03 15:44:29 -07:00
Chinmay Garde
736277e9c7 Revert "Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)" (flutter/engine#8414)
This reverts commit 8a0076fdddc96b4ec2fb67f45051aa490827fc02.
2019-04-03 13:38:12 -07:00
Zachary Anderson
8a0076fddd Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (flutter/engine#8406)
This reverts commit 38f5fc418a08ed43945ad21d19494d6b352e1443.
2019-04-02 09:12:56 -07:00
Chinmay Garde
38f5fc418a Separate the data required to bootstrap the VM into its own class. (flutter/engine#8397)
When attempting to shutdown and subsequently restart the VM, having the
VM own this data introduces lifecycle issues due to circular references.
2019-04-01 14:58:05 -07:00
liyuqian
c267787209 Add dump-shader-skp switch to help ShaderWarmUp (flutter/engine#8148)
Allow Flutter to automatically dump the skp that triggers new shader compilations. This is useful for writing custom ShaderWarmUp to reduce jank. By default, it's not enabled to reduce the overhead. This is only available in profile or debug build.

Later, we can add service protocol support to pull the skp from the client to the host. Currently, it works fine for Android-based devices (including our urgent internal clients) where we can `adb shell` into the cache directory.
2019-03-14 12:58:09 -07:00
Ben Konyi
0669ddc849 Link dart:* sources into engine for debugger source support (flutter/engine#7908)
Link dart:* sources into engine for debugger source support

Currently, dart:* libraries appear to have no source in
debuggers like Observatory. With this change, these sources will be
available in debug mode applications. Sources for dart:* libraries are
lazily loaded on a script-by-script basis.

Refer to https://dart-review.googlesource.com/c/sdk/+/93375 for the Dart
SDK change.
2019-02-26 13:28:04 -08:00
Mehmet Fidanboylu
191884bbc1 New setting to decide whether we want the engine to load ICU mapping. (flutter/engine#7928) 2019-02-22 14:49:15 -08:00
Chinmay Garde
46842b5f57 Update documentation for command line args in FlutterProjectArgs. (flutter/engine#7733) 2019-02-07 14:14:44 -08:00
Kaushik Iska
ec6f6c35b3 Expose the Flutter engine, Dart and Skia versions to Dart. (flutter/engine#7634)
- Moved versions from shell to common
- versions singleton contains all the required versions.
2019-01-30 16:22:45 -08:00
Jason Simmons
8a941d7b3c Embed ICU data inside libflutter.so on Android (flutter/engine#7588)
Prior to this the Android embedder code would extract the icudtl.dat asset out
of the APK and write it to local disk during the first startup of the app.

This change will make that work unnecessary and eliminate the risk of ICU
failures due to errors in the extraction process.
2019-01-30 11:56:17 -08:00
Chinmay Garde
e361547b05 Allow the engine to redirect traces to systrace via settings. (flutter/engine#7617) 2019-01-28 17:39:31 -08:00
Chinmay Garde
3a5bd32ed8 Re-land "Wrap the user entrypoint function in a zone with native exception callback. (#7512)" (flutter/engine#7551)
This reverts commit 32ae75d8847612c26c67315104b76f3c9212e7b2 and applies relevant fixes.
2019-01-24 13:42:51 -08:00
Chinmay Garde
1f528fef75 Allow embedders to specify AOT snapshot buffers. (flutter/engine#7538) 2019-01-18 16:32:35 -08:00
Vyacheslav Egorov
32ae75d884 Revert "Wrap the user entrypoint function in a zone with native exception callback. (#7512)" (flutter/engine#7522)
This reverts commit 524a12d0468e1a536d74f866796e1cdd7ccaa35e.

Reason for revert: broken in AOT mode.

@pragma('vm:entry-point') placed on a function only instructs
the compiler to retain the function itself, but does not tell
compiler to generate and retain tear-off for this function.

In this PR _runMainZoned was marked as an entry-point but C++
code was trying to tear it off and use a closure, instead of
invoking it directly, which is not supported.
2019-01-17 11:49:20 +01:00
Chinmay Garde
524a12d046 Wrap the user entrypoint function in a zone with native exception callback. (flutter/engine#7512) 2019-01-16 16:08:51 -08:00
Zachary Anderson
6bd9431a0c Pass deadline to embedder idle notification callback (flutter/engine#7444) 2019-01-10 14:08:43 -08:00
Chinmay Garde
074da7fd65 Allow embedders to add per shell idle notification callbacks. (flutter/engine#7427) 2019-01-09 14:33:56 -08:00
Chris Bracken
f604da6409 Rename dart-non-checked-mode: disable-dart-asserts (flutter/engine#6977)
In Dart 2, runtime checked mode has been eliminated. Many of these type
checks have been moved to static compile-time checks, the remainder are
enforced at runtime, and are no longer optional.
2018-12-10 12:36:09 -08:00
Chris Bracken
120c20d5c6 Eliminate main_dart_file_path, package_file_path (flutter/engine#6973)
These settings were specific to Dart 1 and are no longer used in the
engine. This eliminates them from the Settings class.
2018-12-10 09:12:10 -08:00