Skip to content

Commit 7308f86

Browse files
committed
v3 selenium server, enable -browserTimeout and -timeout (also aliased to -sessionTimeout) command line arguments
delete empty test make static final strings out of the magic strings
1 parent 6bef2c6 commit 7308f86

File tree

5 files changed

+32
-39
lines changed

5 files changed

+32
-39
lines changed

java/server/src/org/openqa/selenium/remote/server/CommandLineArgs.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public class CommandLineArgs {
3232

3333
@Parameter(
3434
names = "-browserTimeout",
35-
description = "Number of seconds a browser is allowed to hang (0 means indefinite).")
36-
int browserTimeout;
35+
description = "Number of seconds a browser is allowed to hang (0 means indefinite) while a command is running (example: driver.get(url)). If set, must be greater than or equal to 60. When the timeout is reached while a command is processing, the session will quit.")
36+
int browserTimeout = 0;
3737

3838
@Parameter(
3939
names = "-jettyThreads",
@@ -46,7 +46,7 @@ public class CommandLineArgs {
4646
int port = 4444;
4747

4848
@Parameter(
49-
names = "-timeout",
50-
description = "Number of seconds we should allow a client to be idle (0 means indefinite).")
51-
int timeout;
49+
names = {"-timeout", "-sessionTimeout"},
50+
description = "Number of seconds we should allow a client to be idle (0 means indefinite) between commands. Session will quit when timeout is reached. Default is 1800 (30 minutes).")
51+
int timeout = 1800;
5252
}

java/server/src/org/openqa/selenium/remote/server/DriverServlet.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@
5252

5353
public class DriverServlet extends HttpServlet {
5454
public static final String SESSIONS_KEY = DriverServlet.class.getName() + ".sessions";
55+
public static final String SESSION_TIMEOUT_PARAMETER = "webdriver.server.session.timeout";
56+
public static final String BROWSER_TIMEOUT_PARAMETER = "webdriver.server.browser.timeout";
5557

5658
private static final String CROSS_DOMAIN_RPC_PATH = "/xdrpc";
5759

@@ -81,8 +83,8 @@ public void init() throws ServletException {
8183
DriverSessions driverSessions = sessionsSupplier.get();
8284
commandHandler = new JsonHttpCommandHandler(driverSessions, logger);
8385

84-
long sessionTimeOutInMs = getValueToUseInMs("webdriver.server.session.timeout", 1800);
85-
long browserTimeoutInMs = getValueToUseInMs("webdriver.server.browser.timeout", 0);
86+
long sessionTimeOutInMs = getValueToUseInMs(SESSION_TIMEOUT_PARAMETER, 1800);
87+
long browserTimeoutInMs = getValueToUseInMs(BROWSER_TIMEOUT_PARAMETER, 0);
8688

8789
if (sessionTimeOutInMs > 0 || browserTimeoutInMs > 0) {
8890
createSessionCleaner(logger, driverSessions, sessionTimeOutInMs, browserTimeoutInMs);

java/server/src/org/openqa/selenium/remote/server/SeleniumServer.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public class SeleniumServer implements GridNodeServer {
4141
private int threadCount;
4242
private Server server;
4343
private DefaultDriverSessions driverSessions;
44+
private int browserTimeout = 0;
45+
private int sessionTimeout = 0;
4446

4547
private Thread shutDownHook;
4648
/**
@@ -70,10 +72,18 @@ private void addRcSupport(ServletContextHandler handler) {
7072
}
7173
}
7274

73-
private void setThreadCount(int threadCount) {
75+
public void setThreadCount(int threadCount) {
7476
this.threadCount = threadCount;
7577
}
7678

79+
public void setBrowserTimeout(int browserTimeout) {
80+
this.browserTimeout = browserTimeout;
81+
}
82+
83+
public void setSessionTimeout(int timeout) {
84+
this.sessionTimeout = timeout;
85+
}
86+
7787
public void boot() {
7888
if (threadCount > 0) {
7989
server = new Server(new QueuedThreadPool(threadCount));
@@ -87,6 +97,14 @@ public void boot() {
8797
handler.setAttribute(DriverServlet.SESSIONS_KEY, driverSessions);
8898
handler.setContextPath("/");
8999
handler.addServlet(DriverServlet.class, "/wd/hub/*");
100+
101+
if (browserTimeout > 0) {
102+
handler.setInitParameter(DriverServlet.BROWSER_TIMEOUT_PARAMETER, String.valueOf(browserTimeout));
103+
}
104+
if (sessionTimeout > 0) {
105+
handler.setInitParameter(DriverServlet.SESSION_TIMEOUT_PARAMETER, String.valueOf(sessionTimeout));
106+
}
107+
90108
addRcSupport(handler);
91109

92110
server.setHandler(handler);
@@ -191,6 +209,8 @@ public static void main(String[] argv) {
191209

192210
SeleniumServer server = new SeleniumServer(args.port);
193211
server.setThreadCount(args.jettyThreads);
212+
server.setBrowserTimeout(args.browserTimeout);
213+
server.setSessionTimeout(args.timeout);
194214
server.boot();
195215
}
196216

java/server/src/org/openqa/selenium/server/SeleniumServer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -411,8 +411,8 @@ private HttpContext createWebDriverRemoteContext(DriverSessions webDriverSession
411411
} else {
412412
browserTimeout /= 1000;
413413
}
414-
webdriverContext.setInitParameter("webdriver.server.session.timeout", String.valueOf(sessionTimeout));
415-
webdriverContext.setInitParameter("webdriver.server.browser.timeout", String.valueOf(browserTimeout));
414+
webdriverContext.setInitParameter(DriverServlet.SESSION_TIMEOUT_PARAMETER, String.valueOf(sessionTimeout));
415+
webdriverContext.setInitParameter(DriverServlet.BROWSER_TIMEOUT_PARAMETER, String.valueOf(browserTimeout));
416416
webdriverContext.setAttribute(DriverServlet.SESSIONS_KEY, webDriverSessions);
417417
webdriverContext.setContextPath("/wd");
418418
ServletHandler handler = new ServletHandler();

java/server/test/org/openqa/grid/e2e/utils/TestHttpServlet.java

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

0 commit comments

Comments
 (0)