@@ -48,9 +48,12 @@ public static int RecordProgram(string relativePath)
48
48
49
49
public static void StartCore ( int traceId , int runPid )
50
50
{
51
- var psi = new ProcessStartInfo ( CtPath , $ "start_core { traceId } { runPid } " )
51
+ var psi = new ProcessStartInfo ( CtPath )
52
52
{
53
- WorkingDirectory = CtInstallDir
53
+ WorkingDirectory = CtInstallDir ,
54
+ CreateNoWindow = true ,
55
+ UseShellExecute = true ,
56
+ ArgumentList = { "start_core" , $ "{ traceId } ", $ "{ runPid } "} ,
54
57
} ;
55
58
Process . Start ( psi ) ;
56
59
}
@@ -61,34 +64,39 @@ public static class PlaywrightCodetracerLauncher
61
64
public static string CtPath => CodetracerLauncher . CtPath ;
62
65
public static bool IsCtAvailable => CodetracerLauncher . IsCtAvailable ;
63
66
64
- public static async Task < IPage > LaunchAsync ( string programRelativePath )
67
+ public static async Task < IBrowser > LaunchAsync ( string programRelativePath )
65
68
{
66
69
if ( ! IsCtAvailable )
67
70
throw new FileNotFoundException ( $ "ct executable not found at { CtPath } ") ;
68
71
69
72
int traceId = CodetracerLauncher . RecordProgram ( programRelativePath ) ;
70
- CodetracerLauncher . StartCore ( traceId , 1 ) ;
71
73
72
- var playwright = await Playwright . CreateAsync ( ) ;
73
- var app = await ( ( dynamic ) playwright ) . _electron . LaunchAsync ( new
74
+ // CodetracerLauncher.StartCore(traceId, 1);
75
+
76
+ var info = new ProcessStartInfo ( CtPath )
74
77
{
75
- executablePath = CtPath ,
76
- cwd = CodetracerLauncher . CtInstallDir ,
77
- env = new
78
- {
79
- CODETRACER_CALLER_PID = "1" ,
80
- CODETRACER_TRACE_ID = traceId . ToString ( ) ,
81
- CODETRACER_IN_UI_TEST = "1" ,
82
- CODETRACER_TEST = "1" ,
83
- CODETRACER_WRAP_ELECTRON = "1" ,
84
- CODETRACER_START_INDEX = "1"
85
- }
86
- } ) ;
87
-
88
- var firstWindow = await app . FirstWindowAsync ( ) ;
89
- return ( await firstWindow . TitleAsync ( ) ) == "DevTools"
90
- ? ( await app . WindowsAsync ( ) ) [ 1 ]
91
- : firstWindow ;
78
+ WorkingDirectory = CodetracerLauncher . CtInstallDir ,
79
+ // UseShellExecute = true,
80
+ ArgumentList = { "--remote-debugging-port=9222" } ,
81
+ } ;
82
+
83
+ info . EnvironmentVariables . Add ( "CODETRACER_CALLER_PID" , "1" ) ;
84
+ info . EnvironmentVariables . Add ( "CODETRACER_TRACE_ID" , traceId . ToString ( ) ) ;
85
+ info . EnvironmentVariables . Add ( "CODETRACER_IN_UI_TEST" , "1" ) ;
86
+ info . EnvironmentVariables . Add ( "CODETRACER_TEST" , "1" ) ;
87
+ info . EnvironmentVariables . Add ( "CODETRACER_WRAP_ELECTRON" , "1" ) ;
88
+ info . EnvironmentVariables . Add ( "CODETRACER_START_INDEX" , "1" ) ;
89
+
90
+ Process . Start ( info ) ;
91
+
92
+ var playwright = await Playwright . CreateAsync ( ) ;
93
+ var app = await playwright . Chromium . ConnectOverCDPAsync ( "localhost:9223" ) ;
94
+
95
+ return app ;
96
+ // var firstWindow = await app.FirstWindowAsync();
97
+ // return (await firstWindow.TitleAsync()) == "DevTools"
98
+ // ? (await app.WindowsAsync())[1]
99
+ // : firstWindow;
92
100
}
93
101
}
94
102
0 commit comments