This repository has been archived by the owner on Feb 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
[video_player] Remove default method channel implementation #6341
Merged
tarrinneal
merged 1 commit into
flutter:main
from
stuartmorgan:video-player-remove-default-impl
Sep 4, 2022
Merged
[video_player] Remove default method channel implementation #6341
tarrinneal
merged 1 commit into
flutter:main
from
stuartmorgan:video-player-remove-default-impl
Sep 4, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Eliminates `MethodChannelVideoPlayer`, and instead makes the default a no-op subclass of the interface (i.e., one that throws `UnimplementedError` for everything). This moves the plugin from option 3 to option 2 in https://docs.flutter.dev/go/platform-channels-in-federated-plugins. This implementation is being removed because its use of Pigeon made ongoing maintenance impractical. Since default implementations are intended for backward compatibility with third-party native-only implementations, the platform channel internals of default implementations are considered part of the API surface. Pigeon considers those details implementation details, which means it was impossible to ever update the version of Pigeon used here without breaking changes. This means that fundamentally, Pigeon is not a viable choice for default implementations. The alternative to removing it would be replacing it with a new non-Pigeon method channel implementation, but that would also be a breaking change, defeating the purpose of backward compatibility. This would only benefit new third-party implementations, but new implementations should implement the platform interface rather than using the legacy default implementation. Fixes flutter/flutter#110017
stuartmorgan
added
the
override: allow breaking change
Override the check preventing breaking changes to platform interfaces
label
Aug 31, 2022
11 tasks
tarrinneal
approved these changes
Sep 2, 2022
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.
lgtm
stuartmorgan
added
the
autosubmit
Merge PR when tree becomes green via auto submit App
label
Sep 2, 2022
auto label is removed for flutter/plugins, pr: 6341, Failed to merge pr#: 6341 with OperationException(linkException: null, graphqlErrors: [GraphQLError(message: Base branch was modified. Review and try the merge again., locations: [ErrorLocation(line: 2, column: 3)], path: [mergePullRequest], extensions: null)]). |
auto-submit
bot
removed
the
autosubmit
Merge PR when tree becomes green via auto submit App
label
Sep 3, 2022
stuartmorgan
added
the
autosubmit
Merge PR when tree becomes green via auto submit App
label
Sep 4, 2022
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Sep 8, 2022
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/flutter
that referenced
this pull request
Sep 8, 2022
adam-harwood
pushed a commit
to adam-harwood/flutter_plugins
that referenced
this pull request
Nov 3, 2022
…6341) Eliminates `MethodChannelVideoPlayer`, and instead makes the default a no-op subclass of the interface (i.e., one that throws `UnimplementedError` for everything). This moves the plugin from option 3 to option 2 in https://docs.flutter.dev/go/platform-channels-in-federated-plugins. This implementation is being removed because its use of Pigeon made ongoing maintenance impractical. Since default implementations are intended for backward compatibility with third-party native-only implementations, the platform channel internals of default implementations are considered part of the API surface. Pigeon considers those details implementation details, which means it was impossible to ever update the version of Pigeon used here without breaking changes. This means that fundamentally, Pigeon is not a viable choice for default implementations. The alternative to removing it would be replacing it with a new non-Pigeon method channel implementation, but that would also be a breaking change, defeating the purpose of backward compatibility. This would only benefit new third-party implementations, but new implementations should implement the platform interface rather than using the legacy default implementation. Fixes flutter/flutter#110017
11 tasks
mauricioluz
pushed a commit
to mauricioluz/plugins
that referenced
this pull request
Jan 26, 2023
…6341) Eliminates `MethodChannelVideoPlayer`, and instead makes the default a no-op subclass of the interface (i.e., one that throws `UnimplementedError` for everything). This moves the plugin from option 3 to option 2 in https://docs.flutter.dev/go/platform-channels-in-federated-plugins. This implementation is being removed because its use of Pigeon made ongoing maintenance impractical. Since default implementations are intended for backward compatibility with third-party native-only implementations, the platform channel internals of default implementations are considered part of the API surface. Pigeon considers those details implementation details, which means it was impossible to ever update the version of Pigeon used here without breaking changes. This means that fundamentally, Pigeon is not a viable choice for default implementations. The alternative to removing it would be replacing it with a new non-Pigeon method channel implementation, but that would also be a breaking change, defeating the purpose of backward compatibility. This would only benefit new third-party implementations, but new implementations should implement the platform interface rather than using the legacy default implementation. Fixes flutter/flutter#110017
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
autosubmit
Merge PR when tree becomes green via auto submit App
override: allow breaking change
Override the check preventing breaking changes to platform interfaces
p: video_player
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Eliminates
MethodChannelVideoPlayer
, and instead makes the default ano-op subclass of the interface (i.e., one that throws
UnimplementedError
for everything). This moves the plugin from option3 to option 2 in
https://docs.flutter.dev/go/platform-channels-in-federated-plugins.
This implementation is being removed because its use of Pigeon made
ongoing maintenance impractical. Since default implementations are
intended for backward compatibility with third-party native-only
implementations, the platform channel internals of default
implementations are considered part of the API surface. Pigeon considers
those details implementation details, which means it was impossible to
ever update the version of Pigeon used here without breaking changes.
This means that fundamentally, Pigeon is not a viable choice for default
implementations.
The alternative to removing it would be replacing it with a new
non-Pigeon method channel implementation, but that would also be a
breaking change, defeating the purpose of backward compatibility.
This would only benefit new third-party implementations, but new
implementations should implement the platform interface rather than
using the legacy default implementation.
Fixes flutter/flutter#110017
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style.///
).