17
17
// under the License.
18
18
// </copyright>
19
19
20
+ using OpenQA . Selenium . BiDi . Communication . Json . Internal ;
20
21
using OpenQA . Selenium . BiDi . Modules . Script ;
21
22
using System ;
22
23
using System . Text . Json ;
@@ -29,41 +30,39 @@ internal class RemoteValueConverter : JsonConverter<RemoteValue>
29
30
{
30
31
public override RemoteValue ? Read ( ref Utf8JsonReader reader , Type typeToConvert , JsonSerializerOptions options )
31
32
{
32
- var jsonDocument = JsonDocument . ParseValue ( ref reader ) ;
33
-
34
- if ( jsonDocument . RootElement . ValueKind == JsonValueKind . String )
33
+ if ( reader . TokenType == JsonTokenType . String )
35
34
{
36
- return new StringRemoteValue ( jsonDocument . RootElement . GetString ( ) ! ) ;
35
+ return new StringRemoteValue ( reader . GetString ( ) ! ) ;
37
36
}
38
37
39
- return jsonDocument . RootElement . GetProperty ( "type" ) . ToString ( ) switch
38
+ return reader . GetDiscriminator ( "type" ) switch
40
39
{
41
- "number" => jsonDocument . Deserialize < NumberRemoteValue > ( options ) ,
42
- "boolean" => jsonDocument . Deserialize < BooleanRemoteValue > ( options ) ,
43
- "bigint" => jsonDocument . Deserialize < BigIntRemoteValue > ( options ) ,
44
- "string" => jsonDocument . Deserialize < StringRemoteValue > ( options ) ,
45
- "null" => jsonDocument . Deserialize < NullRemoteValue > ( options ) ,
46
- "undefined" => jsonDocument . Deserialize < UndefinedRemoteValue > ( options ) ,
47
- "symbol" => jsonDocument . Deserialize < SymbolRemoteValue > ( options ) ,
48
- "array" => jsonDocument . Deserialize < ArrayRemoteValue > ( options ) ,
49
- "object" => jsonDocument . Deserialize < ObjectRemoteValue > ( options ) ,
50
- "function" => jsonDocument . Deserialize < FunctionRemoteValue > ( options ) ,
51
- "regexp" => jsonDocument . Deserialize < RegExpRemoteValue > ( options ) ,
52
- "date" => jsonDocument . Deserialize < DateRemoteValue > ( options ) ,
53
- "map" => jsonDocument . Deserialize < MapRemoteValue > ( options ) ,
54
- "set" => jsonDocument . Deserialize < SetRemoteValue > ( options ) ,
55
- "weakmap" => jsonDocument . Deserialize < WeakMapRemoteValue > ( options ) ,
56
- "weakset" => jsonDocument . Deserialize < WeakSetRemoteValue > ( options ) ,
57
- "generator" => jsonDocument . Deserialize < GeneratorRemoteValue > ( options ) ,
58
- "error" => jsonDocument . Deserialize < ErrorRemoteValue > ( options ) ,
59
- "proxy" => jsonDocument . Deserialize < ProxyRemoteValue > ( options ) ,
60
- "promise" => jsonDocument . Deserialize < PromiseRemoteValue > ( options ) ,
61
- "typedarray" => jsonDocument . Deserialize < TypedArrayRemoteValue > ( options ) ,
62
- "arraybuffer" => jsonDocument . Deserialize < ArrayBufferRemoteValue > ( options ) ,
63
- "nodelist" => jsonDocument . Deserialize < NodeListRemoteValue > ( options ) ,
64
- "htmlcollection" => jsonDocument . Deserialize < HtmlCollectionRemoteValue > ( options ) ,
65
- "node" => jsonDocument . Deserialize < NodeRemoteValue > ( options ) ,
66
- "window" => jsonDocument . Deserialize < WindowProxyRemoteValue > ( options ) ,
40
+ "number" => JsonSerializer . Deserialize < NumberRemoteValue > ( ref reader , options ) ,
41
+ "boolean" => JsonSerializer . Deserialize < BooleanRemoteValue > ( ref reader , options ) ,
42
+ "bigint" => JsonSerializer . Deserialize < BigIntRemoteValue > ( ref reader , options ) ,
43
+ "string" => JsonSerializer . Deserialize < StringRemoteValue > ( ref reader , options ) ,
44
+ "null" => JsonSerializer . Deserialize < NullRemoteValue > ( ref reader , options ) ,
45
+ "undefined" => JsonSerializer . Deserialize < UndefinedRemoteValue > ( ref reader , options ) ,
46
+ "symbol" => JsonSerializer . Deserialize < SymbolRemoteValue > ( ref reader , options ) ,
47
+ "array" => JsonSerializer . Deserialize < ArrayRemoteValue > ( ref reader , options ) ,
48
+ "object" => JsonSerializer . Deserialize < ObjectRemoteValue > ( ref reader , options ) ,
49
+ "function" => JsonSerializer . Deserialize < FunctionRemoteValue > ( ref reader , options ) ,
50
+ "regexp" => JsonSerializer . Deserialize < RegExpRemoteValue > ( ref reader , options ) ,
51
+ "date" => JsonSerializer . Deserialize < DateRemoteValue > ( ref reader , options ) ,
52
+ "map" => JsonSerializer . Deserialize < MapRemoteValue > ( ref reader , options ) ,
53
+ "set" => JsonSerializer . Deserialize < SetRemoteValue > ( ref reader , options ) ,
54
+ "weakmap" => JsonSerializer . Deserialize < WeakMapRemoteValue > ( ref reader , options ) ,
55
+ "weakset" => JsonSerializer . Deserialize < WeakSetRemoteValue > ( ref reader , options ) ,
56
+ "generator" => JsonSerializer . Deserialize < GeneratorRemoteValue > ( ref reader , options ) ,
57
+ "error" => JsonSerializer . Deserialize < ErrorRemoteValue > ( ref reader , options ) ,
58
+ "proxy" => JsonSerializer . Deserialize < ProxyRemoteValue > ( ref reader , options ) ,
59
+ "promise" => JsonSerializer . Deserialize < PromiseRemoteValue > ( ref reader , options ) ,
60
+ "typedarray" => JsonSerializer . Deserialize < TypedArrayRemoteValue > ( ref reader , options ) ,
61
+ "arraybuffer" => JsonSerializer . Deserialize < ArrayBufferRemoteValue > ( ref reader , options ) ,
62
+ "nodelist" => JsonSerializer . Deserialize < NodeListRemoteValue > ( ref reader , options ) ,
63
+ "htmlcollection" => JsonSerializer . Deserialize < HtmlCollectionRemoteValue > ( ref reader , options ) ,
64
+ "node" => JsonSerializer . Deserialize < NodeRemoteValue > ( ref reader , options ) ,
65
+ "window" => JsonSerializer . Deserialize < WindowProxyRemoteValue > ( ref reader , options ) ,
67
66
_ => null ,
68
67
} ;
69
68
}
0 commit comments