Skip to content

Commit 296dd39

Browse files
nvborisenkosandeepsuryaprasad
authored andcommitted
[dotnet] [bidi] Make RealmInfo as not nested (SeleniumHQ#15444)
1 parent 4b330ff commit 296dd39

File tree

5 files changed

+43
-44
lines changed

5 files changed

+43
-44
lines changed

dotnet/src/webdriver/BiDi/Communication/Json/BiDiJsonSerializerContext.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ namespace OpenQA.Selenium.BiDi.Communication.Json;
5757
[JsonSerializable(typeof(Modules.Script.NodeRemoteValue))]
5858
[JsonSerializable(typeof(Modules.Script.WindowProxyRemoteValue))]
5959

60-
[JsonSerializable(typeof(Modules.Script.RealmInfo.Window))]
61-
[JsonSerializable(typeof(Modules.Script.RealmInfo.DedicatedWorker))]
62-
[JsonSerializable(typeof(Modules.Script.RealmInfo.SharedWorker))]
63-
[JsonSerializable(typeof(Modules.Script.RealmInfo.ServiceWorker))]
64-
[JsonSerializable(typeof(Modules.Script.RealmInfo.Worker))]
65-
[JsonSerializable(typeof(Modules.Script.RealmInfo.PaintWorklet))]
66-
[JsonSerializable(typeof(Modules.Script.RealmInfo.AudioWorklet))]
67-
[JsonSerializable(typeof(Modules.Script.RealmInfo.Worklet))]
60+
[JsonSerializable(typeof(Modules.Script.WindowRealmInfo))]
61+
[JsonSerializable(typeof(Modules.Script.DedicatedWorkerRealmInfo))]
62+
[JsonSerializable(typeof(Modules.Script.SharedWorkerRealmInfo))]
63+
[JsonSerializable(typeof(Modules.Script.ServiceWorkerRealmInfo))]
64+
[JsonSerializable(typeof(Modules.Script.WorkerRealmInfo))]
65+
[JsonSerializable(typeof(Modules.Script.PaintWorkletRealmInfo))]
66+
[JsonSerializable(typeof(Modules.Script.AudioWorkletRealmInfo))]
67+
[JsonSerializable(typeof(Modules.Script.WorkletRealmInfo))]
6868

6969
[JsonSerializable(typeof(Modules.Log.ConsoleLogEntry))]
7070
[JsonSerializable(typeof(Modules.Log.JavascriptLogEntry))]

dotnet/src/webdriver/BiDi/Communication/Json/Converters/Polymorphic/RealmInfoConverter.cs

+8-8
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ internal class RealmInfoConverter : JsonConverter<RealmInfo>
3333

3434
return jsonDocument.RootElement.GetProperty("type").ToString() switch
3535
{
36-
"window" => jsonDocument.Deserialize<RealmInfo.Window>(options),
37-
"dedicated-worker" => jsonDocument.Deserialize<RealmInfo.DedicatedWorker>(options),
38-
"shared-worker" => jsonDocument.Deserialize<RealmInfo.SharedWorker>(options),
39-
"service-worker" => jsonDocument.Deserialize<RealmInfo.ServiceWorker>(options),
40-
"worker" => jsonDocument.Deserialize<RealmInfo.Worker>(options),
41-
"paint-worklet" => jsonDocument.Deserialize<RealmInfo.PaintWorklet>(options),
42-
"audio-worklet" => jsonDocument.Deserialize<RealmInfo.AudioWorklet>(options),
43-
"worklet" => jsonDocument.Deserialize<RealmInfo.Worklet>(options),
36+
"window" => jsonDocument.Deserialize<WindowRealmInfo>(options),
37+
"dedicated-worker" => jsonDocument.Deserialize<DedicatedWorkerRealmInfo>(options),
38+
"shared-worker" => jsonDocument.Deserialize<SharedWorkerRealmInfo>(options),
39+
"service-worker" => jsonDocument.Deserialize<ServiceWorkerRealmInfo>(options),
40+
"worker" => jsonDocument.Deserialize<WorkerRealmInfo>(options),
41+
"paint-worklet" => jsonDocument.Deserialize<PaintWorkletRealmInfo>(options),
42+
"audio-worklet" => jsonDocument.Deserialize<AudioWorkletRealmInfo>(options),
43+
"worklet" => jsonDocument.Deserialize<WorkletRealmInfo>(options),
4444
_ => null,
4545
};
4646
}

dotnet/src/webdriver/BiDi/Modules/Script/RealmInfo.cs

+20-21
Original file line numberDiff line numberDiff line change
@@ -23,32 +23,31 @@ namespace OpenQA.Selenium.BiDi.Modules.Script;
2323

2424
// https://github.com/dotnet/runtime/issues/72604
2525
//[JsonPolymorphic(TypeDiscriminatorPropertyName = "type")]
26-
//[JsonDerivedType(typeof(Window), "window")]
27-
//[JsonDerivedType(typeof(DedicatedWorker), "dedicated-worker")]
28-
//[JsonDerivedType(typeof(SharedWorker), "shared-worker")]
29-
//[JsonDerivedType(typeof(ServiceWorker), "service-worker")]
30-
//[JsonDerivedType(typeof(Worker), "worker")]
31-
//[JsonDerivedType(typeof(PaintWorklet), "paint-worklet")]
32-
//[JsonDerivedType(typeof(AudioWorklet), "audio-worklet")]
33-
//[JsonDerivedType(typeof(Worklet), "worklet")]
34-
public abstract record RealmInfo(BiDi BiDi, Realm Realm, string Origin) : EventArgs(BiDi)
26+
//[JsonDerivedType(typeof(WindowRealmInfo), "window")]
27+
//[JsonDerivedType(typeof(DedicatedWorkerRealmInfo), "dedicated-worker")]
28+
//[JsonDerivedType(typeof(SharedWorkerRealmInfo), "shared-worker")]
29+
//[JsonDerivedType(typeof(ServiceWorkerRealmInfo), "service-worker")]
30+
//[JsonDerivedType(typeof(WorkerRealmInfo), "worker")]
31+
//[JsonDerivedType(typeof(PaintWorkletRealmInfo), "paint-worklet")]
32+
//[JsonDerivedType(typeof(AudioWorkletRealmInfo), "audio-worklet")]
33+
//[JsonDerivedType(typeof(WorkletRealmInfo), "worklet")]
34+
public abstract record RealmInfo(BiDi BiDi, Realm Realm, string Origin) : EventArgs(BiDi);
35+
36+
public record WindowRealmInfo(BiDi BiDi, Realm Realm, string Origin, BrowsingContext.BrowsingContext Context) : RealmInfo(BiDi, Realm, Origin)
3537
{
36-
public record Window(BiDi BiDi, Realm Realm, string Origin, BrowsingContext.BrowsingContext Context) : RealmInfo(BiDi, Realm, Origin)
37-
{
38-
public string? Sandbox { get; set; }
39-
}
38+
public string? Sandbox { get; set; }
39+
}
4040

41-
public record DedicatedWorker(BiDi BiDi, Realm Realm, string Origin, IReadOnlyList<Realm> Owners) : RealmInfo(BiDi, Realm, Origin);
41+
public record DedicatedWorkerRealmInfo(BiDi BiDi, Realm Realm, string Origin, IReadOnlyList<Realm> Owners) : RealmInfo(BiDi, Realm, Origin);
4242

43-
public record SharedWorker(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
43+
public record SharedWorkerRealmInfo(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
4444

45-
public record ServiceWorker(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
45+
public record ServiceWorkerRealmInfo(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
4646

47-
public record Worker(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
47+
public record WorkerRealmInfo(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
4848

49-
public record PaintWorklet(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
49+
public record PaintWorkletRealmInfo(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
5050

51-
public record AudioWorklet(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
51+
public record AudioWorkletRealmInfo(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
5252

53-
public record Worklet(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);
54-
}
53+
public record WorkletRealmInfo(BiDi BiDi, Realm Realm, string Origin) : RealmInfo(BiDi, Realm, Origin);

dotnet/test/common/BiDi/Script/ScriptCommandsTest.cs

+6-6
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ public async Task CanGetAllRealms()
3636
Assert.That(realms, Is.Not.Null);
3737
Assert.That(realms, Has.Count.EqualTo(2));
3838

39-
Assert.That(realms[0], Is.AssignableFrom<RealmInfo.Window>());
39+
Assert.That(realms[0], Is.AssignableFrom<WindowRealmInfo>());
4040
Assert.That(realms[0].Realm, Is.Not.Null);
4141

42-
Assert.That(realms[1], Is.AssignableFrom<RealmInfo.Window>());
42+
Assert.That(realms[1], Is.AssignableFrom<WindowRealmInfo>());
4343
Assert.That(realms[1].Realm, Is.Not.Null);
4444
}
4545

@@ -53,10 +53,10 @@ public async Task CanGetAllRealmsByType()
5353
Assert.That(realms, Is.Not.Null);
5454
Assert.That(realms, Has.Count.EqualTo(2));
5555

56-
Assert.That(realms[0], Is.AssignableFrom<RealmInfo.Window>());
56+
Assert.That(realms[0], Is.AssignableFrom<WindowRealmInfo>());
5757
Assert.That(realms[0].Realm, Is.Not.Null);
5858

59-
Assert.That(realms[1], Is.AssignableFrom<RealmInfo.Window>());
59+
Assert.That(realms[1], Is.AssignableFrom<WindowRealmInfo>());
6060
Assert.That(realms[1].Realm, Is.Not.Null);
6161
}
6262

@@ -67,7 +67,7 @@ public async Task CanGetRealmInBrowsingContext()
6767

6868
var realms = await tab.Script.GetRealmsAsync();
6969

70-
var tabRealm = realms[0] as RealmInfo.Window;
70+
var tabRealm = realms[0] as WindowRealmInfo;
7171

7272
Assert.That(tabRealm, Is.Not.Null);
7373
Assert.That(tabRealm.Context, Is.EqualTo(tab));
@@ -80,7 +80,7 @@ public async Task CanGetRealmInBrowsingContextByType()
8080

8181
var realms = await tab.Script.GetRealmsAsync(new() { Type = RealmType.Window });
8282

83-
var tabRealm = realms[0] as RealmInfo.Window;
83+
var tabRealm = realms[0] as WindowRealmInfo;
8484

8585
Assert.That(tabRealm, Is.Not.Null);
8686
Assert.That(tabRealm.Context, Is.EqualTo(tab));

dotnet/test/common/BiDi/Script/ScriptEventsTest.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public async Task CanListenToRealmCreatedEvent()
6060
var realmInfo = await tcs.Task.WaitAsync(TimeSpan.FromSeconds(5));
6161

6262
Assert.That(realmInfo, Is.Not.Null);
63-
Assert.That(realmInfo, Is.AssignableFrom<RealmInfo.Window>());
63+
Assert.That(realmInfo, Is.AssignableFrom<WindowRealmInfo>());
6464
Assert.That(realmInfo.Realm, Is.Not.Null);
6565
}
6666

0 commit comments

Comments
 (0)