Skip to content

Commit e791848

Browse files
authored
Merge branch 'trunk' into py_cdp_fix
2 parents 9e465e5 + 26fc1bb commit e791848

File tree

26 files changed

+280
-271
lines changed

26 files changed

+280
-271
lines changed

.github/workflows/ci-java.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ jobs:
2828
//java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest `
2929
//java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest `
3030
//java/test/org/openqa/selenium/remote:RemoteWebDriverBuilderTest `
31-
//java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest
31+
//java/test/org/openqa/selenium/grid/router:RemoteWebDriverDownloadTest `
32+
//java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest
3233
3334
browser-tests-macos:
3435
name: Browser Tests

.skipped-tests

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
-//java/test/org/openqa/selenium/edge:EdgeDriverFunctionalTest
77
-//java/test/org/openqa/selenium/edge:EdgeDriverFunctionalTest-edge
88
-//java/test/org/openqa/selenium/edge:EdgeDriverFunctionalTest-remote
9+
-//java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest
10+
-//java/test/org/openqa/selenium/devtools:NetworkInterceptorRestTest-remote
911
-//java/test/org/openqa/selenium/federatedcredentialmanagement:FederatedCredentialManagementTest
1012
-//java/test/org/openqa/selenium/firefox:FirefoxDriverBuilderTest
1113
-//java/test/org/openqa/selenium/grid/gridui:OverallGridTest
@@ -45,8 +47,10 @@
4547
-//rb/spec/integration/selenium/webdriver/remote:element-edge-remote
4648
-//rb/spec/integration/selenium/webdriver/remote:element-firefox-beta-remote
4749
-//rb/spec/integration/selenium/webdriver/remote:element-firefox-remote
50+
-//rb/spec/integration/selenium/webdriver:action_builder-firefox-beta-remote
4851
-//rb/spec/integration/selenium/webdriver:element-chrome
4952
-//rb/spec/integration/selenium/webdriver:element-chrome-bidi
5053
-//rb/spec/integration/selenium/webdriver:element-chrome-remote
51-
-//rb/spec/integration/selenium/webdriver:action_builder-firefox-beta-remote
54+
-//rb/spec/integration/selenium/webdriver:manager-firefox-beta
55+
-//rb/spec/integration/selenium/webdriver:manager-firefox-beta-remote
5256
-//rb:lint

common/repositories.bzl

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ def pin_browsers():
1111

1212
http_archive(
1313
name = "linux_firefox",
14-
url = "https://ftp.mozilla.org/pub/firefox/releases/140.0.4/linux-x86_64/en-US/firefox-140.0.4.tar.xz",
15-
sha256 = "63e0033e6f4dd0576074de3cf1f70feec43359f923ed9055e554cf84b13856f6",
14+
url = "https://ftp.mozilla.org/pub/firefox/releases/141.0.3/linux-x86_64/en-US/firefox-141.0.3.tar.xz",
15+
sha256 = "e935dc3b74cf2cb1086e1e0b4a51d18e4d307e71ce6a20db64fe49d09cc78716",
1616
build_file_content = """
1717
load("@aspect_rules_js//js:defs.bzl", "js_library")
1818
package(default_visibility = ["//visibility:public"])
@@ -33,8 +33,8 @@ js_library(
3333

3434
dmg_archive(
3535
name = "mac_firefox",
36-
url = "https://ftp.mozilla.org/pub/firefox/releases/140.0.4/mac/en-US/Firefox%20140.0.4.dmg",
37-
sha256 = "e97d88d6ac04766cc52963d0d8f567bd39464bfc612167cd81627e6bb22d1d8c",
36+
url = "https://ftp.mozilla.org/pub/firefox/releases/141.0.3/mac/en-US/Firefox%20141.0.3.dmg",
37+
sha256 = "bb922cda690543bddaa1fbc3b3cba508c60774832643452bc266595331f42db1",
3838
build_file_content = """
3939
load("@aspect_rules_js//js:defs.bzl", "js_library")
4040
package(default_visibility = ["//visibility:public"])
@@ -50,8 +50,8 @@ js_library(
5050

5151
http_archive(
5252
name = "linux_beta_firefox",
53-
url = "https://ftp.mozilla.org/pub/firefox/releases/141.0b9/linux-x86_64/en-US/firefox-141.0b9.tar.xz",
54-
sha256 = "5a89acdfeecef444ff167635308fde601317331a6537ba379897b77a636496be",
53+
url = "https://ftp.mozilla.org/pub/firefox/releases/142.0b9/linux-x86_64/en-US/firefox-142.0b9.tar.xz",
54+
sha256 = "0e230f54a1d933df55e0d730c7d774437e60b5fdcbd74401f5da69bce184c30b",
5555
build_file_content = """
5656
load("@aspect_rules_js//js:defs.bzl", "js_library")
5757
package(default_visibility = ["//visibility:public"])
@@ -72,8 +72,8 @@ js_library(
7272

7373
dmg_archive(
7474
name = "mac_beta_firefox",
75-
url = "https://ftp.mozilla.org/pub/firefox/releases/141.0b9/mac/en-US/Firefox%20141.0b9.dmg",
76-
sha256 = "e105272ffa164d501a78b3a407fef1afcac80cab4b9e03de07f3599e8ce39588",
75+
url = "https://ftp.mozilla.org/pub/firefox/releases/142.0b9/mac/en-US/Firefox%20142.0b9.dmg",
76+
sha256 = "529509a53278d8cbd482fa8ef95ac243b33c6cc4acc7924c15f6ce3f59c64bbf",
7777
build_file_content = """
7878
load("@aspect_rules_js//js:defs.bzl", "js_library")
7979
package(default_visibility = ["//visibility:public"])
@@ -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/e6174f66-8a94-4831-ad47-f7c4c12f4eca/MicrosoftEdge-138.0.3351.83.pkg",
127-
sha256 = "deea1024b09afcc0ffca83ecb350044e5e960eae6b282779e2b6213e0f499f6a",
126+
url = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/2c91478b-aace-43d7-8329-0bc57341712f/MicrosoftEdge-139.0.3405.86.pkg",
127+
sha256 = "07051b3d4c97eeeff72c0858ae9510a249d9b1193a9c0174bef4a9697dbd395d",
128128
move = {
129-
"MicrosoftEdge-138.0.3351.83.pkg/Payload/Microsoft Edge.app": "Edge.app",
129+
"MicrosoftEdge-139.0.3405.86.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_138.0.3351.83-1_amd64.deb",
147-
sha256 = "35c0f0db8f3797e566060af851edaf666145b3765d589bec7ecb9beecb4c10e1",
146+
url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_139.0.3405.86-1_amd64.deb",
147+
sha256 = "4b5fd1512c1142c0509e8fc8df5c63c35086b34b49a65e4745ab5ab7ec0eaa61",
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/138.0.3351.83/edgedriver_linux64.zip",
169-
sha256 = "ed7d3651a5087bf7cdd383c244de29fa9e6a347473ff53c0172583380c5f7256",
168+
url = "https://msedgedriver.microsoft.com/139.0.3405.86/edgedriver_linux64.zip",
169+
sha256 = "49ce29de50f9ac418a3a2416708a5563215b8412b27d3e505f3c859fc6ffba12",
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/138.0.3351.83/edgedriver_mac64.zip",
186-
sha256 = "a9e267a880300ed8dc77fc4ff12d4a66b49e3443d23c1091af277f332b2fc041",
185+
url = "https://msedgedriver.microsoft.com/139.0.3405.86/edgedriver_mac64.zip",
186+
sha256 = "b6c8244dfb7b8a223d3ac8fd569533f0a307eadaca2b8cbc884ce7f69294682e",
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/138.0.7204.94/linux64/chrome-linux64.zip",
203-
sha256 = "7766500a69967e997814d694d32a11d60b65462473210d606118461b254607b5",
202+
url = "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.66/linux64/chrome-linux64.zip",
203+
sha256 = "4ee01c09848cce8cbb0b2ad1a86571caf9889bf771f01225ea4bb83eeec8da8a",
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/138.0.7204.94/mac-x64/chrome-mac-x64.zip",
224-
sha256 = "4eeb938a161b3eddf04f6fd1bdb5b1857003446329a5d247d535b020c076ae4d",
223+
url = "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.66/mac-x64/chrome-mac-x64.zip",
224+
sha256 = "9c1e521e9887ff4e21061ad142a22de522e91b3279544e08f510633549c0ff21",
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/138.0.7204.94/linux64/chromedriver-linux64.zip",
245-
sha256 = "59db6a59947f6f623cd66c56ce6532df96b14f3e8350144a3a246f9b51ffc28c",
244+
url = "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.66/linux64/chromedriver-linux64.zip",
245+
sha256 = "54e7a0bd1050018c17dc529167a5deecb9dd709ecbb926be6d9599a22e86e22a",
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/138.0.7204.94/mac-x64/chromedriver-mac-x64.zip",
263-
sha256 = "3330c58df57b75b166286aac87ce2da2587d2cb6789eb7423551391c4f489e51",
262+
url = "https://storage.googleapis.com/chrome-for-testing-public/139.0.7258.66/mac-x64/chromedriver-mac-x64.zip",
263+
sha256 = "12ed690058dbffa45e0239675a7b70bf232de14f8c95c9a717ca33482cdd52b6",
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/139.0.7258.31/linux64/chrome-linux64.zip",
281-
sha256 = "57d134da4644831f9b28a30743dd6bd2e10c9f474b1a6149f3389afcf7852131",
280+
url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.6/linux64/chrome-linux64.zip",
281+
sha256 = "b157ec8a2952606724486f9ed0911aa4dec8e3bcbeb1ba722c13f52999a58dff",
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/139.0.7258.31/mac-x64/chrome-mac-x64.zip",
302-
sha256 = "62211dfb16c5b194a1fced1c7b5fc2f933922bcfcc1309b4ef6338e47ed2dea9",
301+
url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.6/mac-x64/chrome-mac-x64.zip",
302+
sha256 = "6d5b57ee94e218a4101662e02d0f8086e4711701be7d99a2693ad62809f927fe",
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/139.0.7258.31/linux64/chromedriver-linux64.zip",
323-
sha256 = "d9cafd0f78fea5809e2ce51ca2a05b3c47d26ff18ea27b47ef23a35ac7075e46",
322+
url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.6/linux64/chromedriver-linux64.zip",
323+
sha256 = "78c84b8bb6f7671a657ecf25531fa7972c9d4ea753523e11d2f75a0eb14ebff0",
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/139.0.7258.31/mac-x64/chromedriver-mac-x64.zip",
341-
sha256 = "e8918cd9835308e6fdf288a8a6e79f12c0df3fb6ebdb9cc16d1fbee64bae1212",
340+
url = "https://storage.googleapis.com/chrome-for-testing-public/140.0.7339.6/mac-x64/chromedriver-mac-x64.zip",
341+
sha256 = "10dc8f0ea0154261aedb2f1b075bee761f1a26de793085d4f22160cc169e22d4",
342342
strip_prefix = "chromedriver-mac-x64",
343343
build_file_content = """
344344
load("@aspect_rules_js//js:defs.bzl", "js_library")

dotnet/src/webdriver/DriverProcessStartedEventArgs.cs

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
using System;
2121
using System.Diagnostics;
22-
using System.IO;
2322

2423
namespace OpenQA.Selenium;
2524

@@ -41,31 +40,10 @@ public DriverProcessStartedEventArgs(Process driverProcess)
4140
}
4241

4342
this.ProcessId = driverProcess.Id;
44-
if (driverProcess.StartInfo.RedirectStandardOutput && !driverProcess.StartInfo.UseShellExecute)
45-
{
46-
this.StandardOutputStreamReader = driverProcess.StandardOutput;
47-
}
48-
49-
if (driverProcess.StartInfo.RedirectStandardError && !driverProcess.StartInfo.UseShellExecute)
50-
{
51-
this.StandardErrorStreamReader = driverProcess.StandardError;
52-
}
5343
}
5444

5545
/// <summary>
5646
/// Gets the unique ID of the driver executable process.
5747
/// </summary>
5848
public int ProcessId { get; }
59-
60-
/// <summary>
61-
/// Gets a <see cref="StreamReader"/> object that can be used to read the contents
62-
/// printed to <c>stdout</c> by a driver service process.
63-
/// </summary>
64-
public StreamReader? StandardOutputStreamReader { get; }
65-
66-
/// <summary>
67-
/// Gets a <see cref="StreamReader"/> object that can be used to read the contents
68-
/// printed to <c>stderr</c> by a driver service process.
69-
/// </summary>
70-
public StreamReader? StandardErrorStreamReader { get; }
7149
}

dotnet/src/webdriver/DriverService.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using System.Net;
2727
using System.Net.Http;
2828
using System.Threading.Tasks;
29+
using OpenQA.Selenium.Internal.Logging;
2930

3031
namespace OpenQA.Selenium;
3132

@@ -37,6 +38,8 @@ public abstract class DriverService : ICommandServer
3738
private bool isDisposed;
3839
private Process? driverServiceProcess;
3940

41+
private static readonly ILogger _logger = Log.GetLogger(typeof(DriverService));
42+
4043
/// <summary>
4144
/// Initializes a new instance of the <see cref="DriverService"/> class.
4245
/// </summary>
@@ -243,11 +246,22 @@ public void Start()
243246
this.driverServiceProcess.StartInfo.UseShellExecute = false;
244247
this.driverServiceProcess.StartInfo.CreateNoWindow = this.HideCommandPromptWindow;
245248

249+
this.driverServiceProcess.StartInfo.RedirectStandardOutput = true;
250+
this.driverServiceProcess.StartInfo.RedirectStandardError = true;
251+
252+
this.driverServiceProcess.OutputDataReceived += this.OnDriverProcessDataReceived;
253+
this.driverServiceProcess.ErrorDataReceived += this.OnDriverProcessDataReceived;
254+
246255
DriverProcessStartingEventArgs eventArgs = new DriverProcessStartingEventArgs(this.driverServiceProcess.StartInfo);
247256
this.OnDriverProcessStarting(eventArgs);
248257

258+
// Important: Start the process and immediately begin reading the output and error streams to avoid IO deadlocks.
249259
this.driverServiceProcess.Start();
260+
this.driverServiceProcess.BeginOutputReadLine();
261+
this.driverServiceProcess.BeginErrorReadLine();
262+
250263
bool serviceAvailable = this.WaitForServiceInitialization();
264+
251265
DriverProcessStartedEventArgs processStartedEventArgs = new DriverProcessStartedEventArgs(this.driverServiceProcess);
252266
this.OnDriverProcessStarted(processStartedEventArgs);
253267

@@ -274,6 +288,12 @@ protected virtual void Dispose(bool disposing)
274288
if (disposing)
275289
{
276290
this.Stop();
291+
292+
if (this.driverServiceProcess is not null)
293+
{
294+
this.driverServiceProcess.OutputDataReceived -= this.OnDriverProcessDataReceived;
295+
this.driverServiceProcess.ErrorDataReceived -= this.OnDriverProcessDataReceived;
296+
}
277297
}
278298

279299
this.isDisposed = true;
@@ -308,6 +328,23 @@ protected virtual void OnDriverProcessStarted(DriverProcessStartedEventArgs even
308328
this.DriverProcessStarted?.Invoke(this, eventArgs);
309329
}
310330

331+
/// <summary>
332+
/// Handles the output and error data received from the driver process.
333+
/// </summary>
334+
/// <param name="sender">The sender of the event.</param>
335+
/// <param name="args">The data received event arguments.</param>
336+
/// <param name="isError">A value indicating whether the data received is from the error stream.</param>
337+
protected virtual void OnDriverProcessDataReceived(object sender, DataReceivedEventArgs args)
338+
{
339+
if (string.IsNullOrEmpty(args.Data))
340+
return;
341+
342+
if (_logger.IsEnabled(LogEventLevel.Trace))
343+
{
344+
_logger.Trace(args.Data);
345+
}
346+
}
347+
311348
/// <summary>
312349
/// Stops the DriverService.
313350
/// </summary>

0 commit comments

Comments
 (0)