如何将 chrome 扩展的清单版本 2 迁移到 v3?

问题描述 投票:0回答:2

我不知道如何将我的 chrome 扩展清单 v2 升级到 v3

我检查了https://developer.chrome.com/extensions/migration_to_manifest_v3但它没有谈论manifest.json

知道我的清单中需要更改什么吗:-

    "name": "My Extension",
    "version": "1.0.0",
    "short_name": "Ex",
    "author": "User",
    "description": "cool chrome ex",
    "browser_action": {
        "default_title": "ex",
        "default_icon": "img/logo.png"
    },
    "options_page": "options.html",
    "options_ui": {
        "page": "options.html",
        "open_in_tab": true
    },
    "background": {
        "scripts": [
            "js/background.js"
        ]
    },
    "permissions": [
        "tabs",
        "background",
        "storage"
    ],
    "icons": {
        "128": "img/logo128.png"
    },
    "content_scripts": [
        {
            "run_at": "document_end",
            "matches": [
                "https://conferfly.com/*",
                "https://meet.google.com/*",
                "https://teams.microsoft.com/*",
                "https://*.zoom.us/*"
            ],
            "js": [
                "js/main.js",
                "js/injected.js"
            ],
            "css": [
                "css/main.css"
            ]
        }
    ],
    "web_accessible_resources": [
        "js/options.js",
        "js/main.js",
        "js/injected.js"
    ],
    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
} 

提前谢谢你


这是为了conferfly扩展

google-chrome-extension
2个回答
123
投票

这是如何将

manifest.json
从 v2 迁移到 v3 的示例。

第一件事是将

manifest_version
键从
2
更改为
3

//Manifest v2
"manifest_version": 2

//Manifest v3
"manifest_version": 3

将js文件中的

pageAction
browserAction
替换为
action

browser_action
page_action
键替换为
action

//Manifest v2
"browser_action": {...}
"page_action": {...}

//Manifest v3
"action": {...}

清单 v3 中已弃用后台页面和后台脚本。他们是由服务人员取代的。这意味着manifest文件的

background
部分需要这样修改

//Manifest v2
"background": {
 "scripts": ["js/background.js"]
}

//Manifest v3
"background": {
 "service_worker": "js/background.js"
}

要声明需要从web访问的打包资源,

web_accessible_resources
需要这样改

//Manifest v2
"web_accessible_resources": [
        "js/options.js",
        "js/main.js",
        "js/injected.js"
]

//Manifest v3
"web_accessible_resources": [{
 "resources": ["js/options.js","js/main.js","js/injected.js"],
 "matches": [],
 "extension_ids": []
}]

v3 中的内容安全策略是一个对象

//Manifest v2
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" 

//Manifest v3
"content_security_policy": {
 "extension_pages": "script-src 'self' 'unsafe-eval'; object-src 'self'",
 "sandbox": "..."
}

要了解有关您的更多信息,可以查看此链接此链接


1
投票
© www.soinside.com 2019 - 2024. All rights reserved.