Add Firefox-specific manifest and split packaging for Chrome zip vs XPI
CI / Build & Test (push) Successful in 3m21s

- Add extension/manifest_firefox.json (no key, moz-extension://*/* for
  web_accessible_resources) for correct Firefox MV3 behavior
- Update pack-extension.js: zip excludes manifest_firefox.json; XPI
  built separately with manifest_firefox.json as manifest.json
- Update generate-extension-id.js to set gecko.id in manifest_firefox.json
  when present (no key in Firefox manifest)
- Document dual-manifest layout and pack/generate-id behavior in CONTRIBUTING.md
This commit is contained in:
Raven Scott
2026-03-03 02:06:20 -05:00
parent e18ad5109e
commit 5fdafbcc33
6 changed files with 133 additions and 9 deletions
+92
View File
@@ -0,0 +1,92 @@
{
"manifest_version": 3,
"name": "Holesail Browser",
"version": "1.0.0",
"description": "P2P Holesail tunnels in the browser via native messaging host — open hs:// URLs with valid certificates",
"permissions": [
"nativeMessaging",
"notifications",
"tabs",
"declarativeNetRequest",
"proxy"
],
"commands": {
"_execute_action": {
"suggested_key": {
"default": "Alt+Shift+H",
"mac": "Alt+Shift+H"
},
"description": "Open Holesail Dashboard"
}
},
"action": {
"default_title": "Holesail Dashboard",
"default_icon": {
"16": "icons/16.png",
"32": "icons/32.png",
"48": "icons/48.png",
"128": "icons/128.png"
}
},
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": [
"http://*/*",
"https://*/*"
],
"js": [
"content.js"
],
"run_at": "document_start"
}
],
"web_accessible_resources": [
{
"resources": [
"vendor/xterm.js",
"vendor/xterm-addon-fit.js",
"vendor/xterm.css",
"vendor/novnc.js",
"wrong-domain.html",
"dashboard/dashboard.html",
"dashboard/manifest.webmanifest",
"dashboard/sw.js",
"dashboard/register-sw.js",
"dashboard/screenshots/*.png",
"dashboard/dashboard.css",
"dashboard/data/*.js",
"dashboard/core/*.js",
"dashboard/ui/*.js",
"dashboard/pages/*.js",
"dashboard/refresh.js",
"dashboard/events.js",
"background/*.js"
],
"matches": [
"moz-extension://*/*"
]
}
],
"icons": {
"16": "icons/16.png",
"32": "icons/32.png",
"48": "icons/48.png",
"128": "icons/128.png"
},
"browser_specific_settings": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "109.0"
}
},
"host_permissions": [
"*://*.host.local/*",
"*://*.hole.sail/*"
],
"optional_host_permissions": [
"*://*/*"
]
}