@@ -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 " 
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 " 
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