[webview_flutter_platform_interface] Fix build params (#6304)
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
index b168231..17b8652 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
@@ -1,6 +1,7 @@
-## NEXT
+## 1.9.3
* Updates minimum Flutter version to 2.10.
+* Removes `BuildParams` from v4 interface and adds `layoutDirection` to the creation params.
## 1.9.2
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/platform_webview_widget.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/platform_webview_widget.dart
index 6d73162..40334c6 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/platform_webview_widget.dart
+++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/platform_webview_widget.dart
@@ -2,11 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-import 'package:flutter/foundation.dart';
-import 'package:flutter/gestures.dart';
import 'package:flutter/widgets.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
-import 'package:webview_flutter_platform_interface/v4/src/platform_webview_controller.dart';
import 'webview_platform.dart';
@@ -36,75 +33,5 @@
/// Builds a new WebView.
///
/// Returns a Widget tree that embeds the created web view.
- Widget build(BuildParams params);
-}
-
-/// Describes the parameters necessary for displaying the platform WebView.
-///
-/// Platform specific implementations can add additional fields by extending
-/// this class.
-///
-/// {@tool sample}
-/// This example demonstrates how to extend the [BuildParams] to provide
-/// additional platform specific parameters.
-///
-/// When extending [BuildParams], additional parameters should always accept
-/// `null` or have a default value to prevent breaking changes.
-///
-/// ```dart
-/// @immutable
-/// class WebKitBuildParams extends BuildParams {
-/// WebKitBuildParams(
-/// super.context, {
-/// required super.controller,
-/// super.layoutDirection,
-/// super.gestureRecognizers,
-/// this.platformSpecificFieldExample,
-/// });
-///
-/// WebKitBuildParams.fromBuildParams(
-/// BuildParams params, {
-/// Object? platformSpecificFieldExample,
-/// }) : this(
-/// params.context,
-/// controller: params.controller,
-/// layoutDirection: params.layoutDirection,
-/// gestureRecognizers: params.gestureRecognizers,
-/// platformSpecificFieldExample: platformSpecificFieldExample,
-/// );
-///
-/// final Object? platformSpecificFieldExample;
-/// }
-/// ```
-/// {@end-tool}
-@immutable
-class BuildParams {
- /// Constructs a [BuildParams].
- const BuildParams(
- this.context, {
- required this.controller,
- this.layoutDirection = TextDirection.ltr,
- this.gestureRecognizers = const <Factory<OneSequenceGestureRecognizer>>{},
- });
-
- /// Describes the part of the user interface represented by the returned
- /// widget.
- final BuildContext context;
-
- /// Controls the embedded WebView for the current platform.
- final PlatformWebViewController controller;
-
- /// The layout direction to use for the embedded WebView.
- final TextDirection layoutDirection;
-
- /// Specifies which gestures should be consumed by the web view.
- ///
- /// It is possible for other gesture recognizers to be competing with the web
- /// view on pointer events, e.g if the web view is inside a [ListView] the
- /// [ListView] will want to handle vertical drags. The web view will claim
- /// gestures that are recognized by any of the recognizers on this list.
- ///
- /// When this is empty, the web view will only handle pointer events for
- /// gestures that were not claimed by any other gesture recognizer.
- final Set<Factory<OneSequenceGestureRecognizer>> gestureRecognizers;
+ Widget build(BuildContext context);
}
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/types/platform_webview_widget_creation_params.dart b/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/types/platform_webview_widget_creation_params.dart
index 1812d7e..83a73c2 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/types/platform_webview_widget_creation_params.dart
+++ b/packages/webview_flutter/webview_flutter_platform_interface/lib/v4/src/types/platform_webview_widget_creation_params.dart
@@ -4,6 +4,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';
+import 'package:flutter/painting.dart';
import '../platform_webview_controller.dart';
@@ -21,26 +22,26 @@
/// changes.
///
/// ```dart
-/// class WKWebViewWidgetCreationParams extends PlatformWebViewWidgetCreationParams {
-/// WKWebViewWidgetCreationParams._(
-/// // This parameter prevents breaking changes later.
-/// // ignore: avoid_unused_constructor_parameters
+/// class AndroidWebViewWidgetCreationParams
+/// extends PlatformWebViewWidgetCreationParams {
+/// AndroidWebViewWidgetCreationParams({
+/// super.key,
+/// super.layoutDirection,
+/// super.gestureRecognizers,
+/// this.platformSpecificFieldExample,
+/// });
+///
+/// WKWebViewWidgetCreationParams.fromPlatformWebViewWidgetCreationParams(
/// PlatformWebViewWidgetCreationParams params, {
-/// this.domain,
-/// }) : super(
+/// Object? platformSpecificFieldExample,
+/// }) : this(
/// key: params.key,
-/// controller: params.controller,
+/// layoutDirection: params.layoutDirection,
/// gestureRecognizers: params.gestureRecognizers,
+/// platformSpecificFieldExample: platformSpecificFieldExample,
/// );
///
-/// factory WKWebViewWidgetCreationParams.fromPlatformWebViewWidgetCreationParams(
-/// PlatformWebViewWidgetCreationParams params, {
-/// String? domain,
-/// }) {
-/// return WKWebViewWidgetCreationParams._(params, domain: domain);
-/// }
-///
-/// final String? domain;
+/// final Object? platformSpecificFieldExample;
/// }
/// ```
/// {@end-tool}
@@ -50,6 +51,7 @@
const PlatformWebViewWidgetCreationParams({
this.key,
required this.controller,
+ this.layoutDirection = TextDirection.ltr,
this.gestureRecognizers = const <Factory<OneSequenceGestureRecognizer>>{},
});
@@ -64,6 +66,9 @@
/// view.
final PlatformWebViewController controller;
+ /// The layout direction to use for the embedded WebView.
+ final TextDirection layoutDirection;
+
/// The `gestureRecognizers` specifies which gestures should be consumed by the
/// web view.
///
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml
index f2fc9aa..5b98154 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 @@
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.9.2
+version: 1.9.3
environment:
sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/test/src/v4/platform_webview_widget_test.dart b/packages/webview_flutter/webview_flutter_platform_interface/test/src/v4/platform_webview_widget_test.dart
index ffa7590..ede16c1 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/test/src/v4/platform_webview_widget_test.dart
+++ b/packages/webview_flutter/webview_flutter_platform_interface/test/src/v4/platform_webview_widget_test.dart
@@ -82,7 +82,7 @@
: super.implementation(params);
@override
- Widget build(BuildParams params) {
+ Widget build(BuildContext context) {
throw UnimplementedError(
'build is not implemented for ExtendedWebViewWidgetDelegate.');
}