Skip to content

Commit 5dfc5f6

Browse files
committed
allow setting custom timeout via overloaded constructor
1 parent cd138fc commit 5dfc5f6

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

java/src/org/openqa/selenium/devtools/DevTools.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,19 @@ public class DevTools implements Closeable {
4242
private static final Logger LOG = Logger.getLogger(DevTools.class.getName());
4343

4444
private final Domains protocol;
45-
private final Duration timeout = Duration.ofSeconds(10);
45+
private Duration timeout = Duration.ofSeconds(10);
4646
private final Connection connection;
4747
private SessionID cdpSession = null;
4848

4949
public DevTools(Function<DevTools, Domains> protocol, Connection connection) {
50+
this(protocol, connection, Duration.ofSeconds(10));
51+
}
52+
53+
// overloaded constructor for setting timeout
54+
public DevTools(Function<DevTools, Domains> protocol, Connection connection, Duration timeout) {
5055
this.connection = Require.nonNull("WebSocket connection", connection);
5156
this.protocol = Require.nonNull("CDP protocol", protocol).apply(this);
57+
setTimeout(timeout);
5258
}
5359

5460
public Domains getDomains() {
@@ -212,4 +218,12 @@ private Throwable unwrapCause(ExecutionException e) {
212218
public SessionID getCdpSession() {
213219
return cdpSession;
214220
}
221+
222+
public void setTimeout(Duration timeout) {
223+
Require.nonNull("Timeout duration", timeout);
224+
if (timeout.isNegative() || timeout.isZero()) {
225+
throw new IllegalArgumentException("Timeout must be positive");
226+
}
227+
this.timeout = timeout;
228+
}
215229
}

0 commit comments

Comments
 (0)