mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
On Fuchsia, we can now get executable VMOs from trusted backing filesystems. This allows us to remove the use of replace_as_executable in favor of opening files with `fdio_open_fd_at` with the `OPEN_RIGHT_EXECUTABLE` flag and getting VMOs by calling `fdio_get_vmo_exec`. By moving the responsibility for executability into the filesystem, we are able to remove `deprecated-ambient-replace-as-executable` from component manifests for non-JIT runners (the JIT runners still call replace_as_executable in Dart's allocator). It wasn't abundantly clear whether .cmx files for tests were used purely in AOT runtime environments or also saw JIT usage, so I left those as-is. For context: this is a second attempt at #16690, which was reverted because it broke the Dart JIT runner. The primary difference is that this time around, we correctly handle absolute vs relative paths, depending on whether library loading bottoms out in `fdio_open_fd` or `fdio_open_fd_at`. I've added additional assertions to help ensure any new usages use the correct shape of path. Testing: I verified locally that the flutter product runner works on Astro, and also successfully ran the Dart JIT example test (which was the thing blocking the google3 roll with the previous attempt at this patchset). Co-authored-by: Drew Fisher <zarvox@google.com>
Description
Flutter makes it easy and fast to build beautiful apps for mobile and beyond
androidapp-frameworkcross-platformdartdart-platformdesktopflutterflutter-packagefuchsiaioslinux-desktopmacosmaterial-designmobilemobile-developmentskiawebweb-frameworkwindows
2.5 GiB
Languages
Dart
75%
C++
16.5%
Objective-C++
2.9%
Java
2.8%
Objective-C
0.7%
Other
1.9%