Skip to content

Commit

Permalink
Accept GeckoDriverService in a FirefoxDriver ctor.
Browse files Browse the repository at this point in the history
This is analogous to the ChromeDriver constructor that accepts a
ChromeDriverService.
  • Loading branch information
juangj committed Jul 26, 2016
1 parent cdfe3a3 commit aead1f8
Showing 1 changed file with 16 additions and 6 deletions.
22 changes: 16 additions & 6 deletions java/client/src/org/openqa/selenium/firefox/FirefoxDriver.java
Original file line number Diff line number Diff line change
Expand Up @@ -216,17 +216,27 @@ public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities

public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile,
Capabilities desiredCapabilities, Capabilities requiredCapabilities) {
super(createCommandExecutor(desiredCapabilities, binary, profile),
this(createCommandExecutor(desiredCapabilities, binary, profile),
desiredCapabilities, requiredCapabilities);
this.binary = binary;
}

public FirefoxDriver(GeckoDriverService driverService, Capabilities desiredCapabilities,
Capabilities requiredCapabilities) {
this(new DriverCommandExecutor(driverService), desiredCapabilities, requiredCapabilities);
}

private FirefoxDriver(CommandExecutor executor, Capabilities desiredCapabilities,
Capabilities requiredCapabilities) {
super(executor,
dropCapabilities(desiredCapabilities, BINARY, PROFILE),
dropCapabilities(requiredCapabilities, BINARY, PROFILE));
this.binary = binary;
}

private static final CommandExecutor createCommandExecutor(Capabilities desiredCapabilities,
FirefoxBinary binary,
FirefoxProfile profile) {
Object marionette = desiredCapabilities.getCapability(MARIONETTE);
if (marionette instanceof Boolean && !(Boolean) marionette) {
if (isLegacy(desiredCapabilities)) {
return new LazyCommandExecutor(binary, profile);
}
GeckoDriverService.Builder builder = new GeckoDriverService.Builder();
Expand Down Expand Up @@ -273,9 +283,9 @@ public Timeouts setScriptTimeout(long time, TimeUnit unit) {
};
}

private boolean isLegacy(Capabilities desiredCapabilities) {
private static boolean isLegacy(Capabilities desiredCapabilities) {
Object marionette = desiredCapabilities.getCapability(MARIONETTE);
return marionette != null && marionette instanceof Boolean && ! (Boolean) marionette;
return marionette instanceof Boolean && ! (Boolean) marionette;
}

@Override
Expand Down

0 comments on commit aead1f8

Please sign in to comment.