將 Firefox 工作集中在一個彈出視窗:Fox Toolbox 功能全整理
從分頁音量到 Kill Switch,完整了解九項功能與限制
將 Firefox 工作集中在一個彈出視窗:Fox Toolbox 功能全整理
Fox Toolbox 是一款 Firefox 擴充套件,將目前分頁控制、媒體下載、廣告阻擋、網頁分頁鎖定與瀏覽資料刪除整合在同一個工具中。
以 2.2.0 版為準,它支援 Firefox 128 以上版本。按下工具列圖示後,會在 600×600 的彈出視窗中以 3×3 格式顯示 9 項功能。 它採用 Firefox Manifest V3 WebExtension 製作,沒有外部執行階段相依項目,也沒有自己的遙測伺服器。
它不會在隱私瀏覽視窗中執行。在 Firefox 的 about: 頁面或附加元件管理員等禁止擴充套件注入程式碼的內部頁面中,部分功能也無法使用。
所有功能一覽
- 01 分頁音量:為每個分頁獨立管理 0~1000% 音量與靜音狀態。
- 02 深色模式:提供關閉、相容、平衡、強力四個等級。
- 03 User-Agent:使用 69 組預設值變更目前分頁的 User-Agent。
- 04 圖片:偵測並下載目前頁面與可存取 iframe 中的圖片。
- 05 影片:偵測並下載可直接存取的影片與音訊網址。
- 06 儲存網站:將目前 HTML 與連結的 CSS、JavaScript 打包成 ZIP。
- 07 廣告阻擋:提供關閉、標準、嚴格規則及網站允許清單。
- 08 分頁鎖定:在一般網頁分頁上顯示密碼保護的鎖定畫面。
- 09 Kill Switch:經過明確確認後刪除選取的瀏覽資料。
1. 分頁音量
分頁音量可將目前分頁的聲音與其他分頁分開調整,範圍為 0% 到 1000%。 它提供 100%、250%、500%、1000% 快速按鈕與靜音按鈕;解除靜音後會回到先前音量。
它並不只是尋找單一 <video> 元素。
- 一般 HTML
<audio>與<video> - 可存取 iframe 內的媒體
- 網頁稍後動態加入的媒體元素
- Shadow DOM 內的媒體
- 透過 Web Audio API 輸出的聲音
瀏覽器將一般 HTML 媒體的 volume 上限設為 1,也就是 100%。 因此原始媒體元素最多套用到 100%,而 Web Audio 輸出則會經過額外的 Gain 節點,最高放大 10 倍。超過 100% 時的效果會依網站的音訊實作方式而異。
音量為 0% 時也會使用 Firefox 原生的分頁靜音。擴充套件會記住靜音是否由自己設定,因此不會任意解除使用者原本已設定的靜音。
每個分頁的值都會與 Firefox 工作階段關聯。還原分頁時會一併還原音量,工具列徽章也會顯示目前音量或鎖定狀態。
2. 深色模式
深色模式不是只套用一種通用濾鏡,而是依網站相容性提供四個等級。
- 關閉:移除新增樣式,使用網站原本的設計。
- 相容:告知瀏覽器使用深色色彩配置,僅將基本背景變暗。適合已部分支援深色模式的網站。
- 平衡:反轉頁面顏色,再將圖片與影片反轉回來。適合一般文件與明亮網頁。
- 強力:直接覆寫背景、文字、邊框及輸入元件的顏色。適合其他等級仍不夠暗的網站。
可只暫時套用於目前分頁,也能記住為該網站的預設值。 網站設定以主機名稱為基準,儲存在 Firefox 擴充套件的本機儲存空間中。
等級越強,覆寫的 CSS 越多,因此圖片、SVG、程式碼編輯器、地圖、Canvas 或複雜版面可能顯示異常。遇到問題時請降低強度,或關閉功能後重新載入分頁。
3. 變更 User-Agent
User-Agent 功能目前提供 69 組預設值。
- Chrome、Edge、Firefox、Safari
- Windows、macOS、Linux
- iPhone 與 iPad
- 多種 Android 裝置
- 搜尋引擎機器人
選取預設值後,會變更目前分頁送出要求時的 User-Agent 標頭,同時調整頁面可見的 navigator.userAgent、appVersion、platform 與 vendor,接著重新載入分頁。設定透過分頁專屬工作階段規則管理,不會同時影響其他分頁。
但這只是相容性測試的輔助功能,並非完整的裝置偽裝。
- User-Agent Client Hints
- TLS 連線特徵
- 真實螢幕尺寸與輸入裝置
- Firefox 的實際轉譯引擎
- 瀏覽器公開的其他指紋資訊
這些資訊可能維持不變。網站可比較彼此矛盾的訊號並偵測變更,因此不應將此功能當成繞過驗證、防追蹤或繞過安全機制的工具。
4. 圖片下載器
圖片下載器會檢查目前文件與可存取的 iframe,從多種來源收集圖片。
<img>的src與實際選用的currentSrcsrcset與<picture>中的候選圖片- CSS
background-image - Open Graph 與 Twitter 預覽圖片
- 瀏覽器已載入的圖片資源
相同網址會合併為一筆。選取的 HTTP(S) 或 data: 圖片會直接下載到預設下載資料夾中的 Fox Toolbox/<網站>/images/。若檔名衝突,會建立唯一檔名而不覆寫原檔。
尚未由頁面要求的延遲載入圖片可能不會出現。先捲動到頁面底部再重新偵測,通常能找到更多項目。
一次偵測會在工作階段儲存空間中保留圖片與影片合計最多 250 筆;一次最多下載 50 筆,更多結果需要分批選取。
5. 影片下載器
雖然名稱是影片下載器,它也會尋找可直接存取的音訊來源。
<video>與<audio>的目前來源- 內部的
<source>元素 - 直接指向媒體檔案的連結
- 瀏覽器已觀察到的影片與音訊資源
可直接存取的檔案會儲存在預設下載資料夾中的 Fox Toolbox/<網站>/videos/。對跨來源檔案,會在可能的範圍內以 Referer 傳送原始頁面資訊。
下列內容無法由此工具製作成完整影片檔案。
- DRM 保護內容
blob:URL 與 Media Source Extensions 串流- 分段 HLS
.m3u8串流 - DASH
.mpd串流
Fox Toolbox 不會合併串流片段,也不會解密 DRM。登入工作階段、過期權杖與防盜連政策也可能造成項目雖然被偵測,卻下載失敗。儲存媒體前應確認網站使用條款與著作權規定。
6. 網站下載
網站下載會複製目前已轉譯的 HTML,收集其連結的 CSS 與 JavaScript,並建立 ZIP 檔案。
文件中的相對網址會轉成絕對網址。成功取得的 CSS 與 JavaScript 網址會改寫為 ZIP 內的本機路徑。可存取的跨來源資源也會納入。
ZIP 具有以下結構。
index.html
assets/
styles/
scripts/
fox-toolbox-report.json
fox-toolbox-report.json 會記錄來源網址、擷取時間、已儲存檔案、遺漏資源及失敗原因。
這不是無限制複製整個網站的功能。
- 目前 HTML:最多 12MB
- CSS、JavaScript 資源數:最多 160 筆
- 單一資源大小:最多 8MB
- 收集檔案總大小:最多 60MB
- 資源要求逾時:每個檔案 12 秒
HTML 超過 12MB 時會停止操作,而不是產生損壞的部分文件。 動態 API 回應、Service Worker 狀態、登入工作階段、資料庫及 DRM 媒體不會被完整重現。
開啟下載的 index.html 時,內含的網站 JavaScript 可能會執行。只有在信任來源時才應開啟;不明頁面最好在停用 JavaScript 的隔離環境中檢查。
7. 廣告阻擋
廣告阻擋是使用 Firefox 宣告式網路要求規則的輕量功能。
- 關閉:停用內建阻擋規則。
- 標準:啟用基本規則,也是 Fox Toolbox 的初始設定。
- 嚴格:同時啟用標準規則與額外的嚴格規則。
可將目前網站加入允許清單,使該主機名稱的要求優先於阻擋規則。常用網站發生問題時,不必停用所有廣告阻擋,只需加入例外。
由於只依賴內建規則,無法保證所有廣告、追蹤指令碼或新出現的網域都會被阻擋。嚴格模式也可能阻擋正常資源,導致登入、付款、影片播放或版面失效。
8. 網頁分頁鎖定
網頁分頁鎖定可設定 6~128 字元的密碼並鎖定一般網頁分頁。它可在 Firefox 啟動時自動鎖定,也可由使用者手動立即鎖定。
鎖定時會在一般頁面的最上層顯示強制回應覆蓋層,並阻擋滑鼠、鍵盤、觸控、滾輪及內容功能表輸入。對禁止注入程式碼的 Firefox 內部頁面,則會開啟獨立鎖定頁面。
密碼明文不會儲存。
- 產生隨機 16 位元組 salt。
- 執行 240,000 次 PBKDF2-SHA-256。
- 只將衍生雜湊與 salt 儲存在 Firefox 擴充套件本機儲存空間。
連續失敗 5 次後會封鎖嘗試 30 秒。後續失敗會增加等待時間,上限為 120 秒。
但這只是擴充套件層級的軟鎖定,不是瀏覽器或作業系統的安全邊界,無法阻止下列行為。
- 使用網址列、Firefox 選單、設定及內部
about:頁面 - 在附加元件管理員中停用或移除 Fox Toolbox
- 使用其他 Firefox 設定檔或其他瀏覽器
- 使用隱私瀏覽視窗或疑難排解模式
- 透過開發者工具或 Firefox 本身的權限繞過
- 存取作業系統檔案或已下載的檔案
因此它不能取代作業系統螢幕鎖定、公用電腦存取控制、家長監護或企業安全產品。
9. Kill Switch
Kill Switch 會刪除 Firefox 儲存的指定瀏覽資料。
- 快取
- Cookie 與登入工作階段
- 下載記錄
- 表單自動填入資料
- 瀏覽記錄
- IndexedDB
- 網站本機儲存空間
- Service Worker 資料
- 已儲存密碼
時間範圍可選全部時間、最近 1 小時、最近 24 小時或最近 7 天。但 Firefox API 不支援依期間刪除快取,因此只有全部時間可選取快取。
為降低誤操作,功能採用兩階段確認。選取資料類型後,必須在 30 秒內直接輸入 刪除 才會開始處理。已儲存密碼預設不勾選。若已設定分頁鎖定,可在刪除完成後鎖定網頁分頁。
Fox Toolbox 無法復原已刪除資料。刪除 Cookie 會登出網站,刪除已儲存密碼則會移除 Firefox 密碼管理員中的項目。
刪除下載記錄只會清除 Firefox 的記錄,不會刪除磁碟上已儲存的實際檔案。書籤與 Fox Toolbox 本身的設定也不在 Kill Switch 範圍內。
預設快捷鍵
- 將目前分頁音量提高 10%:
Alt+Shift+↑ - 將目前分頁音量降低 10%:
Alt+Shift+↓ - 切換目前分頁靜音:
Alt+Shift+M - 立即鎖定網頁分頁:
Alt+Shift+L
若快捷鍵與作業系統或其他擴充套件衝突,可在 附加元件管理員 → 管理擴充套件快捷鍵 中修改。立即鎖定快捷鍵必須先設定密碼才能使用。
權限用在哪裡?
由於多項工具整合在同一個擴充套件中,權限依責任分配如下。
browsingData:刪除 Kill Switch 中選取的瀏覽資料declarativeNetRequestWithHostAccess:阻擋廣告及變更分頁專屬 User-Agent 要求標頭downloads:儲存圖片、影片與網站 ZIPscripting:為已開啟的一般網頁分頁恢復鎖定連線sessions:恢復各分頁的音量、User-Agent 與深色模式狀態storage:儲存廣告阻擋、網站深色模式與鎖定設定tabs:確認目前分頁、靜音、重新載入並傳播鎖定狀態webNavigation:偵測目前頁面與可存取 iframe 中的媒體<all_urls>:對一般網頁套用功能,並存取使用者要求的資源
持續設定會保留在 Firefox 擴充套件的本機儲存空間。鎖定狀態、30 秒刪除確認權杖、媒體偵測清單等暫存資料使用記憶體型工作階段儲存空間。
原始碼中沒有將遙測或使用者資訊傳送至 Fox Toolbox 伺服器的程式碼,資訊清單也宣告不收集資料。下載媒體或網站 ZIP 時會向原始網站要求必要資源,但不會傳送到其他 Fox Toolbox 伺服器。
內部結構
Fox Toolbox 依下列方式分離功能責任。
popup:9 項工具的設定與執行畫面background:下載、瀏覽資料刪除、分頁狀態、廣告阻擋規則等需要 Firefox 權限的操作- 頁面的 Main World 程式碼:處理 HTML 媒體、Web Audio 與
navigator值 - 隔離的 Content Script:深色模式、媒體偵測、網站擷取與鎖定覆蓋層
- 宣告式網路規則:廣告阻擋及分頁專屬 User-Agent 要求標頭變更
彈出視窗送出命令後,背景程式會檢查要求來源與分頁 ID,並只在必要時將狀態傳給頁面程式碼。分頁音量、User-Agent 與深色模式會連結 Firefox 工作階段值;廣告阻擋、網站深色模式與鎖定設定則保留在本機儲存空間。
安裝方法
要將目前原始碼資料夾暫時載入 Firefox:
- 在網址列開啟
about:debugging#/runtime/this-firefox。 - 選擇 載入暫用附加元件。
- 選取 Fox Toolbox 資料夾中的
manifest.json。 - 開啟工具列上的 Fox Toolbox 圖示。
若有發行 ZIP,可在同一畫面選取。若該 Firefox 環境不接受 ZIP,請先解壓縮,再選取其中的 manifest.json。
Firefox 完全結束時會移除暫用附加元件。要在一般 Firefox 中永久安裝,需要經 Mozilla 審查與簽署的 .xpi,而不是普通 ZIP。
總結
Fox Toolbox 的主要優點,是把常用分頁操作與隱私工具放在一個可快速開啟的畫面中。分頁狀態恢復、網站深色模式、廣告阻擋例外及刪除確認,也能減少日常使用時的失誤。
它並非萬用工具。媒體下載器不處理 DRM 或分段串流,網站下載只是目前文件的快照,User-Agent 變更不會改掉完整的瀏覽器指紋,網頁分頁鎖定也不能取代作業系統鎖定。
只要理解功能範圍與限制,Fox Toolbox 就能成為整理 Firefox 中各種分散工作的一款實用工具。