migrate web integration tests to null safety (#106231)

diff --git a/packages/flutter_tools/test/web.shard/debugger_stepping_web_test.dart b/packages/flutter_tools/test/web.shard/debugger_stepping_web_test.dart
index c2656ad..0663bb6 100644
--- a/packages/flutter_tools/test/web.shard/debugger_stepping_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/debugger_stepping_web_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'package:file/file.dart';
 
 import '../integration.shard/test_data/stepping_project.dart';
@@ -12,8 +10,8 @@
 import '../src/common.dart';
 
 void main() {
-  Directory tempDirectory;
-  FlutterRunTestDriver flutter;
+  late Directory tempDirectory;
+  late FlutterRunTestDriver flutter;
 
   setUp(() {
     tempDirectory = createResolvedTempDirectorySync('debugger_stepping_test.');
@@ -30,13 +28,13 @@
       additionalCommandArgs: <String>['--verbose', '--web-renderer=html']);
     await flutter.addBreakpoint(project.breakpointUri, project.breakpointLine);
     await flutter.resume(waitForNextPause: true); // Now we should be on the breakpoint.
-    expect((await flutter.getSourceLocation()).line, equals(project.breakpointLine));
+    expect((await flutter.getSourceLocation())!.line, equals(project.breakpointLine));
 
     // Issue 5 steps, ensuring that we end up on the annotated lines each time.
     for (int i = 1; i <= project.numberOfSteps; i += 1) {
       await flutter.stepOverOrOverAsyncSuspension();
-      final SourcePosition location = await flutter.getSourceLocation();
-      final int actualLine = location.line;
+      final SourcePosition? location = await flutter.getSourceLocation();
+      final int actualLine = location!.line;
 
       // Get the line we're expected to stop at by searching for the comment
       // within the source code.
diff --git a/packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart b/packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart
index 5c1cbe9..3f4564f 100644
--- a/packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/expression_evaluation_web_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'package:file/file.dart';
 import 'package:vm_service/vm_service.dart';
 
@@ -16,8 +14,8 @@
 void main() {
   group('Flutter run for web', () {
     final BasicProject project = BasicProject();
-    Directory tempDir;
-    FlutterRunTestDriver flutter;
+    late Directory tempDir;
+    late FlutterRunTestDriver flutter;
 
     setUp(() async {
       tempDir = createResolvedTempDirectorySync('run_expression_eval_test.');
@@ -33,7 +31,7 @@
       tryToDelete(tempDir);
     });
 
-    Future<void> start({bool expressionEvaluation}) async {
+    Future<void> start({required bool expressionEvaluation}) async {
       // The non-test project has a loop around its breakpoints.
       // No need to start paused as all breakpoint would be eventually reached.
       await flutter.run(
@@ -116,8 +114,8 @@
 
   group('Flutter test for web', () {
     final TestsProject project = TestsProject();
-    Directory tempDir;
-    FlutterRunTestDriver flutter;
+    late Directory tempDir;
+    late FlutterRunTestDriver flutter;
 
     setUp(() async {
       tempDir = createResolvedTempDirectorySync('run_expression_eval_test.');
@@ -130,7 +128,7 @@
       tryToDelete(tempDir);
     });
 
-    Future<Isolate> breakInMethod(FlutterTestDriver flutter) async {
+    Future<Isolate?> breakInMethod(FlutterTestDriver flutter) async {
       await flutter.addBreakpoint(
         project.breakpointAppUri,
         project.breakpointLine,
@@ -138,7 +136,7 @@
       return flutter.resume(waitForNextPause: true);
     }
 
-    Future<void> startPaused({bool expressionEvaluation}) {
+    Future<void> startPaused({required bool expressionEvaluation}) {
       // The test project does not have a loop around its breakpoints.
       // Start paused so we can set a breakpoint before passing it
       // in the execution.
@@ -224,19 +222,19 @@
 
 Future<void> evaluateTrivialExpressionsInLibrary(FlutterTestDriver flutter) async {
   final LibraryRef library = await getRootLibrary(flutter);
-  final ObjRef res = await flutter.evaluate(library.id, '"test"');
+  final ObjRef res = await flutter.evaluate(library.id!, '"test"');
   expectInstance(res, InstanceKind.kString, 'test');
 }
 
 Future<void> evaluateComplexExpressionsInLibrary(FlutterTestDriver flutter) async {
   final LibraryRef library = await getRootLibrary(flutter);
-  final ObjRef res = await flutter.evaluate(library.id, 'new DateTime.now().year');
+  final ObjRef res = await flutter.evaluate(library.id!, 'new DateTime.now().year');
   expectInstance(res, InstanceKind.kDouble, DateTime.now().year.toString());
 }
 
 Future<void> evaluateWebLibraryBooleanFromEnvironmentInLibrary(FlutterTestDriver flutter) async {
   final LibraryRef library = await getRootLibrary(flutter);
-  final ObjRef res = await flutter.evaluate(library.id, 'const bool.fromEnvironment("dart.library.html")');
+  final ObjRef res = await flutter.evaluate(library.id!, 'const bool.fromEnvironment("dart.library.html")');
   expectInstance(res, InstanceKind.kBool, true.toString());
 }
 
@@ -246,8 +244,8 @@
   //
   // Issue: https://github.com/dart-lang/sdk/issues/44760
   final Isolate isolate = await flutter.getFlutterIsolate();
-  return isolate.libraries
-    .firstWhere((LibraryRef l) => l.uri.contains('org-dartlang-app'));
+  return isolate.libraries!
+    .firstWhere((LibraryRef l) => l.uri!.contains('org-dartlang-app'));
 }
 
 void expectInstance(ObjRef result, String kind, String message) {
diff --git a/packages/flutter_tools/test/web.shard/hot_reload_web_test.dart b/packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
index 57732e3..ba26e11 100644
--- a/packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/hot_reload_web_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'dart:async';
 
 import 'package:file/file.dart';
@@ -14,9 +12,9 @@
 import '../src/common.dart';
 
 void main() {
-  Directory tempDir;
+  late Directory tempDir;
   final HotReloadProject project = HotReloadProject();
-  FlutterRunTestDriver flutter;
+  late FlutterRunTestDriver flutter;
 
   setUp(() async {
     tempDir = createResolvedTempDirectorySync('hot_reload_test.');
@@ -25,8 +23,8 @@
   });
 
   tearDown(() async {
-    await flutter?.stop();
-    await flutter?.done;
+    await flutter.stop();
+    await flutter.done;
     tryToDelete(tempDir);
   });
 
diff --git a/packages/flutter_tools/test/web.shard/output_web_test.dart b/packages/flutter_tools/test/web.shard/output_web_test.dart
index cc38b87..6252666 100644
--- a/packages/flutter_tools/test/web.shard/output_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/output_web_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'package:file/file.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
 import 'package:vm_service/vm_service.dart';
@@ -15,15 +13,14 @@
 import '../src/common.dart';
 
 void main() {
-  Directory tempDir;
+  late Directory tempDir;
   final BasicProjectWithUnaryMain project = BasicProjectWithUnaryMain();
-  FlutterRunTestDriver flutter;
+  late FlutterRunTestDriver flutter;
 
   setUp(() async {
     tempDir = createResolvedTempDirectorySync('run_test.');
     await project.setUpIn(tempDir);
     flutter = FlutterRunTestDriver(tempDir);
-    //flutter.stdout.listen(print);
   });
 
   tearDown(() async {
@@ -37,7 +34,6 @@
       await flutter.run(
         withDebugger: true,
         chrome: true,
-        expressionEvaluation: true,
         additionalCommandArgs: <String>[
           if (verbose) '--verbose',
           '--web-renderer=html',
diff --git a/packages/flutter_tools/test/web.shard/vm_service_web_test.dart b/packages/flutter_tools/test/web.shard/vm_service_web_test.dart
index 6c81d04..78636bb 100644
--- a/packages/flutter_tools/test/web.shard/vm_service_web_test.dart
+++ b/packages/flutter_tools/test/web.shard/vm_service_web_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'dart:async';
 
 import 'package:file/file.dart';
@@ -17,9 +15,9 @@
 import '../src/common.dart';
 
 void main() {
-  Directory tempDir;
+  late Directory tempDir;
   final BasicProjectWithUnaryMain project = BasicProjectWithUnaryMain();
-  FlutterRunTestDriver flutter;
+  late FlutterRunTestDriver flutter;
 
   group('Clients of flutter run on web with DDS enabled', () {
     setUp(() async {
@@ -92,7 +90,7 @@
 }
 
 Future<void> validateFlutterVersion(VmService client) async {
-  String method;
+  String? method;
 
   final Future<dynamic> registration = expectLater(
     client.onEvent('Service'),
@@ -110,10 +108,10 @@
   await registration;
   await client.streamCancel('Service');
 
-  final dynamic version1 = await client.callServiceExtension(method);
+  final dynamic version1 = await client.callServiceExtension(method!);
   expect(version1, const TypeMatcher<Success>()
     .having((Success r) => r.type, 'type', 'Success')
-    .having((Success r) => r.json['frameworkVersion'], 'frameworkVersion', isNotNull));
+    .having((Success r) => r.json!['frameworkVersion'], 'frameworkVersion', isNotNull));
 
   await client.dispose();
 }
diff --git a/packages/flutter_tools/test/web.shard/web_driver_service_test.dart b/packages/flutter_tools/test/web.shard/web_driver_service_test.dart
index 4d1201e..1caea4c 100644
--- a/packages/flutter_tools/test/web.shard/web_driver_service_test.dart
+++ b/packages/flutter_tools/test/web.shard/web_driver_service_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'package:flutter_tools/src/base/common.dart';
 import 'package:flutter_tools/src/base/logger.dart';
 import 'package:flutter_tools/src/base/process.dart';
diff --git a/packages/flutter_tools/test/web.shard/web_run_test.dart b/packages/flutter_tools/test/web.shard/web_run_test.dart
index 32f6e1e..c9c8227 100644
--- a/packages/flutter_tools/test/web.shard/web_run_test.dart
+++ b/packages/flutter_tools/test/web.shard/web_run_test.dart
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// @dart = 2.8
-
 import 'package:file/file.dart';
 import 'package:flutter_tools/src/base/file_system.dart';
 
@@ -13,9 +11,9 @@
 import '../src/common.dart';
 
 void main() {
-  Directory tempDir;
+  late Directory tempDir;
   final BasicProjectWithUnaryMain project = BasicProjectWithUnaryMain();
-  FlutterRunTestDriver flutter;
+  late FlutterRunTestDriver flutter;
 
   setUp(() async {
     tempDir = createResolvedTempDirectorySync('run_test.');