{ "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": { "scripts": [ "background/background-boot.js", "background/logs.js", "background/state.js", "background/proxy.js", "background/native-messaging.js", "background/tab-lifecycle.js", "background/message-router.js", "background/background-main.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" ], "extension_ids": ["*"] } ], "icons": { "16": "icons/16.png", "32": "icons/32.png", "48": "icons/48.png", "128": "icons/128.png" }, "browser_specific_settings": { "gecko": { "id": "holesail-browser-58514e5bbfe0d5e3@example.org", "strict_min_version": "109.0" } }, "content_security_policy": { "extension_pages": "default-src 'self'; script-src 'self'; connect-src 'self' ws://127.0.0.1:* http://127.0.0.1:*;" }, "host_permissions": [ "*://*.host.local/*", "*://*.hole.sail/*" ], "optional_host_permissions": [ "*://*/*" ] }