I often need to close several instances, clear the cache, and open several firefox windows when testing my changes after restoring my web application. I use firefox for this purpose to allow multiple instances. I wrote below batch scripts that change the installation of FirefoxPortable, if they have not changed yet, stop the current firefox process and restart it. Usually I have four instances with a different executable name. One for my normal browsing, and the third for testing web applications. Very useful when you want to test and certify your web application for current and previous versions of Firefox.
I can open three tabs in one browser, but I tend to be paranoid when working with browsers. I prefer to clear and reopen a new browser instance for different applications before retesting instead of F5 or Ctrl F5.
The script will start a separate portable firefox process with a separate process name and a separate profile.
I hope they help you. Feel free to use them. Please revert your changes and bug fixes in this thread.
Install FirefoxPortable in a folder named FirstFirefoxPortable (or any other appropriate name)
REM ============== setlocal set URL=%1 REM FirefoxPortable installation folder set FIREFOX_PORTABLE_HOME=C:\portables\FirstFirefoxPortable REM Name of the FirefoxPortable executable file set FIREFOX_FILENAME_NOEXT=FirstFirefoxPortable REM Name of the Firefox executable file within App/firefox set FIREFOX_EXEC_NOEXT=firstfirefox set FIREFOX_PORTABLE_EXEC=%FIREFOX_PORTABLE_HOME%\%FIREFOX_FILENAME_NOEXT%.exe REM Name of the other profile folder. set FIREFOX_PROFILE=firstprofile set CLEAR_HISTORY=true set CLEAR_CACHE=true set CLEAR_SAVED_PASSWORDS=true set CLEAR_SESSION=true set WAIT_DURATION=4 set ADDITIONAL_WAIT_DURATION=2 if not exist %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini ( @echo off echo. echo. echo Setting up Firefox Profile echo. echo. pause @echo on echo [FirefoxPortable]>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo FirefoxDirectory=App\firefox>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo ProfileDirectory=%FIREFOX_PROFILE%\profile>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo SettingsDirectory=%FIREFOX_PROFILE%\settings>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo PluginsDirectory=%FIREFOX_PROFILE%\plugins>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo FirefoxExecutable=%FIREFOX_EXEC_NOEXT%.exe>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo AdditionalParameters=>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo LocalHomepage=>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo DisableSplashScreen=false>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo AllowMultipleInstances=false>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo DisableIntelligentStart=false>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo SkipCompregFix=false>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini echo RunLocally=false>>%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini rem create dirs pushd %FIREFOX_PORTABLE_HOME% mkdir %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE% mkdir %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile mkdir %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\settings mkdir %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\plugins popd rem copy profile xcopy /e %FIREFOX_PORTABLE_HOME%\App\DefaultData\profile %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile copy /y %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%.ini %FIREFOX_PORTABLE_HOME%\FirefoxPortable.ini rename %FIREFOX_PORTABLE_HOME%\FirefoxPortable.exe %FIREFOX_FILENAME_NOEXT%.exe rename %FIREFOX_PORTABLE_HOME%\App\Firefox\firefox.exe %FIREFOX_EXEC_NOEXT%.exe ) rem check if firefox is running REM tasklist /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" 2>NUL | find /I /N "%FIREFOX_FILENAME_NOEXT%.exe">NUL REM if "%ERRORLEVEL%"=="0" ( REM echo Firefox running REM taskkill /t /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" REM ping -n 4 127.0.0.1 > NUL REM tasklist /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" REM echo retrying killing Firefox REM taskkill /f /t /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" REM ping -n 2 127.0.0.1 > NUL REM taskkill /f /t /FI "IMAGENAME eq %FIREFOX_EXEC_NOEXT%.exe" REM ) else ( REM echo Firefox not running.. starting.. REM ) taskkill /t /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" ping -n %WAIT_DURATION% 127.0.0.1 > NUL echo ==== try killing tasklist /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" tasklist /FI "IMAGENAME eq %FIREFOX_EXEC_NOEXT%.exe" taskkill /t /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" taskkill /t /FI "IMAGENAME eq %FIREFOX_EXEC_NOEXT%.exe" ping -n %ADDITIONAL_WAIT_DURATION% 127.0.0.1 > NUL echo ==== retry killing forcefully tasklist /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" tasklist /FI "IMAGENAME eq %FIREFOX_EXEC_NOEXT%.exe" taskkill /f /t /FI "IMAGENAME eq %FIREFOX_FILENAME_NOEXT%.exe" taskkill /f /t /FI "IMAGENAME eq %FIREFOX_EXEC_NOEXT%.exe" REM clear everything - delete profile REM del /f /s /q %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\* REM rmdir %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\ REM mkdir %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\ REM clear all sqlite files rem for /d %%x in (%FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\*) do del /q /s /f %%x\*sqlite if "%CLEAR_HISTORY%"=="true" ( echo. echo Clearing History echo. rem clear history (Bookmarks, browsing and download history) del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\places.sqlite* rem clear form history (Saved form data) del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\formhistory.sqlite* ) if "%CLEAR_SESSION%"=="true" ( echo. echo Clearing browsing session echo. rem clear previous browsing session del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\sessionstore.js ) if "%CLEAR_SAVED_PASSWORDS%"=="true" ( echo. echo Clearing saved passwords echo. rem clear saved passwords del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\logins.json ) if "%CLEAR_CACHE%"=="true" ( echo. echo Clearing cache echo. rem clear permissions (Permission database for cookies, pop-up blocking, image loading and add-ons installation.) del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\permissions.sqlite* rem clear content preferences (Individual settings for pages.) del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\content-prefs.sqlite* rem clear cookies del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\cookies.sqlite* rem clear cache del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\cache2\* rem clear offline cache del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\OfflineCache\* rem clear DOM Storage del /q /s /f %FIREFOX_PORTABLE_HOME%\%FIREFOX_PROFILE%\profile\webappsstore.sqlite* ) if "%URL%"=="" ( set URL=www.google.com?q=DidYouPassTheURLArgument ) @echo on start /MAX "%FIREFOX_FILENAME_NOEXT%.exe" %FIREFOX_PORTABLE_EXEC% -P "%FIREFOX_PROFILE%" -no-remote -new-tab %URL% endlocal REM ==================
Script to open Firefox for the second application. This is the same script as above.
Copy and save to a separate file, for example. secondfirefox.bat. Install FirefoxPortable in another folder, for example. C: \ ARB \ SecondFirefoxPortable. Change the variables in the secondfirefox.bat file to point to another portable firefox installation folder.
setlocal set URL=%1 REM FirefoxPortable installation folder set FIREFOX_PORTABLE_HOME=C:\portables\SecondFirefoxPortable REM Name of the FirefoxPortable executable file set FIREFOX_FILENAME_NOEXT=SecondFirefoxPortable REM Name of the Firefox executable file within App/firefox set FIREFOX_EXEC_NOEXT=secondfirefox set FIREFOX_PORTABLE_EXEC=%FIREFOX_PORTABLE_HOME%\%FIREFOX_FILENAME_NOEXT%.exe REM Name of the other profile folder. set FIREFOX_PROFILE=secondprofile REM
---- Update ----
Bugs fixed - path to the profile has been fixed.
Shared variable for pure passwords. Remember the password for the login page of my web application. Print less.
---- Update ---- 2014-10-01
Removed the need to manually rename the FirefoxPortable.exe file. The script does this the first time you run the FirefoxPortable installation.
---- Update ---- 2014-11-09
Changes allowed for updates by running the FirefoxPortable installer. When this part asks you to overwrite the prefix and bookmarks, enter N. This will save the bookmarks and some settings.