wemf
Version:
Format manifest.json to use on WebExtension from Chrome Extension
217 lines (212 loc) • 4.91 kB
JavaScript
// https://developer.chrome.com/extensions/manifest
const chrome = {
required: [
['manifest_version', {value: 2}],
'name',
'version'
],
optional: [
'author',
'automation',
['background', {recommend: {persistent: false}}],
'background_page',
'chrome_settings_overrides',
'chrome_ui_overrides',
'chrome_url_overrides',
['commands', {unsupportProps: ['_execute_sidebar_action']}],
'content_capabilities',
'content_scripts',
'content_security_policy',
'converted_from_user_script',
'current_locale',
'devtools_page',
'event_rules',
'externally_connectable',
'file_browser_handlers',
'file_system_provider_capabilities',
'homepage_url',
'import',
'incognito',
'input_components',
'key',
'minimum_chrome_version',
'nacl_modules',
'oauth2',
'offline_enabled',
'omnibox',
'optional_permissions',
'options_page',
'options_ui',
['permissions', {
supportValues: [
'activeTab',
'alarms',
'background',
'bookmarks',
'browsingData',
'certificateProvider',
'clipboardRead',
'clipboardWrite',
'contentSettings',
'contextMenus',
'cookies',
'debugger',
'declarativeContent',
'declarativeWebRequest',
'desktopCapture',
'displaySource',
'dns',
'documentScan',
'downloads',
'enterprise.deviceAttributes',
'enterprise.platformKeys',
'experimental',
'fileBrowserHandler',
'fileSystemProvider',
'fontSettings',
'gcm',
'geolocation',
'history',
'identity',
'idle',
'idltest',
'management',
'nativeMessaging',
'networking.config',
'notifications',
'pageCapture',
'platformKeys',
'power',
'printerProvider',
'privacy',
'processes',
'proxy',
'sessions',
'signedInDevices',
'storage',
'system.cpu',
'system.display',
'system.memory',
'system.storage',
'tabCapture',
'tabs',
'topSites',
'tts',
'ttsEngine',
'unlimitedStorage',
'vpnProvider',
'wallpaper',
'webNavigation',
'webRequest',
'webRequestBlocking'
]
}],
'platforms',
'plugins',
'requirements',
'sandbox',
'short_name',
'signature',
'spellcheck',
'storage',
'system_indicator',
'tts_engine',
'update_url',
'version_name',
'web_accessible_resources'
],
recommend: ['default_locale', 'description', 'icons'],
pickOneOrNone: ['browser_action', 'page_action']
}
// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json
const firefox = {
required: [
'version',
'name',
['manifest_version', {value: 2}]
],
optional: [
'applications',
'author',
['background', {unsupportProps: ['persistent']}],
'browser_action',
'chrome_url_overrides',
'commands',
'content_scripts',
'content_security_policy',
'default_locale',
'description',
'developer',
'homepage_url',
'icons',
'omnibox',
['options_ui', {unsupportProps: ['chrome_style']}],
'page_action',
['permissions', {
supportValues: [
'activeTab',
'alarms',
'bookmarks',
'browsingData',
'contextMenus',
'contextualIdentities',
'cookies',
'downloads',
'downloads.open',
'history',
'identity',
'idle',
'management',
'nativeMessaging',
'notifications',
'sessions',
'storage',
'tabs',
'topSites',
'webNavigation',
'webRequest',
'webRequestBlocking'
]
}],
'short_name',
'sidebar_action',
'web_accessible_resources'
],
recommend: 'inherit',
pickOneOrNone: 'inherit'
}
// https://docs.microsoft.com/en-us/microsoft-edge/extensions/api-support/supported-manifest-keys
const edge = {
required: ['author', 'name', 'version'],
optional: [
'background',
['browser_action', {
unsupportProps: ['browser_style']
}],
'content_scripts',
'content_security_policy',
'default_locale',
'minimum_edge_version',
'key',
'options_page',
['permissions', {
supportValues: [
'contextMenus',
'cookies',
'geolocation',
'idle',
'storage',
'tabs',
'unlimitedStorage',
'webNavigation',
'webRequest',
'webRequestBlocking'
]
}],
'short_name',
'web_accessible_resources'
],
recommend: ['description', 'manifest_version', 'icons'],
pickOneOrNone: 'inherit'
}
module.exports = {chrome, firefox, edge}