Skip to content

Commit d9d1d79

Browse files
authored
[dotnet] [bidi] Always provide new json options for modules (#16691)
1 parent 54f45d3 commit d9d1d79

File tree

12 files changed

+60
-126
lines changed

12 files changed

+60
-126
lines changed

dotnet/src/webdriver/BiDi/BiDi.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,11 @@ public sealed class BiDi : IAsyncDisposable
3131
{
3232
private readonly ConcurrentDictionary<Type, Module> _modules = new();
3333

34-
private readonly JsonSerializerOptions _jsonOptions;
35-
3634
private BiDi(string url)
3735
{
3836
var uri = new Uri(url);
3937

4038
Broker = new Broker(this, uri);
41-
42-
_jsonOptions = new JsonSerializerOptions
43-
{
44-
PropertyNameCaseInsensitive = true,
45-
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
46-
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
47-
48-
Converters =
49-
{
50-
new DateTimeOffsetConverter(),
51-
}
52-
};
5339
}
5440

5541
private Broker Broker { get; }
@@ -101,6 +87,20 @@ public async ValueTask DisposeAsync()
10187

10288
public T AsModule<T>() where T : Module, new()
10389
{
104-
return (T)_modules.GetOrAdd(typeof(T), _ => Module.Create<T>(this, Broker, _jsonOptions));
90+
return (T)_modules.GetOrAdd(typeof(T), _ => Module.Create<T>(this, Broker, CreateDefaultJsonOptions()));
91+
}
92+
93+
private static JsonSerializerOptions CreateDefaultJsonOptions()
94+
{
95+
return new JsonSerializerOptions
96+
{
97+
PropertyNameCaseInsensitive = true,
98+
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
99+
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
100+
Converters =
101+
{
102+
new DateTimeOffsetConverter(),
103+
}
104+
};
105105
}
106106
}

dotnet/src/webdriver/BiDi/Browser/BrowserModule.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,15 +81,9 @@ public async Task<SetDownloadBehaviorResult> SetDownloadBehaviorDeniedAsync(SetD
8181

8282
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
8383
{
84-
var browserOptions = new JsonSerializerOptions(jsonSerializerOptions)
85-
{
86-
Converters =
87-
{
88-
new BrowserUserContextConverter(BiDi),
89-
}
90-
};
91-
92-
_jsonContext = new BrowserJsonSerializerContext(browserOptions);
84+
jsonSerializerOptions.Converters.Add(new BrowserUserContextConverter(BiDi));
85+
86+
_jsonContext = new BrowserJsonSerializerContext(jsonSerializerOptions);
9387
}
9488
}
9589

dotnet/src/webdriver/BiDi/BrowsingContext/BrowsingContextModule.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -255,18 +255,12 @@ public async Task<Subscription> OnUserPromptClosedAsync(Action<UserPromptClosedE
255255

256256
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
257257
{
258-
var browsingContextOptions = new JsonSerializerOptions(jsonSerializerOptions)
259-
{
260-
Converters =
261-
{
262-
new BrowsingContextConverter(BiDi),
263-
new InternalIdConverter(BiDi),
264-
new HandleConverter(BiDi),
265-
new BrowserUserContextConverter(BiDi),
266-
}
267-
};
268-
269-
_jsonContext = new BrowsingContextJsonSerializerContext(browsingContextOptions);
258+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
259+
jsonSerializerOptions.Converters.Add(new InternalIdConverter(BiDi));
260+
jsonSerializerOptions.Converters.Add(new HandleConverter(BiDi));
261+
jsonSerializerOptions.Converters.Add(new BrowserUserContextConverter(BiDi));
262+
263+
_jsonContext = new BrowsingContextJsonSerializerContext(jsonSerializerOptions);
270264
}
271265
}
272266

dotnet/src/webdriver/BiDi/Emulation/EmulationModule.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,10 @@ public async Task<SetGeolocationOverrideResult> SetGeolocationPositionErrorOverr
9595

9696
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
9797
{
98-
var emulationOptions = new JsonSerializerOptions(jsonSerializerOptions)
99-
{
100-
Converters =
101-
{
102-
new BrowsingContextConverter(BiDi),
103-
new BrowserUserContextConverter(BiDi),
104-
}
105-
};
106-
107-
_jsonContext = new EmulationJsonSerializerContext(emulationOptions);
98+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
99+
jsonSerializerOptions.Converters.Add(new BrowserUserContextConverter(BiDi));
100+
101+
_jsonContext = new EmulationJsonSerializerContext(jsonSerializerOptions);
108102
}
109103
}
110104

dotnet/src/webdriver/BiDi/Input/InputModule.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,10 @@ public async Task<SetFilesResult> SetFilesAsync(BrowsingContext.BrowsingContext
5252

5353
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
5454
{
55-
var inputOptions = new JsonSerializerOptions(jsonSerializerOptions)
56-
{
57-
Converters =
58-
{
59-
new BrowsingContextConverter(BiDi),
60-
new HandleConverter(BiDi),
61-
}
62-
};
55+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
56+
jsonSerializerOptions.Converters.Add(new HandleConverter(BiDi));
6357

64-
_jsonContext = new InputJsonSerializerContext(inputOptions);
58+
_jsonContext = new InputJsonSerializerContext(jsonSerializerOptions);
6559
}
6660
}
6761

dotnet/src/webdriver/BiDi/Log/LogModule.cs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,12 @@ public async Task<Subscription> OnEntryAddedAsync(Action<LogEntry> handler, Subs
4141

4242
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
4343
{
44-
var logOptions = new JsonSerializerOptions(jsonSerializerOptions)
45-
{
46-
Converters =
47-
{
48-
new BrowsingContextConverter(BiDi),
49-
new RealmConverter(BiDi),
50-
new InternalIdConverter(BiDi),
51-
new HandleConverter(BiDi),
52-
}
53-
};
44+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
45+
jsonSerializerOptions.Converters.Add(new RealmConverter(BiDi));
46+
jsonSerializerOptions.Converters.Add(new InternalIdConverter(BiDi));
47+
jsonSerializerOptions.Converters.Add(new HandleConverter(BiDi));
5448

55-
_jsonContext = new LogJsonSerializerContext(logOptions);
49+
_jsonContext = new LogJsonSerializerContext(jsonSerializerOptions);
5650
}
5751
}
5852

dotnet/src/webdriver/BiDi/Network/NetworkModule.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -178,18 +178,12 @@ public async Task<Subscription> OnAuthRequiredAsync(Action<AuthRequiredEventArgs
178178

179179
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
180180
{
181-
var networkOptions = new JsonSerializerOptions(jsonSerializerOptions)
182-
{
183-
Converters =
184-
{
185-
new BrowsingContextConverter(BiDi),
186-
new CollectorConverter(BiDi),
187-
new InterceptConverter(BiDi),
188-
new BrowserUserContextConverter(BiDi),
189-
}
190-
};
191-
192-
_jsonContext = new NetworkJsonSerializerContext(networkOptions);
181+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
182+
jsonSerializerOptions.Converters.Add(new CollectorConverter(BiDi));
183+
jsonSerializerOptions.Converters.Add(new InterceptConverter(BiDi));
184+
jsonSerializerOptions.Converters.Add(new BrowserUserContextConverter(BiDi));
185+
186+
_jsonContext = new NetworkJsonSerializerContext(jsonSerializerOptions);
193187
}
194188
}
195189

dotnet/src/webdriver/BiDi/Permissions/PermissionsModule.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,9 @@ public async Task<SetPermissionResult> SetPermissionAsync(PermissionDescriptor d
3838

3939
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
4040
{
41-
var permissionsOptions = new JsonSerializerOptions(jsonSerializerOptions)
42-
{
43-
Converters =
44-
{
45-
new BrowserUserContextConverter(BiDi),
46-
}
47-
};
48-
49-
_jsonContext = new PermissionsJsonSerializerContext(permissionsOptions);
41+
jsonSerializerOptions.Converters.Add(new BrowserUserContextConverter(BiDi));
42+
43+
_jsonContext = new PermissionsJsonSerializerContext(jsonSerializerOptions);
5044
}
5145
}
5246

dotnet/src/webdriver/BiDi/Script/ScriptModule.cs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -119,19 +119,13 @@ public async Task<Subscription> OnRealmDestroyedAsync(Action<RealmDestroyedEvent
119119

120120
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
121121
{
122-
var scriptOptions = new JsonSerializerOptions(jsonSerializerOptions)
123-
{
124-
Converters =
125-
{
126-
new BrowsingContextConverter(BiDi),
127-
new PreloadScriptConverter(BiDi),
128-
new RealmConverter(BiDi),
129-
new InternalIdConverter(BiDi),
130-
new HandleConverter(BiDi),
131-
}
132-
};
133-
134-
_jsonContext = new ScriptJsonSerializerContext(scriptOptions);
122+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
123+
jsonSerializerOptions.Converters.Add(new PreloadScriptConverter(BiDi));
124+
jsonSerializerOptions.Converters.Add(new RealmConverter(BiDi));
125+
jsonSerializerOptions.Converters.Add(new InternalIdConverter(BiDi));
126+
jsonSerializerOptions.Converters.Add(new HandleConverter(BiDi));
127+
128+
_jsonContext = new ScriptJsonSerializerContext(jsonSerializerOptions);
135129
}
136130
}
137131

dotnet/src/webdriver/BiDi/Session/SessionModule.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,10 @@ public async Task<EndResult> EndAsync(EndOptions? options = null)
6262

6363
protected override void Initialize(JsonSerializerOptions jsonSerializerOptions)
6464
{
65-
var sessionOptions = new JsonSerializerOptions(jsonSerializerOptions)
66-
{
67-
Converters =
68-
{
69-
new BrowsingContextConverter(BiDi),
70-
new BrowserUserContextConverter(BiDi),
71-
}
72-
};
65+
jsonSerializerOptions.Converters.Add(new BrowsingContextConverter(BiDi));
66+
jsonSerializerOptions.Converters.Add(new BrowserUserContextConverter(BiDi));
7367

74-
_jsonContext = new SessionJsonSerializerContext(sessionOptions);
68+
_jsonContext = new SessionJsonSerializerContext(jsonSerializerOptions);
7569
}
7670
}
7771

0 commit comments

Comments
 (0)