--- a/selenium.server/src/org/netbeans/modules/selenium/server/Bundle.properties Thu Sep 06 13:07:52 2012 +0200 +++ a/selenium.server/src/org/netbeans/modules/selenium/server/Bundle.properties Mon Sep 17 15:46:59 2012 -0400 @@ -24,4 +24,7 @@ displayName_SingleWindow=Single Window desc_SingleWindow=Should the browser started by selenium server use
\ -multiple frames in a single window or multiple windows. +multiple frames in a single window or multiple windows. + +displayName_UserExtensions=Selenium User Extensions +desc_UserExtensions=The User Extension file for Selenium Server --- a/selenium.server/src/org/netbeans/modules/selenium/server/SeleniumProperties.java Thu Sep 06 13:07:52 2012 +0200 +++ a/selenium.server/src/org/netbeans/modules/selenium/server/SeleniumProperties.java Mon Sep 17 15:46:59 2012 -0400 @@ -66,6 +66,7 @@ public static final String START_ON_STARTUP = "Startup"; //NOI18N public static final String FIREFOX_PROFILE = "FirefoxProfile"; //NOI18N public static final String SINGLE_WINDOW = "SingleWindow"; //NOI18N + public static final String USER_EXTENSIONS = "UserExtensions"; //NOI18N private static InstanceProperties instanceProps; private static final String NAMESPACE = "Selenium server properties namespace"; //NOI18N @@ -78,6 +79,7 @@ set.put(new ServerBoolProperty(START_ON_STARTUP, props)); set.put(new ServerStringProperty(FIREFOX_PROFILE, props)); set.put(new ServerBoolProperty(SINGLE_WINDOW, props)); + set.put(new ServerStringProperty(USER_EXTENSIONS, props)); return sheet; } @@ -121,6 +123,7 @@ instanceProps.putBoolean(START_ON_STARTUP, true); instanceProps.putString(FIREFOX_PROFILE, ""); //NOI18N instanceProps.putBoolean(SINGLE_WINDOW, false); + instanceProps.putString(USER_EXTENSIONS, ""); //NOI18N allProps.add(instanceProps); } } --- a/selenium.server/src/org/netbeans/modules/selenium/server/SeleniumServerRunner.java Thu Sep 06 13:07:52 2012 +0200 +++ a/selenium.server/src/org/netbeans/modules/selenium/server/SeleniumServerRunner.java Mon Sep 17 15:46:59 2012 -0400 @@ -116,20 +116,20 @@ } switch (action) { case START: - callSeleniumServerMethod("start"); + callSeleniumServerMethod("boot"); break; case STOP: callSeleniumServerMethod("stop"); break; case RESTART: callSeleniumServerMethod("stop"); - callSeleniumServerMethod("start"); + callSeleniumServerMethod("boot"); break; case RELOAD: callSeleniumServerMethod("stop"); server = null; initializeServer(); - callSeleniumServerMethod("start"); + callSeleniumServerMethod("boot"); break; default: assert false : "Invalid option"; @@ -202,6 +202,15 @@ remoteControlConfigurationInstance, ffProfileDir); } } + String userExtensionsString = ip.getString(SeleniumProperties.USER_EXTENSIONS, ""); //NOI18N + if (!userExtensionsString.isEmpty()) { + File userExtensionFile = new File(userExtensionsString); + if (userExtensionFile.exists()) { + remoteControlConfiguration.getMethod("setUserExtensions", File.class).invoke( //NOI18N + remoteControlConfigurationInstance, userExtensionFile); + } + } + server = seleniumServer.getConstructor(remoteControlConfiguration). newInstance(remoteControlConfigurationInstance); }