如果你恰巧跟我一样开启了 Google Chrome 的自动更新,又在使用基于 KeePass 的开源桌面端 KeeWeb 以及商店配套的 KeeWeb Connect 插件,那么一定会接到这个喜报:
This extension was turned off because it is no longer supported
你无法手动再开启且只能删除,Chrome 最新版本已经完全移除了 MV2 的支持,基于 Chromium 的其它浏览器比如 Microsoft Edge 以及 Arc 等,虽然暂时保留了 MV2 插件的支持,但还是推荐尽快把旧插件升级到 V3 版本。
回归正题,既然社区一直不发布商店的 MV3 版本,那我们就开始本地构建来解决密码填充的问题。
本地构建步骤
本地需要的环境只有 Node.js,先拉取仓库:
git clone https://github.com/keeweb/keeweb-connect.git
进入根目录运行:
npm i
随后执行:
npm start
打包完成后会在 dist
目录中会输出 chrome/edge/firefox/safari 四个文件夹。
插件安装(以 Chrome 为示例)
在这里以 Chrome 为示例,列出 Mac 以及 Windows 平台的处理方式,其他浏览器和平台大同小异,具体请参考官方文档:
浏览器中打开:
chrome://extensions
右上角 Developer mode 保持打开状态,点击 Load unpacked,选中 dist
中的 chrome
目录。
随后会自动新建 TAB 跳转到该插件的 options 页面,在你 KeeWeb 桌面端解锁的情况下,你点击 Connect to KeeWeb 的按钮会一直提示:
Cannot connect to KeeWeb, please check if KeeWeb is open and browser integration is enabled in settings.
核心步骤
返回到 extensions
页面,点击该插件的详情按钮,拷贝插件 ID 的值:
Windows:
用编辑器打开:
C:\Users\用户名\AppData\Roaming\KeeWeb\native-messaging-kwc.chrome.json
Mac:
文件路径为:
~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/net.antelle.keeweb.keeweb_connect.json
上述文件的操作方式均为:
在 allowed_origins
数组中加入这么一段:
"chrome-extension://刚才拷贝的插件 ID/",
至此应该可以正常与桌面端通信进行密码填充,后续的更新可以直接 pull 并重新打包即可。