[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.');
   }