Revert "Fix excessive rebuilds of DSS (#69724)" (#71459)

This reverts commit 16dce765775da51416f119a21fc88a8de9ee5fd3.
diff --git a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart
index 9303c98..dac3c02 100644
--- a/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart
+++ b/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart
@@ -288,17 +288,17 @@
 class _DraggableScrollableSheetState extends State<DraggableScrollableSheet> {
   late _DraggableScrollableSheetScrollController _scrollController;
   late _DraggableSheetExtent _extent;
-  // The child only gets rebuilt when dependencies or the widget change.
-  // Otherwise, excessive rebuilds of the child are triggered every time the
-  // scroll extent changes, which is very expensive and does not provide any
-  // helpful information to the child. If the child needs to rebuild whenever
-  // the scroll position changes, they can always subscribe to it.
-  Widget? _child;
 
   @override
   void initState() {
     super.initState();
-    _updateExtent();
+    _extent = _DraggableSheetExtent(
+      minExtent: widget.minChildSize,
+      maxExtent: widget.maxChildSize,
+      initialExtent: widget.initialChildSize,
+      listener: _setExtent,
+    );
+    _scrollController = _DraggableScrollableSheetScrollController(extent: _extent);
   }
 
   @override
@@ -317,33 +317,13 @@
       }
       _extent._currentExtent.value = _extent.initialExtent;
     }
-    _child = widget.builder(context, _scrollController);
-  }
-
-  @override
-  void didUpdateWidget(DraggableScrollableSheet oldWidget) {
-    super.didUpdateWidget(oldWidget);
-    _updateExtent();
-    // Call this unconditionally - the closure may not change even though it
-    // refers to things outside of its identity, e.g. a tearoff from state that
-    // has an `if (stateVariable)`.
-    _child = widget.builder(context, _scrollController);
-  }
-
-  void _updateExtent() {
-    _extent = _DraggableSheetExtent(
-      minExtent: widget.minChildSize,
-      maxExtent: widget.maxChildSize,
-      initialExtent: widget.initialChildSize,
-      listener: _setExtent,
-    );
-    _scrollController = _DraggableScrollableSheetScrollController(extent: _extent);
   }
 
   void _setExtent() {
     setState(() {
       // _extent has been updated when this is called.
     });
+
   }
 
   @override
@@ -353,7 +333,7 @@
         _extent.availablePixels = widget.maxChildSize * constraints.biggest.height;
         final Widget sheet = FractionallySizedBox(
           heightFactor: _extent.currentExtent,
-          child: _child,
+          child: widget.builder(context, _scrollController),
           alignment: Alignment.bottomCenter,
         );
         return widget.expand ? SizedBox.expand(child: sheet) : sheet;
@@ -364,7 +344,6 @@
   @override
   void dispose() {
     _scrollController.dispose();
-    _child = null;
     super.dispose();
   }
 }
diff --git a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart
index 9e1fcc4..f39d4e2 100644
--- a/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart
+++ b/packages/flutter/test/widgets/draggable_scrollable_sheet_test.dart
@@ -309,149 +309,4 @@
       expect(notificationTypes, types);
     });
   }
-
-  testWidgets('Builder is not called excessively', (WidgetTester tester) async {
-    int buildCount = 0;
-    await tester.pumpWidget(Directionality(
-      textDirection: TextDirection.ltr,
-      child: Stack(
-        children: <Widget>[
-          DraggableScrollableSheet(
-            builder: (BuildContext context, ScrollController scrollController) {
-              buildCount += 1;
-              return Container(
-                color: const Color(0xFFABCDEF),
-                child: ListView.builder(
-                  controller: scrollController,
-                  itemExtent: 100,
-                  itemCount: 100,
-                  itemBuilder: (BuildContext context, int index) => Text('Item $index'),
-                ),
-              );
-            },
-          ),
-        ],
-      ),
-    ));
-    expect(buildCount, 1);
-    await tester.flingFrom(const Offset(0, 325), const Offset(0, -325), 200);
-    expect(buildCount, 1);
-    await tester.pumpAndSettle();
-    expect(buildCount, 1);
-  });
-
-  testWidgets('Builder is called if widget updates', (WidgetTester tester) async {
-    int buildCount = 0;
-    final GlobalKey key = GlobalKey();
-    await tester.pumpWidget(Directionality(
-      textDirection: TextDirection.ltr,
-      child: Stack(
-        children: <Widget>[
-          DraggableScrollableSheet(
-            key: key,
-            builder: (BuildContext context, ScrollController scrollController) {
-              buildCount += 1;
-              return Container(
-                color: const Color(0xFFABCDEF),
-                child: ListView.builder(
-                  controller: scrollController,
-                  itemExtent: 100,
-                  itemCount: 100,
-                  itemBuilder: (BuildContext context, int index) => Text('Item $index'),
-                ),
-              );
-            },
-          ),
-        ],
-      ),
-    ));
-    expect(buildCount, 1);
-    expect(find.text('Item 1'), findsOneWidget);
-
-    await tester.pumpWidget(Directionality(
-      textDirection: TextDirection.ltr,
-      child: Stack(
-        children: <Widget>[
-          DraggableScrollableSheet(
-            key: key,
-            builder: (BuildContext context, ScrollController scrollController) {
-              buildCount += 1;
-              return Container(
-                color: const Color(0xFFFEDCBA),
-                child: ListView.builder(
-                  controller: scrollController,
-                  itemExtent: 50,
-                  itemCount: 100,
-                  itemBuilder: (BuildContext context, int index) => Text('New Item $index'),
-                ),
-              );
-            },
-          ),
-        ],
-      ),
-    ));
-    expect(buildCount, 2);
-    expect(find.text('Item 1'), findsNothing);
-    expect(find.text('New Item 1'), findsOneWidget);
-  });
-
-  testWidgets('Changes to min/max/initial child size are respected', (WidgetTester tester) async {
-    final GlobalKey key = GlobalKey();
-    final Key childKey = UniqueKey();
-    await tester.pumpWidget(Directionality(
-      textDirection: TextDirection.ltr,
-      child: Stack(
-        children: <Widget>[
-          DraggableScrollableSheet(
-            key: key,
-            minChildSize: .25,
-            maxChildSize: 1.0,
-            initialChildSize: .5,
-            builder: (BuildContext context, ScrollController scrollController) {
-              return Container(
-                key: childKey,
-                color: const Color(0xFFABCDEF),
-                child: ListView.builder(
-                  controller: scrollController,
-                  itemExtent: 100,
-                  itemCount: 100,
-                  itemBuilder: (BuildContext context, int index) => Text('Item $index'),
-                ),
-              );
-            },
-          ),
-        ],
-      ),
-    ));
-    expect(find.text('Item 1'), findsOneWidget);
-    expect(tester.getRect(find.byKey(childKey)), const Rect.fromLTRB(0, 300, 800, 600));
-
-    await tester.pumpWidget(Directionality(
-      textDirection: TextDirection.ltr,
-      child: Stack(
-        children: <Widget>[
-          DraggableScrollableSheet(
-            key: key,
-            minChildSize: .5,
-            maxChildSize: .75,
-            initialChildSize: .6,
-            builder: (BuildContext context, ScrollController scrollController) {
-              return Container(
-                key: childKey,
-                color: const Color(0xFFFEDCBA),
-                child: ListView.builder(
-                  controller: scrollController,
-                  itemExtent: 50,
-                  itemCount: 100,
-                  itemBuilder: (BuildContext context, int index) => Text('New Item $index'),
-                ),
-              );
-            },
-          ),
-        ],
-      ),
-    ));
-    expect(find.text('New Item 1'), findsOneWidget);
-    expect(tester.getRect(find.byKey(childKey)), const Rect.fromLTRB(0, 240, 800, 600));
-  });
 }