gdh1995 / vimium-c

A keyboard shortcut browser extension for keyboard-based navigation and tab operations with an advanced omnibar
https://chrome.google.com/webstore/detail/vimium-c/hfjbmagddngcpeloejdejnfgbamkjaeg
Other
3.27k stars 251 forks source link

chrome inject extension tab suspender #1009

Open hurricanedjp opened 11 months ago

hurricanedjp commented 11 months ago

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 commented 11 months ago

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

hurricanedjp commented 11 months ago

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

gdh1995 commented 11 months ago

两个 tab suspender 可能互相冲突,禁用掉修改版后,原版应该就能用了。

从第一个报错图片来看,tab suspender 的代码可能有地方写死了扩展 ID。你可以试试 在修改版文件夹里搜 hlnchpd 这个 ID,改成你修改版的 fiabc 的 ID,看还报不报错。

至于 V3,有个很费事的办法,就是把 vimium c 的 content/vimium-c.js, content/injected_end.js, lib/injector.js 都复制到目标扩展里,然后手动在 HTML 里加载它们

或者你建一个 http server 也行,MV3 也允许加载来自 localhost 的 JS 文件。