我現在的主要工作平台轉移到 Ubuntu 了,
不過有時候,還是有 Firefox Portable 的需要,
可是我又不想要用 Wine 來模擬,
所以我寫了一個簡單的 BASH script ,
來代替 Feuerfuchs Portable Launcher。
(不過功能很陽春就是了)
目前只會視情況,
以 AllowMultiplyInstance 的形式開啟而已。
根據我的測試結果,
可以和 Windows 版的混用,
在 FAT32 上面可以跑。
2009年5月2日 星期六
2009年4月15日 星期三
Mozilla Firefox
最近,我改了一下我的 Mozilla Firefox 的使用習慣,
我把「當我要關閉多個分頁時警告我」這一個選項關掉了,
取而代之的是把「結束前清除隱私資料」、還有「清除前警告我」打開了。
然後,我把啟動時開啟,設成「還原前一個工作區段」。
不過,這樣有一個大缺點,
就是,清完隱私資料的時候,
首頁就會變成 blank 的了,
但是我又不想裝套件。
所以,
我自己修改了 nsSessionStore.js。
我總是很偑服可以看得懂 Firefox 的人,
一下是 C++ 一下是 Javascript 一下又是 XUL / XPCOM ...。
不管如何,
我還是寫出來了,
不過是 Dirty Hack,
首頁寫死是 www.google.com.tw。
http://rafb.net/p/YDDjn834.html
我把「當我要關閉多個分頁時警告我」這一個選項關掉了,
取而代之的是把「結束前清除隱私資料」、還有「清除前警告我」打開了。
然後,我把啟動時開啟,設成「還原前一個工作區段」。
不過,這樣有一個大缺點,
就是,清完隱私資料的時候,
首頁就會變成 blank 的了,
但是我又不想裝套件。
所以,
我自己修改了 nsSessionStore.js。
我總是很偑服可以看得懂 Firefox 的人,
一下是 C++ 一下是 Javascript 一下又是 XUL / XPCOM ...。
不管如何,
我還是寫出來了,
不過是 Dirty Hack,
首頁寫死是 www.google.com.tw。
http://rafb.net/p/YDDjn834.html
2008年10月11日 星期六
2008年7月13日 星期日
Firefox Portable 視窗炸彈調查報告
Firefox Portable 的中文路徑怎麼又壞了?之前,還在想說不想管 Firefox Portable 的更新,把主力放到 Feuerfuchs Portable Wir 身上。不過前一陣子因為需要用 Firefox Portable,我懶得自己打包,所以我直接用 John T. Haller 前輩所打包的 Firefox Portable 3,結果很精彩地看到視窗炸彈,這下可好! OTZ
我本來還以為問題是新加入的程式碼所產生,不過看來看去,看不出所以然,我還有想過是不是二個 Launcher 的 Race Condition,不過似乎也不是。在看程式碼的途中陸陸續續找到一些小錯,不過都無傷大雅。
我迷失在一行又一行 Code 之間,毫無頭緒,也找不出 Solution。我一直在幽暗的 Source 裡面排徊,忖度著:這些程式碼之中一定有一些晦澀難以理解的錯誤。突然,有一道光照向我......,我似乎找到答案了。
接下來是一陣頭暈目眩。時光回到了二年前,這種感覺好熟悉。不,不可能,之前 Firefox Portable 的中文路徑不是早就修好了嗎?但是,擺在我眼前的事實讓我不得不接受。咳...,我發出了一聲長嘆。接下來又是一陣頭暈目眩,伴隨著一大堆髒話。
(消音)
!# $ %@ #$^$%&~ #~%$ #%^#@% #$^$%&$ #%^$#!@ $~@!$# @#%$#@^ @%#$@ %^$ #%$#@%^%^@#$% $@#% @#$ %@#$%@$#% @#%@#% $@# %@#$%@$ # %$@#% $
結果,我發現 Firefox Portable 3.0 的問題在於:GetParameters 函式又出事了,GetParameters 函式又被改成有問題的版本了(殘念)。不過我必需把責任釐清,這一次的問題出在 NSIS Team,和 John T. Haller 前輩無關,不過為了盡快修正,我已經發 Bug Report 和 Workaround 到 PortableApps。
問題是這樣的,不知道為什麼 NSIS 放在標準函式庫的 GetParameters 函式是有問題的版本,這個函式在處理 ASCII 字元的時候都可以處理得很好,不過處理中日韓表意字元的時候,就會出狀況。
而 John T. Haller 前輩依據 NSIS Manual 的建議,將原本自己寫得 GetParameters 改用標準函式庫中的版本,不過標準函式庫中的版本有問題,GetParameters 函式的回傳值根本就不對,所以 Firefox Portable 一直無法進入「授權頁、階段管理設定頁」,Firefox Portable 因而會一直自我執行(即視窗炸彈)。
我無言了!為何外國人寫得程式處理起中文常常會有問題呢?
我本來還以為問題是新加入的程式碼所產生,不過看來看去,看不出所以然,我還有想過是不是二個 Launcher 的 Race Condition,不過似乎也不是。在看程式碼的途中陸陸續續找到一些小錯,不過都無傷大雅。
我迷失在一行又一行 Code 之間,毫無頭緒,也找不出 Solution。我一直在幽暗的 Source 裡面排徊,忖度著:這些程式碼之中一定有一些晦澀難以理解的錯誤。突然,有一道光照向我......,我似乎找到答案了。
接下來是一陣頭暈目眩。時光回到了二年前,這種感覺好熟悉。不,不可能,之前 Firefox Portable 的中文路徑不是早就修好了嗎?但是,擺在我眼前的事實讓我不得不接受。咳...,我發出了一聲長嘆。接下來又是一陣頭暈目眩,伴隨著一大堆髒話。
(消音)
!# $ %@ #$^$%&~ #~%$ #%^#@% #$^$%&$ #%^$#!@ $~@!$# @#%$#@^ @%#$@ %^$ #%$#@%^%^@#$% $@#% @#$ %@#$%@$#% @#%@#% $@# %@#$%@$ # %$@#% $
結果,我發現 Firefox Portable 3.0 的問題在於:GetParameters 函式又出事了,GetParameters 函式又被改成有問題的版本了(殘念)。不過我必需把責任釐清,這一次的問題出在 NSIS Team,和 John T. Haller 前輩無關,不過為了盡快修正,我已經發 Bug Report 和 Workaround 到 PortableApps。
問題是這樣的,不知道為什麼 NSIS 放在標準函式庫的 GetParameters 函式是有問題的版本,這個函式在處理 ASCII 字元的時候都可以處理得很好,不過處理中日韓表意字元的時候,就會出狀況。
而 John T. Haller 前輩依據 NSIS Manual 的建議,將原本自己寫得 GetParameters 改用標準函式庫中的版本,不過標準函式庫中的版本有問題,GetParameters 函式的回傳值根本就不對,所以 Firefox Portable 一直無法進入「授權頁、階段管理設定頁」,Firefox Portable 因而會一直自我執行(即視窗炸彈)。
我無言了!為何外國人寫得程式處理起中文常常會有問題呢?
2007年7月23日 星期一
[嘴泡] Feuerfuchs Portable 重寫版本的計畫
繼續潛水,繼續嘴泡 ing....
新的 Feuerfuchs Portable Launcher 的開發代號: Wir。
(如果不是方案三勝出的話,才有這個計畫)
預計會有以下功能:
我很想用 BSD,
新的軟體的所有程式碼,
我會自己獨立創作,
不過因為我不是在 Cleanroom (我曾經改寫過 Firefox Portable Launcher)所以我不知道可不可以不用 GPL。(煩惱 ing...)
Regards,
__________h.s.
新的 Feuerfuchs Portable Launcher 的開發代號: Wir。
(如果不是方案三勝出的話,才有這個計畫)
預計會有以下功能:
- GUI-Toolkit: wxWidgets 或 FLTK
- File-System-Library: wxWidgets 或 自己來
- RDF-Parser
- 中文路徑(Firefox 1.0.x 的支援未定、Mozilla Calendar 支援確定取消)
- 增加一個 Feuerfuchs Portable 工具列
- 提供強制關閉 firefox.exe 的功能(避免尚未關閉完全)
- 可以使用「精靈」來配置 Feuerfuchs Portable
- 使用 Binary Based 的設定檔規格(加快啟動速度)
- FeuerfuchsPortable.ini 仍會向下相容
- 提供「複製到硬碟」然後「打包、存回隨身碟」的功能
- 提供資料安全刪除(未定)
- 很有可能會用 UPX 壓縮
- 多國語言支援
我很想用 BSD,
新的軟體的所有程式碼,
我會自己獨立創作,
不過因為我不是在 Cleanroom (我曾經改寫過 Firefox Portable Launcher)所以我不知道可不可以不用 GPL。(煩惱 ing...)
Regards,
__________h.s.
2007年5月18日 星期五
Open JDK Avaiable
Sun 把 Java VM 開放出來了。您可以在 OpenJDK 網站中找到所有開放出來的程式碼。
其中好像有和 Java Applet 有關的程式碼。
可是卻找不到和 Netspace Plug-in API 有關係的程式碼,
是我太笨了嗎?
還是是屬於「Sun 沒有權限開放的程式碼」?
(BTW, 那幾個和 Java Applet 有關的檔案,我也都看不懂,想要 Movable JavaVM with Firefox,看來還是需要高手出馬)
(ps. 看頂尖高手寫的程式碼,真得會有自卑感,咳!)
__________h.s.
其中好像有和 Java Applet 有關的程式碼。
可是卻找不到和 Netspace Plug-in API 有關係的程式碼,
是我太笨了嗎?
還是是屬於「Sun 沒有權限開放的程式碼」?
(BTW, 那幾個和 Java Applet 有關的檔案,我也都看不懂,想要 Movable JavaVM with Firefox,看來還是需要高手出馬)
(ps. 看頂尖高手寫的程式碼,真得會有自卑感,咳!)
__________h.s.
2007年2月22日 星期四
Firefox Portable + JVM Movable 可行性分析
- 聲明 1: 為何本文使用 JVM Movable 而非 Java Portable?因為 Java 本身是一個可移植 (Portable) 的語言,而不是指 SUN JRE(JVM)。
- 聲明 2: Mozilla, Firefox 為 Mozilla Fund./Co. 的註冊商標;Firefox Portable, OpenOffice.org Portable, PortableApps 為 John T. Haller 的註冊商標;SUN, Java 為 SUN Co. 的註冊商標。謹此聲明。
在拜讀 某A 前輩的文章: OpenOffice.org Portable 非公式正體中文版: OO.o Portable 2.1 Pre-Release 的新功能 後,發現 JRE(JVM) 竟然是可攜帶的!驚喜之餘,聯想到了這篇文章: Portable Firefox問題 (請問可否不用在電腦安裝 java 而執行 java 元件呢?)。到底 Firefox Portable + JVM Movable 可不可行?
若是以前,我會回答很「官方」的答案: 不行。(參: Firefox Portable: Known Issues,因為要更動很多 registry) 。
當然,透過「暫時寫入、事後抹除」技巧,的確能模擬出 Sun JRE(JVM) 已經安裝過的狀態,但是: 風險過大,搞不好,可能影響到原有的 Sun JRE(JVM) ;而且,我們可能需要 admin 權限。然而對於許多 Firefox/Feuerfuchs Portable 使用者而言,是不可能有 admin 權限。
所以到目前為止 (2007/2/22),
「官方」的答案是: 不行。
但現在,我的答案好像不這麼肯定了。
那 OpenOffice.org Portable + JVM Movable 是怎麼做到的?在讀到該分消息,震驚之餘,我去下載了 OpenOffice.org Portable (Beta),閱讀其中程式碼,發現: 能這樣做,是因為 OpenOffice.org 設計「良好」,只要將 JRE(JVM) 放置的目錄提供給 OpenOffice.org,剩下的交給 OpenOffice.org 處理。
然而,Mozilla Firefox 卻不同!
Mozilla Firefox 使用的是 SUN JRE(JVM) 提供的 Java Plug-in。Mozilla Firefox 的工作僅止於找出 SUN Java Plug-in,剩下的,讓 SUN Java Plug-in 去弄。而 SUN Java Plug-in 似乎是利用 Registry 來尋找 JRE(JVM) 所放置的目錄。
這下問題,又回到原點了: Registry Hack!
有解決方法嗎?
目前,最有可能的方法是: 重新實做 Java Plug-in。
可能嗎?
很有可能,至少一開始,我是這樣認為的!
障礙列表:
- Mozilla Firefox 去找電腦中已經安裝的 Java Plug-in,造成衝突。
- 重新實做 Java Plug-in
先談談 Mozilla Firefox 的 JVM Framework。您可以在下面的列表找的相關資料:
再看看 SUN 對於 Open JVM Integration 的「看法」:
Since Netscape 7 has been widely adopted, we decided to stop building OJI plugin for Netscape 6.x in JDK release.所以,顯然的,上面的兩篇有點舊,其使用的介面可能與 JVM 最新版本不太一樣。
再談談 SUN Java Plug-in 的相關資料:
全都沒有講到和 Java Plug-in 怎麼和 JVM 運作(至少我都看不太出來)。
到目前為止,可以用的資料,好像只有「稍舊」的 OJI。
我又把腦筋動到 Java 的「開放原始碼」。
而我從 OpenJDK 的 Mailing List Archive 中找到這一封信。
信上說 Java Plug-in 的原始碼尚未於 OpenJDK 計畫中公佈,
但我也得知: 可以在 JDK 6 的原始碼中找到非 Windows 版本的 Java Plug-in。
(但我不知道從何找起)
而這句話又讓我想起,README: JDK Builds 的一句話:
NOTE: The Java Plug-in product for Windows cannot be built from the Community Source Release.看到之後,心就涼了一半。
只好期待 SUN 最後還是會把 Java Plug-in 加入到 OpenJDK 計畫中。
不過,除了 SUN 的 Java Plug-in 以外,我還看到了一個東西: gcjwebplugin。這個計畫目前已經被整並到 GNU Classpath 計畫。目標是製作一個 Java Plug-in。雖然我看不太懂程式碼,不過好像和 JVM 的種類無關,也許可以從中取得靈感以及相關的介面。
如果有前輩,能重新實做 Java Plug-in 或者 SUN 釋出 Java Plug-in 再略加改寫 (改成以其他方式取得 JRE(JVM) 的位置) ,應該就可以達成 Firefox/Feuerfuchs Portable + JVM Movable。
__________h.s.
後記:
這個議題好像蠻常被提起,而我也蠻有興趣的 (雖然我不使用 Java Applet,而且目前沒有能力) ,所以略加紀錄。希望能供有興趣的前輩參考。
2007年2月15日 星期四
Feuerfuchs Addons Installer Class 完成
總算把所有程式碼完成了,而程式碼將在近期於 MozTW 討論版 公佈。
目前有的功能:
不果理論上 Firefox(R) 1.5 以上,甚至 ThunderBird(TM), Flock(TM) 都可能可以正常運作。
Regards,
__________h.s.
目前有的功能:
- 讓想要打包 Firefox(R) PowerPack/LitePack/AddonsPack 的人,可以輕鬆的製作一個品質不錯的安裝程式
- 不太好的多國語言支援
- 內建 Firefox(R) 執行狀待偵測
- 內建「個人設定檔」偵測
- 內建「Firefox(R) 主程式」偵測
- 含相依性處理設計
- 可以任意群組部份附加元件
不果理論上 Firefox(R) 1.5 以上,甚至 ThunderBird(TM), Flock(TM) 都可能可以正常運作。
Regards,
__________h.s.
2007年2月13日 星期二
Feuerfuchs Addons Installer 預設的圖示
訂閱:
文章 (Atom)
