102 Commits

Author SHA1 Message Date
Chris Bracken
426ea8dba6
Fix gn breakage on non-Fuchsia macOS host builds (#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
c4dd223945
Fix gn breakage on Fuchsia macOS host builds (#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
d6a02a3f67
Ensure debug-mode apps are always attached on iOS. (#10186) 2019-08-06 01:07:33 +02:00
Kaushik Iska
3e3efe4c6c
[dart_runner] dart jit runner and dart jit product runner (#10179)
We now build dart runner as well
2019-07-26 13:29:46 -07:00
Jason Simmons
be8819e2dc
Declare a copy of the enable_bitcode flag within the Flutter build scripts for use in Fuchsia builds (#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
3c9a22c778
Fall back to a fully qualified path to libapp.so if the library can not be loaded by name (#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
2cd650d269
Minimal integration with the Skia text shaper module (#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
107fe82343
Add --observatory-host switch (#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
7a5ec8d792
Remove build flags for dynamic patching (#9394) 2019-06-20 15:25:04 -07:00
liyuqian
9f088c65ee
Add onReportTimings and FrameRasterizedCallback API (#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
b3b817a9b3
Add a minimal set of symbols to the dynamic symbol table for Linux executables (#8937)
This will reduce executable size.
2019-05-13 16:12:58 -07:00
Chinmay Garde
f6e6d39860
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
3a29e6a7a7
Plumb arguments from Settings to Dart main() (#8710) 2019-04-25 07:57:54 -07:00
Chinmay Garde
6dc5dcad32
Revert "Remove unused Settings::ToString. (#8642)" (#8689)
This reverts commit 4ead9c8f99d417c13bc8c51e6e90c66ec52045b6.

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

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
1239df96aa
Allow native bindings in secondary isolates. (#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
bd8c5b135e
Only allow mappings for ICU initialization. (#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
1fe3279149
Cleanup references to FLX archives from the engine. (#8653) 2019-04-19 12:49:07 -07:00
Chinmay Garde
4ead9c8f99
Remove unused Settings::ToString. (#8642)
This was used in some embedder implementations. But that was a while ago.
2019-04-18 18:54:06 -07:00
Chinmay Garde
324b8403e8
Remove the flutter_aot GN argument. (#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
7292d62ef8
Revert Versions API (#7828)
* Revert "Fix versions implementation (#7726)"

This reverts commit 3c38dd342f53d39603d1c5b138b5e4d36d93720f.

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

This reverts commit b94e759b256819fb33cb9d2b41565fc137cac733.

* remove namespace shell stuff

* fix format

* fix licenses
2019-04-12 14:23:13 -07:00
Ben Konyi
0a2869e5c3
Added support for authentication codes for the VM service (#8527) 2019-04-10 14:38:58 -07:00
Chinmay Garde
eec74e5c92
Rename the blink namespace to flutter. (#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
99da038dab
Document the leak_vm flag. (#8462) 2019-04-05 15:37:14 -07:00
Chinmay Garde
424045c3f2
Enable shutting down all root isolates in a VM. (#8457)
This reverts commit 800ea0a40397d53311715e0de94f0340195bfcea.
2019-04-05 13:34:40 -07:00
Chinmay Garde
800ea0a403
Revert "Enable shutting down all root isolates in a VM. (#8402)" (#8431)
This reverts commit b59c4436ce9fb8aa09bad6eb5ca729350a3ab272.
2019-04-03 17:08:56 -07:00
Chinmay Garde
b59c4436ce
Enable shutting down all root isolates in a VM. (#8402) 2019-04-03 15:44:29 -07:00
Chinmay Garde
7e38b0aa23
Revert "Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)" (#8414)
This reverts commit f7b4903d7c9913447af3aaebc4308d1a1e2a4dde.
2019-04-03 13:38:12 -07:00
Zachary Anderson
f7b4903d7c
Revert "Separate the data required to bootstrap the VM into its own class. (#8397)" (#8406)
This reverts commit c991647404f8117dab2ca4ed49aa3ba48a634240.
2019-04-02 09:12:56 -07:00
Chinmay Garde
c991647404
Separate the data required to bootstrap the VM into its own class. (#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
66fdeb163e
Add dump-shader-skp switch to help ShaderWarmUp (#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
fb1c543dd4
Link dart:* sources into engine for debugger source support (#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
204e7da36c
New setting to decide whether we want the engine to load ICU mapping. (#7928) 2019-02-22 14:49:15 -08:00
Chinmay Garde
4f3eb42dfd
Update documentation for command line args in FlutterProjectArgs. (#7733) 2019-02-07 14:14:44 -08:00
Kaushik Iska
b94e759b25
Expose the Flutter engine, Dart and Skia versions to Dart. (#7634)
- Moved versions from shell to common
- versions singleton contains all the required versions.
2019-01-30 16:22:45 -08:00
Jason Simmons
050dcaad60
Embed ICU data inside libflutter.so on Android (#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
79dc315dc4
Allow the engine to redirect traces to systrace via settings. (#7617) 2019-01-28 17:39:31 -08:00
Chinmay Garde
23b7e29f04
Re-land "Wrap the user entrypoint function in a zone with native exception callback. (#7512)" (#7551)
This reverts commit 4c135c298a8173bb9affafc1f92120a0158c1e6e and applies relevant fixes.
2019-01-24 13:42:51 -08:00
Chinmay Garde
898b4f8da4
Allow embedders to specify AOT snapshot buffers. (#7538) 2019-01-18 16:32:35 -08:00
Vyacheslav Egorov
4c135c298a
Revert "Wrap the user entrypoint function in a zone with native exception callback. (#7512)" (#7522)
This reverts commit 25559ed0779604d56c47c5d2341ffd16b137cd10.

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
25559ed077
Wrap the user entrypoint function in a zone with native exception callback. (#7512) 2019-01-16 16:08:51 -08:00
Zachary Anderson
b7f6bf0192
Pass deadline to embedder idle notification callback (#7444) 2019-01-10 14:08:43 -08:00
Chinmay Garde
b972f75db5
Allow embedders to add per shell idle notification callbacks. (#7427) 2019-01-09 14:33:56 -08:00
Chris Bracken
08922e112d
Rename dart-non-checked-mode: disable-dart-asserts (#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
dcfae4e803
Eliminate main_dart_file_path, package_file_path (#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
Michael Goderbauer
09ef73ff6e
Fix code smells reported by chrome's clang plugin (#6833) 2018-11-12 19:59:29 -08:00
Michael Goderbauer
70a1106b50
Unify copyright lines (#6757) 2018-11-07 12:24:35 -08:00
Ryan Macnak
60bb5da33c
Reapply "Some cleanups enabled by removing support for Dart 1" (#6250)
Following fixes in dart-lang/sdk@91cbb57cd5
2018-09-14 09:36:13 -07:00
Michael Goderbauer
6f459e2f10
Revert "Reapply "Some cleanups enabled by removing support for Dart 1" (#6216)" (#6232)
This reverts commit e3133e0e3f7cbbd57fa930c11f3640561d691eba.
2018-09-12 12:07:20 +02:00
Ryan Macnak
e3133e0e3f
Reapply "Some cleanups enabled by removing support for Dart 1." (#6216)
- Add missing Dart 2 flags to gen_snapshot invocation.
 - Disable brittle service test.
2018-09-10 17:03:54 -07:00