{ "manifest": { "manifest_version": 2, "name": "Yomichan", "version": "22.2.2.0", "description": "Japanese dictionary with Anki integration", "author": "Alex Yatskov", "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" }, "browser_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": "Yomichan", "default_popup": "action-popup.html" }, "background": { "page": "background.html", "persistent": true }, "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/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": "57.0.0.0", "options_ui": { "page": "settings.html", "open_in_tab": true }, "sandbox": { "pages": [ "template-renderer.html" ], "content_security_policy": "sandbox allow-scripts; default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'unsafe-inline'" }, "permissions": [ "", "storage", "clipboardWrite", "unlimitedStorage", "webRequest", "webRequestBlocking" ], "optional_permissions": [ "clipboardRead", "nativeMessaging", "webNavigation" ], "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": [ "popup.html", "template-renderer.html" ], "content_security_policy": "default-src 'self'; img-src blob: 'self'; style-src 'self' 'unsafe-inline'; media-src *; connect-src *" }, "defaultVariant": "base", "variants": [ { "name": "base", "buildable": false }, { "name": "chrome", "inherit": "base", "fileName": "yomichan-chrome.zip", "excludeFiles": [ "sw.js", "js/dom/simple-dom-parser.js", "lib/parse5.js" ] }, { "name": "chrome-dev", "inherit": "chrome", "fileName": "yomichan-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; get the stable version here: https://tinyurl.com/yaatdjmp" } ] }, { "name": "chrome-mv3", "inherit": "base", "fileName": "yomichan-chrome-mv3.zip", "modifications": [ {"action": "set", "path": ["manifest_version"], "value": 3}, {"action": "set", "path": ["minimum_chrome_version"], "value": "96.0.0.0"}, {"action": "move", "path": ["browser_action"], "newPath": ["action"]}, {"action": "delete", "path": ["background", "page"]}, {"action": "delete", "path": ["background", "persistent"]}, {"action": "set", "path": ["background", "service_worker"], "value": "sw.js"}, {"action": "move", "path": ["content_security_policy"], "newPath": ["content_security_policy_old"]}, {"action": "set", "path": ["content_security_policy"], "value": {}}, {"action": "move", "path": ["content_security_policy_old"], "newPath": ["content_security_policy", "extension_pages"]}, {"action": "move", "path": ["sandbox", "content_security_policy"], "newPath": ["content_security_policy", "sandbox"]}, {"action": "remove", "path": ["permissions"], "item": ""}, {"action": "remove", "path": ["permissions"], "item": "webRequest"}, {"action": "remove", "path": ["permissions"], "item": "webRequestBlocking"}, {"action": "add", "path": ["permissions"], "items": ["declarativeNetRequest", "scripting"]}, {"action": "set", "path": ["host_permissions"], "value": [""], "after": "optional_permissions"}, {"action": "remove", "path": ["optional_permissions"], "item": "webNavigation"}, {"action": "move", "path": ["web_accessible_resources"], "newPath": ["web_accessible_resources_old"]}, {"action": "set", "path": ["web_accessible_resources"], "value": [{"resources": [], "matches": [""]}], "after": "web_accessible_resources_old"}, {"action": "move", "path": ["web_accessible_resources_old"], "newPath": ["web_accessible_resources", 0, "resources"]} ], "excludeFiles": [ "background.html", "js/dom/native-simple-dom-parser.js" ] }, { "name": "firefox", "inherit": "base", "fileName": "yomichan-firefox.xpi", "modifications": [ { "action": "remove", "path": ["web_accessible_resources"], "item": "template-renderer.html" }, { "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 *" }, { "action": "set", "path": ["browser_specific_settings"], "value": { "gecko": { "id": "alex@foosoft.net", "strict_min_version": "57.0" } } }, { "action": "remove", "path": ["optional_permissions"], "item": "nativeMessaging" }, { "action": "add", "path": ["permissions"], "items": ["nativeMessaging"] } ], "excludeFiles": [ "sw.js", "js/dom/simple-dom-parser.js", "lib/parse5.js" ] }, { "name": "firefox-dev", "inherit": "firefox", "fileName": "yomichan-firefox-dev.xpi", "modifications": [ { "action": "replace", "path": ["name"], "pattern": "^.*$", "patternFlags": "", "replacement": "$& (development build)" }, { "action": "replace", "path": ["description"], "pattern": "^(.*)(?:\\.\\s*)?$", "patternFlags": "", "replacement": "$1. This is a development build; get the stable version here: https://tinyurl.com/yaatdjmp" }, { "action": "set", "path": ["browser_specific_settings", "gecko", "id"], "value": "alex.testing@foosoft.net" }, { "action": "set", "path": ["browser_specific_settings", "gecko", "update_url"], "value": "https://foosoft.net/projects/yomichan/dl/updates.json" } ], "excludeFiles": [ "sw.js", "js/dom/simple-dom-parser.js", "lib/parse5.js" ] } ] }