Commit Graph

82 Commits

Author SHA1 Message Date
Chinmay Garde 86e3ebb748 Allow embedders to specify arbitrary data to the isolate on launch. (#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 df0e911c67 SkSL precompile (#12412)
For https://github.com/flutter/flutter/issues/40686

Unit tests added:
- CacheSkSLWorks
- VisitFilesCanBeCalledTwice
- CanListFilesRecursively
2019-10-08 11:51:28 -07:00
sjindel-google d6a02a3f67 Ensure debug-mode apps are always attached on iOS. (#10186) 2019-08-06 01:07:33 +02: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
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
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
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 4ead9c8f99.

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 bd8c5b135e.

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
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 800ea0a403.
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 b59c4436ce.
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 f7b4903d7c.
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 c991647404.
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