2020using OpenQA . Selenium . BiDi . Communication . Json . Internal ;
2121using OpenQA . Selenium . BiDi . Modules . Script ;
2222using System ;
23- using System . Diagnostics . CodeAnalysis ;
2423using System . Text . Json ;
2524using System . Text . Json . Serialization ;
2625
2726namespace OpenQA . Selenium . BiDi . Communication . Json . Converters . Polymorphic ;
2827
2928// https://github.com/dotnet/runtime/issues/72604
30- [ UnconditionalSuppressMessage ( "Trimming" , "IL2026" , Justification = "Json serializer options should have AOT-safe type resolution" ) ]
31- [ UnconditionalSuppressMessage ( "AOT" , "IL3050" , Justification = "Json serializer options should have AOT-safe type resolution" ) ]
3229internal class RemoteValueConverter : JsonConverter < RemoteValue >
3330{
3431 public override RemoteValue ? Read ( ref Utf8JsonReader reader , Type typeToConvert , JsonSerializerOptions options )
@@ -40,32 +37,32 @@ internal class RemoteValueConverter : JsonConverter<RemoteValue>
4037
4138 return reader . GetDiscriminator ( "type" ) switch
4239 {
43- "number" => JsonSerializer . Deserialize < NumberRemoteValue > ( ref reader , options ) ,
44- "boolean" => JsonSerializer . Deserialize < BooleanRemoteValue > ( ref reader , options ) ,
45- "bigint" => JsonSerializer . Deserialize < BigIntRemoteValue > ( ref reader , options ) ,
46- "string" => JsonSerializer . Deserialize < StringRemoteValue > ( ref reader , options ) ,
47- "null" => JsonSerializer . Deserialize < NullRemoteValue > ( ref reader , options ) ,
48- "undefined" => JsonSerializer . Deserialize < UndefinedRemoteValue > ( ref reader , options ) ,
49- "symbol" => JsonSerializer . Deserialize < SymbolRemoteValue > ( ref reader , options ) ,
50- "array" => JsonSerializer . Deserialize < ArrayRemoteValue > ( ref reader , options ) ,
51- "object" => JsonSerializer . Deserialize < ObjectRemoteValue > ( ref reader , options ) ,
52- "function" => JsonSerializer . Deserialize < FunctionRemoteValue > ( ref reader , options ) ,
53- "regexp" => JsonSerializer . Deserialize < RegExpRemoteValue > ( ref reader , options ) ,
54- "date" => JsonSerializer . Deserialize < DateRemoteValue > ( ref reader , options ) ,
55- "map" => JsonSerializer . Deserialize < MapRemoteValue > ( ref reader , options ) ,
56- "set" => JsonSerializer . Deserialize < SetRemoteValue > ( ref reader , options ) ,
57- "weakmap" => JsonSerializer . Deserialize < WeakMapRemoteValue > ( ref reader , options ) ,
58- "weakset" => JsonSerializer . Deserialize < WeakSetRemoteValue > ( ref reader , options ) ,
59- "generator" => JsonSerializer . Deserialize < GeneratorRemoteValue > ( ref reader , options ) ,
60- "error" => JsonSerializer . Deserialize < ErrorRemoteValue > ( ref reader , options ) ,
61- "proxy" => JsonSerializer . Deserialize < ProxyRemoteValue > ( ref reader , options ) ,
62- "promise" => JsonSerializer . Deserialize < PromiseRemoteValue > ( ref reader , options ) ,
63- "typedarray" => JsonSerializer . Deserialize < TypedArrayRemoteValue > ( ref reader , options ) ,
64- "arraybuffer" => JsonSerializer . Deserialize < ArrayBufferRemoteValue > ( ref reader , options ) ,
65- "nodelist" => JsonSerializer . Deserialize < NodeListRemoteValue > ( ref reader , options ) ,
66- "htmlcollection" => JsonSerializer . Deserialize < HtmlCollectionRemoteValue > ( ref reader , options ) ,
67- "node" => JsonSerializer . Deserialize < NodeRemoteValue > ( ref reader , options ) ,
68- "window" => JsonSerializer . Deserialize < WindowProxyRemoteValue > ( ref reader , options ) ,
40+ "number" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < NumberRemoteValue > ( ) ) ,
41+ "boolean" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < BooleanRemoteValue > ( ) ) ,
42+ "bigint" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < BigIntRemoteValue > ( ) ) ,
43+ "string" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < StringRemoteValue > ( ) ) ,
44+ "null" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < NullRemoteValue > ( ) ) ,
45+ "undefined" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < UndefinedRemoteValue > ( ) ) ,
46+ "symbol" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < SymbolRemoteValue > ( ) ) ,
47+ "array" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < ArrayRemoteValue > ( ) ) ,
48+ "object" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < ObjectRemoteValue > ( ) ) ,
49+ "function" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < FunctionRemoteValue > ( ) ) ,
50+ "regexp" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < RegExpRemoteValue > ( ) ) ,
51+ "date" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < DateRemoteValue > ( ) ) ,
52+ "map" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < MapRemoteValue > ( ) ) ,
53+ "set" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < SetRemoteValue > ( ) ) ,
54+ "weakmap" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < WeakMapRemoteValue > ( ) ) ,
55+ "weakset" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < WeakSetRemoteValue > ( ) ) ,
56+ "generator" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < GeneratorRemoteValue > ( ) ) ,
57+ "error" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < ErrorRemoteValue > ( ) ) ,
58+ "proxy" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < ProxyRemoteValue > ( ) ) ,
59+ "promise" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < PromiseRemoteValue > ( ) ) ,
60+ "typedarray" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < TypedArrayRemoteValue > ( ) ) ,
61+ "arraybuffer" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < ArrayBufferRemoteValue > ( ) ) ,
62+ "nodelist" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < NodeListRemoteValue > ( ) ) ,
63+ "htmlcollection" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < HtmlCollectionRemoteValue > ( ) ) ,
64+ "node" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < NodeRemoteValue > ( ) ) ,
65+ "window" => JsonSerializer . Deserialize ( ref reader , options . GetTypeInfo < WindowProxyRemoteValue > ( ) ) ,
6966 _ => null ,
7067 } ;
7168 }
0 commit comments