@@ -216,17 +216,27 @@ public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities
216
216
217
217
public FirefoxDriver (FirefoxBinary binary , FirefoxProfile profile ,
218
218
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 ,
220
232
dropCapabilities (desiredCapabilities , BINARY , PROFILE ),
221
233
dropCapabilities (requiredCapabilities , BINARY , PROFILE ));
222
- this .binary = binary ;
223
234
}
224
235
225
236
private static final CommandExecutor createCommandExecutor (Capabilities desiredCapabilities ,
226
237
FirefoxBinary binary ,
227
238
FirefoxProfile profile ) {
228
- Object marionette = desiredCapabilities .getCapability (MARIONETTE );
229
- if (marionette instanceof Boolean && !(Boolean ) marionette ) {
239
+ if (isLegacy (desiredCapabilities )) {
230
240
return new LazyCommandExecutor (binary , profile );
231
241
}
232
242
GeckoDriverService .Builder builder = new GeckoDriverService .Builder ();
@@ -273,9 +283,9 @@ public Timeouts setScriptTimeout(long time, TimeUnit unit) {
273
283
};
274
284
}
275
285
276
- private boolean isLegacy (Capabilities desiredCapabilities ) {
286
+ private static boolean isLegacy (Capabilities desiredCapabilities ) {
277
287
Object marionette = desiredCapabilities .getCapability (MARIONETTE );
278
- return marionette != null && marionette instanceof Boolean && ! (Boolean ) marionette ;
288
+ return marionette instanceof Boolean && ! (Boolean ) marionette ;
279
289
}
280
290
281
291
@ Override
0 commit comments