Skip to content

Commit aead1f8

Browse files
committed
Accept GeckoDriverService in a FirefoxDriver ctor.
This is analogous to the ChromeDriver constructor that accepts a ChromeDriverService.
1 parent cdfe3a3 commit aead1f8

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

java/client/src/org/openqa/selenium/firefox/FirefoxDriver.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,17 +216,27 @@ public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities
216216

217217
public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile,
218218
Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
219-
super(createCommandExecutor(desiredCapabilities, binary, profile),
219+
this(createCommandExecutor(desiredCapabilities, binary, profile),
220+
desiredCapabilities, requiredCapabilities);
221+
this.binary = binary;
222+
}
223+
224+
public FirefoxDriver(GeckoDriverService driverService, Capabilities desiredCapabilities,
225+
Capabilities requiredCapabilities) {
226+
this(new DriverCommandExecutor(driverService), desiredCapabilities, requiredCapabilities);
227+
}
228+
229+
private FirefoxDriver(CommandExecutor executor, Capabilities desiredCapabilities,
230+
Capabilities requiredCapabilities) {
231+
super(executor,
220232
dropCapabilities(desiredCapabilities, BINARY, PROFILE),
221233
dropCapabilities(requiredCapabilities, BINARY, PROFILE));
222-
this.binary = binary;
223234
}
224235

225236
private static final CommandExecutor createCommandExecutor(Capabilities desiredCapabilities,
226237
FirefoxBinary binary,
227238
FirefoxProfile profile) {
228-
Object marionette = desiredCapabilities.getCapability(MARIONETTE);
229-
if (marionette instanceof Boolean && !(Boolean) marionette) {
239+
if (isLegacy(desiredCapabilities)) {
230240
return new LazyCommandExecutor(binary, profile);
231241
}
232242
GeckoDriverService.Builder builder = new GeckoDriverService.Builder();
@@ -273,9 +283,9 @@ public Timeouts setScriptTimeout(long time, TimeUnit unit) {
273283
};
274284
}
275285

276-
private boolean isLegacy(Capabilities desiredCapabilities) {
286+
private static boolean isLegacy(Capabilities desiredCapabilities) {
277287
Object marionette = desiredCapabilities.getCapability(MARIONETTE);
278-
return marionette != null && marionette instanceof Boolean && ! (Boolean) marionette;
288+
return marionette instanceof Boolean && ! (Boolean) marionette;
279289
}
280290

281291
@Override

0 commit comments

Comments
 (0)