diff --git a/packages/flutter_tools/lib/src/drive/web_driver_service.dart b/packages/flutter_tools/lib/src/drive/web_driver_service.dart index 8958a4150b..a0b5c7296a 100644 --- a/packages/flutter_tools/lib/src/drive/web_driver_service.dart +++ b/packages/flutter_tools/lib/src/drive/web_driver_service.dart @@ -78,6 +78,7 @@ class WebDriverService extends DriverService { hostname: debuggingOptions.hostname, webRenderer: debuggingOptions.webRenderer, webUseWasm: debuggingOptions.webUseWasm, + webHeaders: debuggingOptions.webHeaders, ) : DebuggingOptions.enabled( buildInfo, @@ -86,6 +87,7 @@ class WebDriverService extends DriverService { disablePortPublication: debuggingOptions.disablePortPublication, webRenderer: debuggingOptions.webRenderer, webUseWasm: debuggingOptions.webUseWasm, + webHeaders: debuggingOptions.webHeaders, ), stayResident: true, flutterProject: FlutterProject.current(), diff --git a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart index 8854e2c7a6..9d08262a09 100644 --- a/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/web_driver_service_test.dart @@ -270,6 +270,17 @@ void main() { WebRunnerFactory: () => FakeWebRunnerFactory(), }); + testUsingContext('WebDriverService starts an app with provided web headers', () async { + final WebDriverService service = setUpDriverService(); + final FakeDevice device = FakeDevice(); + final Map webHeaders = {'test-header': 'test-value'}; + await service.start(BuildInfo.profile, device, DebuggingOptions.enabled(BuildInfo.profile, webHeaders: webHeaders, ipv6: true)); + await service.stop(); + expect(FakeResidentRunner.instance.debuggingOptions.webHeaders, equals(webHeaders)); + }, overrides: { + WebRunnerFactory: () => FakeWebRunnerFactory(), + }); + testUsingContext('WebDriverService will throw when an invalid launch url is provided', () async { final WebDriverService service = setUpDriverService(); final FakeDevice device = FakeDevice(); @@ -310,7 +321,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory { bool? stayResident, FlutterProject? flutterProject, bool? ipv6, - DebuggingOptions? debuggingOptions, + required DebuggingOptions debuggingOptions, UrlTunneller? urlTunneller, Logger? logger, FileSystem? fileSystem, @@ -322,6 +333,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory { expect(stayResident, isTrue); return FakeResidentRunner( doResolveToError: doResolveToError, + debuggingOptions: debuggingOptions, ); } } @@ -329,6 +341,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory { class FakeResidentRunner extends Fake implements ResidentRunner { FakeResidentRunner({ required this.doResolveToError, + required this.debuggingOptions, }) { instance = this; } @@ -336,6 +349,8 @@ class FakeResidentRunner extends Fake implements ResidentRunner { static late FakeResidentRunner instance; final bool doResolveToError; + @override + final DebuggingOptions debuggingOptions; final Completer _exitCompleter = Completer(); final List callLog = [];