很高興能宣佈現已為 Firefox OS 加上 WiFi 除錯功能!只要在 Firefox Nightly 桌面版上搭配 Firefox OS 3.0 / master 即可使用。
WiFi 除錯功能,可讓 WebIDE 透過區域 WiFi 網路連上 Firefox OS 裝置,不再需要 USB 連接線。
與 USB 相較,此種連線經驗更為直覺 (特別是第一次連上某個裝置時),而且你也不再受限於連接線的長度。
背景
從 Firefox OS 的開發早期起,就一直是透過 USB 連接線對裝置除錯。但這其實有多個缺點:
- 一定要有連接線才能除錯
- 某些 OS 必須搭配驅動程式,也可能衍生其他問題
- 在使用者進行測試時,連接線也讓手機除錯更為不易
行動裝置一旦受制於連接線,整個也就感覺沒那麼「行動」了。
所以我們想幫開發者工具加上某種 WiFi 存取形式,主要目標為:
- 簡單易用
- 安全連線
我們想讓此功能確實可用,但此一改良功能除了要能超越 USB 之外,也要確認其安全無虞。由於除錯過程本身就會暴露許多活動細節 (包含潛在的隱私請求資料),若要使用如 WiFi 的共享網路,安全性更是格外重要。如果你喜歡偶爾到星巴克當當文青,當然不會想讓其他陌生人取得自己的隱私資訊。
簡單性
在透過 WiFi 連線時,也可能同時有多組裝置正嘗試連上同一網路。為了避免此一問題,我們使用了類似「Bonjour」或「mDNS」的搜尋機制。只要你嘗試連線,電腦就會送出一組多點傳送 (Multicast) 的「ping」以尋找鄰近的裝置。鄰近裝置則會回傳自己的名稱與其所支援的服務。如此可取得簡易的裝置名稱清單,而不須再煩惱一堆 IP 位址。
設定過程即使用 Android 專案的 ADB;這也比 USB 來得好。透過 WiFi 除錯功能,就不用在 Windows 上安裝驅動程式或 udev 規則,即可於 Linux 進行設定。
安全性
此專案的大部分作業,都是有關連線安全性的除錯,以利大家能在共用網路 (例如辦公室或咖啡廳) 上安全使用。
我們將 TLS 用於加密與驗證作業。電腦與裝置都會建立自行簽署的憑證。只要你連上線,就會掃描一組 QR 碼以檢驗該憑證是否可信任。在連線期間,你可選擇是否要記憶此訊息,以利日後可立即完成連線。
使用方式
你需要:
- Firefox 39 (或 2015-03-27 之後的更高版本)
- Firefox OS 3.0 (或 2015-04-16 之後的更高版本)
Firefox OS 3.0 現在仍在開發階段,並無法從任何市面上的裝置取得。如果你手上有「Flame」裝置,則可透過 Nightly 版本將 Flame 升級為 3.0 / master。若是他款裝置,則可能必須從原始碼建構自己裝置的版本以更新之。
在 Firefox OS 上,啟動 WiFi 除錯功能:
- 找到裝置中的「開發者設定」(設定 → 開發者)
- 啟動「DevTools via Wi-Fi」
- 依需要編輯裝置名稱
若要從 Firefox 桌面版連線:
- 在 Firefox Nightly 中開啟 WebIDE (工具 → 網頁開發者 → WebIDE)
- 點擊「選擇 Runtime (Select Runtime)」以開啟 Runtime 面板
- 你的 Firefox OS 裝置應該顯示在「WiFi Devices」區塊之中
- 而裝置上會出現是否連線的對話框,點擊「掃描 (Scan)」或「掃描並記憶 (Scan and Remember)」
- 掃描 WebIDE 所顯示的 QR 碼
在掃描 QR 碼之後,QR 畫面隨即消失,而 WebIDE 中的「裝置」圖示就會轉為藍色代表「已連線」。
接著就像之前使用 USB 連接線,你同樣可存取所有的遠端 App 與瀏覽器分頁。而且一樣可使用所有的 Firefox 開發者工具,進行檢視與除錯。這真的是開發者工具在封包交換的一大改變,因此你所使用的工具也不再受限。
現可支援的裝置
此功能應該能支援所有 Firefox OS 裝置。目前我已在 Flame 與 Nexus 4 之上測試完成。
已知問題
QR 碼掃瞄器目前有點小問題,也就是擷取的圖黨解析度偏低。而 Bug 1145772 將可儘快解決此問題。你可用 Flame 嘗試以多個方向掃描。另外我建議選用「Scan and Remember」,如此只有第一次連線時需要掃描。
如果你在測試時發現其他問題,也歡迎提報錯誤或到 IRC 上通知我。
下一步
我接著想把此功能加入 Firefox for Android。還好,目前完成的大多數東西都能再接著使用。此外,我們應該更新如 node-firefox 的工具,以同樣透過 WiFi 連上其他裝置。往後亦可利用其中某些成品,讓Firefox 桌面版的瀏覽器工具箱 (Browser Toolbox) 更安全。
如果你還想到可添增的新功能,可提報錯誤或透過不同的溝通管道聯絡整個團隊。
原文連結:WiFi Debugging for Firefox OS