@@ -117,28 +117,14 @@ public static final class SystemProperty {
117
117
118
118
protected FirefoxBinary binary ;
119
119
120
- public FirefoxDriver (FirefoxOptions options ) {
121
- this (toExecutor (options ), options .toDesiredCapabilities (), options .toRequiredCapabilities ());
122
- }
123
-
124
- private static CommandExecutor toExecutor (FirefoxOptions options ) {
125
- if (options .isLegacy ()) {
126
- return new FirefoxDriver .LazyCommandExecutor (options .getBinary (), options .getProfile ());
127
-
128
- } else {
129
- GeckoDriverService .Builder builder = new GeckoDriverService .Builder ().usingPort (0 );
130
- Optional <FirefoxBinary > binary = options .getBinaryOrNull ();
131
- if (binary .isPresent ()) {
132
- builder .usingFirefoxBinary (binary .get ());
133
- }
134
- return new DriverCommandExecutor (builder .build ());
135
- }
136
- }
137
-
138
120
public FirefoxDriver () {
139
121
this (new FirefoxOptions ());
140
122
}
141
123
124
+ public FirefoxDriver (FirefoxOptions options ) {
125
+ this (toExecutor (options ), options .toDesiredCapabilities (), options .toRequiredCapabilities ());
126
+ }
127
+
142
128
/**
143
129
* @deprecated Prefer {@link FirefoxOptions#setBinary(FirefoxBinary)}.
144
130
*/
@@ -164,35 +150,9 @@ public FirefoxDriver(Capabilities desiredCapabilities) {
164
150
this (getFirefoxOptions (desiredCapabilities ).addDesiredCapabilities (desiredCapabilities ));
165
151
}
166
152
167
- private static FirefoxOptions getFirefoxOptions (Capabilities capabilities ) {
168
- FirefoxOptions options = new FirefoxOptions ();
169
-
170
- if (capabilities == null ) {
171
- return options ;
172
- }
173
-
174
- Object rawOptions = capabilities .getCapability (FIREFOX_OPTIONS );
175
- if (rawOptions != null ) {
176
- if (rawOptions instanceof Map ) {
177
- try {
178
- @ SuppressWarnings ("unchecked" )
179
- Map <String , Object > map = (Map <String , Object >) rawOptions ;
180
- rawOptions = FirefoxOptions .fromJsonMap (map );
181
- } catch (IOException e ) {
182
- throw new WebDriverException (e );
183
- }
184
- }
185
- if (rawOptions != null && !(rawOptions instanceof FirefoxOptions )) {
186
- throw new WebDriverException (
187
- "Firefox option was set, but is not a FirefoxOption: " + rawOptions );
188
- }
189
- options = (FirefoxOptions ) rawOptions ;
190
- }
191
- return options ;
192
- }
193
-
194
153
public FirefoxDriver (Capabilities desiredCapabilities , Capabilities requiredCapabilities ) {
195
- this (getFirefoxOptions (desiredCapabilities ).addDesiredCapabilities (desiredCapabilities )
154
+ this (getFirefoxOptions (desiredCapabilities )
155
+ .addDesiredCapabilities (desiredCapabilities )
196
156
.addRequiredCapabilities (requiredCapabilities ));
197
157
}
198
158
@@ -202,7 +162,9 @@ public FirefoxDriver(Capabilities desiredCapabilities, Capabilities requiredCapa
202
162
*/
203
163
@ Deprecated
204
164
public FirefoxDriver (FirefoxBinary binary , FirefoxProfile profile , Capabilities capabilities ) {
205
- this (getFirefoxOptions (capabilities ).setBinary (binary ).setProfile (profile )
165
+ this (getFirefoxOptions (capabilities )
166
+ .setBinary (binary )
167
+ .setProfile (profile )
206
168
.addDesiredCapabilities (capabilities ));
207
169
}
208
170
@@ -211,10 +173,15 @@ public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities
211
173
* {@link FirefoxOptions#setProfile(FirefoxProfile)}
212
174
*/
213
175
@ Deprecated
214
- public FirefoxDriver (FirefoxBinary binary , FirefoxProfile profile ,
215
- Capabilities desiredCapabilities , Capabilities requiredCapabilities ) {
216
- this (getFirefoxOptions (desiredCapabilities ).setBinary (binary ).setProfile (profile )
217
- .addDesiredCapabilities (desiredCapabilities ).addRequiredCapabilities (requiredCapabilities ));
176
+ public FirefoxDriver (
177
+ FirefoxBinary binary ,
178
+ FirefoxProfile profile ,
179
+ Capabilities desiredCapabilities ,
180
+ Capabilities requiredCapabilities ) {
181
+ this (getFirefoxOptions (desiredCapabilities )
182
+ .setBinary (binary ).setProfile (profile )
183
+ .addDesiredCapabilities (desiredCapabilities )
184
+ .addRequiredCapabilities (requiredCapabilities ));
218
185
}
219
186
220
187
/**
@@ -237,18 +204,63 @@ public FirefoxDriver(GeckoDriverService driverService, Capabilities desiredCapab
237
204
* @deprecated No replacement.
238
205
*/
239
206
@ Deprecated
240
- public FirefoxDriver (GeckoDriverService driverService , Capabilities desiredCapabilities ,
207
+ public FirefoxDriver (
208
+ GeckoDriverService driverService ,
209
+ Capabilities desiredCapabilities ,
241
210
Capabilities requiredCapabilities ) {
242
211
this (new DriverCommandExecutor (driverService ), desiredCapabilities , requiredCapabilities );
243
212
}
244
213
245
- private FirefoxDriver (CommandExecutor executor , Capabilities desiredCapabilities ,
214
+ private FirefoxDriver (
215
+ CommandExecutor executor ,
216
+ Capabilities desiredCapabilities ,
246
217
Capabilities requiredCapabilities ) {
247
218
super (executor ,
248
219
dropCapabilities (desiredCapabilities ),
249
220
dropCapabilities (requiredCapabilities ));
250
221
}
251
222
223
+ private static CommandExecutor toExecutor (FirefoxOptions options ) {
224
+ if (options .isLegacy ()) {
225
+ return new FirefoxDriver .LazyCommandExecutor (options .getBinary (), options .getProfile ());
226
+
227
+ } else {
228
+ GeckoDriverService .Builder builder = new GeckoDriverService .Builder ().usingPort (0 );
229
+ Optional <FirefoxBinary > binary = options .getBinaryOrNull ();
230
+ if (binary .isPresent ()) {
231
+ builder .usingFirefoxBinary (binary .get ());
232
+ }
233
+ return new DriverCommandExecutor (builder .build ());
234
+ }
235
+ }
236
+
237
+ private static FirefoxOptions getFirefoxOptions (Capabilities capabilities ) {
238
+ FirefoxOptions options = new FirefoxOptions ();
239
+
240
+ if (capabilities == null ) {
241
+ return options ;
242
+ }
243
+
244
+ Object rawOptions = capabilities .getCapability (FIREFOX_OPTIONS );
245
+ if (rawOptions != null ) {
246
+ if (rawOptions instanceof Map ) {
247
+ try {
248
+ @ SuppressWarnings ("unchecked" )
249
+ Map <String , Object > map = (Map <String , Object >) rawOptions ;
250
+ rawOptions = FirefoxOptions .fromJsonMap (map );
251
+ } catch (IOException e ) {
252
+ throw new WebDriverException (e );
253
+ }
254
+ }
255
+ if (rawOptions != null && !(rawOptions instanceof FirefoxOptions )) {
256
+ throw new WebDriverException (
257
+ "Firefox option was set, but is not a FirefoxOption: " + rawOptions );
258
+ }
259
+ options = (FirefoxOptions ) rawOptions ;
260
+ }
261
+ return options ;
262
+ }
263
+
252
264
@ Override
253
265
public void setFileDetector (FileDetector detector ) {
254
266
throw new WebDriverException (
0 commit comments