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
* 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 [email protected] 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 [email protected] Initialize `default-flavor` in `FlutterCommand`, adds integration test. (flutter/flutter#169298)
2025-05-28 [email protected] Update DEPS to  add dart-lang/ai repo (flutter/flutter#169540)
2025-05-28 [email protected] Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (flutter/flutter#169552)
2025-05-28 [email protected] dev/bots: improve service worker test code (flutter/flutter#169231)
2025-05-28 [email protected] Make Android team platform view TESTOWNERS (flutter/flutter#169297)
2025-05-28 [email protected] Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (flutter/flutter#169542)
2025-05-27 [email protected] Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (flutter/flutter#169530)
2025-05-27 [email protected] [web] Fix unresponsive input above SelectionArea in Safari and Firefox. (flutter/flutter#167275)
2025-05-27 [email protected] Set pause_isolates_on_start flag if --start-paused (flutter/flutter#169392)
2025-05-27 [email protected] Roll Packages from af0b9a9 to 6eebe72 (24 revisions) (flutter/flutter#169514)
2025-05-27 [email protected] Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (flutter/flutter#169498)
2025-05-27 [email protected] Split hint from label and expose it via aria-description or aria-describedby (flutter/flutter#169157)
2025-05-26 [email protected] 🐛 Normalize generated file paths for the l10n generator (flutter/flutter#169467)
2025-05-26 [email protected] Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (flutter/flutter#169478)
2025-05-26 [email protected] [Cupertino] Apply RSuperellipse to most Cupertino widgets (flutter/flutter#167784)
2025-05-26 [email protected] Roll `package:dds` to 5.0.2 (flutter/flutter#169471)
2025-05-26 [email protected] Use `.flutter-plugins-dependencies` for crash reporting. (flutter/flutter#169319)
2025-05-26 [email protected] Remove now disabled code that would generate `.flutter-plugins`. (flutter/flutter#169320)
2025-05-26 [email protected] Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (flutter/flutter#169473)
2025-05-26 [email protected] Precise browser resizing with integration_test and driver (flutter/flutter#160678)
2025-05-26 [email protected] Add `/coverage/` to `.gitignore.tmp` (flutter/flutter#169387)
2025-05-26 [email protected] Make test output with encoded `dart-defines=...` human readable. (flutter/flutter#169353)
2025-05-26 [email protected] Use at most `PROC~/2` tasks to transform assets. (flutter/flutter#169386)
2025-05-26 [email protected] Forward exit code from dart test to flutter test (flutter/flutter#168604)
2025-05-26 [email protected] 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 [email protected],[email protected] 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
…r#9334)

flutter/flutter@4372bfb...0e536eb

2025-05-28 [email protected] 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 [email protected] Initialize `default-flavor` in `FlutterCommand`, adds integration test. (flutter/flutter#169298)
2025-05-28 [email protected] Update DEPS to  add dart-lang/ai repo (flutter/flutter#169540)
2025-05-28 [email protected] Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (flutter/flutter#169552)
2025-05-28 [email protected] dev/bots: improve service worker test code (flutter/flutter#169231)
2025-05-28 [email protected] Make Android team platform view TESTOWNERS (flutter/flutter#169297)
2025-05-28 [email protected] Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (flutter/flutter#169542)
2025-05-27 [email protected] Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (flutter/flutter#169530)
2025-05-27 [email protected] [web] Fix unresponsive input above SelectionArea in Safari and Firefox. (flutter/flutter#167275)
2025-05-27 [email protected] Set pause_isolates_on_start flag if --start-paused (flutter/flutter#169392)
2025-05-27 [email protected] Roll Packages from af0b9a9 to 6eebe72 (24 revisions) (flutter/flutter#169514)
2025-05-27 [email protected] Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (flutter/flutter#169498)
2025-05-27 [email protected] Split hint from label and expose it via aria-description or aria-describedby (flutter/flutter#169157)
2025-05-26 [email protected] 🐛 Normalize generated file paths for the l10n generator (flutter/flutter#169467)
2025-05-26 [email protected] Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (flutter/flutter#169478)
2025-05-26 [email protected] [Cupertino] Apply RSuperellipse to most Cupertino widgets (flutter/flutter#167784)
2025-05-26 [email protected] Roll `package:dds` to 5.0.2 (flutter/flutter#169471)
2025-05-26 [email protected] Use `.flutter-plugins-dependencies` for crash reporting. (flutter/flutter#169319)
2025-05-26 [email protected] Remove now disabled code that would generate `.flutter-plugins`. (flutter/flutter#169320)
2025-05-26 [email protected] Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (flutter/flutter#169473)
2025-05-26 [email protected] Precise browser resizing with integration_test and driver (flutter/flutter#160678)
2025-05-26 [email protected] Add `/coverage/` to `.gitignore.tmp` (flutter/flutter#169387)
2025-05-26 [email protected] Make test output with encoded `dart-defines=...` human readable. (flutter/flutter#169353)
2025-05-26 [email protected] Use at most `PROC~/2` tasks to transform assets. (flutter/flutter#169386)
2025-05-26 [email protected] Forward exit code from dart test to flutter test (flutter/flutter#168604)
2025-05-26 [email protected] 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 [email protected],[email protected] 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
…r#9334)

flutter/flutter@4372bfb...0e536eb

2025-05-28 [email protected] 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 [email protected] Initialize `default-flavor` in `FlutterCommand`, adds integration test. (flutter/flutter#169298)
2025-05-28 [email protected] Update DEPS to  add dart-lang/ai repo (flutter/flutter#169540)
2025-05-28 [email protected] Roll Skia from 92311f2ba0b7 to 82d326fc2148 (1 revision) (flutter/flutter#169552)
2025-05-28 [email protected] dev/bots: improve service worker test code (flutter/flutter#169231)
2025-05-28 [email protected] Make Android team platform view TESTOWNERS (flutter/flutter#169297)
2025-05-28 [email protected] Roll Skia from 044f58f78a73 to 92311f2ba0b7 (9 revisions) (flutter/flutter#169542)
2025-05-27 [email protected] Roll Skia from 443f5257f382 to 044f58f78a73 (16 revisions) (flutter/flutter#169530)
2025-05-27 [email protected] [web] Fix unresponsive input above SelectionArea in Safari and Firefox. (flutter/flutter#167275)
2025-05-27 [email protected] Set pause_isolates_on_start flag if --start-paused (flutter/flutter#169392)
2025-05-27 [email protected] Roll Packages from af0b9a9 to 6eebe72 (24 revisions) (flutter/flutter#169514)
2025-05-27 [email protected] Roll Fuchsia Linux SDK from 5mpmPsuD8rpeiJizT... to nC9hLWjYVlChDTEPh... (flutter/flutter#169498)
2025-05-27 [email protected] Split hint from label and expose it via aria-description or aria-describedby (flutter/flutter#169157)
2025-05-26 [email protected] 🐛 Normalize generated file paths for the l10n generator (flutter/flutter#169467)
2025-05-26 [email protected] Roll Dart SDK from d811152316e4 to 6aeb798bdbe2 (2 revisions) (flutter/flutter#169478)
2025-05-26 [email protected] [Cupertino] Apply RSuperellipse to most Cupertino widgets (flutter/flutter#167784)
2025-05-26 [email protected] Roll `package:dds` to 5.0.2 (flutter/flutter#169471)
2025-05-26 [email protected] Use `.flutter-plugins-dependencies` for crash reporting. (flutter/flutter#169319)
2025-05-26 [email protected] Remove now disabled code that would generate `.flutter-plugins`. (flutter/flutter#169320)
2025-05-26 [email protected] Roll Dart SDK from 7dab9bffe1f7 to d811152316e4 (1 revision) (flutter/flutter#169473)
2025-05-26 [email protected] Precise browser resizing with integration_test and driver (flutter/flutter#160678)
2025-05-26 [email protected] Add `/coverage/` to `.gitignore.tmp` (flutter/flutter#169387)
2025-05-26 [email protected] Make test output with encoded `dart-defines=...` human readable. (flutter/flutter#169353)
2025-05-26 [email protected] Use at most `PROC~/2` tasks to transform assets. (flutter/flutter#169386)
2025-05-26 [email protected] Forward exit code from dart test to flutter test (flutter/flutter#168604)
2025-05-26 [email protected] 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 [email protected],[email protected] 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