-
Notifications
You must be signed in to change notification settings - Fork 30.3k
Implement dartPluginClass support for plugins #52267
Copy link
Copy link
Labels
P1High-priority issues at the top of the work listHigh-priority issues at the top of the work lista: desktopRunning on desktopRunning on desktopcustomer: googleVarious Google teamsVarious Google teamsplatform-androidAndroid applications specificallyAndroid applications specificallyplatform-iosiOS applications specificallyiOS applications specificallyplatform-linuxBuilding on or for Linux specificallyBuilding on or for Linux specificallyplatform-macosBuilding on or for macOS specificallyBuilding on or for macOS specificallyplatform-windowsBuilding on or for Windows specificallyBuilding on or for Windows specificallytoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.
Metadata
Metadata
Assignees
Labels
P1High-priority issues at the top of the work listHigh-priority issues at the top of the work lista: desktopRunning on desktopRunning on desktopcustomer: googleVarious Google teamsVarious Google teamsplatform-androidAndroid applications specificallyAndroid applications specificallyplatform-iosiOS applications specificallyiOS applications specificallyplatform-linuxBuilding on or for Linux specificallyBuilding on or for Linux specificallyplatform-macosBuilding on or for macOS specificallyBuilding on or for macOS specificallyplatform-windowsBuilding on or for Windows specificallyBuilding on or for Windows specificallytoolAffects the "flutter" command-line tool. See also t: labels.Affects the "flutter" command-line tool. See also t: labels.
The federated plugin design describes having a dartPluginClass for each platform, allowing the registration of Dart plugin implementation details on a per-platform basis. Currently actually doing that is only possible on Web (AFAICT).
This is currently blocking implementation of
path_providerandshared_preferenceson Linux, where there's no need to use anything but pure Dart, because there's no way to bind the implementation to the interface package. (This is would also be very useful in conjunction with FFI; e.g., the Windowspath_providerimplementation could easily be Dart + FFI to a couple of system calls, significantly reducing the amount of code involved.)Greg and I looked at this a little bit at the end of last week. Adding the auto-generation of a Dart registrant is simple, but we got stuck on actually injecting the call to that registrant in a way that doesn't break existing functionality (in particular, passing an arbitrary start point to the embedder API). I'm not sure if there was already a plan/design in place to address that.
/cc @amirh