From 6bad1e538daf62289dcae5798f135a6fa63a3ae4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish Date: Wed, 15 Dec 2021 14:17:57 -0500 Subject: [PATCH 1/3] dont update user agent string --- .../lib/webview_android_widget.dart | 7 +++--- .../test/webview_android_widget_test.dart | 25 +++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/lib/webview_android_widget.dart b/packages/webview_flutter/webview_flutter_android/lib/webview_android_widget.dart index 1dec9c105741..de55b5207a84 100644 --- a/packages/webview_flutter/webview_flutter_android/lib/webview_android_widget.dart +++ b/packages/webview_flutter/webview_flutter_android/lib/webview_android_widget.dart @@ -418,11 +418,12 @@ class WebViewAndroidPlatformController extends WebViewPlatformController { } Future _setUserAgent(WebSetting userAgent) { - if (userAgent.isPresent && userAgent.value != null) { - return webView.settings.setUserAgentString(userAgent.value!); + if (userAgent.isPresent) { + // If the string is empty, the system default value will be used. + return webView.settings.setUserAgentString(userAgent.value ?? ''); } - return webView.settings.setUserAgentString(''); + return Future.value(); } Future _setZoomEnabled(bool zoomEnabled) { diff --git a/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart b/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart index c203ef04a2ce..c751877bcc33 100644 --- a/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart @@ -483,6 +483,31 @@ void main() { }); }); + testWidgets('update userAgentString', (WidgetTester tester) async { + await buildWidget(tester); + + reset(mockWebSettings); + + await testController.updateSettings(WebSettings( + userAgent: const WebSetting.absent(), + )); + + verifyNever(mockWebSettings.setUserAgentString(any)); + }); + + testWidgets('update null userAgentString with empty string', + (WidgetTester tester) async { + await buildWidget(tester); + + reset(mockWebSettings); + + await testController.updateSettings(WebSettings( + userAgent: const WebSetting.of(null), + )); + + verify(mockWebSettings.setUserAgentString('')); + }); + testWidgets('currentUrl', (WidgetTester tester) async { await buildWidget(tester); From eefbce9cc53a493356c9cff290196f07b96022ab Mon Sep 17 00:00:00 2001 From: Maurice Parrish Date: Wed, 15 Dec 2021 14:23:03 -0500 Subject: [PATCH 2/3] version bump --- .../webview_flutter/webview_flutter_android/CHANGELOG.md | 5 +++++ .../webview_flutter/webview_flutter_android/pubspec.yaml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md index 7bd33879cd7d..1337bab304b8 100644 --- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md @@ -1,3 +1,8 @@ +## 2.8.1 + +* Fixes bug where the default user agent string was being set for every rebuild. See + https://github.com/flutter/flutter/issues/94847. + ## 2.8.0 * Implements new cookie manager for setting cookies and providing initial cookies. diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index 34bea570ae43..0b78c72ecc4c 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_android description: A Flutter plugin that provides a WebView widget on Android. repository: https://github.com/flutter/plugins/tree/master/packages/webview_flutter/webview_flutter_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 2.8.0 +version: 2.8.1 environment: sdk: ">=2.14.0 <3.0.0" From 60a6baf69330b7e918ca653399e9c121eaa2228f Mon Sep 17 00:00:00 2001 From: Maurice Parrish Date: Thu, 16 Dec 2021 12:02:23 -0500 Subject: [PATCH 3/3] update test name --- .../test/webview_android_widget_test.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart b/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart index c751877bcc33..2b25022f9087 100644 --- a/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/webview_android_widget_test.dart @@ -483,7 +483,8 @@ void main() { }); }); - testWidgets('update userAgentString', (WidgetTester tester) async { + testWidgets('no update to userAgentString when there is no change', + (WidgetTester tester) async { await buildWidget(tester); reset(mockWebSettings);