在找
chrome://flags 或 edge://flags? 直接在網址列輸入即可,那是瀏覽器內建的頁面。Firefox 沒有
firefox://flags,請改用 about:config。如果你切換旗標是為了測試或建置瀏覽器擴充功能,Extension.js 會在 Chrome、Edge 與 Firefox
上以專案為單位自動套用,你不必每次執行都手動傳入旗標。30 秒建立你的第一個擴充功能 →extension.config.* 中設定的瀏覽器旗標,並在 dev、preview 與 start 流程中套用。
Firefox 有 firefox://flags 嗎?
Firefox 不像 Chromium 系列瀏覽器使用 chrome://flags 或 edge://flags 那樣使用 firefox://flags。Firefox 透過 about:config(偏好設定)公開執行階段的開關,並接受從命令列傳入的啟動旗標。
如果你搜尋過 firefox://flags、firefox //flags、browser://flags、mozilla://flags 或 about flags firefox,你很可能是想在擴充功能開發期間改變瀏覽器行為。在 Extension.js 中,你會從兩個地方著手:
- 使用
browserFlags來傳遞 Extension.js 啟動瀏覽器執行檔時所用的啟動旗標。 - 使用 Firefox 偏好設定 來設定原本會放在
about:config中、可重複套用的 Gecko 執行階段行為。
其他瀏覽器的旗標
Extension.js 會以同樣的方式啟動並設定任何以 Chromium 為基礎的瀏覽器。brave://flags、opera://flags、vivaldi://flags、yandex://flags:它們都以 Chromium 為基礎,行為與chrome://flags完全相同,Extension.js 會以專案為單位管理它們。internet://flags與browser://flags:這些不是真實存在的瀏覽器 scheme。你要找的多半是chrome://flags(Chromium)或about:config(Firefox)。edge://flags:Edge 就是 Chromium,所以在 Extension.js 中的表現和 Chrome 一模一樣。
extension.config.* 裡設定一次,Extension.js
每次執行都會套用。請參閱下方的 browserFlags。
範本範例
new-browser-flags

運作方式
在extension.config.* 中設定旗標:
browser.<target>.browserFlagscommands.dev|start|preview.browserFlags- 可選的
excludeBrowserFlags,可移除預設旗標或使用者旗標(行為會因目標是 Chromium 或 Firefox 而不同)。
旗標功能
設定範例
Chromium 與 Firefox 的行為差異
-
Chromium 系列(
chrome、edge、chromium、chromium-based)- 從內建的預設旗標集開始,接著附加你的
browserFlags。 excludeBrowserFlags會移除符合的預設旗標與使用者旗標。- Extension.js 自行管理
--load-extension=...,並會從使用者提供的旗標中過濾掉它。
- 從內建的預設旗標集開始,接著附加你的
-
Firefox/Gecko 系列(
firefox、gecko-based/firefox-based)- 使用使用者提供的
browserFlags(沒有 Chromium 那種龐大的預設旗標組)。 excludeBrowserFlags會移除符合的使用者旗標,規則與 Chromium 相同。
- 使用使用者提供的
= 或 , 時,該旗標就會被移除。所以 --disable-features 也會移除 --disable-features=Translate,而 --dev 永遠不會移除 --devtools。
Chromium 的預設旗標
Extension.js 在啟動 Chromium 系列瀏覽器時會自動套用以下旗標。若有不需要的,使用excludeBrowserFlags 移除即可。
一律生效的工作階段旗標
除了上面的預設表格,每一次 Chromium 啟動都會帶上一組固定的工作階段穩定性旗標。它們能避免背景計時器、被遮蔽的視窗與轉譯程序節流扭曲自動化與 AI 驅動的工作階段。excludeBrowserFlags 無法移除它們:
dev 模式下,Extension.js 才會用三個旗標接上除錯通道:--remote-debugging-port=<derived port>、--remote-debugging-address=127.0.0.1 與 --remote-debugging-pipe。正式模式的啟動(start、preview)會略過這三個。
feature 開關的合併
Chromium 只認重複開關中最後出現的那一個。因此 Extension.js 會把每一處--enable-features 與 --disable-features 各自合併成一個以逗號連接的開關。預設值、設定與環境變數的值都會一起合併,重複的 feature 名稱會被移除。你可以放心在 browserFlags 傳入 --disable-features=Foo,而不會抹掉預設值。
環境變數開關
EXTENSION_BROWSER_FLAGS會把以空白分隔的旗標附加到每一次啟動。它在設定旗標之後、也在excludeBrowserFlags過濾之後才套用,因此excludeBrowserFlags無法移除來自這個變數的旗標。EXTENSION_HEADLESS=1(或true)會強制使用--headless=new,除非設定或環境旗標中已經傳入某種--headless變體。可以把它當成自動化工作階段的搶焦點防護。
在 Docker、持續整合(CI)或容器化環境中,Extension.js 也會自動套用
--no-sandbox
與 --disable-setuid-sandbox。在 Linux 上,它會透過下列任一訊號判斷處於容器中:
CI=true、存在 /.dockerenv 檔案、存在 /run/.containerenv 檔案、
REMOTE_CONTAINERS=true、CODESPACES=true,或設定了 container 變數。支援的目標與參考
在需要時對引擎類型的目標傳入執行檔旗標:
--chromium-binary=...--gecko-binary=...
最佳實務
- 只加入必要的旗標:減少冗長的旗標清單,降低不穩定或不可攜的設定。
- 優先使用
excludeBrowserFlags,而不是整個取代預設:只移除會與你工作流程衝突的部分。 - 不要手動傳
--load-extension:Extension.js 會在內部管理擴充功能載入相關旗標。 - 針對每個瀏覽器家族驗證:在 Chromium 上有效的旗標,在 Firefox 上可能無效或被忽略。
後續步驟
- 進一步了解 瀏覽器偏好設定。
- 進一步了解 瀏覽器設定檔。
- 在 可用的瀏覽器 中選擇目標。
- 透過
extension.config.*串接旗標。 - 第一次接觸擴充功能工具鏈?先從 快速開始 總覽開始。

