虽然ScriptCat的Vscode远程开发体验好
但是Tampermonkey一如往常的烂
加上最近比较无聊,决定探索一下Tampermonkey的实现方案
不确定最后能不能真的实现
正文
首先确定了Tampermonkey的脚本存储数据在
C:\Users\用户\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\dhdgffkkebhmkfjojejmpbldmpobfkfo
使用的是levelDB数据库,但是这种数据库有系统级的进程锁
在谷歌浏览器运行期间我们无法写入,同时可能存在其他的缓存等问题
经过研究这条路是走不通了
插件的源码路径在
C:\Users\用户\AppData\Local\Google\Chrome\User Data\Default\Extensions\dhdgffkkebhmkfjojejmpbldmpobfkfo\5.1.0_0
经过尝试一旦尝试修改代码就会破坏完整性从而导致重新下载,那么这条路也走不通了
在确定levelDB存在锁,那唯一的途径就是魔改插件代码了,但是Chrome又有完整性校验,所以我们只能考虑通过开发者模式手动加载我们自己的修改版代码,同时又不想污染用户原本的数据
再三选择最后想通过puppeteer来进行开发
const puppeteer = require("puppeteer");
const crxBase = path.join(__dirname, "./tampermonkey_crx");
const path = require("path");
async function openBroswer() {
const pathToExtension = crxBase;
const browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
});
}
然后尝试在background.jd中加一个alert,尝试启动发现可以正常执行我们的修改版代码
Next....