この記事を作った動機
Chromium 系列のブラウザでは動いていた拡張機能が、Firefox では動かないということがあった。原因を調査してみたところ、ネットワーク周りに問題があり、manifest.json の修正で解決できそうなことが分かった。
問題が解決するまでに試したことを記録しておきたい。
前提
- 拡張機能はLANにあるサーバーにアクセスすることで動作する
- LANにあるサーバーにアクセスするときに Firefox の環境にてエラーが発生する
- LAN内へのサーバーへのアクセスは、HTTPsを用いた通信であり、Firefox側にすでに証明書が入っている
- LAN内へのサーバーへのアクセスは、直接ブラウザでURLを叩く分には正常に動作する
- LAN内へのサーバーアクセスは、直接のIP指定ではなく、専用にLAN内だけで通用するドメインをあてがっている
試したこと
実装をXMLHttpRequestからfetchに変更 -> 効果なし
manifest.jsonのmatchesに拡張機能がアクセスするドメインの追加 -> 効果なし
manifest.jsonのpermissionsに対象ドメインを追加 -> 効果あり
fetchでsame-origin -> 効果なし
let res = await window.fetch(url, {
credentials: 'same-origin'
})
現状のmanifest.jsonの例
{
"manifest_version": 2,
"name": "ext name",
"description": "test123",
"version": "2.2",
"permissions": [
"activeTab",
"https://my.domain/*"
],
"icons": {
"128": "imgs/test.png"
},
"browser_action": {
"default_popup": "action/pop.html",
"default_icon": {
"128": "imgs/test.png"
}
},
"content_scripts": [
{
"js": [
"scripts/dist/bundle.js"
],
"matches": [
"https://www.target.com/*",
"https://my.domain/*",
"https://*.my.domain/*"
]
}
],
"background": {
"scripts": ["scripts/background.js"],
"persistent": false
},
"browser_specific_settings": {
"gecko": {
"id": "omited"
}
}
}
参考にしたサイトとか
- Firefox Won’t Open Local IP Addresses? Fix It
https://browserhow.com/fix-firefox-blocking-access-to-local-ip-addresses/ (2026年11月4日) - Firefox add-on local area network communication capabilities - Stack Overflow
https://stackoverflow.com/questions/20060162/firefox-add-on-local-area-network-communication-capabilities (2026年11月4日) - 1829925 - AV software Avira breaks websites
https://bugzilla.mozilla.org/show_bug.cgi?id=1829925 (2026年11月4日) - ローカルLLM (Qwen-3.8-27B) (2026年11月4日)