Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions dotnet/src/webdriver/BiDi/BiDi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,16 +103,7 @@ private JsonSerializerOptions GetJsonOptions()
NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals | JsonNumberHandling.AllowReadingFromString,
Converters =
{
new BrowsingContextConverter(this),
new BrowserUserContextConverter(this),
new CollectorConverter(this),
new InterceptConverter(this),
new HandleConverter(this),
new InternalIdConverter(this),
new PreloadScriptConverter(this),
new RealmConverter(this),
new DateTimeOffsetConverter(),
new WebExtensionConverter(this),
}
};
}
Expand Down
8 changes: 8 additions & 0 deletions dotnet/src/webdriver/BiDi/Broker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ public sealed class Broker : IAsyncDisposable
private Task? _eventEmitterTask;
private CancellationTokenSource? _receiveMessagesCancellationTokenSource;


internal static BiDi? ThreadStaticBiDi => _threadStaticBiDi;

[ThreadStatic]
private static BiDi? _threadStaticBiDi;

internal Broker(BiDi bidi, Uri url)
{
_bidi = bidi;
Expand Down Expand Up @@ -276,8 +282,10 @@ private void ProcessReceivedMessage(byte[]? data)
{
try
{
_threadStaticBiDi = _bidi;
var commandResult = JsonSerializer.Deserialize(ref resultReader, command.JsonResultTypeInfo)
?? throw new JsonException("Remote end returned null command result in the 'result' property.");
_threadStaticBiDi = null;

command.TaskCompletionSource.SetResult((EmptyResult)commandResult);
}
Expand Down
3 changes: 3 additions & 0 deletions dotnet/src/webdriver/BiDi/Browser/UserContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace OpenQA.Selenium.BiDi.Browser;

[JsonConverter(typeof(BrowserUserContextConverter))]
public sealed class UserContext : IEquatable<UserContext>, IAsyncDisposable
{
private readonly BiDi _bidi;
Expand Down
2 changes: 2 additions & 0 deletions dotnet/src/webdriver/BiDi/BrowsingContext/BrowsingContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System;
using System.Text.Json.Serialization;
using System.Threading;
using System.Threading.Tasks;

namespace OpenQA.Selenium.BiDi.BrowsingContext;

[JsonConverter(typeof(BrowsingContextConverter))]
public sealed class BrowsingContext
{
internal BrowsingContext(BiDi bidi, string id)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class BrowserUserContextConverter : JsonConverter<UserContext>
{
private readonly BiDi _bidi;

public BrowserUserContextConverter(BiDi bidi)
{
_bidi = bidi;
}

public override UserContext? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new UserContext(_bidi, id!);
return new UserContext(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, UserContext value, JsonSerializerOptions options)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class BrowsingContextConverter : JsonConverter<BrowsingContext.BrowsingContext>
{
private readonly BiDi _bidi;

public BrowsingContextConverter(BiDi bidi)
{
_bidi = bidi;
}

public override BrowsingContext.BrowsingContext? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new BrowsingContext.BrowsingContext(_bidi, id!);
return new BrowsingContext.BrowsingContext(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, BrowsingContext.BrowsingContext value, JsonSerializerOptions options)
Expand Down
10 changes: 2 additions & 8 deletions dotnet/src/webdriver/BiDi/Json/Converters/CollectorConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class CollectorConverter : JsonConverter<Collector>
{
private readonly BiDi _bidi;

public CollectorConverter(BiDi bidi)
{
_bidi = bidi;
}

public override Collector? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new Collector(_bidi, id!);
return new Collector(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, Collector value, JsonSerializerOptions options)
Expand Down
10 changes: 2 additions & 8 deletions dotnet/src/webdriver/BiDi/Json/Converters/HandleConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class HandleConverter : JsonConverter<Handle>
{
private readonly BiDi _bidi;

public HandleConverter(BiDi bidi)
{
_bidi = bidi;
}

public override Handle? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new Handle(_bidi, id!);
return new Handle(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, Handle value, JsonSerializerOptions options)
Expand Down
10 changes: 2 additions & 8 deletions dotnet/src/webdriver/BiDi/Json/Converters/InterceptConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class InterceptConverter : JsonConverter<Intercept>
{
private readonly BiDi _bidi;

public InterceptConverter(BiDi bidi)
{
_bidi = bidi;
}

public override Intercept? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new Intercept(_bidi, id!);
return new Intercept(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, Intercept value, JsonSerializerOptions options)
Expand Down
10 changes: 2 additions & 8 deletions dotnet/src/webdriver/BiDi/Json/Converters/InternalIdConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class InternalIdConverter : JsonConverter<InternalId>
{
private readonly BiDi _bidi;

public InternalIdConverter(BiDi bidi)
{
_bidi = bidi;
}

public override InternalId? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new InternalId(_bidi, id!);
return new InternalId(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, InternalId value, JsonSerializerOptions options)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class PreloadScriptConverter : JsonConverter<PreloadScript>
{
private readonly BiDi _bidi;

public PreloadScriptConverter(BiDi bidi)
{
_bidi = bidi;
}

public override PreloadScript? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new PreloadScript(_bidi, id!);
return new PreloadScript(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, PreloadScript value, JsonSerializerOptions options)
Expand Down
10 changes: 2 additions & 8 deletions dotnet/src/webdriver/BiDi/Json/Converters/RealmConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class RealmConverter : JsonConverter<Realm>
{
private readonly BiDi _bidi;

public RealmConverter(BiDi bidi)
{
_bidi = bidi;
}

public override Realm? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new Realm(_bidi, id!);
return new Realm(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, Realm value, JsonSerializerOptions options)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ namespace OpenQA.Selenium.BiDi.Json.Converters;

internal class WebExtensionConverter : JsonConverter<Extension>
{
private readonly BiDi _bidi;

public WebExtensionConverter(BiDi bidi)
{
_bidi = bidi;
}

public override Extension? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var id = reader.GetString();
var bidi = Broker.ThreadStaticBiDi ?? throw new InvalidOperationException("No BiDi set");

return new Extension(_bidi, id!);
return new Extension(bidi, id!);
}

public override void Write(Utf8JsonWriter writer, Extension value, JsonSerializerOptions options)
Expand Down
3 changes: 3 additions & 0 deletions dotnet/src/webdriver/BiDi/Network/Collector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace OpenQA.Selenium.BiDi.Network;

[JsonConverter(typeof(CollectorConverter))]
public sealed class Collector : IAsyncDisposable
{
private readonly BiDi _bidi;
Expand Down
3 changes: 3 additions & 0 deletions dotnet/src/webdriver/BiDi/Network/Intercept.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace OpenQA.Selenium.BiDi.Network;

[JsonConverter(typeof(InterceptConverter))]
public sealed class Intercept : IAsyncDisposable
{
private readonly BiDi _bidi;
Expand Down
4 changes: 4 additions & 0 deletions dotnet/src/webdriver/BiDi/Script/Handle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System.Text.Json.Serialization;

namespace OpenQA.Selenium.BiDi.Script;

[JsonConverter(typeof(HandleConverter))]
public sealed class Handle
{
private readonly BiDi _bidi;
Expand Down
4 changes: 4 additions & 0 deletions dotnet/src/webdriver/BiDi/Script/InternalId.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System.Text.Json.Serialization;

namespace OpenQA.Selenium.BiDi.Script;

[JsonConverter(typeof(InternalIdConverter))]
public sealed class InternalId
{
readonly BiDi _bidi;
Expand Down
3 changes: 3 additions & 0 deletions dotnet/src/webdriver/BiDi/Script/PreloadScript.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,14 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace OpenQA.Selenium.BiDi.Script;

[JsonConverter(typeof(PreloadScriptConverter))]
public sealed class PreloadScript : IAsyncDisposable
{
private readonly BiDi _bidi;
Expand Down
4 changes: 4 additions & 0 deletions dotnet/src/webdriver/BiDi/Script/Realm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System.Text.Json.Serialization;

namespace OpenQA.Selenium.BiDi.Script;

[JsonConverter(typeof(RealmConverter))]
public sealed class Realm
{
private readonly BiDi _bidi;
Expand Down
3 changes: 3 additions & 0 deletions dotnet/src/webdriver/BiDi/WebExtension/Extension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@
// under the License.
// </copyright>

using OpenQA.Selenium.BiDi.Json.Converters;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace OpenQA.Selenium.BiDi.WebExtension;

[JsonConverter(typeof(WebExtensionConverter))]
public sealed class Extension
{
private readonly BiDi _bidi;
Expand Down
Loading