addons

深入瞭解 FireFox 六、免安裝版與精簡 Firefox 來加速啟動

以下將會分為幾個章節來探討這個瀏覽器:

一、常用的附加元件
二、少用的附加元件
三、Plug-in 外掛程式
四、搜尋引擎
五、GreasMonkey 增強網頁功能!
六、免安裝版與精簡 Firefox 來加速啟動
七、userChrome.js 功能的強化
八、userChrome.css & userContent.css 介面的修改
九、火狐的安全
十、編譯版、參數、雜項跟加速
十一、自製皮膚
十二、總結

六、免安裝版與精簡 Firefox 來加速啟動

免安裝版本所採用的方式,大多是開啟一個引導檔,引導檔再去調用資料夾下的 Firefox.exe,再引導 Firefox 讀取目錄下的 profile 資料夾內的設定。

目前常見的有:

1. Mozilla Firefox, Portable Edition

這是所謂的官方版,舊版本中在執行時會同時開啟 FirefoxPortable 和被它引導的 Firefox兩個程式,因此有人覺得此種引導方法太佔資源。新版本似乎沒這個問題

FirefoxPortable-splash

以下是 Firefox Portable 預設的資料夾架構。

-FirefoxPortable

-AppInfo 裡面只是關於個資料夾和檔案的索引說明。

-App

-DefaultData 這個資料夾是用來放置預設的「個人設定檔」資料夾、以及預設的「插件 (plugins)」資料夾

-Firefox 這個資料夾是用來放置 firefox 主程式 ,要更新或換成第三方編譯版就替換這個資料夾內的內容。

-Data

-plugins 這個資料夾是用來放置一些額外的 Plugins ,安裝版預設位置是在:C:\Program Files\Mozilla Firefox\plugins

-profile 這個資料夾是用來放置 Firefox 的個人設定檔 ,XP是在C:\Documents and Settings\使用者名稱\Application Data\Mozilla\Firefox\Profiles\8位亂數.default\;Vista和win7是在C:\Users\使用者名稱\AppData\Roaming\Mozilla\Firefox\Profiles\8位亂數.default\

-settings 引導器的設定

-Other 原始碼、詳細設定檔和說明文件等等。

FirefoxPortable

設定檔:FirefoxPortable.ini 裡面有許多已經建立好的選項,讓您能對 Firefox Portable 進一步設定
FirefoxPortable.ini 位置是在 .\Other\Source\FirefoxPortable.ini ,找到它並將它複製到最頂層目錄跟 Firefox Portable .exe 放在一起

官方版 FirefoxPortable.ini 內容:

AdditionalParameters= 此處是你想要傳給 Firefox 的參數可參考第十章

LocalHomepage= 您可以輸入一個某個檔案相對於啟動程式的相對路徑,如果這個值不是空白的,他為被設成 Firefox 的首頁。

DisableSplashScreen= 這個參數可用 false 或 true(僅可使用小寫),若使用true,則啟動畫面會被關閉。

AllowMultipleInstances= 這個參數可用 false 或 true(僅可使用小寫),若使用true,則允許多開,讓 Firefox Portable 和本機中安裝的 Firefox 一起開啟。

DisableIntelligentStart=false

SkipCompregFix= 這個參數可用 false 或 true(僅可使用小寫),若使用 true ,則啟動程式不會去修補 Chrome.rdf ,這會造成套件、佈景主題無法正常使用,除非必要,請使用 false。

RunLocally= 這個參數可用 false 或 true(僅可使用小寫)。若使用 true ,則啟動程式會把所有檔案都複製到本地電腦的暫存目錄,再執行

Firefox/Feuerfuchs Portable 。這對於想要製作 Firefox Portable LiveCD 的人,會很有用。

2. Feuerfuchs Portable

Feuerfuchs Portable 是 hobbyscripter 所釋出的 Firefox Portable 社群版。

feuerfuchs-splash

它比官方版本 (PortableApps.com) 多的功能如下:

* 較複雜的 WaitForFirefox + AllowMultipleInstances 支援
* 自訂啟動圖示
* 實做「暫存於硬碟、後將個人設定檔回存」的功能

預設的資料夾架構和 Firefox Portable 差不多,使用原理相同。
FeuerfuchsPortable

而它的設定檔則在最頂層目錄 .\FeuerfuchsPortable.default.ini,將它重新命名為 FeuerfuchsPortable.ini 即可使用。

FeuerfuchsPortable.ini 內容:

FirefoxDirectory=App\firefox
ProfileDirectory=Data\profile
SettingsDirectory=Data\settings
PluginsDirectory=Data\plugins
FirefoxExecutable=firefox.exe

AdditionalParameters=同官方版

LocalHomepage=同官方版

DisableSplashScreen=同官方版

AllowMultipleInstances=同官方版

DisableIntelligentStart=同官方版

SkipChromeFix=同官方版

SkipCompregFix=這個參數可用 false 或 true(僅可使用小寫),若使用 false ,則啟動程式會刪除 compreg.dat,讓 Firefox 重新撰寫,避免造成問題。部份套件會使用到這個檔案,除非必要,請不要使用 true。

WaitForFirefox=這個參數可用 false 或 true(僅可使用小寫),若使用true,則  Feuerfuchs Portable 在 Firefox 結束後才會結束。

RecoverLocalProfile=若 RunLocally = true ,且此值被設為 true ,則 Feuerfuchs Portable Launcher 會在 Firefox(R) 結束後,將複製到暫存目錄的個人設定檔複製回來。

RunLocally=同官方版

DynamicSplash= 可將這個值設為圖檔位置,作為啟動畫面

3. FirefoxLoader

最終版:FirefoxLoader1.2.2.0
藍冰工作室的 FirefoxLoader 則是精簡許多的功能,以求更高的執行效率,而且可以設為預設的瀏覽器!!方法:把 FirefoxLoader.exe 創建一個捷徑,在右鍵-內容「目標」加上「 -SetDefault」,注意前面有一個空格,不包含引號,執行後確認即可設為預設瀏覽器!

  • 使用「-Shortcut」參數,可以給便攜版 Firefox 在桌面、開始功能表和快速啟動欄(可選)創建捷徑

FirefoxLoaderConfig

  • 如果你想把一個原版的 Firefox 製作成便攜版,僅僅需要在 FirefoxLoader.exe 所在目錄建立一個名為 Firefox 的目錄,然後把原版 Firefox 的所有文件扔進去就好。運行FirefoxLoader 他會自動建立 profiles 目錄用於儲存配置文件。

FirefoxLoader
雖說使用參數後的設定用的對話方塊是簡體亂碼,但使用上一切沒問題!

4. Portable Firefox Launcher

最新版:1.1.0.7
一樣是追求精簡的引導器,但不能設為預設瀏覽器…使用方法:轉載自冰樣 Portable Firefox Launcher
建立屬於自己 Portable Firefox

1. 下載上面的壓縮檔並解壓縮到『Portable Firefox』底下
2. 打開『我的電腦』在網址列打上『%AppData%\Mozilla\Firefox\Profiles』並按下『Enter』
3. 接著會看到一個『********.default』的目錄,前面8個*為亂碼,那就是你的 Profile
4. 進入『********.default』之後複製所有檔案到『Portable Firefox\Profiles』底下即可
5. 只要帶著『Portable Firefox』就可以囉!

– 如何更新 Firefox?
只要將 Firefox 主程式取代『Portable Firefox\Firefox』底下的檔案即可,就算是社群自訂版也可以

主資料夾名稱 “Portable Firefox" 不可修改!否則會出現錯誤!
Portable Firefox

5. Icefox

我個人沒使用過,參考作者的說明:
* 主體程序、配置文件夾、緩存文件夾、插件文件夾均可放在任意位置
* 可以將啟動器設置為默認瀏覽器,打開各種網頁文件、鏈接基本上不會調用IE了(PPStream 之類的軟體上的廣告不知道是不是直接調用IE,還不行)
* 允許運行多個副本。如果按下CapsLock鍵,允許手動選擇不同版本、不同的配置的Firefox。
* 自動判斷是不是在移動設備上或不在自己電腦上,如果在移動設備上緩存自動改到系統Temp目錄;如果不在自己電腦上,緩存改到啟動器所在目錄下。這兩種情況都會自動打開退出時清除緩存功能
* 啟動前檢查並自動修正擴展兼容性,升級Firefox後老版本的插件再不會被自動禁用了
* 啟動前檢查並終止無法退出的 Firefox進程
* Firefox的所有參數均可直接加在啟動器後面,或者寫入ini文件,會自動傳遞過去

參考資料:Firefox Portable 使用指南

中文化教學

若下載的 Firefox 不是繁體中文,可到 Mozilla FTP 找自己版本的繁體語言檔:

〈1〉安裝好後,在網址列輸入 about:config,按確定進入設定頁面。
〈2〉在篩選條件輸入(不含引號):"general.useragent.locale"
〈3〉右鍵-修改改成zh-TW即可。

about config
PS.我個人曾經遇過,測試版的 Firefox 中文語言檔本身有問題,修改後造成 Firefox當掉的經驗。

精簡 Firefox 全教程

因為隨身碟傳輸速度不快(至少在usb3.0普及前…),要是保持原本大小,從隨身碟開啟速度可能會讓人吐血的要死…
所以精簡才是王道!(誤

A. 關於Firefox程式本身的精簡:

那麼,我們就來探討 App 和 Data 資料夾內可精簡的東西。

1. 首先是App資料夾內:
Appinf、DefaultData 可以刪掉不用管它,Firefox  資料夾才是真正放 Firefox 的地方。

2. Firefox資料夾內:
先講解一些其中已知的檔案功能:

  • browserconfig.properties 這個文件裡是 Firefox 的首頁地址;可用記事本打開這個文件,把 browser.startup.homepage 後的網址替換成你要設定的首頁地址即可,空白頁就設成about:blank。
  • nssdbm3.dll 安全連線相關。

那麼,哪些可以刪除呢??

  • active-update.xm、LICENSE、README.txt皆可刪掉。
  • uninstall資料夾removed-files用不到,刪除
  • crashreporter、crashreporter-override.ini crashreporter.ini 是當機回報員,要不要刪除看個人。
  • updater.exe、update.locale、updater.ini、updates.xml 是更新系統,要不要刪除看個人。
  • nssckbi.dll、softokn3.chk、nssdbm3.chk 刪掉這三個目前看起來是仍可以運作,但有什麼問題還沒確定!!

其餘的一刪就無法正常啟動了…

3. 再來是 chrome 資料夾內:

  • reporter.jar、reporter.manifest 是"回報有問題的網站",可直接刪除。
  • en-US.jar、en-US.manifest 是語言檔,若已經在 about:config 中安裝並設定好要的語言檔的話,預設的英文可刪除。

而 classic.jar 則是預設的佈景主題

〈1〉直接用解壓縮軟體開啟或將副檔名改為.zip後開啟編輯。

〈2〉其中包含兩種主題(XP的跟vista或win7的),我會將其中skin\classic\aero 的aero資料夾整個刪除(若不喜歡XP版的佈景,可先將 aero 內的browser、global、mozapps解壓縮到其他地方,再拿回去覆蓋掉skin\classic內的三個同名資料夾)
〈3〉刪除後把 classic.manifest 用文字編輯器開啟,將裡面內的  classic.jar!/skin/classic/aero/browser/ 通通刪掉"/aero"改成 classic.jar!/skin/classic/browser/,否則在 Vista 或 Win7 內開起會失敗(沒有任何視窗原件,只剩散亂的文字,得用工作管理員強制關閉)

classic.manifest

4. 那麼,再來是Data資料夾了:
plugins資料夾,我的建議是放以下幾個:

  • Flash:NPSWF32.dll
  • ShockWave:np32dsw.dll(可選)
  • WindowsMediaPlayer:np-mswmp.dll(這是最新版的,舊版的名為npdsplay.dll)
  • QuickTime插件中的npqtplugin6.dll(用來支持 JPEG2000圖片格式,無須安裝QuickTime,可選)
  • WPF:NPWPF.dll(用於支持WPF圖形格式,可選)。

至於 Java 的、QuickTime 的、Office 的、PDF  的、RealPlayer 等,不建議放入,畢竟若你執行 Firefox 的系統中沒有安裝以上的軟體或版本不同,只是浪費速度和徒增當掉的機會而已。

5. profile 資料夾:
關於Firefox的個人設定、書籤、記錄、附加元件等都在這裡。
沒什麼可以刪除的,我在此轉貼別人對於目錄下各檔案功能的描述(只保留3.5還有在使用的),若以後出現問題可到這裡來找找看可能是哪個檔案錯誤:

bookmarkbackups:書籤檔的每日備份。

Chrome:文件夾下的Userchrome.css和UserContent.css可控制 Firefox的界面。  預設有UserChrome-example.css和UserContent- Example.css兩個文件,可把他們改名為UserChrome.css和UserContent.css後再進行修改。

extensions:安裝的擴充套件都放在這裡。

minidumps:放 Crash Reporter 報告的地方。
* 檔案:
.autoreg:暫存的空檔,用來代表已安裝的擴充套件有變動

blocklist.xml:自動下載的一份危險擴充套件的清單。

bookmarks.html.moztmp:和書籤相關的暫存檔。如果有發現這個檔的存在,就移除書籤檔的唯讀屬性,因為唯讀屬性會導致 Fx 產生多個 bookmarks-n.html 的檔案 (n 是數字)。

bookmarks-(date).json in bookmarkbackups:書籤的每日備份檔。

cert_override.txt:儲存使用者指定的例外證書 (certification exceptions)

cert8.db:安全證書

compatibility.ini:儲存上次使用這個 profile 的程式的版本與路徑。如果開啟這個 profile 的程式的路徑或版本與上次不同,就會觸發 XPCOM component 的 registration。這個檔是自動產生的,可以刪掉沒關係。

compreg.dat:用來列出 registered XPCOM components。會在觸發 XPCOM registration process 時自動產生。

content-prefs.sqlite:記錄個人對頁面的設定。

cookies.sqlite:用 sqlite 紀錄 Cookies。

cookies.txt.moztmp:和 cookies 相關的暫存檔,如果 Fx 發現這個檔存在,就會移除 cookies.txt 的唯讀屬性,因為如果 cookies.txt 是唯讀的,會導致生成多個cookies-n.txt (n 是數字)。downloads.sqlite:Fx 在 3.0 以後,改用 sqlite 來紀錄下載歷史。

extensions.rdf:已安裝擴充套件的資訊。如果擴充套件清單中有些你明明已經反安裝的擴充套件仍然留在清單中,可刪掉這個檔試試看,還有其他問題也可能可以藉由刪掉此檔來解決。

formhistory.sqlite:Fx 3.0 與之後的版本改用 sqlite 格式來儲存表單資料。

key3.db:是 signons.txt、signons2.txt、signons3.txt 的密鑰 (Key database)。

localstore.rdf:工具列與視窗大小/位置的設定,有時刪掉可以解決一些介面上的問題。

localstore-safe.rdf:用於 Safe Mode 的 localstore.rdf,會將工具列與視窗還原為預設設定。

mimeTypes.rdf:下載特定類型的檔案時要執行的動作。可刪掉來還原原來下載的設定。

parent.lock :用於標記目前這個 profile 是處於「使用中」的狀態。若刪除,可解除對所在的 profile 的鎖定。

permissions.sqlite:存放特定網站是否可存取密碼、cookies、彈出視窗、圖片載入與附加元件……等權限的資料庫。

persdict.dat:個人的拼字字典。

places.sqlite:用來儲存書籤與瀏覽歷史的資料庫。

places.sqlite-journal:Firefox 開啟的狀態下,用來暫時儲存對 places.sqlite 的更新資料。

pluginreg.dat:用於 plugin 的 MIME types。Fx 3.0 之前 pluginreg.dat 是位於包含 profiles 的 “Firefox" 資料夾。

prefs.js:about:config的設定。

search.json:Fx 3.5 以後才有。是搜尋外掛資料 (search plugin data) 的快取 (cache),使用此快取,而不使用原本剖析 XML 檔的方式,可以改善啟動時間。

search.sqlite:儲存關於 search plug-ins 的資訊。

secmod.db:安全模組資料庫

sessionstore.js:儲存 sessions。

signons.sqlite:Fx 3.5 以後的版本,用於儲存加密後的網站登入資訊(加密後的帳號、密碼)以及永不儲存密碼的例外網站清單,一樣需要 key3.db 配合才可作用。

urlclassifier.sqlite、 urlclassifier2.sqlite、或 urlclassifier3.sqlite:Fx 2.0 以後的版本新增防釣魚網站的功能,此檔用於儲存釣魚網站的相關資訊

urlclassifierkey3.txt:用於解開防釣魚資訊的密鑰(Key database)

user.js:預設並不存在,使用者若有需要,要自行建立。這個檔案內放的是使用者自訂的設定,在這裡的設定會蓋過 prefs.js 的設定。

詳見:http://kb.mozillazine.org/Profile_folder_-_Firefox

B. 關於附加元件的精簡

分別討論:附加元件的精簡可替換的附加元件
附加元件的精簡;
讓我們看看附加元件的安裝檔–.XPI  究竟是什麼~
將附加元件下載回來(對著那個安裝按右鍵-另存新檔),再將副檔名改為 zip 解壓縮道別資料夾或直接用解壓縮軟體開啟,在此以 Adblock Plus 為例,我們要修改其中的 chrome 資料夾、chrome.manifest 和 install.rdf

1. 先用文字編輯器開啟 install.rdf,把maxVersion後的版本號改成3.5.*。讓它支援3.5所有的版本(也可以設更大,但一般來說跨越小數點第一位的改版較容易有相容性的問題)一點。
藉由修改這個,除了可以讓 Firefox 相容外,也可以省略掉安裝 Nightly Tester Tools 之類的強制相容套件……(缺點是Firefox更新版本後的自動檢查時會被阻擋…))

<!– FireFox –>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>3.0.12</em:minVersion>
<em:maxVersion>3.7a5pre(就是改這個,預設上已經支援到3.7了…)</em:maxVersion>
</Description>
</em:targetApplication>

2. 再用文字編輯器開啟 chrome.manifest ,找到開頭為 locale  …….的,只保留 zh-TW 其餘通通刪掉。

style     chrome://global/content/customizeToolbar.xul  chrome://adblockplus/skin/overlay.css
locale    adblockplus en-US jar:chrome/adblockplus.jar!/locale/en-US/
locale    adblockplus ar jar:chrome/adblockplus.jar!/locale/ar/
……..
locale    adblockplus zh-CN jar:chrome/adblockplus.jar!/locale/zh-CN/
locale    adblockplus zh-TW jar:chrome/adblockplus.jar!/locale/zh-TW/

# Hack to prevent .Net Framework Assistant from messing up the browser

改為

style     chrome://global/content/customizeToolbar.xul  chrome://adblockplus/skin/overlay.css
locale    adblockplus zh-TW jar:chrome/adblockplus.jar!/locale/zh-TW/

# Hack to prevent .Net Framework Assistant from messing up the browser

3. 再到chrome的資料夾,這時候有兩種情況:

(1) 進入後可看到名為 local 的資料夾,進去後刪除除 zh-TW 以外的其他文件夾。

(2) 進入後只有一個副檔名為 jar 的檔案,一樣用解壓縮軟體繼續開啟(它其實是個zip壓縮檔);在 adblockplus 中,我們可以看到三個資料夾:content、local、skin

進入 local 資料夾,刪除除 zh-TW 以外的其他資料夾。完成。

若以上通通都是在解壓縮軟體中進行,關閉軟體時會問說是否要在此壓縮黨內更新,選擇"是"。
若你是文件解壓縮的話,那就把修改後的文件重新壓縮為 zip 檔,再把副檔名改成  jar。確定新的 jar 文件和原始 jar 文件名稱一樣,然後用新的 jar 文件替換舊的 jar 文件即可。

經過一連串處理 adblockplus 安裝檔原本 300Kb ,精簡後只剩 121Kb!!

以上簡化當然也適用於安裝版! 雖然有點麻煩但瞭解原理後實做起來非常快速!

以上教學參部分參考自:
藍冰工作室:便攜版Firefox製作全教程