[flutter_tools] split web integration tests into new shard (#69914)

diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index d88f018..ac2e00f 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -320,7 +320,7 @@
     Directory(path.join(toolsPath, kTest))
       .listSync()
       .map<String>((FileSystemEntity entry) => entry.path)
-      .where((String name) => name.endsWith(kDotShard))
+      .where((String name) => name.endsWith(kDotShard) && !name.contains('web'))
       .map<String>((String name) => path.basenameWithoutExtension(name)),
     // The `dynamic` on the next line is because Map.fromIterable isn't generic.
     value: (dynamic subshard) => () async {
diff --git a/packages/flutter_tools/test/integration.shard/expression_evaluation_web_test.dart b/packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart
similarity index 86%
rename from packages/flutter_tools/test/integration.shard/expression_evaluation_web_test.dart
rename to packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart
index 14f4247..ad26488 100644
--- a/packages/flutter_tools/test/integration.shard/expression_evaluation_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart
@@ -4,14 +4,13 @@
 
 import 'package:file/file.dart';
 import 'package:matcher/matcher.dart';
-
 import 'package:vm_service/vm_service.dart';
 
+import '../integration.shard/test_data/basic_project.dart';
+import '../integration.shard/test_data/tests_project.dart';
+import '../integration.shard/test_driver.dart';
+import '../integration.shard/test_utils.dart';
 import '../src/common.dart';
-import 'test_data/basic_project.dart';
-import 'test_data/tests_project.dart';
-import 'test_driver.dart';
-import 'test_utils.dart';
 
 void batch1() {
   final BasicProject _project = BasicProject();
@@ -57,7 +56,7 @@
     await breakInTopLevelFunction(_flutter);
     await failToEvaluateExpression(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
  testWithoutContext('flutter run expression evaluation - no native javascript objects in static scope', () async {
     await initProject();
@@ -65,7 +64,7 @@
     await breakInTopLevelFunction(_flutter);
     await checkStaticScope(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter run expression evaluation - can handle compilation errors', () async {
     await initProject();
@@ -73,7 +72,7 @@
     await breakInTopLevelFunction(_flutter);
     await evaluateErrorExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter run expression evaluation - can evaluate trivial expressions in top level function', () async {
     await initProject();
@@ -81,7 +80,7 @@
     await breakInTopLevelFunction(_flutter);
     await evaluateTrivialExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter run expression evaluation - can evaluate trivial expressions in build method', () async {
     await initProject();
@@ -89,7 +88,7 @@
     await breakInBuildMethod(_flutter);
     await evaluateTrivialExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter run expression evaluation - can evaluate complex expressions in top level function', () async {
     await initProject();
@@ -97,7 +96,7 @@
     await breakInTopLevelFunction(_flutter);
     await evaluateComplexExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter run expression evaluation - can evaluate complex expressions in build method', () async {
     await initProject();
@@ -105,7 +104,7 @@
     await breakInBuildMethod(_flutter);
     await evaluateComplexExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 }
 
 void batch2() {
@@ -149,7 +148,7 @@
     await breakInMethod(_flutter);
     await failToEvaluateExpression(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter test expression evaluation - can evaluate trivial expressions in a test', () async {
     await initProject();
@@ -157,7 +156,7 @@
     await breakInMethod(_flutter);
     await evaluateTrivialExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 
   testWithoutContext('flutter test expression evaluation - can evaluate complex expressions in a test', () async {
     await initProject();
@@ -165,7 +164,7 @@
     await breakInMethod(_flutter);
     await evaluateComplexExpressions(_flutter);
     await cleanProject();
-  }, skip: 'Cannot run on non-web-bot'); // Issue: https://github.com/flutter/flutter/issues/69711
+  });
 }
 
 Future<void> failToEvaluateExpression(FlutterTestDriver flutter) async {
diff --git a/packages/flutter_tools/test/integration.shard/hot_reload_web_test.dart b/packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
similarity index 84%
rename from packages/flutter_tools/test/integration.shard/hot_reload_web_test.dart
rename to packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
index 4cdb8dd..a1af4ef 100644
--- a/packages/flutter_tools/test/integration.shard/hot_reload_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
@@ -6,10 +6,10 @@
 
 import 'package:file/file.dart';
 
+import '../integration.shard/test_data/hot_reload_project.dart';
+import '../integration.shard/test_driver.dart';
+import '../integration.shard/test_utils.dart';
 import '../src/common.dart';
-import 'test_data/hot_reload_project.dart';
-import 'test_driver.dart';
-import 'test_utils.dart';
 
 void main() {
   Directory tempDir;
@@ -30,7 +30,7 @@
   testWithoutContext('hot restart works without error', () async {
     await flutter.run(chrome: true);
     await flutter.hotRestart();
-  }, skip: true); // TODO(jonahwilliams): https://github.com/flutter/flutter/issues/69804
+  });
 
   testWithoutContext('newly added code executes during hot restart', () async {
     final Completer<void> completer = Completer<void>();
@@ -48,7 +48,7 @@
     } finally {
       await subscription.cancel();
     }
-  }, skip: true); // TODO(jonahwilliams): https://github.com/flutter/flutter/issues/69804
+  });
 
   testWithoutContext('newly added code executes during hot restart - canvaskit', () async {
     final Completer<void> completer = Completer<void>();
@@ -66,5 +66,5 @@
     } finally {
       await subscription.cancel();
     }
-  }, skip: true); // TODO(jonahwilliams): https://github.com/flutter/flutter/issues/69804
+  });
 }