skip to main |
skip to sidebar
經歷數月不斷的 bugfix 開發階段及一再延期, Mozilla 終於官方釋出 Firefox 3.6.4, 此版本最重大改造 Out of Process Plugins(OOPP) 外掛處理功能, 將 plugins 外掛(Flash, Quicktime, Silverlight, java??)以獨立的程序(plugin-container)處理, 避免一但外掛程序錯誤時拖垮當掉瀏覽器主程式的煩惱, 而此功能暫時只適用於 Windows 及 Linux 系統, MacOSX 就要繼續等待未來開發; 可能Mozilla 對穩定性考慮, 此進階功能「並不是」預設全局啟用的, 只是針對特定 plugins(例如 flash)而已, 用戶需要手動修改機碼才可真正享受其好處(可能也是壞處?!)。
更新雖然 Firefox 3.6.4 是經歷不斷的改造而成, 不過短暫的光輝豈會永恆, 它成為 Firefox 生命周期史上的最短紀錄...繼 3.6.4 後 Firefox 3.6.6 在短短數天後已經官方釋出, 主要是修正了 plugin timeout 的臭蟲問題。
如果懶得立即更新到 3.6.6 的話(剛剛重灌完啊...SSD ^^!), 只需修改機碼 dom.ipc.plugins.timeoutSecs 的預設值 10(秒) 改為 30 或 45, 令某些 flash 遊戲玩家滿意吧。
預設(編譯)安裝 Firefox 3.6.4 的 OOPP 功能狀態(Windows)
about:config
dom.ipc.plugins.enabled 預設值 false
dom.ipc.plugins.enabled.npctrl.dll 預設值 true
dom.ipc.plugins.enabled.npqtplugin.dll 預設值 true
dom.ipc.plugins.enabled.npswf32.dll 預設值 true
dom.ipc.plugins.enabled.libnptest.so 預設值 true
dom.ipc.plugins.timeoutSecs 預設值 10
預設(編譯)安裝 Firefox 3.6.4 的 OOPP 功能狀態(Linux)
about:config
dom.ipc.plugins.enabled 預設值 false
dom.ipc.plugins.enabled.libflashplayer.so 預設值 true
dom.ipc.plugins.enabled.libnptest.so 預設值 true
dom.ipc.plugins.timeoutSecs 預設值 10
dom.ipc.plugins.enabled 預設值是 false, 則其他所有非特定的 plugins 都不會採用 OOPP 功能, 預設特定 plugins 時使用。
如需要(或嘗試)使用全局啟用(包括 java, acrobat 等等), 只需將 dom.ipc.plugins.enabled 預設值改為 true。
實測使用 http://www.myspeedmeter.net 網頁, 同時使用了 flash 及 java
dom.ipc.plugins.enabled 預設 false 沒有啟用全局 OOPP
flash 是以 plugin-container 來執行, 而 java 則個別額外執行沒有使用 plugin-ccontainer

dom.ipc.plugins.enabled 預設改為 true, 啟用全局 OOPP
flash 及 java 都是以 plugin-ccontainer 來呼喚執行

備註:
自行編譯 Firefox 時留意套件打包時, 新增 binary 文件 plugin-container, 及必需同時編譯內建 nspr 執行庫。
Mozilla 在 2010/5 月釋出新版本的 Firefox 3.6.4, 此版本將會有重大改變, 過去外掛(plugin)程序惱人的異常狀態下崩潰掛掉整個 Firefox 程式的問題, 在新版加入 Lorentz 的功能 Out of Process Plugins(OOPP)中可以解決了(排除沒有 bug 的話), OOPP 將外掛程式以獨立程序(process)中執行, 一但程序異常崩潰時會顯示程序提示頁面, 不會拖垮整個 Firefox 程式。
不過, 當然新功能 OOPP 應用時仍有不小的臭蟲(bug), 甚至異常的 crash, 而自行編譯的社群版(Linux)也有兼容性問題的個別情況。
Firefox 3.6.4 編譯設定加入了兩處異同條件如下:

--disable-ipc Disable IPC supports for tabs and plugins
--enable-ipdl-tests Enable expensive IPDL tests
一個是 IPC(Inter-process communication) 的支援, NSPR 的 API 下開發 OOPP 的應用
另一個是 IPDL(IPC Protocol Definition Language) 的驗測
參考:
https://developer.mozilla.org/en/IPDL
https://developer.mozilla.org/en/Configuring_Build_Options
編譯 Firefox 3.6.4(Linux) 時預設自動加入新增 IPC 功能(OOPP), 編譯的問體如下:
1. 當預設編譯時會使用系統 nspr 而編譯錯誤

In file included from nsXPComInit.cpp:41:
./../ipc/chromium/src/base/basictypes.h:22:26: error: nspr/prtypes.h: No such file or directory
./../ipc/chromium/src/base/basictypes.h:34:36: error: nspr/obsolete/protypes.h: No such file or directory
./../ipc/chromium/src/base/basictypes.h:96: error: 'uint32' does not name a type
./../ipc/chromium/src/base/basictypes.h:102: error: 'int32' does not name a type
./../ipc/chromium/src/base/basictypes.h:103: error: 'int32' does not name a type
./../ipc/chromium/src/base/basictypes.h:302: error: 'uint32' does not name a type
make[5]: *** [nsXPComInit.o] Error 1
make[5]: Leaving directory `/usr/src/redhat/BUILD/firefox-3.6.4/mozilla-1.9.2/xpcom/build'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/usr/src/redhat/BUILD/firefox-3.6.4/mozilla-1.9.2/xpcom'
make[3]: *** [libs_tier_xpcom] Error 2
make[3]: Leaving directory `/usr/src/redhat/BUILD/firefox-3.6.4/mozilla-1.9.2'
make[2]: *** [tier_xpcom] Error 2
make[2]: Leaving directory `/usr/src/redhat/BUILD/firefox-3.6.4/mozilla-1.9.2'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/usr/src/redhat/BUILD/firefox-3.6.4/mozilla-1.9.2'
make: *** [build] Error 2
mozilla 仍未釋出修正支援獨立程序的系統 nspr API, 所以要編譯預設 IPC(OOPP) 功能的話暫時必需同時編譯內建 nspr 執行庫
.mozconfig 要移除 ac_add_options --with-system-nspr
2. 執行編譯了 IPC(OOPP) 的 Firefox 3.6.4(Linux) 時遇到有任何 plugin(例如 flash, java..) 的網頁會程式異常停頓, 程式完全沒反應
~/.xsession-errors 錯誤記錄如下:
** (firefox:8607): WARNING **: Serious fd usage error 14
** (firefox:8607): WARNING **: Serious fd usage error 12
不明原因, 可以暫時新增機碼停用 IPC(OOPP)
about:config
dom.ipc.plugins.enabled 設定改為 disable
3. 如何編譯沒有 IPC(OOPP) 的 Firefox 3.6.4(Linux)
IPC 功能是預設編譯, 需要修改編譯項目停用 IPC
.mozconfig 新增 ac_add_options --disable-ipc
.mozconfig 使用 ac_add_options --with-system-nspr
4. Firefox 3.6.4 OOPP 臭蟲
已知的臭蟲
新增的臭蟲

Mozilla 官方網誌 Firefox 3.6 釋出日期是 2010/1/21 星期四, 亦即是 RC2 就是 Firefox 3.6 官方版, 不會再有 RC3 了。
Mozilla 官方要員 Mike Beltzner 近日在採訪中表示 Firefox 的更新進程轉變, 將以定期的安全升級週期內增加功能, 不再採用每年的大更新來改造功能, Firefox 3.7 版計劃亦已被取銷, 那麼明顯不過的 Firefox 3.6 將會是今年的主流, 並且會不斷地強化; Firefox 3.6 仍未官方釋出前, 新的 3.6 RC2 體驗版已經準備就緒, 亦是時候準備好 Extension 外掛程式的兼容了。
Mozilla Firefox 3.6 Release Notes: 「版本資料」http://www.mozilla.com/en-US/firefox/3.6/releasenotes/
Mozilla 官方下載位置
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.6/
http://www.mozilla.com/en-US/firefox/all.html
隨意來簡測一下
實測系統 CentOS 5.4 Linux 32bit, CPU E8400 3Ghz, RAM 4GB DDR2 800mhz
使用 Mozilla 官方 Firefox 3.6rc2
測試使用 Futuremark 公司的 Peacekeeper 瀏覽器速度指數網頁, 個人 Profile 設定相同, 沒有安裝任何 extension
實測結果:
- Mozilla Firefox 3.6rc2(官方 3.6 正式版) 分數是 2607, 與 3.6rc1 接近

雖然 Mozilla 有跳票延期常習, 在 1/8/2009 日 Firefox 3.6 Release Candidate 體驗版終於要露面了, 此版本較 beta 測試版改善不小及穩定, 在運行頁面描繪時速度明顯提升, 配合 Adobe Flash 10.1(仍然在 beta) 實在是爽加快。
Mozilla Firefox 3.6 Release Candidate Release Notes: 「版本資料」
http://www.mozilla.com/en-US/firefox/3.6/releasenotes/
Mozilla 官方下載位置
http://www.mozilla.com/en-US/firefox/all-beta.html
隨意也來簡測一下, 比較新舊 Gecko 引擎 javascript 的速度表現。
實測系統 CentOS 5.4 Linux 32bit, CPU E8400 3Ghz, RAM 4GB DDR2 800mhz
使用 Mozilla 官方 Firefox 3.6rc1, 3.5.7, 3.0.17 Linux 版
測試使用 Futuremark 公司的 Peacekeeper 瀏覽器速度指數網頁, 個人 Profile 設定相同, 沒有安裝任何 extension
實測結果:
- Mozilla Firefox 3.6rc1 分數是 2594
- Mozilla Firefox 3.5.7 分數是 1916
- Mozilla Firefox 3.0.17 分數是 1046 (奇怪的...慢?!)
3.6rc1 比 3.5.7 快了大約 33%
個人優化編譯(CentOS)的 Firefox 3.6rc1 分數是 2712, 比較官方的 3.5.7 快了大約 41%。
雖然 Mozilla 官方釋出 Firefox 3.6 beta 並沒有提及 Java 的改動, Sun Microsystems 已經在其網頁宣示 Firefox 3.6 將只能使用 Java 6 Update 10 及以上版本, 不支援舊的 1.4.2、1.5、6.0 版本, 主要是 Mozilla 將 Java 的 OJI(Open Java Virtual Machine Integration)介面支援終止, 而僅將支援標準的 NPAPI 與 NPRuntime 介面。
不過此方案暫時只適用於 Windows、Linux 及 Solaris, MacOS 除外, 而 Linux 以往的設定都是使用 oji 的 plugin, 一般將 libjavaplugin_oji.so 連結 symlink 到 /usr/lib/mozilla/plugins/ 目錄, 此 libjavaplugin_oji.so 已不能用於 Firefox 3.6, 必需改用新標準介面的 libnpjp2.so 執行庫。
Why do I need Java 6 Update 10 and above for Firefox 3.6 and later versions?
http://www.java.com/en/download/faq/firefox_newplugin.xml
Starting in Firefox 3.6, Mozilla foundation will drop support on OJI (Open Java Virtual Machine Integration) and will only support the standard NPAPI and NPRuntime interfaces. The Java Plug-in which is in Java version 6 update 10 or newer versions supports the NPAPI and NPRuntime interfaces. Therefore, starting with Firefox 3.6, Java-based applets will NOT work unless you are running Java version 6 Update 10 or newer.
在 Linux 下如果沒有改動仍然使用 Sun JRE 的 libjavaplugin_oji.so 執行庫的話, Firefox 3.6 無法辨識使用 Java, 需要手動修正安裝 libnpjp2.so。
Firefox 3.6 手動修正安裝 Java NP plugin
- 以 root 帳號權限在 Console「文字模式」或 terminal「終端機」下執行
# ln -s `find /usr/java/ -name 'libnpjp2.so'` /usr/lib/mozilla/plugins/libnpjp2.so
安裝後可以開啟 Firefox 到此網頁驗證版本
http://www.java.com/en/download/installed.jsp
安裝了 libjavaplugin_oji.so 的 Firefox 3.6 無法使用 Java
安裝了 libnpjp2.so 的 Firefox 3.6 可以使用 Java
備註:
- Firefox 3.6 已經移除設定介面中的 Enable Java 選項, 直接在 Add-ons 的 Plugins 頁配置。
Mozilla 在 2009/10/30 發表了 Firefox 3.6 beta 1 測試版, 此版本採用了新版 Gecko 1.9.2 網頁描繪引擎, 新增支援全螢幕影片播放, WOFF 字型格式, CSS, DOM 及 HTML5 最新網頁技術, Personas更換瀏覽器外觀功能, 外掛程式過期提示, 及 javascript 效能提升, Windows 7 介面整合功能。
Mozilla Firefox 3.6 Beta Release Notes: 「版本資料」
http://www.mozilla.com/en-US/firefox/3.6b1/releasenotes/
當然也隨意的簡測一下, 體驗新 Gecko 1.9.2 引擎 javascript 的速度提性感受。
實測系統 CentOS 5.4 Linux 32bit, CPU E8400 3Ghz, RAM 4GB DDR2 800mhz
使用 Mozilla 官方 Firefox 3.6 beta 1 Linux 版, Mozilla 官方 Firefox 3.5.4 Linux 版及個人優化編譯(CentOS)的 Firefox 3.5.4 Linux 版
測試使用 Futuremark 公司的 Peacekeeper 瀏覽器速度指數網頁, 個人 Profile 設定相同, 沒有安裝任何 extension
實測結果:
- Mozilla Firefox 3.6 beta 1 分數是 2525
- Mozilla Firefox 3.5.4 分數是 1888
3.6beta1 較 3.5.4 快了大約 33%
- 個人優化編譯(CentOS)的 Firefox 3.5.4 分數是 1987
3.6beta1 仍然快了大約 27%
雖然快 30% 多的 javascript 並不是快得呱呱吵的(比較 chrome 還差很遠), 速度的改善仍是明顯的, 也期待下一個新版本再能夠改善穩定度, 在測試時就曾在網頁彈出提示而關閉程式時出現 crash 一次。
更新 2009/11/12
Mozilla 官方釋出了 Firefox 3.6 beta 2 測試版
Mozilla Firefox 3.6 Beta Release Notes: 「版本資料」
http://www.mozilla.com/en-US/firefox/3.6b2/releasenotes/
小測一個
更新 2009/11/18
Mozilla 官方釋出了 Firefox 3.6 beta 3 測試版
Mozilla Firefox 3.6 Beta Release Notes: 「版本資料」
http://www.mozilla.com/en-US/firefox/3.6b3/releasenotes/
優化編譯(CentOS) Firefox 3.6 beta3 , 小測一個 2722, 較官方 3.5.4 版(1888)快了大約 44%...(不錯啊!)
更新 2009/11/26
Mozilla 官方釋出了 Firefox 3.6 beta 4 測試版
Mozilla Firefox 3.6 Beta Release Notes: 「版本資料」
http://www.mozilla.com/en-US/firefox/3.6b4/releasenotes/
更新 2009/12/17
Mozilla 官方釋出了 Firefox 3.6 beta 5 測試版
Mozilla Firefox 3.6 Beta Release Notes: 「版本資料」
http://www.mozilla.com/en-US/firefox/3.6b5/releasenotes/
一般情況下在多用戶環境的電腦內都會使用同一語系預設, 不過某些公司或機構有個別需要支援多語系介面(例如: 不同國藉的員工或導師, 甚至學習生等等), Firefox 其實亦可以做到多語系顯示介面(已經是許久前了)。
在 Windows 系統以 系統管理員身分執行 命令提示字元(Command Prompt)
在 命令提示字元 內進入 Mozilla Firefox 程式目錄
- cd "C:\Program Files\Mozilla Firefox\defaults\pref"
編緝 firefox-l10n.js 檔案
將內容的
pref("general.useragent.locale", "en-US");
改成
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
儲存檔案 後 結束 notepad(記事本)
Firefox 用戶下載及安裝 介面顯示語言 檔案, (例如: Windows 版 Firefox 版本 3.5.2 zh-TW.xpi)
執行 Firefox
http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.5.2/win32/xpi/zh-TW.xpi

修改 Firefox 的執行捷徑(shortcut)內容增加顯示語言指令(例如: zh-tw)
"C:\Program Files\Mozilla Firefox\firefox.exe"
修改成
"C:\Program Files\Mozilla Firefox\firefox.exe" -uilocale zh-tw

備註:
- 修改成 "chrome://global/locale/intl.properties" 的好處是用戶可以任意安裝不同的介面顯示語言, 而且 Firefox 內的(工具,選項,內容,語言)設定亦會自動新增相同的介面語言。
- Linux 的話, 亦是修改 firefox-l10n.js 相同檔案, 然後以 "firefox -uilocale zh-tw" 指令執行。