Skip to content

Commit 7405626

Browse files
committed
merge branch trunk
2 parents 4e1ed48 + 8c97d29 commit 7405626

File tree

121 files changed

+1410
-835
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+1410
-835
lines changed

.github/workflows/ci-python.yml

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ jobs:
1111
with:
1212
name: Build
1313
cache-key: py-build
14-
run: bazel build //py:selenium-wheel //py:selenium-sdist
14+
run: |
15+
bazel build //py:selenium-wheel //py:selenium-sdist
1516
1617
docs:
1718
name: Documentation
@@ -29,7 +30,8 @@ jobs:
2930
python -m pip install --upgrade pip
3031
pip install tox==4.30.2
3132
- name: Generate docs
32-
run: tox -c py/tox.ini
33+
run: |
34+
tox -c py/tox.ini
3335
env:
3436
TOXENV: docs
3537

@@ -68,7 +70,8 @@ jobs:
6870
name: Unit Tests (${{ matrix.os }})
6971
os: ${{ matrix.os }}
7072
cache-key: python-unit-test-${{ matrix.os }}
71-
run: bazel test //py:unit
73+
run: |
74+
bazel test //py:unit
7275
7376
remote-tests:
7477
name: Remote Tests
@@ -83,7 +86,8 @@ jobs:
8386
name: Integration Tests (remote, ${{ matrix.browser }})
8487
browser: ${{ matrix.browser }}
8588
cache-key: py-remote-${{ matrix.browser }}
86-
run: bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-remote
89+
run: |
90+
bazel test --local_test_jobs 1 --flaky_test_attempts 3 //py:test-remote
8791
8892
browser-tests:
8993
name: Browser Tests
@@ -107,7 +111,28 @@ jobs:
107111
run: |
108112
bazel test --local_test_jobs 1 --flaky_test_attempts 3 --pin_browsers=true //py:common-${{ matrix.browser }}-bidi //py:test-${{ matrix.browser }}
109113
110-
safari-tests:
114+
browser-tests-windows:
115+
name: Browser Tests
116+
needs: build
117+
uses: ./.github/workflows/bazel.yml
118+
strategy:
119+
fail-fast: false
120+
matrix:
121+
include:
122+
- browser: chrome
123+
os: windows
124+
- browser: edge
125+
os: windows
126+
with:
127+
name: Integration Tests (${{ matrix.browser }}, ${{ matrix.os }})
128+
browser: ${{ matrix.browser }}
129+
os: ${{ matrix.os }}
130+
cache-key: py-browser-${{ matrix.browser }}
131+
run: |
132+
fsutil 8dot3name set 0
133+
bazel test --local_test_jobs 1 --flaky_test_attempts 3 --pin_browsers=true //py:common-${{ matrix.browser }}-bidi //py:test-${{ matrix.browser }}
134+
135+
browser-tests-macos:
111136
name: Browser Tests
112137
needs: build
113138
uses: ./.github/workflows/bazel.yml

MODULE.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ maven.install(
173173
name = "maven",
174174
artifacts = [
175175
"com.beust:jcommander:1.82",
176+
"org.checkerframework:checker-qual:3.49.2",
176177
"com.github.javaparser:javaparser-core:3.27.0",
177178
"com.github.spotbugs:spotbugs:4.9.6",
178179
"com.github.stephenc.jcip:jcip-annotations:1.0-1",
@@ -187,6 +188,7 @@ maven.install(
187188
"com.google.protobuf:protobuf-java:4.32.1",
188189
"com.google.protobuf.nano:protobuf-javanano:3.1.0",
189190
"com.graphql-java:graphql-java:24.1",
191+
"com.uber.nullaway:nullaway:0.12.10",
190192
"dev.failsafe:failsafe:3.3.2",
191193
"io.grpc:grpc-context:1.75.0",
192194
"io.lettuce:lettuce-core:6.8.1.RELEASE",

common/repositories.bzl

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ js_library(
123123

124124
pkg_archive(
125125
name = "mac_edge",
126-
url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/2aa012fa-b45e-4235-8fcf-9d42087a962c/MicrosoftEdge-141.0.3537.57.pkg",
127-
sha256 = "af6ae5d5fe1d4ff9113168817d1c0f4edd1b2499ca58b4f92ae5172516d4d79f",
126+
url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/2f00e9c7-bb79-4501-aab6-5530c081aa92/MicrosoftEdge-141.0.3537.71.pkg",
127+
sha256 = "3b88bf987cfd9c49b2a90ed8f881b66c6cb921152e2f5d22f187e94a5e2f0405",
128128
move = {
129-
"MicrosoftEdge-141.0.3537.57.pkg/Payload/Microsoft Edge.app": "Edge.app",
129+
"MicrosoftEdge-141.0.3537.71.pkg/Payload/Microsoft Edge.app": "Edge.app",
130130
},
131131
build_file_content = """
132132
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -143,8 +143,8 @@ js_library(
143143

144144
deb_archive(
145145
name = "linux_edge",
146-
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_141.0.3537.57-1_amd64.deb",
147-
sha256 = "c6a1eee8e741e81149562f9899026332387b09b2f69bd76b50782d4551c186b9",
146+
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_141.0.3537.71-1_amd64.deb",
147+
sha256 = "f91edceb1301a66a55c5492bf50f5ec0819b198f33e5945ee36dacc68b8fcdf2",
148148
build_file_content = """
149149
load("@aspect_rules_js//js:defs.bzl", "js_library")
150150
package(default_visibility = ["//visibility:public"])
@@ -165,8 +165,8 @@ js_library(
165165

166166
http_archive(
167167
name = "linux_edgedriver",
168-
url = "https://msedgedriver.microsoft.com/141.0.3537.57/edgedriver_linux64.zip",
169-
sha256 = "54536daa3e18ba9504cd85c5b2a02f8d963dfba0c90208b9a46f4b59e0de50ae",
168+
url = "https://msedgedriver.microsoft.com/141.0.3537.71/edgedriver_linux64.zip",
169+
sha256 = "9b91c97b8157a1b709a43db5df3a66b059a5c807280c4591c73e50d85b73dc91",
170170
build_file_content = """
171171
load("@aspect_rules_js//js:defs.bzl", "js_library")
172172
package(default_visibility = ["//visibility:public"])
@@ -182,8 +182,8 @@ js_library(
182182

183183
http_archive(
184184
name = "mac_edgedriver",
185-
url = "https://msedgedriver.microsoft.com/141.0.3537.57/edgedriver_mac64.zip",
186-
sha256 = "d939d0c08797db9510ca5b1022cb3cfe0aafeb11a4e4195ec65cae7bc791fb44",
185+
url = "https://msedgedriver.microsoft.com/141.0.3537.71/edgedriver_mac64.zip",
186+
sha256 = "c0c544ba7472016cc2fb2bfaf580d5735951a1f768a251831aa98483655ecf68",
187187
build_file_content = """
188188
load("@aspect_rules_js//js:defs.bzl", "js_library")
189189
package(default_visibility = ["//visibility:public"])
@@ -199,8 +199,8 @@ js_library(
199199

200200
http_archive(
201201
name = "linux_chrome",
202-
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.54/linux64/chrome-linux64.zip",
203-
sha256 = "5023ec2b8995b74caa5de0e22d5e30f871c3ecce67a6e52d3c9f9dfed423ed01",
202+
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.76/linux64/chrome-linux64.zip",
203+
sha256 = "ed9ae9c5767aee31757ad866ce059e3ecb337802e9e6388094012f243dcbb3fa",
204204
build_file_content = """
205205
load("@aspect_rules_js//js:defs.bzl", "js_library")
206206
package(default_visibility = ["//visibility:public"])
@@ -220,8 +220,8 @@ js_library(
220220
)
221221
http_archive(
222222
name = "mac_chrome",
223-
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.54/mac-x64/chrome-mac-x64.zip",
224-
sha256 = "9d6b740d792d1d9e51198f98176813a5d1962c763a09cd708053b5aa3dfaa5df",
223+
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.76/mac-x64/chrome-mac-x64.zip",
224+
sha256 = "e04744a286a74bdd6eff77c0f815718e6ba5d132f38374851b67acc5ba69d988",
225225
strip_prefix = "chrome-mac-x64",
226226
patch_cmds = [
227227
"mv 'Google Chrome for Testing.app' Chrome.app",
@@ -241,8 +241,8 @@ js_library(
241241
)
242242
http_archive(
243243
name = "linux_chromedriver",
244-
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.54/linux64/chromedriver-linux64.zip",
245-
sha256 = "98b142a6342b8481084876a4e6747a291762641d9016b10c0178a24959fb6d03",
244+
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.76/linux64/chromedriver-linux64.zip",
245+
sha256 = "a4b7b6fa36f1e74cdaa9518f0ce874e35c23c959a8ac37419261d8cd3be70085",
246246
strip_prefix = "chromedriver-linux64",
247247
build_file_content = """
248248
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -259,8 +259,8 @@ js_library(
259259

260260
http_archive(
261261
name = "mac_chromedriver",
262-
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.54/mac-x64/chromedriver-mac-x64.zip",
263-
sha256 = "1140ed8fa9408c09968823ce20703b1303500789b6ce334056635eb477591dca",
262+
url = "https://storage.googleapis.com/chrome-for-testing-public/141.0.7390.76/mac-x64/chromedriver-mac-x64.zip",
263+
sha256 = "44a1cb3ffd95c9682cd7781240eda81540211749fc68790a82ed0aacf6fe2293",
264264
strip_prefix = "chromedriver-mac-x64",
265265
build_file_content = """
266266
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -277,8 +277,8 @@ js_library(
277277

278278
http_archive(
279279
name = "linux_beta_chrome",
280-
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chrome-linux64.zip",
281-
sha256 = "999f72fd31d3d351f08c2170f4734bd3674fd772417f567c243eabd0ab70bcb2",
280+
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.23/linux64/chrome-linux64.zip",
281+
sha256 = "8cfb9247d87419bd750c68b6f29424ad91474e0ee848c3f3cde04da76fbf9c2e",
282282
build_file_content = """
283283
load("@aspect_rules_js//js:defs.bzl", "js_library")
284284
package(default_visibility = ["//visibility:public"])
@@ -298,8 +298,8 @@ js_library(
298298
)
299299
http_archive(
300300
name = "mac_beta_chrome",
301-
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-x64/chrome-mac-x64.zip",
302-
sha256 = "b85a318a5cd3fa83b7ef4034dc643d134f475a6fe305d3d65af58310bc36fc9f",
301+
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.23/mac-x64/chrome-mac-x64.zip",
302+
sha256 = "2024bc564c4e7e26514b8cb4740d9f3760b2f8545d573c0ba08bd2ed3f6fd85f",
303303
strip_prefix = "chrome-mac-x64",
304304
patch_cmds = [
305305
"mv 'Google Chrome for Testing.app' Chrome.app",
@@ -319,8 +319,8 @@ js_library(
319319
)
320320
http_archive(
321321
name = "linux_beta_chromedriver",
322-
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/linux64/chromedriver-linux64.zip",
323-
sha256 = "da19a48eca2e7a09d757003eda2e814c8b7a9db462301faccc24564e5e593eca",
322+
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.23/linux64/chromedriver-linux64.zip",
323+
sha256 = "6309f4601340d2a0c8df04e239a4696f1f5427be8e53545a2a321b640be2a0de",
324324
strip_prefix = "chromedriver-linux64",
325325
build_file_content = """
326326
load("@aspect_rules_js//js:defs.bzl", "js_library")
@@ -337,8 +337,8 @@ js_library(
337337

338338
http_archive(
339339
name = "mac_beta_chromedriver",
340-
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.6/mac-x64/chromedriver-mac-x64.zip",
341-
sha256 = "156dc49c7f1707c72b670182d63fc2e6414734950221ba5c2fc133f580ed3713",
340+
url = "https://storage.googleapis.com/chrome-for-testing-public/142.0.7444.23/mac-x64/chromedriver-mac-x64.zip",
341+
sha256 = "695d4c4d71f31df7ea9d8bfccd19075662212b7fed9f9487fa2fa2aaa790faa6",
342342
strip_prefix = "chromedriver-mac-x64",
343343
build_file_content = """
344344
load("@aspect_rules_js//js:defs.bzl", "js_library")

dotnet/src/webdriver/BiDi/BiDi.cs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
// </copyright>
1919

2020
using System;
21-
using System.Collections.Concurrent;
2221
using System.Text.Json;
2322
using System.Text.Json.Serialization;
2423
using System.Threading;
@@ -35,8 +34,6 @@ public sealed class BiDi : IAsyncDisposable
3534
private readonly JsonSerializerOptions _jsonOptions;
3635
private readonly BiDiJsonSerializerContext _jsonContext;
3736

38-
private readonly ConcurrentDictionary<Type, Module> _modules = [];
39-
4037
private BiDi(string url)
4138
{
4239
var uri = new Uri(url);
@@ -68,32 +65,37 @@ private BiDi(string url)
6865
_jsonContext = new BiDiJsonSerializerContext(_jsonOptions);
6966

7067
_broker = new Broker(this, uri, _jsonOptions);
68+
SessionModule = Module.Create<Session.SessionModule>(this, _broker, _jsonOptions, _jsonContext);
69+
BrowsingContext = Module.Create<BrowsingContext.BrowsingContextModule>(this, _broker, _jsonOptions, _jsonContext);
70+
Browser = Module.Create<Browser.BrowserModule>(this, _broker, _jsonOptions, _jsonContext);
71+
Network = Module.Create<Network.NetworkModule>(this, _broker, _jsonOptions, _jsonContext);
72+
InputModule = Module.Create<Input.InputModule>(this, _broker, _jsonOptions, _jsonContext);
73+
Script = Module.Create<Script.ScriptModule>(this, _broker, _jsonOptions, _jsonContext);
74+
Log = Module.Create<Log.LogModule>(this, _broker, _jsonOptions, _jsonContext);
75+
Storage = Module.Create<Storage.StorageModule>(this, _broker, _jsonOptions, _jsonContext);
76+
WebExtension = Module.Create<WebExtension.WebExtensionModule>(this, _broker, _jsonOptions, _jsonContext);
77+
Emulation = Module.Create<Emulation.EmulationModule>(this, _broker, _jsonOptions, _jsonContext);
7178
}
7279

73-
internal Session.SessionModule SessionModule => AsModule<Session.SessionModule>();
74-
75-
public BrowsingContext.BrowsingContextModule BrowsingContext => AsModule<BrowsingContext.BrowsingContextModule>();
80+
internal Session.SessionModule SessionModule { get; }
7681

77-
public Browser.BrowserModule Browser => AsModule<Browser.BrowserModule>();
82+
public BrowsingContext.BrowsingContextModule BrowsingContext { get; }
7883

79-
public Network.NetworkModule Network => AsModule<Network.NetworkModule>();
84+
public Browser.BrowserModule Browser { get; }
8085

81-
internal Input.InputModule InputModule => AsModule<Input.InputModule>();
86+
public Network.NetworkModule Network { get; }
8287

83-
public Script.ScriptModule Script => AsModule<Script.ScriptModule>();
88+
internal Input.InputModule InputModule { get; }
8489

85-
public Log.LogModule Log => AsModule<Log.LogModule>();
90+
public Script.ScriptModule Script { get; }
8691

87-
public Storage.StorageModule Storage => AsModule<Storage.StorageModule>();
92+
public Log.LogModule Log { get; }
8893

89-
public WebExtension.WebExtensionModule WebExtension => AsModule<WebExtension.WebExtensionModule>();
94+
public Storage.StorageModule Storage { get; }
9095

91-
public Emulation.EmulationModule Emulation => AsModule<Emulation.EmulationModule>();
96+
public WebExtension.WebExtensionModule WebExtension { get; }
9297

93-
public TModule AsModule<TModule>() where TModule : Module, new()
94-
{
95-
return (TModule)_modules.GetOrAdd(typeof(TModule), _ => Module.Create<TModule>(this, _broker, _jsonOptions, _jsonContext));
96-
}
98+
public Emulation.EmulationModule Emulation { get; }
9799

98100
public Task<Session.StatusResult> StatusAsync()
99101
{

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,28 @@ namespace OpenQA.Selenium.BiDi.Browser;
2424

2525
public sealed class BrowserModule : Module
2626
{
27-
public async Task<EmptyResult> CloseAsync(CloseOptions? options = null)
27+
public async Task<CloseResult> CloseAsync(CloseOptions? options = null)
2828
{
29-
return await Broker.ExecuteCommandAsync(new CloseCommand(), options, JsonContext.Browser_CloseCommand, JsonContext.EmptyResult).ConfigureAwait(false);
29+
return await Broker.ExecuteCommandAsync(new CloseCommand(), options, JsonContext.Browser_CloseCommand, JsonContext.Browser_CloseResult).ConfigureAwait(false);
3030
}
3131

32-
public async Task<UserContextInfo> CreateUserContextAsync(CreateUserContextOptions? options = null)
32+
public async Task<CreateUserContextResult> CreateUserContextAsync(CreateUserContextOptions? options = null)
3333
{
3434
var @params = new CreateUserContextParameters(options?.AcceptInsecureCerts, options?.Proxy, options?.UnhandledPromptBehavior);
3535

36-
return await Broker.ExecuteCommandAsync(new CreateUserContextCommand(@params), options, JsonContext.CreateUserContextCommand, JsonContext.UserContextInfo).ConfigureAwait(false);
36+
return await Broker.ExecuteCommandAsync(new CreateUserContextCommand(@params), options, JsonContext.CreateUserContextCommand, JsonContext.CreateUserContextResult).ConfigureAwait(false);
3737
}
3838

3939
public async Task<GetUserContextsResult> GetUserContextsAsync(GetUserContextsOptions? options = null)
4040
{
4141
return await Broker.ExecuteCommandAsync(new GetUserContextsCommand(), options, JsonContext.GetUserContextsCommand, JsonContext.GetUserContextsResult).ConfigureAwait(false);
4242
}
4343

44-
public async Task<EmptyResult> RemoveUserContextAsync(UserContext userContext, RemoveUserContextOptions? options = null)
44+
public async Task<RemoveUserContextResult> RemoveUserContextAsync(UserContext userContext, RemoveUserContextOptions? options = null)
4545
{
4646
var @params = new RemoveUserContextParameters(userContext);
4747

48-
return await Broker.ExecuteCommandAsync(new RemoveUserContextCommand(@params), options, JsonContext.RemoveUserContextCommand, JsonContext.EmptyResult).ConfigureAwait(false);
48+
return await Broker.ExecuteCommandAsync(new RemoveUserContextCommand(@params), options, JsonContext.RemoveUserContextCommand, JsonContext.RemoveUserContextResult).ConfigureAwait(false);
4949
}
5050

5151
public async Task<GetClientWindowsResult> GetClientWindowsAsync(GetClientWindowsOptions? options = null)
@@ -54,24 +54,24 @@ public async Task<GetClientWindowsResult> GetClientWindowsAsync(GetClientWindows
5454
).ConfigureAwait(false);
5555
}
5656

57-
public async Task<EmptyResult> SetDownloadBehaviorAllowedAsync(string destinationFolder, SetDownloadBehaviorOptions? options = null)
57+
public async Task<SetDownloadBehaviorResult> SetDownloadBehaviorAllowedAsync(string destinationFolder, SetDownloadBehaviorOptions? options = null)
5858
{
5959
var @params = new SetDownloadBehaviorParameters(new DownloadBehaviorAllowed(destinationFolder), options?.UserContexts);
6060

61-
return await Broker.ExecuteCommandAsync(new SetDownloadBehaviorCommand(@params), options, JsonContext.SetDownloadBehaviorCommand, JsonContext.EmptyResult).ConfigureAwait(false);
61+
return await Broker.ExecuteCommandAsync(new SetDownloadBehaviorCommand(@params), options, JsonContext.SetDownloadBehaviorCommand, JsonContext.SetDownloadBehaviorResult).ConfigureAwait(false);
6262
}
6363

64-
public async Task<EmptyResult> SetDownloadBehaviorAllowedAsync(SetDownloadBehaviorOptions? options = null)
64+
public async Task<SetDownloadBehaviorResult> SetDownloadBehaviorAllowedAsync(SetDownloadBehaviorOptions? options = null)
6565
{
6666
var @params = new SetDownloadBehaviorParameters(null, options?.UserContexts);
6767

68-
return await Broker.ExecuteCommandAsync(new SetDownloadBehaviorCommand(@params), options, JsonContext.SetDownloadBehaviorCommand, JsonContext.EmptyResult).ConfigureAwait(false);
68+
return await Broker.ExecuteCommandAsync(new SetDownloadBehaviorCommand(@params), options, JsonContext.SetDownloadBehaviorCommand, JsonContext.SetDownloadBehaviorResult).ConfigureAwait(false);
6969
}
7070

71-
public async Task<EmptyResult> SetDownloadBehaviorDeniedAsync(SetDownloadBehaviorOptions? options = null)
71+
public async Task<SetDownloadBehaviorResult> SetDownloadBehaviorDeniedAsync(SetDownloadBehaviorOptions? options = null)
7272
{
7373
var @params = new SetDownloadBehaviorParameters(new DownloadBehaviorDenied(), options?.UserContexts);
7474

75-
return await Broker.ExecuteCommandAsync(new SetDownloadBehaviorCommand(@params), options, JsonContext.SetDownloadBehaviorCommand, JsonContext.EmptyResult).ConfigureAwait(false);
75+
return await Broker.ExecuteCommandAsync(new SetDownloadBehaviorCommand(@params), options, JsonContext.SetDownloadBehaviorCommand, JsonContext.SetDownloadBehaviorResult).ConfigureAwait(false);
7676
}
7777
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
namespace OpenQA.Selenium.BiDi.Browser;
2323

2424
internal sealed class CloseCommand()
25-
: Command<Parameters, EmptyResult>(Parameters.Empty, "browser.close");
25+
: Command<Parameters, CloseResult>(Parameters.Empty, "browser.close");
2626

2727
public sealed class CloseOptions : CommandOptions;
28+
29+
public sealed record CloseResult : EmptyResult;

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
namespace OpenQA.Selenium.BiDi.Browser;
2323

2424
internal sealed class CreateUserContextCommand(CreateUserContextParameters @params)
25-
: Command<CreateUserContextParameters, UserContextInfo>(@params, "browser.createUserContext");
25+
: Command<CreateUserContextParameters, CreateUserContextResult>(@params, "browser.createUserContext");
2626

2727
internal sealed record CreateUserContextParameters(bool? AcceptInsecureCerts, Session.ProxyConfiguration? Proxy, Session.UserPromptHandler? UnhandledPromptBehavior) : Parameters;
2828

@@ -34,3 +34,5 @@ public sealed class CreateUserContextOptions : CommandOptions
3434

3535
public Session.UserPromptHandler? UnhandledPromptBehavior { get; set; }
3636
}
37+
38+
public sealed record CreateUserContextResult(UserContext UserContext) : UserContextInfo(UserContext);

0 commit comments

Comments
 (0)