Skip to content

Commit bc438d4

Browse files
committed
[grid] Add BiDi endpoint to returned caps if available
1 parent 07d52d4 commit bc438d4

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

java/src/org/openqa/selenium/grid/node/config/DriverServiceSessionFactory.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.openqa.selenium.remote.tracing.Tracer;
5050

5151
import java.net.URI;
52+
import java.net.URISyntaxException;
5253
import java.net.URL;
5354
import java.time.Duration;
5455
import java.time.Instant;
@@ -165,6 +166,7 @@ public Either<WebDriverException, ActiveSession> apply(CreateSessionRequest sess
165166
}
166167

167168
caps = readDevToolsEndpointAndVersion(caps);
169+
caps = readBiDiEndpoint(caps);
168170
caps = readVncEndpoint(capabilities, caps);
169171

170172
span.addEvent("Driver service created session", attributeMap);
@@ -254,6 +256,28 @@ public DevToolsInfo(URI cdpEndpoint, String version) {
254256
return caps;
255257
}
256258

259+
private Capabilities readBiDiEndpoint(Capabilities caps) {
260+
261+
Optional<String> webSocketUrl =
262+
Optional.ofNullable((String) caps.getCapability("webSocketUrl"));
263+
264+
Optional<URI> websocketUri = webSocketUrl.map(uri -> {
265+
try {
266+
return new URI(uri);
267+
} catch (URISyntaxException e) {
268+
LOG.warning(e.getMessage());
269+
}
270+
return null;
271+
});
272+
273+
if (websocketUri.isPresent()) {
274+
return new PersistentCapabilities(caps)
275+
.setCapability("se:bidi", websocketUri.get());
276+
}
277+
278+
return caps;
279+
}
280+
257281
private Capabilities readVncEndpoint(Capabilities requestedCaps, Capabilities returnedCaps) {
258282
String seVncEnabledCap = "se:vncEnabled";
259283
String seNoVncPortCap = "se:noVncPort";

0 commit comments

Comments
 (0)