如何解决Chrome 89.0.4389.114 扩展权限清单 V3
我正在尝试更新 Manifest V3 的一个简单扩展。我一定是做错了什么,因为像 permissions
这样的简单标签不能正常工作......我知道 Chrome 正在阅读该节,因为如果我输入了一个虚假的许可,我会收到一个错误,但是关于: //extensions 不显示我的扩展程序的权限 contextMenus
,即使它在那里。并且 chrome.contextMenus
未定义,因此我无法创建菜单。
Manifest V3 仍然是半生不熟的,还没有准备好迎接黄金时段,还是我在做一些被默默忽略的蠢事?
{
"manifest_version": 3,"name": "TESS+","version": "0.043","description": "TESS+ -- My browser extension","icons": {
"48": "TESS+Icon.png"
},"content_scripts": [
{
"matches": ["*://tmsearch.uspto.gov/bin/showfield*" ],"js": ["jquery-3.6.0.min.js","tess+.js","FH.js","DateTime.js"]
}
],"background": {
"service_worker": "tess-bg.js"
},"web_accessible_resources": [
{
"resources": [ "TESS+Button.png" ],"matches": [ "https://tsdr.uspto.gov/*" ]
}
],"permissions": [
"contextMenus"
],"host_permissions": [
"http://tsdr.uspto.gov/","https://tsdr.uspto.gov/"
]
}
解决方法
正如@wOxxOm 猜测的那样,我试图从前台内容脚本创建上下文菜单,而不是从后台服务工作者创建。
为了将来参考,这里有一个使用 Manifest V3 的简单 contextMenu 示例:
manifest.js:
{
"manifest_version": 3,"name": "ManifestV3Test","version": "0","background": {
"service_worker": "bg.js"
},"content_scripts": [
{
"matches": [ "<all_urls>" ],"js": [ "fg.js" ]
}
],"permissions": [
"contextMenus"
]
}
bg.js:
/*
* bg.js -- a ManifestV3 service_worker that installs a context menu
* plus minimal framework for messaging between here and
* a content script.
*/
chrome.runtime.onInstalled.addListener( function( ) {
chrome.contextMenus.create( {
id: 'a unique id',title: 'My Context Menu',contexts: [ 'all' ]
} );
} );
chrome.contextMenus.onClicked.addListener( (info,tabs) => {
console.log( 'context menu clicked' );
console.log( info );
console.log( tabs );
chrome.tabs.sendMessage( tabs.id,'request-object',(rsp)=> { console.log( "content script replies:" );
console.log( rsp ); } );
} );
fg.js:
/*
* fg.js -- a content script for a minimal ManifestV3 test extension.
*/
console.log( "Activating content script...try context menu!" );
chrome.runtime.onMessage.addListener( (req,snd,rsp) => {
console.log( snd.tab ? "another content script says:" : "the extension says:" );
console.log( req );
rsp( 'a-response-object' );
} );
此功能从 2021 年 4 月 11 日起在 Chrome 89.0.4389.114 上有效,但 Firefox-87.0 (MacOS) 将其拒绝为“不受支持的清单版本”。
,虽然 MV3 确实仍处于半损坏状态,但许可是 WAI(按预期工作)。
Chrome 在 chrome://extensions 页面中的权限列表仅显示那些在安装扩展程序期间产生警告的条目。请参阅文档中的 list。 contextMenus
权限不会产生此类警告,因此未显示在列表中。
这种行为对于开发者或知识渊博的用户来说可能看起来很愚蠢,但 Chrome 一直在简化其 UI/UX 以适应大多数人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。