chrome inject extension tab suspender
Vimium C version:1.99.99 chrome version:117.0.5938.63 platform:windows10 other extension: tab suspender
大佬,我改了所有tab suspender插件对应目录下所有的html,都按照教程在前加了那段。manifest.json也按照要求改了,key那行也删了,_metadata文件夹,但是看起来改动后的项目没有通过chrome内容校验。加载已解压插件那一步时,哐哐报错,虽然出现两个一样图标的插件,id也不一样,但新的也不能用,原本的也不能用了。。。 麻烦大佬抽空看下,感谢感谢!!!
原先extension的id是:fiabciakcmgepblmdkmemdbbkilneeeh
改动后的id是:hlnchpdjgdoecobpekldpdgmkaaemcln
报错如下:
改动文件如下: background.html
<script type="text/javascript" src="buy.js"></script>
<script type="text/javascript" src="background.js"></script>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
dialog.html
<head>
<link type="text/css" rel="stylesheet" href="dialog.css">
<title>Add Site to Whitelist</title>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
history.html
<script type="text/javascript" src="/modules/errorsProcessing.js"></script>
<script src="/lib/jquery-3.3.1.slim/jquery-3.3.1.slim.min.js" crossorigin="anonymous"></script>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
index.html
</style>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
<body>
park.html
border-bottom: 20px solid rgb(34, 34, 34);
}
</style>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
popup.html
<script type="text/javascript" src="previewTile.js"></script>
<script type="text/javascript" src="popup.js"></script>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
session.html
<script type="text/javascript" src="/modules/errorsProcessing.js"></script>
<script src="/lib/jquery-3.3.1.slim/jquery-3.3.1.slim.min.js" crossorigin="anonymous"></script>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
wizard.html
<script type="text/javascript" src="lib/h2c.js"></script>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
<title>Tab Suspender Wizard</title>
</head>
wizard_background.html
<title>Tab Suspender Wizard</title>
<script type="text/javascript" src="chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/lib/injector.js"></script>
</head>
manifest.json
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com chrome-extension://hfjbmagddngcpeloejdejnfgbamkjaeg/; object-src 'self'",
"default_locale": "en",
"description": "__MSG_extDescription__",
"icons": {
"128": "img/icon128.png",
"16": "img/icon16.png",
"32": "img/icon32.png",
"64": "img/icon64.png"
},
"incognito": "split",
"manifest_version": 2,
"minimum_chrome_version": "54",
最新的步骤试了下,可以生效,就是chrome extensions页面还是看到有类似上面的报错,不知道是否正常
另外,现在manifest v3的插件还是不能支持是吧,one tab就是。 那么后面如果其他插件都升级成v3了,是不是这种inject的方法都不能用了
两个 tab suspender 可能互相冲突,禁用掉修改版后,原版应该就能用了。
从第一个报错图片来看,tab suspender 的代码可能有地方写死了扩展 ID。你可以试试 在修改版文件夹里搜 hlnchpd 这个 ID,改成你修改版的 fiabc 的 ID,看还报不报错。
至于 V3,有个很费事的办法,就是把 vimium c 的 content/vimium-c.js, content/injected_end.js, lib/injector.js 都复制到目标扩展里,然后手动在 HTML 里加载它们
- 原因是 Manifest V3 不让加载 “其他扩展的 JS”,只能加载自己的 JS
- 在 HTML 里加载 lib/injector.js 的标签需要特殊处理:
<script data-extension-id="hfjbmagddngcpeloejdejnfgbamkjaeg" src="lib/injector.js"></script>
- 加载顺序是 lib/injector.js, content/vimium-c.js, content/injected_end.js
- js 路径无所谓,可以重命名、放到子文件夹
或者你建一个 http server 也行,MV3 也允许加载来自 localhost 的 JS 文件。