Skip to content

Commit 5031cb9

Browse files
authored
Merge branch 'trunk' into edge_py
2 parents 8ffb9c0 + e202389 commit 5031cb9

File tree

21 files changed

+332
-111
lines changed

21 files changed

+332
-111
lines changed

dotnet/src/webdriver/Command.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
using System.Collections.Generic;
2222
using System.Text.Json;
2323
using System.Text.Json.Serialization;
24+
using System.Text.Json.Serialization.Metadata;
2425

2526
namespace OpenQA.Selenium
2627
{
@@ -35,7 +36,7 @@ public class Command
3536

3637
private readonly static JsonSerializerOptions s_jsonSerializerOptions = new()
3738
{
38-
TypeInfoResolver = CommandJsonSerializerContext.Default,
39+
TypeInfoResolver = JsonTypeInfoResolver.Combine(CommandJsonSerializerContext.Default, new DefaultJsonTypeInfoResolver()),
3940
Converters = { new ResponseValueJsonConverter() }
4041
};
4142

dotnet/src/webdriver/SeleniumManager.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ public static class SeleniumManager
4040
{
4141
private static readonly ILogger _logger = Log.GetLogger(typeof(SeleniumManager));
4242

43-
private static readonly JsonSerializerOptions _serializerOptions = new() { PropertyNameCaseInsensitive = true, TypeInfoResolver = SeleniumManagerSerializerContext.Default };
44-
4543
private static readonly Lazy<string> _lazyBinaryFullPath = new(() =>
4644
{
4745
string? binaryFullPath = Environment.GetEnvironmentVariable("SE_MANAGER_PATH");
@@ -187,7 +185,7 @@ private static ResultResponse RunCommand(string fileName, string arguments)
187185

188186
try
189187
{
190-
jsonResponse = JsonSerializer.Deserialize<SeleniumManagerResponse>(output, _serializerOptions)!;
188+
jsonResponse = JsonSerializer.Deserialize(output, SeleniumManagerSerializerContext.Default.SeleniumManagerResponse)!;
191189
}
192190
catch (Exception ex)
193191
{
@@ -210,11 +208,11 @@ private static ResultResponse RunCommand(string fileName, string arguments)
210208
}
211209
}
212210

213-
internal record SeleniumManagerResponse(IReadOnlyList<LogEntryResponse> Logs, ResultResponse Result)
211+
internal sealed record SeleniumManagerResponse(IReadOnlyList<LogEntryResponse> Logs, ResultResponse Result)
214212
{
215-
public record LogEntryResponse(string Level, string Message);
213+
public sealed record LogEntryResponse(string Level, string Message);
216214

217-
public record ResultResponse
215+
public sealed record ResultResponse
218216
(
219217
[property: JsonPropertyName("driver_path")]
220218
string DriverPath,
@@ -224,5 +222,6 @@ string BrowserPath
224222
}
225223

226224
[JsonSerializable(typeof(SeleniumManagerResponse))]
227-
internal partial class SeleniumManagerSerializerContext : JsonSerializerContext;
225+
[JsonSourceGenerationOptions(PropertyNameCaseInsensitive = true)]
226+
internal sealed partial class SeleniumManagerSerializerContext : JsonSerializerContext;
228227
}

dotnet/test/common/CommandTests.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// <copyright file="CommandTests.cs" company="Selenium Committers">
2+
// Licensed to the Software Freedom Conservancy (SFC) under one
3+
// or more contributor license agreements. See the NOTICE file
4+
// distributed with this work for additional information
5+
// regarding copyright ownership. The SFC licenses this file
6+
// to you under the Apache License, Version 2.0 (the
7+
// "License"); you may not use this file except in compliance
8+
// with the License. You may obtain a copy of the License at
9+
//
10+
// http://www.apache.org/licenses/LICENSE-2.0
11+
//
12+
// Unless required by applicable law or agreed to in writing,
13+
// software distributed under the License is distributed on an
14+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
// KIND, either express or implied. See the License for the
16+
// specific language governing permissions and limitations
17+
// under the License.
18+
// </copyright>
19+
20+
using NUnit.Framework;
21+
using System.Collections.Generic;
22+
23+
namespace OpenQA.Selenium
24+
{
25+
[TestFixture]
26+
public class CommandTests
27+
{
28+
[Test]
29+
public void CommandSerializesAnonymousType()
30+
{
31+
var parameters = new Dictionary<string, object>
32+
{
33+
["arg"] = new { param1 = true, param2 = false },
34+
};
35+
36+
var command = new Command(new SessionId("session"), "test command", parameters);
37+
38+
Assert.That(command.ParametersAsJsonString, Is.EqualTo("""{"arg":{"param1":true,"param2":false}}"""));
39+
}
40+
}
41+
}

javascript/grid-ui/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"private": true,
55
"type": "module",
66
"dependencies": {
7-
"@apollo/client": "3.11.8",
7+
"@apollo/client": "3.11.9",
88
"@emotion/react": "11.13.3",
99
"@emotion/styled": "11.13.0",
1010
"@mui/icons-material": "5.15.18",
@@ -16,10 +16,10 @@
1616
"@types/react-dom": "18.2.22",
1717
"@types/react-modal": "3.16.3",
1818
"@types/react-router-dom": "5.3.3",
19-
"graphql": "16.8.1",
19+
"graphql": "16.9.0",
2020
"graphql.macro": "1.4.2",
2121
"path-browserify": "1.0.1",
22-
"pretty-ms": "9.0.0",
22+
"pretty-ms": "9.1.0",
2323
"react": "18.3.1",
2424
"react-dom": "18.3.1",
2525
"react-modal": "3.16.1",

javascript/node/selenium-webdriver/bidi/browsingContext.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,7 @@ class BrowsingContext {
156156
method: 'browsingContext.create',
157157
params: Object.fromEntries(parameters),
158158
}
159-
const res = await this.bidi.send(params)
160-
return res
159+
return await this.bidi.send(params)
161160
}
162161

163162
/**

javascript/node/selenium-webdriver/bidi/continueRequestParameters.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class ContinueRequestParameters {
4747
* Sets the cookies for the request.
4848
*
4949
* @param {Header[]} cookieHeaders - An array of cookie headers.
50-
* @returns {continueRequestParameters} - The current instance of the ContinueRequestParameters for chaining.
50+
* @returns {ContinueRequestParameters} - The current instance of the ContinueRequestParameters for chaining.
5151
* @throws {Error} - If a cookie header is not an instance of Header.
5252
*/
5353
cookies(cookieHeaders) {

javascript/node/selenium-webdriver/bidi/filterBy.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class FilterBy {
2121
}
2222

2323
static logLevel(level) {
24-
if (level === undefined || (level != undefined && !['debug', 'error', 'info', 'warning'].includes(level))) {
24+
if (level === undefined || (level !== undefined && !['debug', 'error', 'info', 'warning'].includes(level))) {
2525
throw Error(
2626
`Please pass valid log level. Valid log levels are 'debug', 'error', 'info' and 'warning'. Received: ${level}`,
2727
)

javascript/node/selenium-webdriver/bidi/logEntries.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ const { Source } = require('./scriptTypes')
2121

2222
/**
2323
* Represents a base log entry.
24-
* Desribed in https://w3c.github.io/webdriver-bidi/#types-log-logentry.
24+
* Described in https://w3c.github.io/webdriver-bidi/#types-log-logentry.
2525
*/
2626
class BaseLogEntry {
2727
/**
2828
* Creates a new instance of BaseLogEntry.
2929
* @param {string} level - The log level.
30+
* @param {source} source - Script Source
3031
* @param {string} text - The log source.
3132
* @param {string} text - The log text.
3233
* @param {number} timeStamp - The log timestamp.
@@ -86,6 +87,7 @@ class GenericLogEntry extends BaseLogEntry {
8687
/**
8788
* Creates an instance of GenericLogEntry.
8889
* @param {string} level - The log level.
90+
* @param {source} source - Script Source
8991
* @param {string} text - The log text.
9092
* @param {Date} timeStamp - The log timestamp.
9193
* @param {string} type - The log type.

javascript/node/selenium-webdriver/bidi/protocolValue.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ class LocalValue {
145145
/**
146146
* Creates a new LocalValue object from the passed object.
147147
*
148-
* @param {Object} map - The object.
148+
* @param {Object} object - The object.
149149
* @returns {LocalValue} - The created LocalValue object.
150150
*/
151151
static createObjectValue(object) {
@@ -431,7 +431,7 @@ class ChannelValue {
431431
}
432432
}
433433

434-
if (resultOwnership != undefined) {
434+
if (resultOwnership !== undefined) {
435435
if (['root', 'none'].includes(resultOwnership)) {
436436
this.resultOwnership = resultOwnership
437437
} else {

javascript/node/selenium-webdriver/bidi/storage.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,7 @@ class Storage {
138138
Object.prototype.hasOwnProperty.call(response.result.partitionKey, 'userContext') &&
139139
Object.prototype.hasOwnProperty.call(response.result.partitionKey, 'sourceOrigin')
140140
) {
141-
let partitionKey = new PartitionKey(
142-
response.result.partitionKey.userContext,
143-
response.result.partitionKey.sourceOrigin,
144-
)
145-
return partitionKey
141+
return new PartitionKey(response.result.partitionKey.userContext, response.result.partitionKey.sourceOrigin)
146142
}
147143
}
148144
}
@@ -182,11 +178,7 @@ class Storage {
182178
Object.prototype.hasOwnProperty.call(response.result.partitionKey, 'userContext') &&
183179
Object.prototype.hasOwnProperty.call(response.result.partitionKey, 'sourceOrigin')
184180
) {
185-
let partitionKey = new PartitionKey(
186-
response.result.partitionKey.userContext,
187-
response.result.partitionKey.sourceOrigin,
188-
)
189-
return partitionKey
181+
return new PartitionKey(response.result.partitionKey.userContext, response.result.partitionKey.sourceOrigin)
190182
}
191183
}
192184
}

0 commit comments

Comments
 (0)