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

[Windows] Introduce FlutterWindowsViewController#47242

Merged
auto-submit[bot] merged 4 commits into
flutter-team-archive:mainfrom
loic-sharma:windows_add_fvc
Oct 25, 2023
Merged

[Windows] Introduce FlutterWindowsViewController#47242
auto-submit[bot] merged 4 commits into
flutter-team-archive:mainfrom
loic-sharma:windows_add_fvc

Conversation

@loic-sharma

@loic-sharma loic-sharma commented Oct 24, 2023

Copy link
Copy Markdown
Contributor

This change begins the migration to the Windows embedder's new ownership model:

  1. Renames FlutterDesktopViewControllerState to FlutterWindowsViewController
  2. Moves ownership of the FlutterWindowsEngine from the FlutterWindowsView to the FlutterWindowsViewController

For more information, refer to: flutter.dev/go/windows-multi-view-ownership-updates

Part of flutter/flutter#137267

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I listed at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@loic-sharma loic-sharma marked this pull request as ready for review October 24, 2023 21:51
struct FlutterDesktopViewControllerState {
// The view that backs this state object.
std::unique_ptr<flutter::FlutterWindowsView> view;
};

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@yaakovschectman yaakovschectman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@dkwingsmt dkwingsmt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

Comment thread shell/platform/windows/window_state.h Outdated

@cbracken cbracken left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm with one question to ponder.


// Opaque reference to a Flutter window controller.
typedef struct FlutterDesktopViewControllerState*
FlutterDesktopViewControllerRef;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Question since this is a public header that is, in rare cases, used directly rather than via the client wrapper: who is this likely to break?

Looking at the current code, I don't actually see anywhere where we've publicly defined FlutterDesktopViewControllerState itself, so it seems unlikely that anyone's going to be depending on it other than as an opaque pointer.

@loic-sharma loic-sharma Oct 25, 2023

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

who is this likely to break?

The affected users I'm aware of I found are FFI projects:

I didn't find any other uses of this type on GitHub and google3 code searches. It seems the impact of this breaking change is limited. /cc @knopp

I don't actually see anywhere where we've publicly defined FlutterDesktopViewControllerState itself

AFAIK this has always been an opaque pointer.

@loic-sharma loic-sharma added the autosubmit Merge PR when tree becomes green via auto submit App label Oct 25, 2023
@auto-submit auto-submit Bot merged commit df0b200 into flutter-team-archive:main Oct 25, 2023
auto-submit Bot pushed a commit to flutter/flutter that referenced this pull request Oct 26, 2023
Roll Flutter Engine from 6e09ee1 to 6428ed5 (38 revisions)

flutter-team-archive/engine@6e09ee1...6428ed5

2023-10-26 jason-simmons@users.noreply.github.com Revert Dart SDK to 360370ff93b053253343832432f8329a11372ffc (flutter-team-archive/engine#47326)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from fb979d0ce053 to a5da4435bb5c (1 revision) (flutter-team-archive/engine#47325)
2023-10-25 jonahwilliams@google.com [Impeller] Cache location in metadata. (flutter-team-archive/engine#46640)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 8492914821fa to fb979d0ce053 (1 revision) (flutter-team-archive/engine#47324)
2023-10-25 737941+loic-sharma@users.noreply.github.com [Windows] Introduce FlutterWindowsViewController (flutter-team-archive/engine#47242)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 773abacc1581 to 8492914821fa (2 revisions) (flutter-team-archive/engine#47322)
2023-10-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 73fa7b3e048a to 7745c140d1fe (1 revision) (flutter-team-archive/engine#47321)
2023-10-25 zanderso@users.noreply.github.com Cleanup Dart package dependencies a bit (flutter-team-archive/engine#47306)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from d511fa1f1533 to 773abacc1581 (1 revision) (flutter-team-archive/engine#47312)
2023-10-25 skia-flutter-autoroll@skia.org Roll Fuchsia Mac SDK from SOv1RJmbyDByvud8D... to kNdyn03p28H7VeMcd... (flutter-team-archive/engine#47313)
2023-10-25 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from vX5n99OIWgLX6bObI... to zTq0jH2Y3Fl0uUUSa... (flutter-team-archive/engine#47309)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 0748053419cd to d511fa1f1533 (1 revision) (flutter-team-archive/engine#47308)
2023-10-25 30870216+gaaclarke@users.noreply.github.com Missed linter argument comment violations (flutter-team-archive/engine#47310)
2023-10-25 chinmaygarde@google.com [Impeller] Remove use of FML_DISALLOW_<FOO> macros in Impeller. (flutter-team-archive/engine#47307)
2023-10-25 30870216+gaaclarke@users.noreply.github.com Adds lint for checking argument commments (flutter-team-archive/engine#47305)
2023-10-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 2791495ed583 to 73fa7b3e048a (1 revision) (flutter-team-archive/engine#47304)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 4848dd9b5dab to 0748053419cd (2 revisions) (flutter-team-archive/engine#47302)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 788eafdcf70d to 4848dd9b5dab (1 revision) (flutter-team-archive/engine#47301)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 5c315b761a24 to 788eafdcf70d (1 revision) (flutter-team-archive/engine#47300)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 18ad006ec7f9 to 5c315b761a24 (1 revision) (flutter-team-archive/engine#47299)
2023-10-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 57661d5dbc1e to 2791495ed583 (1 revision) (flutter-team-archive/engine#47298)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 9537c25509ea to 18ad006ec7f9 (1 revision) (flutter-team-archive/engine#47297)
2023-10-25 skia-flutter-autoroll@skia.org Roll Fuchsia Mac SDK from YqSO1OByhoexFJSCr... to SOv1RJmbyDByvud8D... (flutter-team-archive/engine#47296)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from d51d3bcbcacd to 9537c25509ea (1 revision) (flutter-team-archive/engine#47295)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from f98fc9536c43 to d51d3bcbcacd (1 revision) (flutter-team-archive/engine#47294)
2023-10-25 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from tqukMrdJ6j-845-57... to vX5n99OIWgLX6bObI... (flutter-team-archive/engine#47293)
2023-10-25 skia-flutter-autoroll@skia.org Roll Skia from 0d4fcf388a6f to f98fc9536c43 (1 revision) (flutter-team-archive/engine#47292)
2023-10-24 chinmaygarde@google.com [Impeller] Update shader compilation pipeline documentation to detail multi-arch archives. (flutter-team-archive/engine#47289)
2023-10-24 skia-flutter-autoroll@skia.org Roll Skia from 076a9dd0094f to 0d4fcf388a6f (2 revisions) (flutter-team-archive/engine#47290)
2023-10-24 matanlurey@users.noreply.github.com OpenGL <4.x does not support stencil-only formats, so delete the TODO (flutter-team-archive/engine#47286)
2023-10-24 matanlurey@users.noreply.github.com [Impeller] Unconditionally dither in gradient shader fragments. (flutter-team-archive/engine#46746)
2023-10-24 skia-flutter-autoroll@skia.org Roll Skia from f491209e969d to 076a9dd0094f (1 revision) (flutter-team-archive/engine#47285)
2023-10-24 chinmaygarde@google.com [Impeller] Add support for multi-rendering-backend fat shader archives. (flutter-team-archive/engine#47278)
2023-10-24 skia-flutter-autoroll@skia.org Roll Skia from 502277be15cf to f491209e969d (1 revision) (flutter-team-archive/engine#47281)
2023-10-24 skia-flutter-autoroll@skia.org Roll Dart SDK from 360370ff93b0 to 57661d5dbc1e (1 revision) (flutter-team-archive/engine#47280)
2023-10-24 30870216+gaaclarke@users.noreply.github.com Migrated away from UnmodifiableUint8ListView (flutter-team-archive/engine#47276)
2023-10-24 skia-flutter-autoroll@skia.org Roll Skia from bc90585b0dd4 to 502277be15cf (1 revision) (flutter-team-archive/engine#47277)
2023-10-24 1961493+harryterkelsen@users.noreply.github.com Reland "Use a single OffscreenCanvas for rendering in CanvasKit (#45744)" (flutter-team-archive/engine#47241)

Also rolling transitive DEPS:
  fuchsia/sdk/core/linux-amd64 from tqukMrdJ6j-8 to zTq0jH2Y3Fl0
  fuchsia/sdk/core/mac-amd64 from YqSO1OByhoex to kNdyn03p28H7

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
...
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

affects: desktop autosubmit Merge PR when tree becomes green via auto submit App platform-windows

Development

Successfully merging this pull request may close these issues.

4 participants