From f8731c6715cf6866a504aaecd29f92aca25e6bbe Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 16 Jan 2024 13:26:34 -0500 Subject: [PATCH 1/3] support nullability --- .../CHANGELOG.md | 4 ++++ .../lib/src/platform_webview_controller.dart | 2 +- .../pubspec.yaml | 2 +- .../test/platform_webview_controller_test.dart | 14 ++++++++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md index 1ceffd7c7ff..ea5bd905fcd 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.9.2 + +* Add support to return a `null` in `PlatformWebViewController.setOnJavaScriptTextInputDialog`. + ## 2.9.1 * Updates minimum required plugin_platform_interface version to 2.1.7. diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart index 2aaabb519cc..c8e07df186e 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/platform_webview_controller.dart @@ -318,7 +318,7 @@ abstract class PlatformWebViewController extends PlatformInterface { /// Sets a callback that notifies the host application that the web page /// wants to display a JavaScript prompt() dialog. Future setOnJavaScriptTextInputDialog( - Future Function(JavaScriptTextInputDialogRequest request) + Future Function(JavaScriptTextInputDialogRequest request) onJavaScriptTextInputDialog) async { throw UnimplementedError( 'setOnJavaScriptTextInputDialog is not implemented on the current platform', diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml index 850d07ff6cd..ce78e3972ea 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/packages/tree/main/packages/webview_flutt issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview_flutter%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.9.1 +version: 2.9.2 environment: sdk: ">=3.0.0 <4.0.0" diff --git a/packages/webview_flutter/webview_flutter_platform_interface/test/platform_webview_controller_test.dart b/packages/webview_flutter/webview_flutter_platform_interface/test/platform_webview_controller_test.dart index db3cf1dd5d6..911a4a427d4 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/test/platform_webview_controller_test.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/test/platform_webview_controller_test.dart @@ -457,6 +457,20 @@ void main() { throwsUnimplementedError, ); }); + + test('setOnJavaScriptTextInputDialog should support returning a null value', + () { + final PlatformWebViewController controller = + ExtendsPlatformWebViewController( + const PlatformWebViewControllerCreationParams()); + + expect( + () => controller.setOnJavaScriptTextInputDialog((_) async { + return null; + }), + throwsUnimplementedError, + ); + }); } class MockWebViewPlatformWithMixin extends MockWebViewPlatform From 1b5b9d6a4b00305eb7cf602d10cfe35a5e798e9a Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 16 Jan 2024 13:32:24 -0500 Subject: [PATCH 2/3] improve changelog --- .../webview_flutter_platform_interface/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md index ea5bd905fcd..4cbb5d27969 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md @@ -1,6 +1,6 @@ ## 2.9.2 -* Add support to return a `null` in `PlatformWebViewController.setOnJavaScriptTextInputDialog`. +* Adds support to return `null` in `PlatformWebViewController.setOnJavaScriptTextInputDialog`. ## 2.9.1 From 8c8501da8f73b7dcef6d9ae69bd79b1bffe1c870 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 16 Jan 2024 15:55:09 -0500 Subject: [PATCH 3/3] remove mocks from future version --- .../test/android_webview_controller_test.mocks.dart | 13 ------------- .../android_webview_cookie_manager_test.mocks.dart | 13 ------------- 2 files changed, 26 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart index c6248455ab5..25ce50f8985 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_controller_test.mocks.dart @@ -870,19 +870,6 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i9.Future.value(), returnValueForMissingStub: _i9.Future.value(), ) as _i9.Future); - - @override - _i9.Future setOnJavaScriptTextInputDialog( - _i9.Future Function(_i3.JavaScriptTextInputDialogRequest)? - onJavaScriptTextInputDialog) => - (super.noSuchMethod( - Invocation.method( - #setOnJavaScriptTextInputDialog, - [onJavaScriptTextInputDialog], - ), - returnValue: _i9.Future.value(), - returnValueForMissingStub: _i9.Future.value(), - ) as _i9.Future); } /// A class which mocks [AndroidWebViewProxy]. diff --git a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart index 8e11698b36a..c712395a929 100644 --- a/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart +++ b/packages/webview_flutter/webview_flutter_android/test/android_webview_cookie_manager_test.mocks.dart @@ -584,19 +584,6 @@ class MockAndroidWebViewController extends _i1.Mock returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); - - @override - _i5.Future setOnJavaScriptTextInputDialog( - _i5.Future Function(_i3.JavaScriptTextInputDialogRequest)? - onJavaScriptTextInputDialog) => - (super.noSuchMethod( - Invocation.method( - #setOnJavaScriptTextInputDialog, - [onJavaScriptTextInputDialog], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); } /// A class which mocks [TestInstanceManagerHostApi].