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

Conversation

loic-sharma
Copy link
Member

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

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
Member Author

Choose a reason for hiding this comment

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

This is a legacy struct that is intended to be phased out:

// Structs backing the opaque references used in the C API.
//
// DO NOT ADD ANY NEW CODE HERE. These are legacy, and are being phased out
// in favor of objects that own and manage the relevant functionality.

Copy link
Contributor

@yaakovschectman yaakovschectman left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@dkwingsmt dkwingsmt left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@cbracken cbracken left a comment

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
Member

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.

Copy link
Member Author

@loic-sharma loic-sharma Oct 25, 2023

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:main Oct 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 26, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Oct 26, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Oct 26, 2023
…137310)

Roll Flutter Engine from 6e09ee14e244 to 6428ed576841 (38 revisions)

flutter/engine@6e09ee1...6428ed5

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

Successfully merging this pull request may close these issues.

4 participants