Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

[fuchsia] Create CF v2 Flutter runner. #29142

Merged

Conversation

akbiggs
Copy link
Contributor

@akbiggs akbiggs commented Oct 12, 2021

Bug: fxb/50694
Tested: Ran V1 runner with Spinning Square example to verify that it doesn't crash. Still working on porting an existing Flutter component over to V2 to test the new runner. Unit tests will be created in a follow-up PR since I'm still not certain I'm doing things right in the V2 runner.

This PR was optimized for two things:

  1. Minimizing the risk of breaking the existing CF v1 runner. The only change to the CF v1 runner is renaming Component -> ComponentV1. No logic for the V2 runner is shared with the V1 runner (with the exception of the FileInNamespaceBuffer utility).
  2. Minimizing the diff between the CF v1 runner and CF v2 runner for easy comparison. See the component.h diff and the component.cc diff to more easily see what's changed in the V2 runner.

@akbiggs akbiggs force-pushed the flutter-runner-v2-alex-is-bad-at-git branch from af5da45 to 45a11a7 Compare October 12, 2021 21:28
@@ -354,6 +354,13 @@ void DartComponentControllerV2::Run() {
loop_->Run();

if (binding_.is_bound()) {
// TODO(fxb/79871): This is likely a bug. We're taking the return_code
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, v2 doesn't have a good way to communicate the return code like a v1 component does. This is something we will need for other things outside of the runner so we should work with the CF team to figure out a plan. I think there will likely be some other lifecycle type service we need to start interacting with.

In the meantime. Can we just do a ZX_ERR_INTERNAL if the return code is not zero and ZX_OK otherwise?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good, will handle in a follow-up PR.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a feature request that has come up before, it and sounds reasonable. We could probably have the ComponentController dispatch a FIDL event with the return code. In the meantime, converting to INTERNAL SGTM.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened fxb/86666 for handling that in CF. Thanks for the feedback Gary.

@akbiggs
Copy link
Contributor Author

akbiggs commented Oct 13, 2021

@gebressler @ypomortsev Thanks for reviewing our CF v2 port!

Some additional context on this PR:

  • The V2 ComponentController is forked from our existing V1 ComponentController, which is why the diff in this PR is large. The main description for the PR has diffs between the V1 and V2 .h and .cc files which are easier to digest.
  • The new ComponentController is mostly the same as V1, but replacing package+LaunchStartInfo with ComponentStartInfo, and closing bindings with an epitaph.
  • There are going to be a lot of follow-up PRs, mostly documented as TODOs here.
  • CML files for the runners were added as a previous commit in the adjacent meta/ directory. [fuchsia] CML files for Flutter runner CF v2. #28982
  • I can't add you as reviewers directly because you're not part of the Flutter org. Happy to fix that but it requires messaging around on Discord a bit, so I'm just messaging you directly on PRs that require your review for now.

Copy link
Contributor

@arbreng arbreng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but be extra cautious to test on smart_display and workstation due to the runner.cc changes

@gebressler
Copy link

gebressler commented Oct 14, 2021 via email

@chinmaygarde
Copy link
Member

@arbreng Should I add the CQ tag? This looks good to go.

@arbreng
Copy link
Contributor

arbreng commented Oct 14, 2021

@arbreng Should I add the CQ tag? This looks good to go.

IIUC @akbiggs is still stress-testing this before landing it. So not good-to-go but he will land it once everything is working.

Copy link
Contributor

@ypomortsev ypomortsev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM w/ comments!

@akbiggs akbiggs added the waiting for tree to go green This PR is approved and tested, but waiting for the tree to be green to land. label Oct 14, 2021
@fluttergithubbot fluttergithubbot merged commit b8b0d72 into flutter:master Oct 14, 2021
@akbiggs akbiggs deleted the flutter-runner-v2-alex-is-bad-at-git branch October 15, 2021 00:04
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 15, 2021
iskakaushik added a commit to iskakaushik/flutter that referenced this pull request Oct 15, 2021
Also ignores: flutter#91906

2021-10-15 [email protected] [web] Add goldctl as a dependency in LUCI (flutter/engine#29168)
2021-10-15 [email protected] Revert "Set system bar appearance using WindowInsetsControllerCompat instead of the deprecated View#setSystemUiVisibility (flutter#29060)" (flutter/engine#29206)
2021-10-15 [email protected] Roll Dart SDK from e8c02a935741 to 42acd2ae8fa8 (1 revision) (flutter/engine#29205)
2021-10-15 [email protected] Roll Dart SDK from 9f3cd7a49814 to e8c02a935741 (1 revision) (flutter/engine#29204)
2021-10-15 [email protected] Roll Skia from 012f7146067a to b24bad31dc05 (3 revisions) (flutter/engine#29203)
2021-10-15 [email protected] Roll Skia from 72602b668e22 to 012f7146067a (1 revision) (flutter/engine#29202)
2021-10-15 [email protected] Roll Dart SDK from aaca2ac128ae to 9f3cd7a49814 (1 revision) (flutter/engine#29201)
2021-10-15 [email protected] Set the use_ios_simulator flag only on platforms where it is defined (iOS/Mac) (flutter/engine#29199)
2021-10-14 [email protected] [fuchsia] Create CF v2 Flutter runner. (flutter/engine#29142)
2021-10-14 [email protected] Roll Dart SDK from 82b0281cbcf3 to aaca2ac128ae (1 revision) (flutter/engine#29198)
2021-10-14 [email protected] Roll Skia from aa9656d8caa6 to 72602b668e22 (1 revision) (flutter/engine#29196)
2021-10-14 [email protected] Ignore implicit_dynamic_function analyzer error for js_util generic methods (flutter/engine#29192)
2021-10-14 [email protected] [web] use 'dart compile js' instead of 'dart2js' in web_ui and felt (flutter/engine#29179)
2021-10-14 [email protected] Roll Dart SDK from 081a57c06088 to 82b0281cbcf3 (3 revisions) (flutter/engine#29195)
2021-10-14 [email protected] Roll Skia from d0c7f636453b to aa9656d8caa6 (3 revisions) (flutter/engine#29194)
2021-10-14 [email protected] Set system bar appearance using WindowInsetsControllerCompat instead of the deprecated View#setSystemUiVisibility (flutter/engine#29060)
2021-10-14 [email protected] [UWP] Remove 1px offset to make root widget fully shown (flutter/engine#27922)
2021-10-14 [email protected] Roll Skia from ab19daec3b88 to d0c7f636453b (1 revision) (flutter/engine#29191)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
kylinchen pushed a commit to XianyuTech/engine that referenced this pull request Oct 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cla: yes platform-fuchsia waiting for tree to go green This PR is approved and tested, but waiting for the tree to be green to land.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants