vimium-c icon indicating copy to clipboard operation
vimium-c copied to clipboard

chrome inject extension tab suspender

Open hurricanedjp opened this issue 2 years ago • 3 comments

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 报错如下: image image image image image image image image

改动文件如下: 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",

hurricanedjp avatar Sep 16 '23 10:09 hurricanedjp

最新的步骤试了下,可以生效,就是chrome extensions页面还是看到有类似上面的报错,不知道是否正常

hurricanedjp avatar Sep 16 '23 12:09 hurricanedjp

另外,现在manifest v3的插件还是不能支持是吧,one tab就是。 那么后面如果其他插件都升级成v3了,是不是这种inject的方法都不能用了

hurricanedjp avatar Sep 17 '23 03:09 hurricanedjp

两个 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 文件。

gdh1995 avatar Sep 23 '23 08:09 gdh1995