@@ -50,9 +50,9 @@ extern "C"
5050 const void * GlobalizationResolveDllImport (const char * name);
5151 const void * CompressionResolveDllImport (const char * name);
5252
53- bool browserHostExternalAssemblyProbe (const char * pathPtr, /* out*/ void **outDataStartPtr, /* out*/ int64_t * outSize);
54- void browserHostResolveMain (int exitCode);
55- void browserHostRejectMain (const char *reason);
53+ bool BrowserHost_ExternalAssemblyProbe (const char * pathPtr, /* out*/ void **outDataStartPtr, /* out*/ int64_t * outSize);
54+ void BrowserHost_ResolveMain (int exitCode);
55+ void BrowserHost_RejectMain (const char *reason);
5656}
5757
5858// The current CoreCLR instance details.
@@ -64,13 +64,6 @@ static void log_error_info(const char* line)
6464 std::fprintf (stderr, " log error: %s\n " , line);
6565}
6666
67- static bool external_assembly_probe (const char * path, /* out*/ void **data_start, /* out*/ int64_t * size)
68- {
69- *size = 0 ;
70- *data_start = nullptr ;
71- return browserHostExternalAssemblyProbe (path, data_start, size);;
72- }
73-
7467static const void * pinvoke_override (const char * library_name, const char * entry_point_name)
7568{
7669 if (strcmp (library_name, " libSystem.Native" ) == 0 )
@@ -107,9 +100,11 @@ static std::vector<const char*> propertyKeys;
107100static std::vector<const char *> propertyValues;
108101static pal::char_t ptr_to_string_buffer[STRING_LENGTH(" 0xffffffffffffffff" ) + 1 ];
109102
110- extern " C" int browserHostInitializeCoreCLR (void )
103+ // WASM-TODO: pass TPA via argument, not env
104+ // WASM-TODO: pass app_path via argument, not env
105+ // WASM-TODO: pass search_paths via argument, not env
106+ extern " C" int BrowserHost_InitializeCoreCLR (void )
111107{
112- // WASM-TODO: does getenv return UTF8 ?
113108 pal::getenv (HOST_PROPERTY_APP_PATHS, &app_path);
114109 pal::getenv (HOST_PROPERTY_NATIVE_DLL_SEARCH_DIRECTORIES, &search_paths);
115110 pal::getenv (HOST_PROPERTY_TRUSTED_PLATFORM_ASSEMBLIES, &tpa);
@@ -124,7 +119,7 @@ extern "C" int browserHostInitializeCoreCLR(void)
124119
125120 host_runtime_contract host_contract = { sizeof (host_runtime_contract), nullptr };
126121 host_contract.pinvoke_override = &pinvoke_override;
127- host_contract.external_assembly_probe = &external_assembly_probe ;
122+ host_contract.external_assembly_probe = &BrowserHost_ExternalAssemblyProbe ;
128123
129124 pal::snwprintf (ptr_to_string_buffer, ARRAY_SIZE (ptr_to_string_buffer), _X (" 0x%zx" ), (size_t )(&host_contract));
130125
@@ -144,7 +139,8 @@ extern "C" int browserHostInitializeCoreCLR(void)
144139}
145140
146141// WASM-TODO: browser needs async entrypoint
147- extern " C" int browserHostExecuteAssembly (const char * assemblyPath)
142+ // WASM-TODO: don't coreclr_shutdown_2 when browser
143+ extern " C" int BrowserHost_ExecuteAssembly (const char * assemblyPath)
148144{
149145 int exit_code;
150146 int retval = coreclr_execute_assembly (CurrentClrInstance, CurrentAppDomainId, 0 , nullptr , assemblyPath, (uint32_t *)&exit_code);
@@ -164,11 +160,11 @@ extern "C" int browserHostExecuteAssembly(const char* assemblyPath)
164160 std::fprintf (stderr, " coreclr_shutdown_2 failed - Error: 0x%08x\n " , retval);
165161 exit_code = -1 ;
166162 // WASM-TODO: this is too trivial
167- browserHostRejectMain (" coreclr_shutdown_2 failed" );
163+ BrowserHost_RejectMain (" coreclr_shutdown_2 failed" );
168164 }
169165
170166 // WASM-TODO: this is too trivial
171167 // because nothing runs continuations yet and also coreclr_execute_assembly is sync looping
172- browserHostResolveMain (exit_code);
168+ BrowserHost_ResolveMain (exit_code);
173169 return retval;
174170}
0 commit comments