-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Introduces FlutterPluginRegistrant protocol. #169399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduces FlutterPluginRegistrant protocol. #169399
Conversation
| * | ||
| * @param registry The registry where plugins will be registered. | ||
| */ | ||
| - (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry; |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixes #167581
engine/src/flutter/shell/platform/darwin/ios/framework/Headers/FlutterAppDelegate.h
Outdated
Show resolved
Hide resolved
engine/src/flutter/shell/platform/darwin/ios/framework/Headers/FlutterPlugin.h
Outdated
Show resolved
Hide resolved
| [self sharedSetupWithProject:nil initialRoute:nil]; | ||
| } | ||
| if (self.pluginRegistrant) { | ||
| [self.pluginRegistrant registerWithRegistry:self]; |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
…/FlutterPlugin.h Co-authored-by: Victoria Ashworth <[email protected]>
…/FlutterAppDelegate.h Co-authored-by: Victoria Ashworth <[email protected]>
| * automatically generated by Flutter for the dependencies listed in the | ||
| * project. | ||
| */ | ||
| @protocol FlutterPluginRegistrant <NSObject> |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
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
…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
…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
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.