@@ -229,8 +229,8 @@ public FirefoxDriver(GeckoDriverService driverService, Capabilities desiredCapab
229229 private FirefoxDriver (CommandExecutor executor , Capabilities desiredCapabilities ,
230230 Capabilities requiredCapabilities ) {
231231 super (executor ,
232- dropCapabilities (desiredCapabilities , BINARY , PROFILE ),
233- dropCapabilities (requiredCapabilities , BINARY , PROFILE ));
232+ dropCapabilities (desiredCapabilities ),
233+ dropCapabilities (requiredCapabilities ));
234234 }
235235
236236 private static final CommandExecutor createCommandExecutor (Capabilities desiredCapabilities ,
@@ -351,16 +351,23 @@ protected void stopClient(Capabilities desiredCapabilities, Capabilities require
351351 * Used for capabilities which aren't BeanToJson-convertable, and are only used by the local
352352 * launcher.
353353 */
354- private static Capabilities dropCapabilities (Capabilities capabilities , String ... keysToRemove ) {
354+ private static Capabilities dropCapabilities (Capabilities capabilities ) {
355355 if (capabilities == null ) {
356356 return new DesiredCapabilities ();
357357 }
358- final Set <String > toRemove = Sets .newHashSet (keysToRemove );
359- DesiredCapabilities caps = new DesiredCapabilities (Maps .filterKeys (capabilities .asMap (), new Predicate <String >() {
360- public boolean apply (String key ) {
361- return !toRemove .contains (key );
362- }
363- }));
358+
359+ DesiredCapabilities caps ;
360+
361+ if (isLegacy (capabilities )) {
362+ final Set <String > toRemove = Sets .newHashSet (BINARY , PROFILE );
363+ caps = new DesiredCapabilities (Maps .filterKeys (capabilities .asMap (), new Predicate <String >() {
364+ public boolean apply (String key ) {
365+ return !toRemove .contains (key );
366+ }
367+ }));
368+ } else {
369+ caps = new DesiredCapabilities (capabilities );
370+ }
364371
365372 // Ensure that the proxy is in a state fit to be sent to the extension
366373 Proxy proxy = Proxy .extractFrom (capabilities );
0 commit comments