Skip to content

Commit 1f8cad7

Browse files
committed
Separate serialization contexts
1 parent cdeceb1 commit 1f8cad7

File tree

3 files changed

+12
-32
lines changed

3 files changed

+12
-32
lines changed

dotnet/src/webdriver/DevTools/DevToolsSession.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
using System.Net.Http;
2626
using System.Text.Json;
2727
using System.Text.Json.Nodes;
28+
using System.Text.Json.Serialization;
2829
using System.Threading;
2930
using System.Threading.Tasks;
3031

@@ -284,7 +285,7 @@ public T GetVersionSpecificDomains<T>() where T : DevToolsSessionDomains
284285

285286
LogTrace("Sending {0} {1}: {2}", message.CommandId, message.CommandName, commandParameters.ToString());
286287

287-
string contents = JsonSerializer.Serialize(message, DevToolsSerializerContext.Default.DevToolsCommandData);
288+
string contents = JsonSerializer.Serialize(message, DevToolsSessionSerializerContext.Default.DevToolsCommandData);
288289
this.pendingCommands.TryAdd(message.CommandId, message);
289290
await this.connection.SendData(contents).ConfigureAwait(false);
290291

@@ -411,7 +412,7 @@ private async Task<int> InitializeProtocol(int requestedProtocolVersion)
411412
rawVersionInfo = await client.GetStringAsync("/json/version").ConfigureAwait(false);
412413
}
413414

414-
var versionInfo = JsonSerializer.Deserialize(rawVersionInfo, DevToolsSerializerContext.Default.DevToolsVersionInfo);
415+
var versionInfo = JsonSerializer.Deserialize(rawVersionInfo, DevToolsSessionSerializerContext.Default.DevToolsVersionInfo);
415416
this.websocketAddress = versionInfo.WebSocketDebuggerUrl;
416417

417418
if (requestedProtocolVersion == AutoDetectDevToolsProtocolVersion)
@@ -664,4 +665,8 @@ private void LogError(string message, params object[] args)
664665
}
665666
}
666667
}
668+
669+
[JsonSerializable(typeof(DevToolsCommandData))]
670+
[JsonSerializable(typeof(DevToolsVersionInfo))]
671+
internal sealed partial class DevToolsSessionSerializerContext : JsonSerializerContext;
667672
}

dotnet/src/webdriver/DevTools/Json/DevToolsSerializerContext.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

dotnet/src/webdriver/JavaScriptEngine.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using System.IO;
2727
using System.Linq;
2828
using System.Text.Json;
29+
using System.Text.Json.Serialization;
2930
using System.Threading.Tasks;
3031

3132
namespace OpenQA.Selenium
@@ -399,7 +400,7 @@ private void OnScriptBindingCalled(object sender, BindingCalledEventArgs e)
399400
{
400401
if (e.Name == MonitorBindingName)
401402
{
402-
DomMutationData valueChangeData = JsonSerializer.Deserialize(e.Payload, DevToolsSerializerContext.Default.DomMutationData);
403+
DomMutationData valueChangeData = JsonSerializer.Deserialize(e.Payload, JsonEngineSerializerContext.Default.DomMutationData);
403404
var locator = By.CssSelector($"*[data-__webdriver_id='{valueChangeData.TargetId}']");
404405
valueChangeData.Element = driver.FindElements(locator).FirstOrDefault();
405406

@@ -450,4 +451,7 @@ private void OnConsoleApiCalled(object sender, ConsoleApiCalledEventArgs e)
450451
}
451452
}
452453
}
454+
455+
[JsonSerializable(typeof(DomMutationData))]
456+
internal sealed partial class JsonEngineSerializerContext : JsonSerializerContext;
453457
}

0 commit comments

Comments
 (0)