25
25
import static org .openqa .selenium .remote .CapabilityType .VERSION ;
26
26
27
27
import com .google .common .base .Preconditions ;
28
- import com .google .common .base .Predicate ;
29
28
import com .google .common .collect .ImmutableMap ;
30
29
import com .google .common .collect .Maps ;
31
30
import com .google .common .collect .Sets ;
62
61
import java .util .concurrent .TimeUnit ;
63
62
64
63
/**
65
- * An implementation of the {#link WebDriver} interface that drives Firefox. This works through a
66
- * firefox extension, which gets installed automatically if necessary.
64
+ * An implementation of the {#link WebDriver} interface that drives Firefox.
67
65
*/
68
66
public class FirefoxDriver extends RemoteWebDriver implements Killable {
69
67
@@ -120,7 +118,7 @@ public static final class SystemProperty {
120
118
121
119
// TODO: make it public as soon as it's fully implemented
122
120
FirefoxDriver (FirefoxOptions options ) {
123
- super (toExecutor (options ), options .toDesiredCapabilities (), null );
121
+ this (toExecutor (options ), options .toDesiredCapabilities (), options . toRequiredCapabilities () );
124
122
//binary = options.getBinary();
125
123
}
126
124
@@ -182,14 +180,21 @@ private static FirefoxOptions getFirefoxOptions(Capabilities capabilities) {
182
180
}
183
181
184
182
public FirefoxDriver (Capabilities desiredCapabilities , Capabilities requiredCapabilities ) {
185
- this (getBinary (desiredCapabilities ), null , desiredCapabilities , requiredCapabilities );
183
+ this (getFirefoxOptions (desiredCapabilities ).addDesiredCapabilities (desiredCapabilities )
184
+ .addRequiredCapabilities (requiredCapabilities ));
186
185
}
187
186
188
187
public FirefoxDriver (FirefoxBinary binary , FirefoxProfile profile , Capabilities capabilities ) {
189
188
this (getFirefoxOptions (capabilities ).setBinary (binary ).setProfile (profile )
190
189
.addDesiredCapabilities (capabilities ));
191
190
}
192
191
192
+ public FirefoxDriver (FirefoxBinary binary , FirefoxProfile profile ,
193
+ Capabilities desiredCapabilities , Capabilities requiredCapabilities ) {
194
+ this (getFirefoxOptions (desiredCapabilities ).setBinary (binary ).setProfile (profile )
195
+ .addDesiredCapabilities (desiredCapabilities ).addRequiredCapabilities (requiredCapabilities ));
196
+ }
197
+
193
198
private static FirefoxProfile prepareProfile (FirefoxProfile profile ,
194
199
Capabilities desiredCapabilities ,
195
200
Capabilities requiredCapabilities ) {
@@ -297,14 +302,6 @@ private static FirefoxBinary getBinary(Capabilities capabilities) {
297
302
return new FirefoxBinary ();
298
303
}
299
304
300
- public FirefoxDriver (FirefoxBinary binary , FirefoxProfile profile ,
301
- Capabilities desiredCapabilities , Capabilities requiredCapabilities ) {
302
- this (createCommandExecutor (desiredCapabilities , requiredCapabilities , binary , profile ),
303
- addProfileTo (desiredCapabilities , prepareProfile (profile , desiredCapabilities , requiredCapabilities )),
304
- requiredCapabilities );
305
- this .binary = binary ;
306
- }
307
-
308
305
public FirefoxDriver (GeckoDriverService driverService ) {
309
306
this (new DriverCommandExecutor (driverService ), null , null );
310
307
}
@@ -325,23 +322,6 @@ private FirefoxDriver(CommandExecutor executor, Capabilities desiredCapabilities
325
322
dropCapabilities (requiredCapabilities ));
326
323
}
327
324
328
- private static CommandExecutor createCommandExecutor (Capabilities desiredCapabilities ,
329
- Capabilities requiredCapabilities ,
330
- FirefoxBinary binary ,
331
- FirefoxProfile profile ) {
332
- if (isLegacy (desiredCapabilities )) {
333
- if (profile == null ) {
334
- profile = extractProfile (desiredCapabilities , requiredCapabilities );
335
- }
336
- return new LazyCommandExecutor (binary , profile );
337
- }
338
- GeckoDriverService .Builder builder = new GeckoDriverService .Builder ().usingPort (0 );
339
- if (binary != null ) {
340
- builder .usingFirefoxBinary (binary );
341
- }
342
- return new DriverCommandExecutor (builder .build ());
343
- }
344
-
345
325
@ Override
346
326
public void setFileDetector (FileDetector detector ) {
347
327
throw new WebDriverException (
@@ -470,11 +450,8 @@ private static Capabilities dropCapabilities(Capabilities capabilities) {
470
450
471
451
if (isLegacy (capabilities )) {
472
452
final Set <String > toRemove = Sets .newHashSet (BINARY , PROFILE );
473
- caps = new DesiredCapabilities (Maps .filterKeys (capabilities .asMap (), new Predicate <String >() {
474
- public boolean apply (String key ) {
475
- return !toRemove .contains (key );
476
- }
477
- }));
453
+ caps = new DesiredCapabilities (
454
+ Maps .filterKeys (capabilities .asMap (), key -> !toRemove .contains (key )));
478
455
} else {
479
456
caps = new DesiredCapabilities (capabilities );
480
457
}
0 commit comments