2525using System ;
2626using System . Collections . Generic ;
2727using System . Globalization ;
28+ using System . Linq ;
2829using System . Text . Json ;
2930using System . Text . Json . Serialization ;
3031using System . Threading . Tasks ;
@@ -50,19 +51,22 @@ private static async Task<IBrowser> CreateBrowser(IBrowserType browserType, Play
5051 {
5152 if ( connectOptions != null )
5253 {
53- return await browserType . ConnectAsync ( connectOptions . WSEndpoint , connectOptions ) . ConfigureAwait ( false ) ;
54+ var options = new BrowserTypeConnectOptions ( connectOptions ) ;
55+ options . Headers = [ .. options . Headers ?? new Dictionary < string , string > ( ) ] ;
56+ options . Headers . Append ( new ( "x-playwright-launch-options" , JsonSerializer . Serialize ( PlaywrightSettingsProvider . LaunchOptions , new JsonSerializerOptions ( ) { DefaultIgnoreCondition = JsonIgnoreCondition . WhenWritingNull } ) ) ) ;
57+ return await browserType . ConnectAsync ( connectOptions . WSEndpoint , options ) . ConfigureAwait ( false ) ;
5458 }
5559
56- var legacyBrowser = await ConnectToLegacyService ( browserType ) ;
60+ var legacyBrowser = await ConnectBasedOnEnv ( browserType ) ;
5761 if ( legacyBrowser != null )
5862 {
5963 return legacyBrowser ;
6064 }
6165 return await browserType . LaunchAsync ( PlaywrightSettingsProvider . LaunchOptions ) . ConfigureAwait ( false ) ;
6266 }
6367
64- // TODO: Remove after Q3 2025
65- private static async Task < IBrowser ? > ConnectToLegacyService ( IBrowserType browserType )
68+ // TODO: Remove at some point
69+ private static async Task < IBrowser ? > ConnectBasedOnEnv ( IBrowserType browserType )
6670 {
6771 var accessToken = Environment . GetEnvironmentVariable ( "PLAYWRIGHT_SERVICE_ACCESS_TOKEN" ) ;
6872 var serviceUrl = Environment . GetEnvironmentVariable ( "PLAYWRIGHT_SERVICE_URL" ) ;
0 commit comments