diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index d706d96a00e0d7..05c59ac350c79e 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -15,7 +15,7 @@
]
},
"microsoft.dotnet.xharness.cli": {
- "version": "1.0.0-prerelease.20530.4",
+ "version": "1.0.0-prerelease.20555.2",
"commands": [
"xharness"
]
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index a769f55ebd2b0e..3199d701c9bd4b 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -190,13 +190,13 @@
https://github.com/mono/linker
57974c1f5790e6fb33f5fce161707be5cd86c4d3
-
+
https://github.com/dotnet/xharness
- bdad61dfc3d09ae826ba940d92e43a7441ec83b0
+ ab2eee629494e7a17592feda257b4ede4ff2fc82
-
+
https://github.com/dotnet/xharness
- bdad61dfc3d09ae826ba940d92e43a7441ec83b0
+ ab2eee629494e7a17592feda257b4ede4ff2fc82
diff --git a/eng/Versions.props b/eng/Versions.props
index bbe08d36868e74..54546638de19a9 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -137,8 +137,8 @@
4.9.4
16.8.0-release-20201022-02
- 1.0.0-prerelease.20530.4
- 1.0.0-prerelease.20530.4
+ 1.0.0-prerelease.20555.2
+ 1.0.0-prerelease.20555.2
2.4.1
2.4.2
1.3.0
diff --git a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs
index 1a88e4881021ac..46a942a0f9cde1 100644
--- a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs
+++ b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs
@@ -3,12 +3,13 @@
using System;
using System.Collections.Generic;
+using System.Threading.Tasks;
using Microsoft.DotNet.XHarness.TestRunners.Xunit;
public class SimpleWasmTestRunner : WasmApplicationEntryPoint
{
- public static int Main(string[] args)
+ public static async Task Main(string[] args)
{
var testAssembly = args[0];
var excludedTraits = new List();
@@ -57,6 +58,6 @@ public static int Main(string[] args)
IncludedMethods = includedMethods
};
- return runner.Run();
+ return await runner.Run();
}
}
diff --git a/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs b/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs
index d3794eda8af152..42e34d74156dd3 100644
--- a/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs
+++ b/src/libraries/System.Private.Runtime.InteropServices.JavaScript/tests/System/Runtime/InteropServices/JavaScript/Http/HttpRequestMessageTest.cs
@@ -383,6 +383,32 @@ public void ToString_NonDefaultInstanceWithCustomHeaders_DumpAllFields(string ur
"}", rm.ToString());
}
+ [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserDomSupported))]
+ public async Task BlobUri_Marshal_CorrectValues_Browser()
+ {
+ Runtime.InvokeJS(@"
+ function typedArrayToURL(typedArray, mimeType) {
+ return URL.createObjectURL(new Blob([typedArray.buffer], {type: mimeType}))
+ }
+ const bytes = new Uint8Array(59);
+ for(let i = 0; i < 59; i++) {
+ bytes[i] = 32 + i;
+ }
+ const url = typedArrayToURL(bytes, 'text/plain');
+ // Calls method with string that will be marshaled as valid URI
+ App.call_test_method (""InvokeString"", [ url ]);
+ ");
+
+ var client = new HttpClient ();
+ Assert.StartsWith ("blob:", HelperMarshal._stringResource);
+
+ HttpRequestMessage rm = new HttpRequestMessage(HttpMethod.Get, new Uri (HelperMarshal._stringResource));
+ HttpResponseMessage resp = await client.SendAsync (rm);
+ Assert.NotNull (resp.Content);
+ string content = await resp.Content.ReadAsStringAsync();
+ Assert.Equal (59, content.Length);
+ }
+
[Fact]
public void BlobStringUri_Marshal_CorrectValues()
{
diff --git a/src/mono/mono/mini/mini-wasm.c b/src/mono/mono/mini/mini-wasm.c
index e60d77f492506b..8c4ff8a7660c76 100644
--- a/src/mono/mono/mini/mini-wasm.c
+++ b/src/mono/mono/mini/mini-wasm.c
@@ -395,7 +395,6 @@ extern void mono_set_timeout (int t, int d);
extern void mono_wasm_queue_tp_cb (void);
G_END_DECLS
-extern void mono_wasm_pump_threadpool (void);
void mono_background_exec (void);
#endif // HOST_WASM
@@ -623,21 +622,12 @@ mono_wasm_queue_tp_cb (void)
#endif
}
-void
-mono_wasm_pump_threadpool (void)
-{
-#ifdef HOST_WASM
- mono_background_exec ();
-#endif
-}
-
void
mono_arch_register_icall (void)
{
#ifdef ENABLE_NETCORE
mono_add_internal_call_internal ("System.Threading.TimerQueue::SetTimeout", mono_wasm_set_timeout);
mono_add_internal_call_internal ("System.Threading.ThreadPool::QueueCallback", mono_wasm_queue_tp_cb);
- mono_add_internal_call_internal ("System.Threading.ThreadPool::PumpThreadPool", mono_wasm_pump_threadpool);
#else
mono_add_internal_call_internal ("System.Threading.WasmRuntime::SetTimeout", mono_wasm_set_timeout);
#endif
diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs
index 99415e512c7077..df6112fa3696c3 100644
--- a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs
+++ b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/ThreadPool.Browser.Mono.cs
@@ -104,13 +104,9 @@ private static RegisteredWaitHandle RegisterWaitForSingleObject(
}
[DynamicDependency("Callback")]
- [DynamicDependency("PumpThreadPool")]
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void QueueCallback();
- [MethodImplAttribute(MethodImplOptions.InternalCall)]
- private static extern void PumpThreadPool(); // NOTE: this method is called via reflection by test code
-
private static void Callback()
{
_callbackQueued = false;
diff --git a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs
index 475f0c8af1eddb..5ad4ea2e23cead 100644
--- a/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs
+++ b/src/mono/netcore/System.Private.CoreLib/src/System/Threading/TimerQueue.Browser.Mono.cs
@@ -58,7 +58,7 @@ private bool SetTimer(uint actualDuration)
return true;
}
- private static int PumpTimerQueue() // NOTE: this method is called via reflection by test code
+ private static int PumpTimerQueue()
{
if (s_scheduledTimersToFire == null)
{