[webview_flutter_platform_interface] Adds missing build params for WebViewWidget  (#6279)

diff --git a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
index 353e679..12792ac 100644
--- a/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_platform_interface/CHANGELOG.md
@@ -1,7 +1,8 @@
-## NEXT
+## 1.9.2
 
 * Fixes avoid_redundant_argument_values lint warnings and minor typos.
 * Ignores unnecessary import warnings in preparation for [upcoming Flutter changes](https://github.com/flutter/flutter/pull/106316).
+* Adds missing build params for v4 WebViewWidget interface.
 
 ## 1.9.1
 
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 40334c6..6d73162 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,8 +2,11 @@
 // 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';
 
@@ -33,5 +36,75 @@
   /// Builds a new WebView.
   ///
   /// Returns a Widget tree that embeds the created web view.
-  Widget build(BuildContext context);
+  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;
 }
diff --git a/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml b/packages/webview_flutter/webview_flutter_platform_interface/pubspec.yaml
index 2c1fb09..d0fffe8 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.1
+version: 1.9.2
 
 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 ede16c1..ffa7590 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(BuildContext context) {
+  Widget build(BuildParams params) {
     throw UnimplementedError(
         'build is not implemented for ExtendedWebViewWidgetDelegate.');
   }