Repository: flutter
Issue: Web: Broken Scrolling behavior on Firefox
Labels: framework,f: scrolling,f: gestures,has reproducible steps,browser: firefox,P3,team-framework,triaged-framework,found in release: 3.24,found in release: 3.27

### Steps to reproduce

1. Open the app in Firefox.
2. Start scrolling by holding down the left mouse button.
3. Scroll quickly outside of the browser window and release the left mouse button.

### Expected results

The scroll should snap back, and items inside it should function normally.

### Actual results

The scrolling breaks, and the ScrollView stops functioning as expected; it does not snap back, and the behavior changes. You can no longer perform actions such as onPress if there is a button inside the scrollable widget.

### Code sample

<details open><summary>Code sample</summary>

```dart
import 'dart:ui';

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      scrollBehavior: const MaterialScrollBehavior().copyWith(
        dragDevices: {
          PointerDeviceKind.mouse,
          PointerDeviceKind.touch,
          PointerDeviceKind.stylus,
          PointerDeviceKind.unknown,
        },
      ),
      home: const ImageScreen(),
    );
  }
}

class ImageScreen extends StatefulWidget {
  const ImageScreen({super.key});

  @override
  State<ImageScreen> createState() => _ImageScreenState();
}

class _ImageScreenState extends State<ImageScreen> {
  final ScrollController _scrollController = ScrollController();

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    _scrollController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('SingleChildScrollView Maus-Scrolling'),
      ),
      body: SingleChildScrollView(
        controller: _scrollController,
        physics: const AlwaysScrollableScrollPhysics(),
        child: Column(
          children: List.generate(
            30,
            (index) {
              return Container(
                height: 100,
                margin: const EdgeInsets.all(8.0),
                color: Colors.blueAccent,
                child: Center(
                  child: Text(
                    'Item ${index + 1}',
                    style: const TextStyle(color: Colors.white, fontSize: 20),
                  ),
                ),
              );
            },
          ),
        ),
      ),
    );
  }
}
```

</details>


### Screenshots or Video

<details open>
<summary>Screenshots / Video demonstration</summary>

https://github.com/user-attachments/assets/c6700a3a-8f86-4892-b2e9-964dc07fba7b

</details>



### Flutter Doctor output

<details open><summary>Doctor output</summary>

```console
[✓] Flutter (Channel stable, 3.24.0, on macOS 14.4 23E214 darwin-x64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.86.1)
[✓] Connected device (1 available)
[✓] Network resources

• No issues found!
```

</details>