-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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 <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> |
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 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
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
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
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.