Skip to content
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

[webview_flutter_android] Updates plugin to use ProxyApiss #7794

Merged
merged 96 commits into from
Nov 19, 2024

Conversation

bparrishMines
Copy link
Contributor

@bparrishMines bparrishMines commented Oct 4, 2024

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Copy link
Contributor

@stuartmorgan stuartmorgan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with some contributing docs fixes. We should fix the @protected thing, but that doesn't have to block landing; the workaround is fine for now.

This plugin serves as a platform implementation plugin as outlined in [federated plugin](https://docs.flutter.dev/packages-and-plugins/developing-packages#federated-plugins).
The sections below will provide an overview of how this plugin implements this portion with Android.

For making changes to this package, please take a look at [changing federated plugin](https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changing-federated-plugins).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: plugins


## Package Structure

This plugin serves as a platform implementation plugin as outlined in [federated plugin](https://docs.flutter.dev/packages-and-plugins/developing-packages#federated-plugins).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo: plugins


##### 3. Run the code generator from the terminal

Run: `dart run pigeon --input pigeons/interactive_media_ads_android.dart`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copypasta on the input file name here.

```

to `AndroidWebkitLibraryPigeonInstanceManager.remove`. The current implementation of the native
doesn't currently support handling when the Dart instance is garbage collected.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a missing word between the lines here I think. "native code"?

### Calling `WebView.destroy()` after Dart Instance is Garbage Collected

To avoid a potentially breaking change, the code in `android/src/main/java/io/flutter/plugins/webviewflutter/AndroidWebkitLibrary.g.kt`
needs to be updated after the pigeon generator is ran. Please add
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

run


### 4. Work can be started on the feature request or you can wait for feedback from a Flutter contributor.

[IMA SDKs]: https://developers.google.com/interactive-media-ads
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not needed.

to `AndroidWebkitLibraryPigeonInstanceManager.remove`. The current implementation of the native
doesn't currently support handling when the Dart instance is garbage collected.

## Recommended Process for Adding a New Feature
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this section? This sounds like the process for adding a feature to any of our plugins.

* `lib/src/android_webkit.g.dart`
* `android/src/main/java/io/flutter/plugins/webviewflutter/AndroidWebkitLibrary.g.kt`

To update a wrapper for a platform, follow the steps:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"a wrapper for a platform" -> "the wrapper" (since this package is single-platform).

@bparrishMines bparrishMines added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 19, 2024
@auto-submit auto-submit bot merged commit 6003bfe into flutter:main Nov 19, 2024
77 checks passed
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 19, 2024
@bparrishMines bparrishMines deleted the webview_android_pigeon_2 branch November 19, 2024 20:16
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 20, 2024
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Nov 20, 2024
flutter/packages@fc4adc7...e95f6d8

2024-11-19 [email protected] [in_app_purchase_storekit] disallow ios
versions lower than supported from enabling storekit
(flutter/packages#8110)
2024-11-19 49699333+dependabot[bot]@users.noreply.github.com
[interactive_media_ads]: Bump
com.google.ads.interactivemedia.v3:interactivemedia from 3.35.1 to
3.36.0 in /packages/interactive_media_ads/android
(flutter/packages#8046)
2024-11-19 49699333+dependabot[bot]@users.noreply.github.com
[interactive_media_ads]: Bump androidx.annotation:annotation from 1.8.2
to 1.9.1 in /packages/interactive_media_ads/android
(flutter/packages#7980)
2024-11-19 [email protected]
[webview_flutter_android] Updates plugin to use `ProxyApis`s
(flutter/packages#7794)
2024-11-19 [email protected]
[interactive_media_ads] Adds support to define parameters that control
the rendering of ads (flutter/packages#8057)
2024-11-19 [email protected] Roll Flutter from
b3818f6 to 8536b96 (22 revisions) (flutter/packages#8124)

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-flutter-autoroll
Please CC [email protected] on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
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
auto-submit bot pushed a commit that referenced this pull request Nov 21, 2024
… field of the `PigeonInternalProxyApiBaseClass` (#8125)

It's common to access the `InstanceManager` when creating platform views, so this removes the `@protected` annotation to prevent lint warnings.

See #7794 (comment)
@@ -20,7 +20,7 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.5.1" apply false
id "org.jetbrains.kotlin.android" version "1.7.10" apply false
id "org.jetbrains.kotlin.android" version "1.9.10" apply false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Judging from roller failures (example) I think this needs to be done in webview_flutter's example as well now that this has been published.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this!

sinyu1012 added a commit to sinyu1012/packages that referenced this pull request Nov 22, 2024
* main: (64 commits)
  [quick_actions_plaform_interface] add localizedSubtitle (flutter#8112)
  [tools] Don't check license of generated Swift package (flutter#8137)
  Roll Flutter from 8536b96ebb3e to 93d772c5cdd8 (37 revisions) (flutter#8147)
  [go_router] Fix: Consistent PopScope Handling on Root Routes issue #140869 (flutter#8045)
  [in_app_purchase_storekit] fix price displayed with wrong precision (flutter#8127)
  [pigeon] Removes the `@protected` annotation from the InstanceManager field of the   `PigeonInternalProxyApiBaseClass` (flutter#8125)
  [google_maps_flutter] Use structured Pigeon data on iOS (flutter#8142)
  [vector_graphics] handle errors from bytes loader (flutter#8080)
  [flutter_svg] Fix SvgNetworkLoader not closing internal http client (flutter#8126)
  [video_player_avfoundation] send video load failure even when eventsink was initialized late (flutter#7194)
  [flutter_markdown] enable Wasm support (flutter#8120)
  Reverts "[url_launcher] Add Swift Package Manager integration to example app (flutter#8128)" (flutter#8136)
  [url_launcher] Add Swift Package Manager integration to example app (flutter#8128)
  [pigeon] Enable example app build in CI (flutter#8119)
  [in_app_purchase_storekit] disallow ios versions lower than supported from enabling storekit (flutter#8110)
  [interactive_media_ads]: Bump com.google.ads.interactivemedia.v3:interactivemedia from 3.35.1 to 3.36.0 in /packages/interactive_media_ads/android (flutter#8046)
  [interactive_media_ads]: Bump androidx.annotation:annotation from 1.8.2 to 1.9.1 in /packages/interactive_media_ads/android (flutter#7980)
  [webview_flutter_android] Updates plugin to use `ProxyApis`s (flutter#7794)
  [interactive_media_ads] Adds support to define parameters that control the rendering of ads (flutter#8057)
  Roll Flutter from b3818f6b5979 to 8536b96ebb3e (22 revisions) (flutter#8124)
  ...

# Conflicts:
#	packages/quick_actions/quick_actions_platform_interface/CHANGELOG.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants