{ "manifest": { "manifest_version": 3, "name": "Yomitan", "version": "$YOMITAN_VERSION", "description": "Japanese dictionary with Anki integration", "author": "TheMoeWay", "icons": { "16": "images/icon16.png", "19": "images/icon19.png", "32": "images/icon32.png", "38": "images/icon38.png", "48": "images/icon48.png", "64": "images/icon64.png", "128": "images/icon128.png" }, "action": { "default_icon": { "16": "images/icon16.png", "19": "images/icon19.png", "32": "images/icon32.png", "38": "images/icon38.png", "48": "images/icon48.png", "64": "images/icon64.png", "128": "images/icon128.png" }, "default_title": "Yomitan", "default_popup": "action-popup.html" }, "background": { "service_worker": "sw.js" }, "content_scripts": [ { "run_at": "document_idle", "matches": [ "http://*/*", "https://*/*", "file://*/*" ], "match_about_blank": true, "all_frames": true, "js": [ "js/core.js", "js/yomichan.js", "js/app/frontend.js", "js/app/popup.js", "js/app/popup-factory.js", "js/app/popup-proxy.js", "js/app/popup-window.js", "js/app/theme-controller.js", "js/comm/api.js", "js/comm/cross-frame-api.js", "js/comm/frame-ancestry-handler.js", "js/comm/frame-client.js", "js/comm/frame-offset-forwarder.js", "js/data/sandbox/string-util.js", "js/dom/dom-text-scanner.js", "js/dom/document-util.js", "js/dom/text-source-element.js", "js/dom/text-source-range.js", "js/input/hotkey-handler.js", "js/language/text-scanner.js", "js/script/dynamic-loader.js", "js/app/content-script-main.js" ] } ], "minimum_chrome_version": "96.0.0.0", "options_ui": { "page": "settings.html", "open_in_tab": true }, "sandbox": { "pages": [ "template-renderer.html" ] }, "permissions": [ "storage", "clipboardWrite", "unlimitedStorage", "declarativeNetRequest", "webRequest", "scripting", "offscreen" ], "optional_permissions": [ "clipboardRead", "nativeMessaging" ], "host_permissions": [ "" ], "commands": { "toggleTextScanning": { "suggested_key": { "default": "Alt+Delete" }, "description": "Toggle text scanning on/off" }, "openInfoPage": { "description": "Open the info page" }, "openSettingsPage": { "description": "Open the settings page" }, "openSearchPage": { "suggested_key": { "default": "Alt+Insert" }, "description": "Open the search page" }, "openPopupWindow": { "description": "Open the popup window" } }, "web_accessible_resources": [ { "resources": [ "popup.html", "template-renderer.html" ], "matches": [ "" ] } ], "content_security_policy": { "extension_pages": "default-src 'self'; img-src blob: 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *", "sandbox": "sandbox allow-scripts; default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'unsafe-inline'" } }, "defaultVariant": "base", "variants": [ { "name": "base", "buildable": false }, { "name": "chrome", "inherit": "base", "fileName": "yomitan-chrome.zip", "excludeFiles": [ "background.html", "js/dom/native-simple-dom-parser.js" ] }, { "name": "chrome-dev", "inherit": "chrome", "fileName": "yomitan-chrome-dev.zip", "modifications": [ { "action": "replace", "path": [ "name" ], "pattern": "^.*$", "patternFlags": "", "replacement": "$& (development build)" }, { "action": "replace", "path": [ "description" ], "pattern": "^(.*)(?:\\.\\s*)?$", "patternFlags": "", "replacement": "$1. This is a development build." } ] }, { "name": "firefox", "inherit": "base", "fileName": "yomitan-firefox.zip", "modifications": [ { "action": "delete", "path": [ "background", "service_worker" ] }, { "action": "set", "path": [ "background", "page" ], "value": "background.html" }, { "action": "remove", "path": [ "web_accessible_resources", 0, "resources" ], "item": "template-renderer.html" }, { "action": "delete", "path": [ "sandbox" ] }, { "action": "delete", "path": [ "content_security_policy", "sandbox" ] }, { "action": "set", "path": [ "content_security_policy", "extension_pages" ], "value": "default-src 'self'; script-src 'self'; img-src blob: 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *" }, { "action": "set", "path": [ "browser_specific_settings" ], "value": { "gecko": { "id": "{cb7c0bec-7085-4f84-8422-7b55a7c4467c}", "strict_min_version": "115.0" } } }, { "action": "remove", "path": [ "optional_permissions" ], "item": "nativeMessaging" }, { "action": "add", "path": [ "permissions" ], "items": [ "nativeMessaging" ] }, { "action": "add", "path": [ "permissions" ], "items": [ "webRequestBlocking" ] }, { "action": "remove", "path": [ "permissions" ], "item": "declarativeNetRequest" }, { "action": "remove", "path": [ "permissions" ], "item": "offscreen" } ], "excludeFiles": [ "sw.js", "offscreen.html", "js/background/offscreen.js", "js/background/offscreen-main.js", "js/dom/simple-dom-parser.js", "lib/parse5.js" ] }, { "name": "firefox-dev", "inherit": "firefox", "fileName": "yomitan-firefox-dev.zip", "modifications": [ { "action": "replace", "path": [ "name" ], "pattern": "^.*$", "patternFlags": "", "replacement": "$& (development build)" }, { "action": "replace", "path": [ "description" ], "pattern": "^(.*)(?:\\.\\s*)?$", "patternFlags": "", "replacement": "$1. This is a development build." }, { "action": "set", "path": [ "browser_specific_settings", "gecko", "id" ], "value": "{2d13e145-294e-4ead-9bce-b4644b203a00}" }, { "action": "set", "path": [ "browser_specific_settings", "gecko", "update_url" ], "value": "https://raw.githubusercontent.com/themoeway/yomitan/metadata/updates.json" } ], "excludeFiles": [ "sw.js", "offscreen.html", "js/background/offscreen.js", "js/background/offscreen-main.js", "js/dom/simple-dom-parser.js", "lib/parse5.js" ] }, { "name": "safari", "fileName": null, "modifications": [ { "action": "remove", "path": [ "optional_permissions" ], "item": "clipboardRead" }, { "action": "remove", "path": [ "permissions" ], "item": "webRequestBlocking" }, { "action": "remove", "path": [ "permissions" ], "item": "offscreen" }, { "action": "delete", "path": [ "content_scripts", 0, "match_about_blank" ] }, { "action": "delete", "path": [ "sandbox" ] }, { "action": "set", "path": [ "content_security_policy" ], "value": "default-src 'self'; script-src 'self' 'unsafe-eval'; img-src blob: 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *" } ], "excludeFiles": [ "sw.js", "js/dom/simple-dom-parser.js", "lib/parse5.js" ] } ] }