Commit Graph

27 Commits

Author SHA1 Message Date
Ian McKellar d917c35e72 Allow Flutter apps on Fuchsia to shut down cleanly (#4366)
The UIDartState is now always owned by the isolate and always freed in
the isolate cleanup callback.

In the isolate shutdown callback, if the isolate being shut down is the
main isolate, the RuntimeController is informed which in turn notifies
the RuntimeHolder and thus the ApplicationControllerImpl. The
ApplicationControllerImpl tears down the whole Flutter application.

This fixes Fuchsia bug: MI4-328
2017-11-15 13:28:21 -08:00
Alexander Aprelev ec19da1c80 Initialize service isolate from kernel file, rather than from embedded sources. (#4263)
* Read core platform kernel file during Dart initialization.

Currently service isolate is initialized from the source code parsed by VM.
This CL changes it so service isolate created during Dart initialization
is created from the kernel platform.dill file if it is present in the application
bundle. Then this platform kernel file is kept in dart_init module and reused
for application sciprt isolates.

* Reformat and merge

* Use accessor method

* Avoid passing running_from_kernel param. Add TODO for cleanup. Rename param.
2017-10-24 19:37:24 -07:00
Yegor 23f5ccd25c Add alwaysUse24HourFormat and textScaleFactor (#4202)
* systems/settings channel split

* merge textScaleFactor and alwaysUse24HourFormat into flutter/settings channel

* add debugOverrideAlwaysUse24HourFormat

* implement textScaleFactor on iOS

* address comments

* remove debugOverrideAlwaysUse24HourFormat

* clang-format
2017-10-18 16:13:43 -07:00
Siva 5003703330 Fix for issue 12526 (#4218)
* Fix for issue 12526

Ensure that child isolates do not clear the dart_ui_state_ field present in the dart controller.

The commit https://github.com/flutter/engine/commit/dd1e0b59ece026737b05640cf020a6e590cfc10c implemented code to reset the dart_ui_state_ back to null when an isolate was being shutdown to ensure there was no use after free issues when the main isolate exeutes Isolate.current.kill() it however it was also clearning the field when a child isolate was shutdown causing SEGVs later.

* Address code format issues.
2017-10-17 14:47:09 -07:00
gspencergoog b2a7f4bf8f Add support for system text scale factor. (#4124)
Adds support for system text scale factor, including hooks for Android system settings changes.  iOS hooks will be added in another PR.
2017-09-29 13:19:06 -07:00
Ian McKellar dd1e0b59ec Support cleaner Dart isolate shutdown handling. (#4121)
If an isolate shuts down (for example if an app calls
Isolate.current.kill()), the UIDartState* on DartController will refer
to a freed object. This wires through notification that the is shutting
down through to the DartController so it can clean up appropriately.

This also makes gives the vm-service isolate an UIDartState* so that
the shutdown callback can behave correctly.
2017-09-19 12:11:05 -07:00
Alexander Aprelev 0e8ffa24e0 Reverting to unblock engine roll (#4109)
* Revert "Make Travis happy again (#4101)"

This reverts commit c99b2559df.

* Revert "Support cleaner Dart isolate shutdown handling. (#4096)"

This reverts commit 05751f7be9.
2017-09-14 12:10:11 -07:00
Ian McKellar 05751f7be9 Support cleaner Dart isolate shutdown handling. (#4096)
If an isolate shuts down (for example if an app calls
Isolate.current.kill()), the UIDartState* on DartController will refer
to a freed object. This wires through notification that the is shutting
down through to the DartController so it can clean up appropriately.
2017-09-13 10:29:21 -07:00
George Kulakowski 3aa7522c11 Rename ftl to fxl in Fuchsia specific code (#4090) 2017-09-11 15:58:48 -07:00
Ryan Macnak ffbefaf477 Initial implementation of idle notification. (#4012)
- Assumes only the Dart VM is interested in idle notification.
 - Gives the VM the time remaining in each frame.
 - Gives the VM 100ms if there is no pending frame.

Issue flutter/flutter#9594
2017-09-01 11:11:25 -07:00
Jason Simmons e687626a65 Incorporate the device pixel ratio when drawing shadows (#3919) 2017-07-24 12:01:43 -07:00
Alexander Aprelev ba9a525bdc Update Flutter engine kernel-loading logic. (#3886)
* Fix Flutter loading from dill files.

* Remove disable of causal async stacks.

* Include mirrors patch files as they are needed for release/profile gen_snapshot

* Free the bytes

* Add FTL_DCHECK
2017-07-24 09:47:23 -07:00
Sarah Zakarias f37aafd456 Add setInitialRoute on FlutterView. (#3727) 2017-06-06 10:59:41 +02:00
Ryan Macnak 1084a83f11 AOT for Fuchsia. (#3570) 2017-04-11 14:53:14 -07:00
Jason Simmons 8e7d68f823 Return an exit code from sky_shell representing what kind of error occurred (#3368)
This is intended to match the exit codes returned by the Dart command line tool
2017-01-27 09:59:08 -08:00
Jason Simmons fdcd65eedd Exit the non-interactive sky_shell on Linux when the Dart script has completed (#3358)
The script will be finished when the microtask queue has been drained and
Dart_HasLivePorts is returning false for the main isolate
2017-01-24 15:39:30 -08:00
Adam Barth 4b8c9051e5 Remove last mojom interface (#3184)
We no longer use mojom to transport messages. We still use the Mojo EDK
to spin the event loop, however.
2016-10-28 11:46:57 -07:00
Adam Barth 9eaedb0677 Migrate ViewportMetrics away from Mojo (#3180)
Now we just pass the data directly.
2016-10-27 13:12:55 -07:00
Adam Barth 7e5d63513a Move lifecycle, navigation, and localization to platform messages (#3172)
Previously, these signals were sent over Mojo. Now we send them through
platform messages.
2016-10-25 15:51:27 -07:00
Adam Barth 82728570b7 Response messages (#3134)
Add plunbing for Host-to-Dart platform messages

We'll use the plumbing in this direction for things like key events.
2016-10-14 15:51:25 -07:00
Adam Barth 6042580f9e Rewire platform messages to work like semantics (#3118)
After this patch, platform messages now take the same path through the system
that semantics data does (on Android). Support on iOS will be in another patch.
2016-10-11 19:02:04 -07:00
Adam Barth 166f44c0f7 Remove pointer.mojom (#3102)
This patch moves the rest of the clients to use the new PointerData
transport.
2016-10-06 10:59:30 -07:00
Adam Barth f97caf271c Expose SemanticsUpdate and SemanticsUpdateBuilder (#3098)
This patch prepares us to switch sending semantics information over mojom to
using dart:ui directly. Currently the recorded information is dropped on the
floor, but that will improve in future patches.
2016-10-05 12:22:03 -07:00
Adam Barth 30d87519b1 Stop dispatching pointer packets (#3080)
Long live pointer data packets.
2016-09-29 21:59:44 -07:00
Adam Barth 5f7b060522 Switch to manually encoded pointer data (#3073)
Rather than using mojom to encode pointer data, we now encode and decode it
manually. A future patch will remove the mojom codepath once the framework is
updated.
2016-09-28 15:50:09 -07:00