Skip to content

Commit 9ca44d6

Browse files
committed
Merge branch 'trunk' of https://github.com/SeleniumHQ/selenium into trunk
2 parents 74a012b + 9899fc0 commit 9ca44d6

84 files changed

Lines changed: 1837 additions & 630 deletions

File tree

Some content is hidden

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

.idea/libraries/libcdp.xml

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Rakefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,13 @@ task '//java/client/test/org/openqa/selenium/environment/webserver:webserver:ube
104104
JAVA_RELEASE_TARGETS = %w[
105105
//java/client/src/org/openqa/selenium/chrome:chrome-maven-artifacts
106106
//java/client/src/org/openqa/selenium/chromium:chromium-maven-artifacts
107+
//java/client/src/org/openqa/selenium/devtools/v84:v84-maven-artifacts
108+
//java/client/src/org/openqa/selenium/devtools/v85:v85-maven-artifacts
109+
//java/client/src/org/openqa/selenium/devtools/v86:v86-maven-artifacts
110+
//java/client/src/org/openqa/selenium/devtools/v87:v87-maven-artifacts
107111
//java/client/src/org/openqa/selenium/devtools:devtools-maven-artifacts
108-
//java/client/src/org/openqa/selenium/edge/edgehtml:edgehtml-maven-artifacts
109-
//java/client/src/org/openqa/selenium/edge:edgeium-maven-artifacts
112+
//java/client/src/org/openqa/selenium/edge:edge-maven-artifacts
113+
//java/client/src/org/openqa/selenium/edgehtml:edgehtml-maven-artifacts
110114
//java/client/src/org/openqa/selenium/firefox/xpi:xpi-maven-artifacts
111115
//java/client/src/org/openqa/selenium/firefox:firefox-maven-artifacts
112116
//java/client/src/org/openqa/selenium/ie:ie-maven-artifacts
@@ -120,6 +124,7 @@ JAVA_RELEASE_TARGETS = %w[
120124
//java/client/src/org/openqa/selenium:client-combined-maven-artifacts
121125
//java/client/src/org/openqa/selenium:core-maven-artifacts
122126
//java/server/src/com/thoughtworks/selenium/webdriven:webdriven-maven-artifacts
127+
//java/server/src/org/openqa/selenium/grid/sessionmap/jdbc:jdbc-maven-artifacts
123128
//java/server/src/org/openqa/selenium/grid/sessionmap/redis:redis-maven-artifacts
124129
//java/server/src/org/openqa/selenium/grid:grid-maven-artifacts
125130
]

WORKSPACE

Lines changed: 52 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,19 @@ lint_setup({
2929

3030
http_archive(
3131
name = "platforms",
32-
sha256 = "ae95e4bfcd9f66e9dc73a92cee0107fede74163f788e3deefe00f3aaae75c431",
33-
strip_prefix = "platforms-681f1ee032566aa2d443cf0335d012925d9c58d4",
32+
sha256 = "0fc19efca1dfc5c1448c98f050639e3a48beb0031701d55bea5eb546507970f2",
33+
strip_prefix = "platforms-0.0.1",
3434
urls = [
35-
"https://github.com/bazelbuild/platforms/archive/681f1ee032566aa2d443cf0335d012925d9c58d4.zip",
35+
"https://github.com/bazelbuild/platforms/archive/0.0.1.tar.gz",
3636
],
3737
)
3838

3939
http_archive(
4040
name = "bazel_skylib",
41-
sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44",
41+
sha256 = "1c531376ac7e5a180e0237938a2536de0c54d93f5c278634818e0efc952dd56c",
4242
urls = [
43-
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
44-
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz",
43+
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
44+
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.3/bazel-skylib-1.0.3.tar.gz",
4545
],
4646
)
4747

@@ -63,6 +63,43 @@ load("@bazel_toolchains//rules:rbe_repo.bzl", "rbe_autoconfig")
6363

6464
rbe_autoconfig(name = "rbe_default")
6565

66+
http_archive(
67+
name = "rules_python",
68+
patches = ["//py:rules_python_wheel_directory_check.patch"],
69+
sha256 = "4d8ed66d5f57a0b6b90e495ca8e29e5c5fa353b93f093e7c31c595a4631ff293",
70+
strip_prefix = "rules_python-5c948dcfd4ca79c2ed3a87636c46abba9f5836e9",
71+
url = "https://github.com/bazelbuild/rules_python/archive/5c948dcfd4ca79c2ed3a87636c46abba9f5836e9.zip",
72+
)
73+
74+
# This call should always be present.
75+
load("@rules_python//python:repositories.bzl", "py_repositories")
76+
77+
py_repositories()
78+
79+
# This one is only needed if you're using the packaging rules.
80+
load("@rules_python//python:pip.bzl", "pip_install", "pip_repositories")
81+
82+
pip_install(
83+
name = "dev_requirements",
84+
requirements = "//py:requirements.txt",
85+
)
86+
87+
http_archive(
88+
name = "rules_proto",
89+
sha256 = "8e7d59a5b12b233be5652e3d29f42fba01c7cbab09f6b3a8d0a57ed6d1e9a0da",
90+
strip_prefix = "rules_proto-7e4afce6fe62dbff0a4a03450143146f9f2d7488",
91+
urls = [
92+
"https://github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
93+
"https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/7e4afce6fe62dbff0a4a03450143146f9f2d7488.tar.gz",
94+
],
95+
)
96+
97+
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
98+
99+
rules_proto_dependencies()
100+
101+
rules_proto_toolchains()
102+
66103
http_archive(
67104
name = "rules_jvm_external",
68105
sha256 = "d85951a92c0908c80bd8551002d66cb23c3434409c814179c0ff026b53544dab",
@@ -78,19 +115,6 @@ load("@maven//:defs.bzl", "pinned_maven_install")
78115

79116
pinned_maven_install()
80117

81-
http_archive(
82-
name = "io_bazel_rules_closure",
83-
sha256 = "2e95ba060acd74f3662547a38814ffff60317be047b7168d25498aea52f3e732",
84-
strip_prefix = "rules_closure-b3d4ec3879620edcadd3422b161cebb37c59b6c5",
85-
urls = [
86-
"https://github.com/bazelbuild/rules_closure/archive/b3d4ec3879620edcadd3422b161cebb37c59b6c5.tar.gz",
87-
],
88-
)
89-
90-
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
91-
92-
closure_repositories()
93-
94118
http_archive(
95119
name = "d2l_rules_csharp",
96120
sha256 = "4e8e9a93a5436d81c0a410148bef9e3e44860cd7dc567dd4732ab5b269a5e1f8",
@@ -119,25 +143,19 @@ npm_install(
119143
)
120144

121145
http_archive(
122-
name = "rules_python",
123-
patches = ["//py:rules_python_wheel_directory_check.patch"],
124-
sha256 = "4d8ed66d5f57a0b6b90e495ca8e29e5c5fa353b93f093e7c31c595a4631ff293",
125-
strip_prefix = "rules_python-5c948dcfd4ca79c2ed3a87636c46abba9f5836e9",
126-
url = "https://github.com/bazelbuild/rules_python/archive/5c948dcfd4ca79c2ed3a87636c46abba9f5836e9.zip",
146+
name = "io_bazel_rules_closure",
147+
sha256 = "d66deed38a0bb20581c15664f0ab62270af5940786855c7adc3087b27168b529",
148+
strip_prefix = "rules_closure-0.11.0",
149+
urls = [
150+
"https://github.com/bazelbuild/rules_closure/archive/0.11.0.tar.gz",
151+
],
127152
)
128153

129-
# This call should always be present.
130-
load("@rules_python//python:repositories.bzl", "py_repositories")
154+
load("@io_bazel_rules_closure//closure:repositories.bzl", "rules_closure_dependencies", "rules_closure_toolchains")
131155

132-
py_repositories()
156+
rules_closure_dependencies()
133157

134-
# This one is only needed if you're using the packaging rules.
135-
load("@rules_python//python:pip.bzl", "pip_install", "pip_repositories")
136-
137-
pip_install(
138-
name = "dev_requirements",
139-
requirements = "//py:requirements.txt",
140-
)
158+
rules_closure_toolchains()
141159

142160
http_archive(
143161
name = "rules_pkg",

dotnet/merge-assemblies.bzl

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

dotnet/src/webdriver/BUILD.bazel

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ generated_assembly_info(
5151
"//dotnet/src/webdriver/cdp:generate-v84",
5252
"//dotnet/src/webdriver/cdp:generate-v85",
5353
"//dotnet/src/webdriver/cdp:generate-v86",
54+
"//dotnet/src/webdriver/cdp:generate-v87",
5455
],
5556
out = "WebDriver",
5657
resources = [
@@ -99,6 +100,7 @@ generated_assembly_info(
99100
"//dotnet/src/webdriver/cdp:generate-v84",
100101
"//dotnet/src/webdriver/cdp:generate-v85",
101102
"//dotnet/src/webdriver/cdp:generate-v86",
103+
"//dotnet/src/webdriver/cdp:generate-v87",
102104
],
103105
out = "WebDriver",
104106
resources = [
@@ -138,6 +140,7 @@ generated_assembly_info(
138140
"//dotnet/src/webdriver/cdp:generate-v84",
139141
"//dotnet/src/webdriver/cdp:generate-v85",
140142
"//dotnet/src/webdriver/cdp:generate-v86",
143+
"//dotnet/src/webdriver/cdp:generate-v87",
141144
],
142145
out = "strongnamed/WebDriver",
143146
keyfile = "//dotnet:WebDriver.snk",
@@ -187,6 +190,7 @@ generated_assembly_info(
187190
"//dotnet/src/webdriver/cdp:generate-v84",
188191
"//dotnet/src/webdriver/cdp:generate-v85",
189192
"//dotnet/src/webdriver/cdp:generate-v86",
193+
"//dotnet/src/webdriver/cdp:generate-v87",
190194
],
191195
out = "strongnamed/WebDriver",
192196
keyfile = "//dotnet:WebDriver.snk",

dotnet/src/webdriver/DevTools/DevToolsDomains.cs

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
using System;
1919
using System.Collections.Generic;
2020
using System.Reflection;
21+
using System.Runtime.CompilerServices;
2122
using System.Text;
2223

2324
namespace OpenQA.Selenium.DevTools
@@ -32,14 +33,14 @@ public abstract class DevToolsDomains
3233
private static readonly int DefaultVersionRange = 5;
3334

3435
// This is the list of known supported DevTools version implementation.
35-
// Note carefully that it is sorted in reverse order, most recent
36-
// version first, as that is more likely to match. When new versions
37-
// are implemented for support,
38-
private static readonly List<Type> SupportedDevToolsVersions = new List<Type>()
36+
// When new versions are implemented for support, new types must be
37+
// added to this dictionary.
38+
private static readonly Dictionary<int, Type> SupportedDevToolsVersions = new Dictionary<int, Type>()
3939
{
40-
typeof(V86.V86Domains),
41-
typeof(V85.V85Domains),
42-
typeof(V84.V84Domains)
40+
{ 87, typeof(V87.V87Domains) },
41+
{ 86, typeof(V86.V86Domains) },
42+
{ 85, typeof(V85.V85Domains) },
43+
{ 84, typeof(V84.V84Domains) }
4344
};
4445

4546
/// <summary>
@@ -110,22 +111,24 @@ public static DevToolsDomains InitializeDomains(DevToolsVersionInfo versionInfo,
110111

111112
private static Type MatchDomainsVersion(int desiredVersion, int versionRange)
112113
{
113-
// Use reflection to look for a DevToolsVersion static field on every known domain implementation type
114-
foreach (Type candidateType in SupportedDevToolsVersions)
114+
// Return fast on an exact match
115+
if (SupportedDevToolsVersions.ContainsKey(desiredVersion))
115116
{
116-
PropertyInfo info = candidateType.GetProperty("DevToolsVersion", BindingFlags.Static | BindingFlags.Public);
117-
if (info != null)
117+
return SupportedDevToolsVersions[desiredVersion];
118+
}
119+
120+
// Get the list of supported versions and sort descending
121+
List<int> supportedVersions = new List<int>(SupportedDevToolsVersions.Keys);
122+
supportedVersions.Sort((first, second) => second.CompareTo(first));
123+
124+
foreach (int supportedVersion in supportedVersions)
125+
{
126+
// Match the version with the desired version within the
127+
// version range, using "The Price Is Right" style matching
128+
// (that is, closest without going over).
129+
if (desiredVersion >= supportedVersion && desiredVersion - supportedVersion < versionRange)
118130
{
119-
object propertyValue = info.GetValue(null);
120-
if (propertyValue != null)
121-
{
122-
// Match the version with the desired version within the version range
123-
int candidateVersion = (int)propertyValue;
124-
if (desiredVersion - candidateVersion < versionRange)
125-
{
126-
return candidateType;
127-
}
128-
}
131+
return SupportedDevToolsVersions[supportedVersion];
129132
}
130133
}
131134

dotnet/src/webdriver/DevTools/DevToolsSession.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,9 @@ public T GetVersionSpecificDomains<T>() where T: DevToolsSessionDomains
107107
T versionSpecificDomains = this.domains.VersionSpecificDomains as T;
108108
if (versionSpecificDomains == null)
109109
{
110-
throw new InvalidOperationException("Type is invalid for conversion");
110+
string errorTemplate = "The type is invalid for conversion. You requested domains of type '{0}', but the version-specific domains for this session are '{1}'";
111+
string exceptionMessage = string.Format(CultureInfo.InvariantCulture, errorTemplate, typeof(T).ToString(), this.domains.GetType().ToString());
112+
throw new InvalidOperationException(exceptionMessage);
111113
}
112114

113115
return versionSpecificDomains;

0 commit comments

Comments
 (0)