Repository: flutter
Issue: WebView slows down list view when it appears in the list during scroll on iOS
Labels: platform-ios,c: performance,a: platform-views,p: webview,package,perf: speed,has reproducible steps,P2,team-ios,triaged-ios,found in release: 3.13,found in release: 3.16

### Steps to reproduce

List view is laggy when scroll is reach web content. It ok on android, but on iOS is laggy even web view just loadHtmlString only.

### Code sample

<details><summary>Code sample</summary>

```dart
class _MyHomePageState extends State<MyHomePage> {
  var item = [];

  Widget thisWidget(){
    return Container(
      color: Colors.grey.shade200,
      margin: const EdgeInsets.symmetric(vertical: 5,),
      child: const Center(
        child: Text("Widget"),
      ),
    );
  }

  @override
  void initState() {
    super.initState();
    final controller = WebViewController()
      ..setJavaScriptMode(JavaScriptMode.unrestricted)
      ..setBackgroundColor(Colors.orange)
      ..loadHtmlString("<h1>WebView</h1>");

    item = [
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      Container(
        margin: const EdgeInsets.symmetric(vertical: 5,),
        child: WebViewWidget(controller: controller),
      ),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      Container(
        margin: const EdgeInsets.symmetric(vertical: 5,),
        child: WebViewWidget(controller: controller),
      ),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
      thisWidget(),
    ];
  }

  @override
  Widget build(BuildContext context) {

    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: GridView.builder(
        padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5,),
        gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
          crossAxisCount: 1,
          childAspectRatio: 16/9,
        ),
        itemBuilder: (context, index) => item[index],
        itemCount: item.length,
      ),
    );
  }
}
```

</details>


### Performance profiling on master channel

- [X] The issue still persists on the master channel

### Timeline Traces

<details><summary>Timeline Traces JSON</summary>

```json
[Paste the Timeline Traces here]
```

</details>


### Video demonstration

<details>
<summary>Video demonstration</summary>


https://github.com/flutter/flutter/assets/36258256/61beb095-f370-4305-9f0d-f429d9f3f4ad


https://github.com/flutter/flutter/assets/36258256/a2970655-6b34-4c97-a1f6-ba70adb61cec


</details>


### What target platforms are you seeing this bug on?

iOS

### OS/Browser name and version | Device information

iPhone Xs Max
- iOS 17.0.3 21A360

iPhone 14 Pro Max
- iOS 17.0.3 21A360

### Does the problem occur on emulator/simulator as well as on physical devices?

Unknown

### Is the problem only reproducible with Impeller?

N/A

### Logs

<details><summary>Logs</summary>

```console
[Paste your logs here]
```

</details>


### Flutter Doctor output

<details><summary>Doctor output</summary>

```console
[✓] Flutter (Channel stable, 3.13.8, on macOS 14.0 23A344 darwin-arm64, locale en-US)
    • Flutter version 3.13.8 on channel stable at /Users/sounniroth/development/flutter 3.13
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 6c4930c4ac (35 hours ago), 2023-10-18 10:57:55 -0500
    • Engine revision 767d8c75e8
    • Dart version 3.1.4
    • DevTools version 2.25.0

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/sounniroth/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15A240d
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.81.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (5 available)
    • KB2005 (mobile)               • adb-be11fd60-wzU6HF._adb-tls-connect._tcp. • android-arm64  • Android 13 (API 33)
    • Soun’s iPhone (mobile)        • 00008020-000609022606002E                  • ios            • iOS 17.0.3 21A360
    • Bunchhourng’s iPhone (mobile) • 00008120-0014684C02F3C01E                  • ios            • iOS 17.0.3 21A360
    • macOS (desktop)               • macos                                      • darwin-arm64   • macOS 14.0 23A344 darwin-arm64
    • Chrome (web)                  • chrome                                     • web-javascript • Google Chrome 118.0.5993.88

[✓] Network resources
    • All expected network resources are available.

• No issues found!
Process finished with exit code 0
```

</details>