Jump to content

Recommended Posts

Tweaks Firefox

#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7
#include <File.au3> ; Only Needed if $TemporaryDirectory parameter is omitted. If File.au3 is included already in your main script then remove this line and specify the temporary directory parameter when calling the _Tweak_FF Function.
#cs ----------------------------------------------------------------------------

    AutoIt Version: (beta)
    Author:      Decipher

    Script Function:
    Tweak All Mozilla Firefox Profiles Prefs.js File for Network & Miscellanous Optimization.

    _Tweak_FF() Requires FFConfig.txt in script directory with correctly formatted configuration entries.

    _Tweak_FF($PromptTitle, $BackupLocation, $TemporaryDirectory, $PromptUser)
    $PromptTitle is Optional, Defaults to ""
    $BackupLocation is Optional, Defaults to Current User's Desktop Directory  Name of Profile Directory, will create directory structure if it does not exist.
    $TemporaryDirectory is Optional, Defaults to temporary file. The file is guaranteed not to exist yet
    $PromptUser is Optional, Defaults to 1 = Yes Prompt User to Close Firefox, 0 = No Terminate Process Automatically

    Return 1 if no error occurred otherwise Returns 0 and sets @error and @extended macros.

    1 = Error reading FFConfig.txt.
    2 = User canceled prompt to close firefox.
    3 = Error locating profile directories.
    4 = Could not read profiles prefs.js file.
    5 = Error opening temporary prefs.js file for writing.
    6 = Error configuration entry in FFConfig.txt is incorrectly formatted.
    7 = Error overwriting prefs.js file with the newly generated configuration file.
    8 = Error a profile directory exists but does not contain a prefs.js file.
    9 = Temporary files were not deleted.
    10 = Some other error occured.

    _Tweak_FF("Tweaking Firefox", @DesktopDir)

    Configuration Entries inside FFConfig.txt:

    user_pref("nglayout.initialpaint.delay", 0);
    user_pref("network.http.pipelining", true);
    user_pref("network.http.proxy.pipelining", true);
    user_pref("network.http.pipelining.maxrequests", 10);
    user_pref("network.dns.disableIPv6", false);
    user_pref("content.notify.backoffcount", 5);
    user_pref("plugin.expose_full_path", true);
    user_pref("ui.submenuDelay", 0);
    user_pref("config.trim_on_minimize", false);
    user_pref("browser.chrome.favicons", false);
    user_pref("browser.blink_allowed", false);
    user_pref("network.dns.disableIPv6", true);
    user_pref("network.dnsCacheEntries", 200);
    user_pref("network.dnsCacheExpiration", 240);
    user_pref("network.http.connect.timeout", 60);
    user_pref("network.http.keep-alive.timeout", 300);
    user_pref("network.http.max-connections-per-server", 16);
    user_pref("network.http.max-persistent-connections-per-proxy", 12);
    user_pref("layout.spellcheckDefault", 0);
    user_pref("browser.startup.homepage", "https://www.google.com/");

#ce ----------------------------------------------------------------------------

_Tweak_FF("Test", @DesktopDir & "BackupDirectory", "", 0)
If @error Then MsgBox(0,"Test", @extended)

Func _Tweak_FF($PromptTitle = "Tweaking Firefox", $BackupLocation = @DesktopDir, $TemporaryDirectory = "", $PromptUser = 1)
    If $TemporaryDirectory = "" Then
        $TemporaryDirectory = _TempFile()
    Local $FileWrite, $FileLine, $PrefsString, $FileContents, $ProfileDirectory, $PrefsFile, $ComparisonString, $Option, $StrPosition, $StrChars, $CharsDiff
    $FileContents = FileRead(@ScriptDir & "FFConfig.txt")
    If $FileContents = "" Then Return SetError(1, 1, 0)
    Local $FFTweak = StringSplit($FileContents, @CRLF, 3)
    $FileContents = ""
    If $PromptUser = 1 Then
        $Option = MsgBox(1 + 48 + 262144, $PromptTitle, "Firefox must be closed to apply tweaks correctly. You can close it manually or forcibly close Firefox's process by selecting continue. Firefox will be terminated automatically in 30 seconds.", 30)
        If $Option = 2 Then Return SetError(1, 2, 0)

    FileChangeDir(@AppDataDir & "MozillaFirefoxProfiles")
    Local $Profiles = FileFindFirstFile("*.*")
    If $Profiles = -1 Then Return SetError(1, 3, 0)
    While 1
        $ProfileDirectory = FileFindNextFile($Profiles)
        If @error Then ExitLoop
        If $ProfileDirectory <> "" And FileExists(@AppDataDir & "MozillaFirefoxProfiles" & $ProfileDirectory & "prefs.js") Then
            Local $User_Prefs_File_Location = @AppDataDir & "MozillaFirefoxProfiles" & $ProfileDirectory & "prefs.js"
            If FileCopy($User_Prefs_File_Location, $BackupLocation & "" & $ProfileDirectory & "prefs.js", 9) Then
                $FileContents = FileRead($User_Prefs_File_Location)
                If $FileContents = "" Then Return SetError(1, 4, 0)
                $PrefsFile = FileOpen($TemporaryDirectory & "prefs.js", 10)
                If $PrefsFile = -1 Then Return SetError(1, 5, 0)
                $FileLine = StringSplit($FileContents, ";")
                For $i = 1 To $FileLine[0]
                    $FileWrite = True
                    For $index2 = 0 To UBound($FFTweak, 1) - 1 Step 1
                        $StrPosition = StringInStr($FFTweak[$index2], ",", 2, -1)
                        If $StrPosition = 0 And StringIsSpace($FFTweak[$index2]) <> 0 Then Return SetError(1, 6, 0)
                        $StrChars = StringLen($FFTweak[$index2])
                        $CharsDiff = $StrChars - $StrPosition
                        $ComparisonString = StringTrimRight($FFTweak[$index2], $CharsDiff)
                        If StringInStr($FileLine[$i], $ComparisonString, 2) Then
                            $FileWrite = False
                        ElseIf StringIsSpace($FileLine[$i]) Then
                            $FileWrite = False
                    $PrefsString = StringStripWS($FileLine[$i], 2)
                    If $FileWrite = True Then FileWrite($PrefsFile, $PrefsString & ";")
                FileWrite($PrefsFile, @CRLF)
                For $i = 0 To UBound($FFTweak, 1) - 1 Step 1
                    If StringIsSpace($FileLine[$i]) = 0 Then FileWrite($PrefsFile, $FFTweak[$i] & @CRLF)
                While ProcessExists("firefox.exe") Or ProcessExists("plugin-container.exe")
                    If ProcessClose("firefox.exe") <> 1 Then ProcessClose("plugin-container.exe")
                If FileCopy($TemporaryDirectory & "prefs.js", $User_Prefs_File_Location, 9) <> 1 Then
                    If DirRemove($TemporaryDirectory, 1) <> 1 Then Return SetError(1, 9, 0)
                    Return SetError(1, 7, 1)
                If DirRemove($TemporaryDirectory, 1) <> 1 Then Return SetError(1, 9, 0)
                Return SetError(1, 8, 0)
    If DirRemove($TemporaryDirectory, 1) <> 1 Then Return SetError(1, 9, 0)
    If @error Then Return SetError(1, 10, 0)
    Return 1
EndFunc   ;==>_Tweak_FF



Edited by Decipher



Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By ahha
      I'm using Firefox however it shows up in all browsers.  When you hover over a hyperlink and the cursor turns to a hand then in the lower left corner of the browser the actual web URL link pops up.  How does one capture that text programmatically?  I know in FF I can right click and "Copy Link" I'm wondering if there is another way.
    • By goldstar
      hey . is it possible  send message to firefox extension  and receive too?
      what is simplest way 
    • By Zaoka
      for couple of years I'm using  Jos script for sending reports, email with excel attachment. But from last week i'm getting this error when sending excel or word attachment
      message has lines too long for transport jpeg, pdf works with no problems, any sugestion ?
    • By diepfeile
      I'm using the following:
      newly installed Beta
      SQlite version 3380000 aka 3.38.0
      I put sqlite3.dll and sqlite3_x64.dll in C:\Windows\System32 since many scripts depend on them.

      I extended the output of _SQLite_Startup()
      ConsoleWrite("@AutoItX64 " & @AutoItX64 & @CRLF) ConsoleWrite("$sDll_Filename " & $sDll_Filename & @CRLF) ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)

      Also using the script from https://www.autoitscript.com/autoit3/docs/libfunctions/_SQLite_Startup.htm for testing.

      >Running:(\Program Files (x86)\AutoIt3\autoit3.exe "R:\Download\aasdf.au3" @AutoItX64 0 $sDll_Filename sqlite3.dll _SQLite_LibVersion=0 >Running:(\Program Files (x86)\AutoIt3\autoit3_x64.exe "R:\Download\aasdf.au3" @AutoItX64 1 $sDll_Filename sqlite3_x64.dll _SQLite_LibVersion=3.38.0 >Running:(\Program Files (x86)\AutoIt3\Beta\autoit3.exe "R:\Download\aasdf.au3" @AutoItX64 0 $sDll_Filename sqlite3.dll _SQLite_LibVersion=0 >Running:(\Program Files (x86)\AutoIt3\Beta\autoit3_x64.exe "R:\Download\aasdf.au3" @AutoItX64 1 $sDll_Filename sqlite3_x64.dll _SQLite_LibVersion=3.38.0

      Why doesn't it work in 32bit, despite me having the 32bit sqlite.dll? Autoit urges running scripts in 32bit mode and Scite starts scripts just in 32bit mode without the flag?
      With #AutoIt3Wrapper_UseX64=Y it just works, both normal Autoit and beta!
      sqlite3.dll sqlite3_x64.dll
    • By Iraj
      Hello Team, Greetings!
      Is there any way to run any 3rd party application silently in background without the GUI getting in the front ?
      I was implementing angry-ip scanner with autoit & wanted the angry-ip application to run in background quietly as I am copying its output to other file on completion. is there any way to achieve my query?
      Below is code I tried: 
      $range = "" ShellExecuteWait("C:\Windows\DDM\ipscan.exe","-f:range "&$iprange&" -q -o C:\temp\ScanResults.csv","","open",@SW_HIDE) Thanks!
  • Create New...