Skip to content

Conversation

@gaaclarke
Copy link
Member

@gaaclarke gaaclarke commented May 23, 2025

design doc: https://docs.google.com/document/d/1ZfcQOs-UKRa9jsFG84-MTFeibZTLKCvPQLxF2eskx44/edit?tab=t.0
issue: #167267

This provides the proper long term API for registering plugins in lieu of application:didFinishLaunching:withOptions: no longer being a viable place.

Pre-launch Checklist

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

@github-actions github-actions bot added platform-ios iOS applications specifically engine flutter/engine related. See also e: labels. team-ios Owned by iOS platform team labels May 23, 2025
@gaaclarke gaaclarke marked this pull request as ready for review May 27, 2025 17:10
@gaaclarke gaaclarke requested a review from a team as a code owner May 27, 2025 17:10
@gaaclarke gaaclarke changed the title Introduced FlutterPluginRegistrant protocol. Introduces FlutterPluginRegistrant protocol. May 27, 2025
*
* @param registry The registry where plugins will be registered.
*/
- (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry;
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 handles the case where users are creating plugins and platform channels. If users want the actual FlutterViewController, they'll have to do proper iOS coding to get them. As part of our migration for google3 customers we can do reflection with a TODO.

: UIResponder <UIApplicationDelegate, FlutterPluginRegistry, FlutterAppLifeCycleProvider>

@property(strong, nonatomic) UIWindow* window;
@property(nonatomic, strong, nullable) UIWindow* window;
Copy link
Contributor

Choose a reason for hiding this comment

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

Fixes #167581

[self sharedSetupWithProject:nil initialRoute:nil];
}
if (self.pluginRegistrant) {
[self.pluginRegistrant registerWithRegistry:self];
Copy link
Contributor

Choose a reason for hiding this comment

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

What would happen if both self.pluginRegistrant and FlutterSharedApplication.application.delegate call registerWithRegistry?

Copy link
Member Author

Choose a reason for hiding this comment

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

They would both register plugins. That was intentional since making them orthogonal is a more clean interface.

gaaclarke and others added 2 commits May 27, 2025 15:17
…/FlutterPlugin.h

Co-authored-by: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
…/FlutterAppDelegate.h

Co-authored-by: Victoria Ashworth <15619084+vashworth@users.noreply.github.com>
* automatically generated by Flutter for the dependencies listed in the
* project.
*/
@protocol FlutterPluginRegistrant <NSObject>
Copy link
Contributor

Choose a reason for hiding this comment

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

This may be confused with GenertedPluginRegistrant. Just from the naming, one would think GenertedPluginRegistrant adopts FlutterPluginRegistrant, but it is not the case.

But I can't think of a better name.

Copy link
Member Author

Choose a reason for hiding this comment

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

I think ideally we make the GeneratedPluginRegistrant a FlutterPluginRegistrant in the future.

@gaaclarke gaaclarke added the autosubmit Merge PR when tree becomes green via auto submit App label May 28, 2025
@gaaclarke gaaclarke added this pull request to the merge queue May 28, 2025
Merged via the queue into flutter:master with commit 0e536eb May 28, 2025
181 checks passed
@gaaclarke gaaclarke deleted the flutter-plugin-registrant branch May 28, 2025 16:04
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label May 28, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 28, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request May 28, 2025
flutter/flutter@4372bfb...0e536eb

2025-05-28 30870216+gaaclarke@users.noreply.github.com Introduces FlutterPluginRegistrant protocol. (flutter/flutter#169399)
2025-05-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Initialize `default-flavor` in `FlutterCommand`, adds integration test. (#169298)" (flutter/flutter#169581)
2025-05-28 matanlurey@users.noreply.github.com Initialize `default-flavor` in `FlutterCommand`, adds integration test. (flutter/flutter#169298)
2025-05-28 jakemac@google.com Update DEPS to  add dart-lang/ai repo (flutter/flutter#169540)
2025-05-28 engine-flutter-autoroll@skia.org Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (flutter/flutter#169552)
2025-05-28 kevmoo@users.noreply.github.com dev/bots: improve service worker test code (flutter/flutter#169231)
2025-05-28 magder@google.com Make Android team platform view TESTOWNERS (flutter/flutter#169297)
2025-05-28 engine-flutter-autoroll@skia.org Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (flutter/flutter#169542)
2025-05-27 engine-flutter-autoroll@skia.org Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (flutter/flutter#169530)
2025-05-27 sokolovskyi.konstantin@gmail.com [web] Fix unresponsive input above SelectionArea in Safari and Firefox. (flutter/flutter#167275)
2025-05-27 58529443+srujzs@users.noreply.github.com Set pause_isolates_on_start flag if --start-paused (flutter/flutter#169392)
2025-05-27 engine-flutter-autoroll@skia.org Roll Packages from af0b9a9 to 6eebe72 (24 revisions) (flutter/flutter#169514)
2025-05-27 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (flutter/flutter#169498)
2025-05-27 zhongliu88889@gmail.com Split hint from label and expose it via aria-description or aria-describedby (flutter/flutter#169157)
2025-05-26 github@alexv525.com 🐛 Normalize generated file paths for the l10n generator (flutter/flutter#169467)
2025-05-26 engine-flutter-autoroll@skia.org Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (flutter/flutter#169478)
2025-05-26 dkwingsmt@users.noreply.github.com [Cupertino] Apply RSuperellipse to most Cupertino widgets (flutter/flutter#167784)
2025-05-26 bkonyi@google.com Roll `package:dds` to 5.0.2 (flutter/flutter#169471)
2025-05-26 matanlurey@users.noreply.github.com Use `.flutter-plugins-dependencies` for crash reporting. (flutter/flutter#169319)
2025-05-26 matanlurey@users.noreply.github.com Remove now disabled code that would generate `.flutter-plugins`. (flutter/flutter#169320)
2025-05-26 engine-flutter-autoroll@skia.org Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (flutter/flutter#169473)
2025-05-26 munsocket@protonmail.com Precise browser resizing with integration_test and driver (flutter/flutter#160678)
2025-05-26 matanlurey@users.noreply.github.com Add `/coverage/` to `.gitignore.tmp` (flutter/flutter#169387)
2025-05-26 matanlurey@users.noreply.github.com Make test output with encoded `dart-defines=...` human readable. (flutter/flutter#169353)
2025-05-26 matanlurey@users.noreply.github.com Use at most `PROC~/2` tasks to transform assets. (flutter/flutter#169386)
2025-05-26 32538273+ValentinVignal@users.noreply.github.com Forward exit code from dart test to flutter test (flutter/flutter#168604)
2025-05-26 51940183+Sameri11@users.noreply.github.com Fix warning when building for macOS desktop (flutter/flutter#165996)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human
is aware of the problem.

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

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
flutter/flutter@4372bfb...0e536eb

2025-05-28 30870216+gaaclarke@users.noreply.github.com Introduces FlutterPluginRegistrant protocol. (flutter/flutter#169399)
2025-05-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Initialize `default-flavor` in `FlutterCommand`, adds integration test. (#169298)" (flutter/flutter#169581)
2025-05-28 matanlurey@users.noreply.github.com Initialize `default-flavor` in `FlutterCommand`, adds integration test. (flutter/flutter#169298)
2025-05-28 jakemac@google.com Update DEPS to  add dart-lang/ai repo (flutter/flutter#169540)
2025-05-28 engine-flutter-autoroll@skia.org Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (flutter/flutter#169552)
2025-05-28 kevmoo@users.noreply.github.com dev/bots: improve service worker test code (flutter/flutter#169231)
2025-05-28 magder@google.com Make Android team platform view TESTOWNERS (flutter/flutter#169297)
2025-05-28 engine-flutter-autoroll@skia.org Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (flutter/flutter#169542)
2025-05-27 engine-flutter-autoroll@skia.org Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (flutter/flutter#169530)
2025-05-27 sokolovskyi.konstantin@gmail.com [web] Fix unresponsive input above SelectionArea in Safari and Firefox. (flutter/flutter#167275)
2025-05-27 58529443+srujzs@users.noreply.github.com Set pause_isolates_on_start flag if --start-paused (flutter/flutter#169392)
2025-05-27 engine-flutter-autoroll@skia.org Roll Packages from af0b9a9 to 6eebe72 (24 revisions) (flutter/flutter#169514)
2025-05-27 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (flutter/flutter#169498)
2025-05-27 zhongliu88889@gmail.com Split hint from label and expose it via aria-description or aria-describedby (flutter/flutter#169157)
2025-05-26 github@alexv525.com 🐛 Normalize generated file paths for the l10n generator (flutter/flutter#169467)
2025-05-26 engine-flutter-autoroll@skia.org Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (flutter/flutter#169478)
2025-05-26 dkwingsmt@users.noreply.github.com [Cupertino] Apply RSuperellipse to most Cupertino widgets (flutter/flutter#167784)
2025-05-26 bkonyi@google.com Roll `package:dds` to 5.0.2 (flutter/flutter#169471)
2025-05-26 matanlurey@users.noreply.github.com Use `.flutter-plugins-dependencies` for crash reporting. (flutter/flutter#169319)
2025-05-26 matanlurey@users.noreply.github.com Remove now disabled code that would generate `.flutter-plugins`. (flutter/flutter#169320)
2025-05-26 engine-flutter-autoroll@skia.org Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (flutter/flutter#169473)
2025-05-26 munsocket@protonmail.com Precise browser resizing with integration_test and driver (flutter/flutter#160678)
2025-05-26 matanlurey@users.noreply.github.com Add `/coverage/` to `.gitignore.tmp` (flutter/flutter#169387)
2025-05-26 matanlurey@users.noreply.github.com Make test output with encoded `dart-defines=...` human readable. (flutter/flutter#169353)
2025-05-26 matanlurey@users.noreply.github.com Use at most `PROC~/2` tasks to transform assets. (flutter/flutter#169386)
2025-05-26 32538273+ValentinVignal@users.noreply.github.com Forward exit code from dart test to flutter test (flutter/flutter#168604)
2025-05-26 51940183+Sameri11@users.noreply.github.com Fix warning when building for macOS desktop (flutter/flutter#165996)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human
is aware of the problem.

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

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
flutter/flutter@4372bfb...0e536eb

2025-05-28 30870216+gaaclarke@users.noreply.github.com Introduces FlutterPluginRegistrant protocol. (flutter/flutter#169399)
2025-05-28 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Initialize `default-flavor` in `FlutterCommand`, adds integration test. (#169298)" (flutter/flutter#169581)
2025-05-28 matanlurey@users.noreply.github.com Initialize `default-flavor` in `FlutterCommand`, adds integration test. (flutter/flutter#169298)
2025-05-28 jakemac@google.com Update DEPS to  add dart-lang/ai repo (flutter/flutter#169540)
2025-05-28 engine-flutter-autoroll@skia.org Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (flutter/flutter#169552)
2025-05-28 kevmoo@users.noreply.github.com dev/bots: improve service worker test code (flutter/flutter#169231)
2025-05-28 magder@google.com Make Android team platform view TESTOWNERS (flutter/flutter#169297)
2025-05-28 engine-flutter-autoroll@skia.org Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (flutter/flutter#169542)
2025-05-27 engine-flutter-autoroll@skia.org Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (flutter/flutter#169530)
2025-05-27 sokolovskyi.konstantin@gmail.com [web] Fix unresponsive input above SelectionArea in Safari and Firefox. (flutter/flutter#167275)
2025-05-27 58529443+srujzs@users.noreply.github.com Set pause_isolates_on_start flag if --start-paused (flutter/flutter#169392)
2025-05-27 engine-flutter-autoroll@skia.org Roll Packages from af0b9a9 to 6eebe72 (24 revisions) (flutter/flutter#169514)
2025-05-27 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (flutter/flutter#169498)
2025-05-27 zhongliu88889@gmail.com Split hint from label and expose it via aria-description or aria-describedby (flutter/flutter#169157)
2025-05-26 github@alexv525.com 🐛 Normalize generated file paths for the l10n generator (flutter/flutter#169467)
2025-05-26 engine-flutter-autoroll@skia.org Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (flutter/flutter#169478)
2025-05-26 dkwingsmt@users.noreply.github.com [Cupertino] Apply RSuperellipse to most Cupertino widgets (flutter/flutter#167784)
2025-05-26 bkonyi@google.com Roll `package:dds` to 5.0.2 (flutter/flutter#169471)
2025-05-26 matanlurey@users.noreply.github.com Use `.flutter-plugins-dependencies` for crash reporting. (flutter/flutter#169319)
2025-05-26 matanlurey@users.noreply.github.com Remove now disabled code that would generate `.flutter-plugins`. (flutter/flutter#169320)
2025-05-26 engine-flutter-autoroll@skia.org Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (flutter/flutter#169473)
2025-05-26 munsocket@protonmail.com Precise browser resizing with integration_test and driver (flutter/flutter#160678)
2025-05-26 matanlurey@users.noreply.github.com Add `/coverage/` to `.gitignore.tmp` (flutter/flutter#169387)
2025-05-26 matanlurey@users.noreply.github.com Make test output with encoded `dart-defines=...` human readable. (flutter/flutter#169353)
2025-05-26 matanlurey@users.noreply.github.com Use at most `PROC~/2` tasks to transform assets. (flutter/flutter#169386)
2025-05-26 32538273+ValentinVignal@users.noreply.github.com Forward exit code from dart test to flutter test (flutter/flutter#168604)
2025-05-26 51940183+Sameri11@users.noreply.github.com Fix warning when building for macOS desktop (flutter/flutter#165996)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC stuartmorgan@google.com,tarrinneal@google.com on the revert to ensure that a human
is aware of the problem.

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

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

engine flutter/engine related. See also e: labels. platform-ios iOS applications specifically team-ios Owned by iOS platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants