用 testling-ci 測試各種瀏覽器的結果...

testling-ci 是個測試服務,只要在 package.json 裡把要測的環境要求寫好,然後 GitHub 上的 web hook 設好,剩下就是驗收了...

網站的維護者在「How to write Testling-CI tests」這篇給了一個很簡單的範例,拿一個 IE9+ 才支援的語法實際測試所有的瀏覽器,然後有個 badge 讓你掛:

對於 open source 軟體應該是很方便,是 Travis CI 的另外一個選擇 :p

Nokia 監控使用者連線...

Nokia 被抓到 Xpress Browser 會監控使用者連線,不論是 HTTP 或是 HTTPS:「Nokia Running A Man In The Middle Attack To Decrypt All Your Encrypted Traffic, But Promises Not To Peek」。

兩篇原始發現人的文章,第一篇「Nokia phone forcing traffic through proxy」是講 HTTP 的部份,第二篇「Nokia’s MITM on HTTPS traffic from their phone」是 HTTPS 的部份。

實際運作是類似於 HTTPS proxy 的作法。在「Nokia: Yes, we decrypt your HTTPS data, but don’t worry about it」有詢問 Nokia 後的官方回覆:

"Importantly, the proxy servers do not store the content of web pages visited by our users or any information they enter into them," the company said. "When temporary decryption of HTTPS connections is required on our proxy servers, to transform and deliver users’ content, it is done in a secure manner.

"Nokia has implemented appropriate organizational and technical measures to prevent access to private information. Claims that we would access complete unencrypted information are inaccurate."

GIGAOM 的翻譯簡單多了:

we decrypt your data, but trust us, we don’t peek. (對,我們的確這樣作,不過相信我們,我們沒有監聽。)

你真的相信這鬼話嗎 XDDDDDDDDD

以這張圖結尾:

iframe 的 sandbox 功能...

在「Play safely in sandboxed IFrames」這篇文章提到 HTML5 有對 iframe 制定 sandbox 屬性,這可以讓開發者比較容易處理安全性問題。

比較讓我驚訝是開頭的 browser support 清單是主流全部支援,但又沒寫版號:

不過實際到「Can I use sandbox attribute for iframes?」查,發現沒那麼美好 XD

主要的瀏覽器中,IE 要到 10 才有支援,另外 Firefox 剛支援沒多久 (17 以及之後的版本,目前是 18),看起來要等 Windows 7 的 IE8 被淘汰?

Mozilla Firefox 與 Google Chrome...

我家裡與公司的 Mozilla FirefoxGoogle Chrome 都是在 Ubuntu 上面跑,至於家裡的 Mac Mini 就沒換了,還是跑 Chrome。來講一下我對這兩個瀏覽器的的感覺。

從安裝開始,在 Ubuntu 下面我是透過 ppa 裝 release 前一個 channel (兩個都叫做 beta)。安裝的方式很簡單,設好 ppa 後 apt-get update; apt-get dist-upgrade 就會把系統的 Firefox 與 Chrome 升級到新版。

對於套件的相容性,Firefox 有很明顯的改善,現在從 Release 升級到 Beta 的時候不會直接把所有的套件標成不相容,會有一些機制處理,這方面算是跟 Chrome 有得玩。

另外一方面 Chrome 也支援更多 API 讓套件使用,現在套件可以做很多網路層的操作,接下只要 Chrome 把 UI API 設計完整一點就可以了... (Chrome 上面套件的設定畫面相較於 Firefox 是有需要再改善的,瀏覽器對 UI API 支援太陽春算是原因之一...)

同步的問題因為 Chrome 可以綁定 Google 帳號,就算是 Two-Factor 時也可以用 application password,而 Firefox 的同步功能我試了三次都沒成功過...

效能方面,可以發現兩個瀏覽器的效能都很好了,Twitter 算是 script 很多,可以感覺到比較頓的網站 (參考「bandwidth」這篇),兩個瀏覽器用起來都不會有明顯的不順暢。

操作方面是還是可以感覺到 Firefox 在某些地方卡住:

  • focus 在 Flash 時,Ctrl-W 無法關閉視窗 (因為 Ctrl-W 被 Flash 抓走了)。
  • Firefox 的 Firebug (yeah,跟 Firefox team 無關,但這剛好對應於 Chrome 內建功能) 沒辦法用 Ctrl-W 關閉。
  • 在 address bar 輸入 url 有時會被 suggestion 卡到 lag,這之前有提過了,在 bugzilla 上也有 ticket 在追這個問題...

最後要談的是穩定性,兩者的穩定性都已經可以接受,只是很明顯 Firefox 遇到複雜的 script 還是不太穩,無論是 Facebook 還是 Twitter,偶而會出問題,這時候把 browser 關掉再開就好了...

Firefox 大概還會再用一陣子吧... 算是測試不同的 browser。

跑兩個不同 Profile 的 Chrome

因為 Gmail 沒辦法很方便的切換帳號,所以得想辦法讓 cookie 分開存。

試著找套件來做到這件事情,但都不太好處理... 於是決定跑兩個不同 profile 的 Chrome (這樣 cookie 就會分開存了)。

script 長這樣:

#!/bin/sh
cd $HOME
exec chromium-browser --user-data-dir=.config/chromium-2/ &

留個紀錄起來...

Google Chrome 的 Cookie 隱私功能...

Firefox 裡,我們可以藉由「預設所有的 cookie 都只能是 session only」加上「例外名單」,做出「關閉瀏覽器就把白名單以外的 cookie 清掉」的功能,但在 Google Chrome 裡面,用內建的功能做不到這件事情。(他只能做到關閉時全部清除,沒辦法把白名單清除在外)

剛剛找到一個 extension 實做了這個功能:「Vanilla Cookie Manager」,在每次打開 Google Chrome 時會清除所有白名單以外的 cookie,也算是做到這個功能了... (雖然我比較喜歡在關掉的時候處理)

繼續找 Google Chrome 上對應的套件...

在瀏覽器裡面的「Linux 模擬器」

QEMU 的作者 Fabrice Bellard 寫了一個 javascript-based 的 x86 emulator:「Javascript PC Emulator」,技術細節在「Javascript PC Emulator - Technical Notes」。

其中實做了 486-based CPU,沒有浮點運算能力,另外因為這是 for fun project,所以很多細節沒做 (Linux 開機沒用到的功能都沒做)。以「x86 instruction listings」這邊列出來的指令集,要做到 486 等級,大約 150 條上下?

真是感謝現在的瀏覽器把 javascript 做的這麼快...

YouTube 將 99% PV 影片加上 WebM 支援

YouTube 發了一篇公告,將站上約 30% 的影片另外壓一份 WebM 格式,而這 30% 佔全站 99% pageview:「Mmm mmm good - YouTube videos now served in WebM」。

目前在 Firefox 4+、Opera 10.6+、Google Chrome 支援 WebM 格式,手機平台則是 Android 2.3 (Gingerbread) 支援。

希望有一天可以完全取代 H.264...

Firefox Channel...

Firefox 也打算要加快開發的速度,打算每 18 個星期出一個大版本,同時推出新的 Aurora channel 讓人下載測試:「New Channels for Firefox Rapid Releases」。

以前如果不用 Beta 就得等 Nightly (每天更新),現在中間多了一個 Aurora 讓人選擇。這類似於 Google Chrome 的 Dev-Beta-Stable 模式...

這樣應該可以改善 Firefox 的套件相容性,不用等到 Beta 才開始修... (有時候會在 Nightly 修好後又被揍了一拳 XD)

Bing 與 Google 都使用 HTML5 的 localStorage 加速手機瀏覽速度...

Steve Souders 分析了手機瀏覽 BingGoogle 的手機平台時,這兩個平台如何處理 cache issue:「Storager case study: Bing, Google」。

這兩個平台不約而同都用上 HTML5 的 localStorage,其中 Bing 用了 ~170KB (未壓縮大小) 的 localStorage,內容包括 CSS/JS/JSON,而 Google 也用了 154KB 存放這些資料。

這應該是因為手機平台的 browser cache 共用一塊不大的空間,很容易被 purge:(我的 Desire 跑 Android 2.2,剛剛看設定,預設值是最大值 6MB)

而 localStorage 則是每個 domain 自己一份空間,相對於共用的空間反而更適合當 cache...