Imported Upstream version 6.10.0.72

Former-commit-id: 938ba563c6675baa1eb6b639367dda3872c4ffad
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-02-13 08:55:09 +00:00
parent ec7bc58245
commit bf76f2910e
103 changed files with 544 additions and 456 deletions

View File

@@ -41,7 +41,7 @@ static partial class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "6.10.0.70";
public const string MonoVersion = "6.10.0.72";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@@ -0,0 +1,20 @@
namespace System.Net.Http
{
partial class HttpClientHandler : HttpMessageHandler
{
static IMonoHttpClientHandler CreateDefaultHandler ()
{
string envvar = Environment.GetEnvironmentVariable ("XA_HTTP_CLIENT_HANDLER_TYPE")?.Trim ();
if (envvar?.StartsWith("System.Net.Http.MonoWebRequestHandler", StringComparison.InvariantCulture) == true)
return new MonoWebRequestHandler ();
// Ignore other types of handlers here (e.g. AndroidHttpHandler) to keep the old behavior
// and always create SocketsHttpHandler for code like this if MonoWebRequestHandler was not specified:
//
// var handler = new HttpClientHandler { Credentials = ... };
// var httpClient = new HttpClient (handler);
//
// AndroidHttpHandler is used only when we use the parameterless ctor of HttpClient
return new SocketsHttpHandler ();
}
}
}

View File

@@ -8,22 +8,31 @@ namespace System.Net.Http {
static HttpMessageHandler CreateDefaultHandler ()
{
Type type = Type.GetType("Android.Runtime.AndroidEnvironment, Mono.Android");
if (type == null)
return GetFallback ("Invalid Mono.Android assembly? Cannot find Android.Runtime.AndroidEnvironment");
string envvar = Environment.GetEnvironmentVariable ("XA_HTTP_CLIENT_HANDLER_TYPE")?.Trim ();
MethodInfo method = type.GetMethod ("GetHttpMessageHandler", BindingFlags.Static | BindingFlags.NonPublic);
if (method == null)
return GetFallback ("Your Xamarin.Android version does not support obtaining of the custom HttpClientHandler");
if (string.IsNullOrEmpty (envvar))
return GetFallback ($"XA_HTTP_CLIENT_HANDLER_TYPE is empty");
object ret = method.Invoke (null, null);
if (ret == null)
return GetFallback ("Xamarin.Android returned no custom HttpClientHandler");
if (envvar?.StartsWith("System.Net.Http.MonoWebRequestHandler", StringComparison.InvariantCulture) == true)
return new HttpClientHandler (new MonoWebRequestHandler ());
var handler = ret as HttpMessageHandler;
if (handler == null)
return GetFallback ($"{ret?.GetType()} is not a valid HttpMessageHandler");
return handler;
Type handlerType = Type.GetType (envvar, false);
if (handlerType == null && !envvar.Contains (", "))
{
// if assembly was not specified - look for it in Mono.Android too
// (e.g. AndroidHttpHandler is there)
handlerType = Type.GetType (envvar + ", Mono.Android", false);
}
if (handlerType == null)
return GetFallback ($"'{envvar}' type was not found");
object handlerObj = Activator.CreateInstance (handlerType);
if (handlerObj is HttpMessageHandler msgHandler)
return msgHandler;
return GetFallback ($"{handlerObj?.GetType ()} is not a valid HttpMessageHandler or MonoWebRequestHandler");
}
static HttpMessageHandler GetFallback (string message)

View File

@@ -1 +1,2 @@
#include unit-tests.sources
HttpClientHandlerTests.Android.cs

View File

@@ -1 +1,2 @@
HttpClient.DefaultHandler.cs
HttpClientHandler.SocketsHandler.cs

View File

@@ -1,2 +1,3 @@
#include socketshandler.sources
System.Net.Http/HttpClient.android.cs
HttpClientHandler.SocketsHandler.Android.cs

View File

@@ -1 +1 @@
b0854085285a5c0dc4764acc4600bfee70da52cd
1f628c45b1a7b99048c03015359d166a8c8a9c03

View File

@@ -1 +1 @@
8f5f3d110767a7455545b2576aa98f7845d26355
143cb3042631b54c968dc79c37d3bd4b7cfb43e9

View File

@@ -1 +1 @@
f8ac41de377582aa29060c2e19bb3201bca681a2
5e95bf41bae5b21c14dcd693e2a4a0f2fe1aa09e

View File

@@ -1 +1 @@
e0563f1d1ed4b83bbd23834f68d36dcdb70192f5
8c6bd59b0f3afcfbb32778e9b98d4025a5e1eb22

View File

@@ -1 +1 @@
ca603944de23d00322c1932a9dcd813dd9f156fe
0b9f4861efca8e57d6e2e810ded5d58a1a95cdb5

View File

@@ -1 +1 @@
d6abf4f9d5321c00e4a0e9e3db14c3e12fe8568d
6aaa7acf98c381f1d214697e4f2488193bfe67fc

View File

@@ -1 +1 @@
1086daa1ef828cd7fe87986b6b9bc732234ff04f
4d05194f890e1536d9399c06b2084405013d770c

View File

@@ -1 +1 @@
6902ea8be098e609699dd31b6ff3bc324f3a63a8
8bad841784c2b9db435e031b173c840eb3d74e5d

View File

@@ -1 +1 @@
432d54ca5a9455ab13e99ac806da1e146b9dc4be
c44fd544691fc553d48221ad66bb9675f02f7053

View File

@@ -1 +1 @@
f5c7d5f9408a3a9536e9ab7c65455cec503ce659
ba8e9b65198f2768cb7531122541fdd1a1f0f3ad

View File

@@ -1 +1 @@
b0854085285a5c0dc4764acc4600bfee70da52cd
1f628c45b1a7b99048c03015359d166a8c8a9c03

View File

@@ -1 +1 @@
8f5f3d110767a7455545b2576aa98f7845d26355
143cb3042631b54c968dc79c37d3bd4b7cfb43e9

View File

@@ -1 +1 @@
f8ac41de377582aa29060c2e19bb3201bca681a2
5e95bf41bae5b21c14dcd693e2a4a0f2fe1aa09e

View File

@@ -1 +1 @@
e0563f1d1ed4b83bbd23834f68d36dcdb70192f5
8c6bd59b0f3afcfbb32778e9b98d4025a5e1eb22

Some files were not shown because too many files have changed in this diff Show More