From f7e472f967c2a5d1c4ced1a2f2b2afa6cb2be880 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 10:54:32 +0100 Subject: [PATCH 01/12] Added dependency overrides --- .../webview_flutter/webview_flutter/example/pubspec.yaml | 8 ++++++++ packages/webview_flutter/webview_flutter/pubspec.yaml | 8 ++++++++ .../webview_flutter_android/example/pubspec.yaml | 4 ++++ .../webview_flutter/webview_flutter_android/pubspec.yaml | 3 +++ .../webview_flutter_wkwebview/example/pubspec.yaml | 4 ++++ .../webview_flutter_wkwebview/pubspec.yaml | 6 +++++- 6 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter/example/pubspec.yaml b/packages/webview_flutter/webview_flutter/example/pubspec.yaml index 6b668eb96af3..d601dd77f65f 100644 --- a/packages/webview_flutter/webview_flutter/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/example/pubspec.yaml @@ -27,6 +27,14 @@ dev_dependencies: sdk: flutter pedantic: ^1.10.0 +dependency_overrides: + webview_flutter_platform_interface: + path: ../../webview_flutter_platform_interface + webview_flutter_android: + path: ../../webview_flutter_android + webview_flutter_wkwebview: + path: ../../webview_flutter_wkwebview + flutter: uses-material-design: true assets: diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml index dabfe0d0d14a..024c18f6722d 100644 --- a/packages/webview_flutter/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/pubspec.yaml @@ -29,3 +29,11 @@ dev_dependencies: flutter_test: sdk: flutter pedantic: ^1.10.0 + +dependency_overrides: + webview_flutter_platform_interface: + path: ../webview_flutter_platform_interface + webview_flutter_android: + path: ../webview_flutter_android + webview_flutter_wkwebview: + path: ../webview_flutter_wkwebview diff --git a/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml index 1e065a6a5b0b..c9e53ee4bc15 100644 --- a/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/example/pubspec.yaml @@ -26,6 +26,10 @@ dev_dependencies: sdk: flutter pedantic: ^1.10.0 +dependency_overrides: + webview_flutter_platform_interface: + path: ../../webview_flutter_platform_interface + flutter: uses-material-design: true assets: diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index ac208a09ebc0..fd8c929823a4 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -29,3 +29,6 @@ dev_dependencies: pigeon: 1.0.7 pedantic: ^1.10.0 +dependency_overrides: + webview_flutter_platform_interface: + path: ../webview_flutter_platform_interface diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml index 229da5e337a5..f77e289be2bb 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/pubspec.yaml @@ -26,6 +26,10 @@ dev_dependencies: sdk: flutter pedantic: ^1.10.0 +dependency_overrides: + webview_flutter_platform_interface: + path: ../../webview_flutter_platform_interface + flutter: uses-material-design: true assets: diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml index 5176adb9749c..befd58472b33 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml @@ -25,4 +25,8 @@ dev_dependencies: sdk: flutter flutter_test: sdk: flutter - pedantic: ^1.10.0 \ No newline at end of file + pedantic: ^1.10.0 + +dependency_overrides: + webview_flutter_platform_interface: + path: ../webview_flutter_platform_interface \ No newline at end of file From 7a813c5e5457885523fb89d18ea19e93dfdb1c3e Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 10:55:24 +0100 Subject: [PATCH 02/12] Added `limitsNavigationsToAppBoundDomains` to `CreationParams` --- .../lib/src/method_channel/webview_method_channel.dart | 2 ++ .../lib/src/types/creation_params.dart | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart index a88479e7e024..1ad40346108b 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/method_channel/webview_method_channel.dart @@ -239,6 +239,8 @@ class MethodChannelWebViewPlatform implements WebViewPlatformController { 'userAgent': creationParams.userAgent, 'autoMediaPlaybackPolicy': creationParams.autoMediaPlaybackPolicy.index, 'usesHybridComposition': usesHybridComposition, + 'limitsNavigationsToAppBoundDomains': + creationParams.limitsNavigationsToAppBoundDomains, }; } } diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/creation_params.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/creation_params.dart index f213e976ad84..09697b9cad7f 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/creation_params.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/src/types/creation_params.dart @@ -20,6 +20,7 @@ class CreationParams { this.userAgent, this.autoMediaPlaybackPolicy = AutoMediaPlaybackPolicy.require_user_action_for_all_media_types, + this.limitsNavigationsToAppBoundDomains = false, }) : assert(autoMediaPlaybackPolicy != null); /// The initialUrl to load in the webview. @@ -53,8 +54,11 @@ class CreationParams { /// Which restrictions apply on automatic media playback. final AutoMediaPlaybackPolicy autoMediaPlaybackPolicy; + /// This value is used to either enable or disable navigations to app-bound domains + final bool limitsNavigationsToAppBoundDomains; + @override String toString() { - return '$runtimeType(initialUrl: $initialUrl, settings: $webSettings, javascriptChannelNames: $javascriptChannelNames, UserAgent: $userAgent)'; + return '$runtimeType(initialUrl: $initialUrl, settings: $webSettings, javascriptChannelNames: $javascriptChannelNames, UserAgent: $userAgent, limitsNavigationsToAppBoundDomains: $limitsNavigationsToAppBoundDomains)'; } } From b40866dd4a874a7619c1e34f423f38989b6c7879 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 10:55:52 +0100 Subject: [PATCH 03/12] Added logic to handle limitsNavigationsToAppBoundDomains when webview is created --- .../webview_flutter_wkwebview/ios/Classes/FlutterWebView.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m index 5e12f8acb2ea..4228d1e5e495 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m @@ -409,6 +409,11 @@ - (void)applyConfigurationSettings:(NSDictionary*)settings if ([key isEqualToString:@"allowsInlineMediaPlayback"]) { NSNumber* allowsInlineMediaPlayback = settings[key]; configuration.allowsInlineMediaPlayback = [allowsInlineMediaPlayback boolValue]; + } else if ([key isEqualToString:@"limitsNavigationsToAppBoundDomains"]) { + if (@available(iOS 14.0, *)) { + NSNumber* limitsNavigationsToAppBoundDomains = settings[key]; + configuration.limitsNavigationsToAppBoundDomains = [limitsNavigationsToAppBoundDomains boolValue]; + } } } } From f1e4a2bf27537d4e4c8a28263be7d6ad6bd7719e Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 10:56:18 +0100 Subject: [PATCH 04/12] Added limitsNavigationsToAppBoundDomains to `WebSettings` --- .../webview_flutter/webview_flutter/lib/src/webview.dart | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/webview_flutter/webview_flutter/lib/src/webview.dart b/packages/webview_flutter/webview_flutter/lib/src/webview.dart index 7699cc46c5d3..070f96739764 100644 --- a/packages/webview_flutter/webview_flutter/lib/src/webview.dart +++ b/packages/webview_flutter/webview_flutter/lib/src/webview.dart @@ -93,6 +93,7 @@ class WebView extends StatefulWidget { this.initialMediaPlaybackPolicy = AutoMediaPlaybackPolicy.require_user_action_for_all_media_types, this.allowsInlineMediaPlayback = false, + this.limitsNavigationsToAppBoundDomains = false, }) : assert(javascriptMode != null), assert(initialMediaPlaybackPolicy != null), assert(allowsInlineMediaPlayback != null), @@ -211,6 +212,13 @@ class WebView extends StatefulWidget { /// By default `allowsInlineMediaPlayback` is false. final bool allowsInlineMediaPlayback; + /// Controls whether navigation is limited to app-bound domains on iOS + /// + /// This field is ignored on Android and on iOS before iOS 14.0 + /// + /// By default `limitsNavigationsToAppBoundDomains` is false + final bool limitsNavigationsToAppBoundDomains; + /// Invoked when a page starts loading. final PageStartedCallback? onPageStarted; @@ -347,6 +355,7 @@ CreationParams _creationParamsfromWidget(WebView widget) { javascriptChannelNames: _extractChannelNames(widget.javascriptChannels), userAgent: widget.userAgent, autoMediaPlaybackPolicy: widget.initialMediaPlaybackPolicy, + limitsNavigationsToAppBoundDomains: widget.limitsNavigationsToAppBoundDomains, ); } From 28b95b6f69da59d5362b1fb5bc33eb091a808bf8 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 14:57:08 +0100 Subject: [PATCH 05/12] Moved code limitsNavigationsToAppBoundDomains will now be set when the WebView is initialized --- .../ios/Classes/FlutterWebView.m | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m index 4228d1e5e495..e64a4990268b 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/ios/Classes/FlutterWebView.m @@ -94,6 +94,11 @@ - (instancetype)initWithFrame:(CGRect)frame [self updateAutoMediaPlaybackPolicy:args[@"autoMediaPlaybackPolicy"] inConfiguration:configuration]; + if (@available(iOS 14.0, *)) { + NSNumber* limitsNavigationsToAppBoundDomains = args[@"limitsNavigationsToAppBoundDomains"]; + configuration.limitsNavigationsToAppBoundDomains = limitsNavigationsToAppBoundDomains; + } + _webView = [[FLTWKWebView alloc] initWithFrame:frame configuration:configuration]; _navigationDelegate = [[FLTWKNavigationDelegate alloc] initWithChannel:_channel]; _webView.UIDelegate = self; @@ -409,11 +414,6 @@ - (void)applyConfigurationSettings:(NSDictionary*)settings if ([key isEqualToString:@"allowsInlineMediaPlayback"]) { NSNumber* allowsInlineMediaPlayback = settings[key]; configuration.allowsInlineMediaPlayback = [allowsInlineMediaPlayback boolValue]; - } else if ([key isEqualToString:@"limitsNavigationsToAppBoundDomains"]) { - if (@available(iOS 14.0, *)) { - NSNumber* limitsNavigationsToAppBoundDomains = settings[key]; - configuration.limitsNavigationsToAppBoundDomains = [limitsNavigationsToAppBoundDomains boolValue]; - } } } } From f0595377596f5009549d87a96800a234bc6637a9 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 14:58:39 +0100 Subject: [PATCH 06/12] Added limitsNavigationsToAppBoundDomains to example WebView --- .../example/lib/web_view.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/web_view.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/web_view.dart index 403db1f08ac6..a3e1be1ed705 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/lib/web_view.dart +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/lib/web_view.dart @@ -69,6 +69,7 @@ class WebView extends StatefulWidget { this.initialMediaPlaybackPolicy = AutoMediaPlaybackPolicy.require_user_action_for_all_media_types, this.allowsInlineMediaPlayback = false, + this.limitsNavigationsToAppBoundDomains = false, }) : assert(javascriptMode != null), assert(initialMediaPlaybackPolicy != null), assert(allowsInlineMediaPlayback != null), @@ -157,6 +158,13 @@ class WebView extends StatefulWidget { /// By default `allowsInlineMediaPlayback` is false. final bool allowsInlineMediaPlayback; + /// Controls whether navigation is limited to app-bound domains on iOS + /// + /// This field is ignored on Android and on iOS before iOS 14.0 + /// + /// By default `limitsNavigationsToAppBoundDomains` is false + final bool limitsNavigationsToAppBoundDomains; + /// Invoked when a page starts loading. final PageStartedCallback? onPageStarted; @@ -278,6 +286,8 @@ class _WebViewState extends State { _javascriptChannelRegistry.channels.keys.toSet(), autoMediaPlaybackPolicy: widget.initialMediaPlaybackPolicy, userAgent: widget.userAgent, + limitsNavigationsToAppBoundDomains: + widget.limitsNavigationsToAppBoundDomains, ), javascriptChannelRegistry: _javascriptChannelRegistry, ); From defc44281f118081d482a8ddb916fa17e290de39 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 14:59:02 +0100 Subject: [PATCH 07/12] Added native unit test for limitsNavigationsToAppBoundDomains --- .../example/ios/RunnerTests/FLTWebViewTests.m | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m index 9d127c2c4aaa..4909baefcb9c 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m @@ -301,4 +301,48 @@ - (void)testRunJavascriptReturningResultReturnsErrorResultForWKError { [self waitForExpectationsWithTimeout:30.0 handler:nil]; } +- (void)testLimitsNavigationsToAppBoundDomainsDefaultToFalse { + // Setup + FLTWebViewController *controller = + [[FLTWebViewController alloc] initWithFrame:CGRectMake(0, 0, 300, 400) + viewIdentifier:1 + arguments:nil + binaryMessenger:self.mockBinaryMessenger]; + XCTestExpectation *resultExpectation = + [self expectationWithDescription:@"Should set limitsNavigationsToAppBoundDomains to false"]; + + // Run + if (@available(iOS 14.0, *)) { + XCTAssertFalse(controller.webView.configuration.limitsNavigationsToAppBoundDomains); + } + + [resultExpectation fulfill]; + + // Verify + [self waitForExpectationsWithTimeout:30.0 handler:nil]; +} + +- (void)testLimitsNavigationsToAppBoundDomainsSetToTrue { + // Setup + NSDictionary* arguments = @{@"limitsNavigationsToAppBoundDomains": @true}; + + FLTWebViewController *controller = + [[FLTWebViewController alloc] initWithFrame:CGRectMake(0, 0, 300, 400) + viewIdentifier:1 + arguments:arguments + binaryMessenger:self.mockBinaryMessenger]; + XCTestExpectation *resultExpectation = + [self expectationWithDescription:@"Should set limitsNavigationsToAppBoundDomains to true"]; + + // Run + if (@available(iOS 14.0, *)) { + XCTAssertTrue(controller.webView.configuration.limitsNavigationsToAppBoundDomains); + } + + [resultExpectation fulfill]; + + // Verify + [self waitForExpectationsWithTimeout:30.0 handler:nil]; +} + @end From 66b7cbbe5d0e0babae00e2680a38def58769c42b Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 15:21:31 +0100 Subject: [PATCH 08/12] Added flutter unit test to make sure limitsNavigationsToAppBoundDomains is sent correctly --- .../webview_method_channel_test.dart | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart b/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart index b85b7b3df286..7c6efe47f16e 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart @@ -536,6 +536,32 @@ void main() { ); }); }); + + group('Tests limitsNavigationsToAppBoundDomains', () { + test('Make sure limitsNavigationsToAppBoundDomains defaults to false', () { + final value = MethodChannelWebViewPlatform.creationParamsToMap( + CreationParams( + webSettings: WebSettings( + userAgent: WebSetting.of(''), + ), + ) + ); + + expect(value['limitsNavigationsToAppBoundDomains'], false); + }); + test('Make sure limitsNavigationsToAppBoundDomains can be set to true', () { + final value = MethodChannelWebViewPlatform.creationParamsToMap( + CreationParams( + limitsNavigationsToAppBoundDomains: true, + webSettings: WebSettings( + userAgent: WebSetting.of(''), + ), + ) + ); + + expect(value['limitsNavigationsToAppBoundDomains'], true); + }); + }); } class MockWebViewPlatformCallbacksHandler extends Mock From dd012d351023076de9e264eede846e7f25551264 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 15:27:05 +0100 Subject: [PATCH 09/12] Added documentation --- packages/webview_flutter/webview_flutter/README.md | 13 +++++++++---- .../webview_flutter/lib/src/webview.dart | 5 ++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/README.md b/packages/webview_flutter/webview_flutter/README.md index de475ad9acd7..e3b055977a20 100644 --- a/packages/webview_flutter/webview_flutter/README.md +++ b/packages/webview_flutter/webview_flutter/README.md @@ -24,7 +24,7 @@ Here are some points to consider when choosing between the two: * *Hybrid composition* mode has a built-in keyboard support while *Virtual displays* mode has multiple [keyboard issues](https://github.com/flutter/flutter/issues?q=is%3Aopen+label%3Avd-only+label%3A%22p%3A+webview-keyboard%22) * *Hybrid composition* mode requires Android SDK 19+ while *Virtual displays* mode requires Android SDK 20+ -* *Hybrid composition* mode has [performance limitations](https://flutter.dev/docs/development/platform-integration/platform-views#performance) when working on Android versions prior to Android 10 while *Virtual displays* is performant on all supported Android versions +* *Hybrid composition* mode has [performance limitations](https://flutter.dev/docs/development/platform-integration/platform-views#performance) when working on Android versions prior to Android 10 while *Virtual displays* is performant on all supported Android versions | | Hybrid composition | Virtual displays | | --------------------------- | ------------------- | ---------------- | @@ -60,17 +60,17 @@ android { 2. Set `WebView.platform = SurfaceAndroidWebView();` in `initState()`. For example: - + ```dart import 'dart:io'; - + import 'package:webview_flutter/webview_flutter.dart'; class WebViewExample extends StatefulWidget { @override WebViewExampleState createState() => WebViewExampleState(); } - + class WebViewExampleState extends State { @override void initState() { @@ -92,3 +92,8 @@ android { To use Material Components when the user interacts with input elements in the WebView, follow the steps described in the [Enabling Material Components instructions](https://flutter.dev/docs/deployment/android#enabling-material-components). + +## iOS + +### Limits Navigations To App Bound Domains +To take advantage of in-app browsing on iOS 14.0 and iPadOS 14.0, App-Bound Domains can be enabled and setup using the following [guide](https://webkit.org/blog/10882/app-bound-domains/) diff --git a/packages/webview_flutter/webview_flutter/lib/src/webview.dart b/packages/webview_flutter/webview_flutter/lib/src/webview.dart index 070f96739764..9bfc4bb17f53 100644 --- a/packages/webview_flutter/webview_flutter/lib/src/webview.dart +++ b/packages/webview_flutter/webview_flutter/lib/src/webview.dart @@ -75,6 +75,8 @@ class WebView extends StatefulWidget { /// `onWebViewCreated` callback once the web view is created. /// /// The `javascriptMode` and `autoMediaPlaybackPolicy` parameters must not be null. + /// + /// Once the WebView has been initialized, it is not possible to change `limitsNavigationsToAppBoundDomains` const WebView({ Key? key, this.onWebViewCreated, @@ -355,7 +357,8 @@ CreationParams _creationParamsfromWidget(WebView widget) { javascriptChannelNames: _extractChannelNames(widget.javascriptChannels), userAgent: widget.userAgent, autoMediaPlaybackPolicy: widget.initialMediaPlaybackPolicy, - limitsNavigationsToAppBoundDomains: widget.limitsNavigationsToAppBoundDomains, + limitsNavigationsToAppBoundDomains: + widget.limitsNavigationsToAppBoundDomains, ); } From ba488748de465770282d636bd906bb950788836d Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 15:35:40 +0100 Subject: [PATCH 10/12] added dependency overrides --- packages/webview_flutter/webview_flutter_android/pubspec.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml index fd8c929823a4..ac208a09ebc0 100644 --- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml @@ -29,6 +29,3 @@ dev_dependencies: pigeon: 1.0.7 pedantic: ^1.10.0 -dependency_overrides: - webview_flutter_platform_interface: - path: ../webview_flutter_platform_interface From b27b57209af39dfdedb715443c9ce6fe28844741 Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 15:36:09 +0100 Subject: [PATCH 11/12] Updated changelog and pubspec --- packages/webview_flutter/webview_flutter/CHANGELOG.md | 4 ++++ packages/webview_flutter/webview_flutter/pubspec.yaml | 8 ++++---- .../webview_flutter_platform_interface/CHANGELOG.md | 4 ++++ .../webview_flutter_platform_interface/pubspec.yaml | 2 +- .../webview_flutter_wkwebview/CHANGELOG.md | 6 +++++- .../webview_flutter_wkwebview/pubspec.yaml | 4 ++-- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md index f599889c0d5e..ad597e3e3089 100644 --- a/packages/webview_flutter/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.0 + +* Added `limitsNavigationsToAppBoundDomains` functionality for iOS 14.0+. + ## 2.1.2 * Fix typos in the README. diff --git a/packages/webview_flutter/webview_flutter/pubspec.yaml b/packages/webview_flutter/webview_flutter/pubspec.yaml index 024c18f6722d..2894a10cf568 100644 --- a/packages/webview_flutter/webview_flutter/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter description: A Flutter plugin that provides a WebView widget on Android and iOS. repository: https://github.com/flutter/plugins/tree/master/packages/webview_flutter/webview_flutter issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 2.1.2 +version: 2.2.0 environment: sdk: ">=2.14.0 <3.0.0" @@ -19,9 +19,9 @@ flutter: dependencies: flutter: sdk: flutter - webview_flutter_platform_interface: ^1.0.0 - webview_flutter_android: ^2.0.13 - webview_flutter_wkwebview: ^2.0.13 + webview_flutter_platform_interface: ^1.4.0 + webview_flutter_android: ^2.2.0 + webview_flutter_wkwebview: ^2.3.0 dev_dependencies: flutter_driver: diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md index 0579121be82b..1353eb0ca817 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 @@ +## 1.4.0 + +* Added `limitsNavigationsToAppBoundDomains` functionality to `CreationParams`. + ## 1.3.0 * Added `loadRequest` method to platform interface. diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml index 508af0ef0862..4a4746d8ab68 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/plugins/tree/master/packages/webview_flut 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: 1.3.0 +version: 1.4.0 environment: sdk: ">=2.12.0 <3.0.0" diff --git a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md index 4db6dbfd2864..71222f50850c 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.3.0 + +* Added `limitsNavigationsToAppBoundDomains` functionality. + ## 2.2.0 * Implemented new `runJavascript` and `runJavascriptReturningResult` methods in platform interface. @@ -8,7 +12,7 @@ ## 2.0.14 -* Update example App so navigation menu loads immediatly but only becomes available when `WebViewController` is available (same behavior as example App in webview_flutter package). +* Update example App so navigation menu loads immediatly but only becomes available when `WebViewController` is available (same behavior as example App in webview_flutter package). ## 2.0.13 diff --git a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml index befd58472b33..9e918bdc0fa9 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_wkwebview/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_wkwebview description: A Flutter plugin that provides a WebView widget based on Apple's WKWebView control. repository: https://github.com/flutter/plugins/tree/master/packages/webview_flutter/webview_flutter_wkwebview issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 2.2.0 +version: 2.3.0 environment: sdk: ">=2.14.0 <3.0.0" @@ -18,7 +18,7 @@ flutter: dependencies: flutter: sdk: flutter - webview_flutter_platform_interface: ^1.2.0 + webview_flutter_platform_interface: ^1.4.0 dev_dependencies: flutter_driver: From dc456efc287975499ced86c64fa23c021e628d8b Mon Sep 17 00:00:00 2001 From: Gaute Haugen Date: Wed, 3 Nov 2021 16:11:38 +0100 Subject: [PATCH 12/12] Formatting --- .../test/src/method_channel/webview_method_channel_test.dart | 4 ++-- .../example/ios/RunnerTests/FLTWebViewTests.m | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart b/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart index 7c6efe47f16e..56befdd8ee3b 100644 --- a/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart +++ b/packages/webview_flutter/webview_flutter_platform_interface/test/src/method_channel/webview_method_channel_test.dart @@ -544,7 +544,7 @@ void main() { webSettings: WebSettings( userAgent: WebSetting.of(''), ), - ) + ), ); expect(value['limitsNavigationsToAppBoundDomains'], false); @@ -556,7 +556,7 @@ void main() { webSettings: WebSettings( userAgent: WebSetting.of(''), ), - ) + ), ); expect(value['limitsNavigationsToAppBoundDomains'], true); diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m index 4909baefcb9c..cf0d096acab5 100644 --- a/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m +++ b/packages/webview_flutter/webview_flutter_wkwebview/example/ios/RunnerTests/FLTWebViewTests.m @@ -324,7 +324,7 @@ - (void)testLimitsNavigationsToAppBoundDomainsDefaultToFalse { - (void)testLimitsNavigationsToAppBoundDomainsSetToTrue { // Setup - NSDictionary* arguments = @{@"limitsNavigationsToAppBoundDomains": @true}; + NSDictionary *arguments = @{@"limitsNavigationsToAppBoundDomains" : @true}; FLTWebViewController *controller = [[FLTWebViewController alloc] initWithFrame:CGRectMake(0, 0, 300, 400)