将扩展迁移到 Manifest v3
Migrating Extension to Manifest v3
我想将我的 Chrome 扩展从清单版本 2 迁移到版本 3,因为在不久的将来 Google 将从他们的商店中删除 MV2 扩展。现在我的扩展清单代码是这样的。
{
"browser_action": {
"default_icon": "img/icon_active.png",
"default_popup": "html/popup.html",
"default_title": "Title here"
},
"description": "description here",
"icons": {
"128": "img/icon_128.png",
"16": "img/icon_16.png"
},
"manifest_version": 2,
"name": "Title here",
"version": "1.0.1"
}
popup.js 文件看起来像这样
$(document).on("click", ".copy-me", function(ev) {
var $body = document.getElementsByTagName('body')[0];
var rel = $(this).attr("rel");
var text = $("#"+rel).text();
var $tempInput = document.createElement("INPUT");
$body.appendChild($tempInput);
$tempInput.setAttribute("value", text)
$tempInput.select();
document.execCommand("copy");
$body.removeChild($tempInput);
});
Chrome 清单 v2 扩展弃用时间表
2022 年 1 月 17 日:Chrome 网上应用店不再接受新的 Manifest V2 扩展,但是,开发人员将被允许向它们推送更新。
在 2023 年 1 月:Manifest V2 扩展将停止工作并且不会 运行 在 Chrome,开发人员可能无法将更新推送到他们甚至有企业政策。
我建议你阅读 Google Chrome Offical Migration Article。
如果你不想花时间在这上面,我建议 Extension Manifest Converter 这是一个由 Google 开发的开源工具。
根据 README 文件,该工具存在局限性:
This tool aims to simplify the MV3 conversion; it does not fully automate the process. Only search and replace changes are applied to .js files.
This tool does not:
- update any service worker code that relies on a DOM
我尝试了该工具,它给出了以下输出:
{
"description": "description here",
"icons": {
"128": "img/icon_128.png",
"16": "img/icon_16.png"
},
"manifest_version": 3,
"name": "Title here",
"version": "1.0.1",
"action": {
"default_icon": "img/icon_active.png",
"default_popup": "html/popup.html",
"default_title": "Title here"
},
"content_security_policy": {}
}
你的情况 manifest.json
发生了变化,但 popup.js
没有任何变化。
我想将我的 Chrome 扩展从清单版本 2 迁移到版本 3,因为在不久的将来 Google 将从他们的商店中删除 MV2 扩展。现在我的扩展清单代码是这样的。
{
"browser_action": {
"default_icon": "img/icon_active.png",
"default_popup": "html/popup.html",
"default_title": "Title here"
},
"description": "description here",
"icons": {
"128": "img/icon_128.png",
"16": "img/icon_16.png"
},
"manifest_version": 2,
"name": "Title here",
"version": "1.0.1"
}
popup.js 文件看起来像这样
$(document).on("click", ".copy-me", function(ev) {
var $body = document.getElementsByTagName('body')[0];
var rel = $(this).attr("rel");
var text = $("#"+rel).text();
var $tempInput = document.createElement("INPUT");
$body.appendChild($tempInput);
$tempInput.setAttribute("value", text)
$tempInput.select();
document.execCommand("copy");
$body.removeChild($tempInput);
});
Chrome 清单 v2 扩展弃用时间表
2022 年 1 月 17 日:Chrome 网上应用店不再接受新的 Manifest V2 扩展,但是,开发人员将被允许向它们推送更新。
在 2023 年 1 月:Manifest V2 扩展将停止工作并且不会 运行 在 Chrome,开发人员可能无法将更新推送到他们甚至有企业政策。
我建议你阅读 Google Chrome Offical Migration Article。
如果你不想花时间在这上面,我建议 Extension Manifest Converter 这是一个由 Google 开发的开源工具。
根据 README 文件,该工具存在局限性:
This tool aims to simplify the MV3 conversion; it does not fully automate the process. Only search and replace changes are applied to .js files.
This tool does not:
- update any service worker code that relies on a DOM
我尝试了该工具,它给出了以下输出:
{
"description": "description here",
"icons": {
"128": "img/icon_128.png",
"16": "img/icon_16.png"
},
"manifest_version": 3,
"name": "Title here",
"version": "1.0.1",
"action": {
"default_icon": "img/icon_active.png",
"default_popup": "html/popup.html",
"default_title": "Title here"
},
"content_security_policy": {}
}
你的情况 manifest.json
发生了变化,但 popup.js
没有任何变化。