我正在尝试在 Chromium 浏览器和两台 Windows 7 PC 之间同步扩展。
- Windows 7 PC x2
- Chromium 版本 50.0.2626.0
到目前为止,我已经下载了 Chromium 安装程序从这里。我已在两台电脑上安装了此程序,并以 Google 用户身份登录。这是全新安装,因此没有书签或收藏夹。作为测试,我在 PC1 上创建了两个书签文件夹,它们在两台电脑之间同步 - 几秒钟后我可以看到它们出现在 PC2 上。
然后我安装了一个解压扩展PC1 上有扩展,但 PC2 上从未出现过。我进入设置 > 扩展 > 选中“开发者模式”并单击“立即更新扩展” - 没有任何反应。
我迄今已尝试过的事情;
- 退出/登录浏览器
- 重启浏览器
- 清除浏览器缓存/历史记录/设置
- 从两个浏览器断开/重新连接我的 Google 帐户
- 重启两台电脑
- 在两台电脑上卸载/重新安装 CHromium
- 等了 15 分钟(认为同步可能有延迟)
- 在 Ubuntu 14.04 中尝试了同样的过程
当我从 Chrome Web Store 安装“普通”扩展程序时,它们会正常显示和同步。那么未打包的扩展程序有什么问题呢?我点击“加载未打包的扩展程序”,浏览到(已解压)文件夹,然后导入。扩展程序出现在 PC1 上,但绝不在 PC2 上。
我有许多需要同步的未打包的扩展程序。
如果有帮助的话,我已经附加了一些我的设置的图像。
关于我还能做什么或检查什么,还有什么想法吗?
答案1
是的,我同意 JasonSec 的观点。同步不适用于未打包的扩展,因为它们是在本地加载的。而重新加载选项只是从硬盘重新加载扩展。
我不知道它是否符合您的需要,但您始终可以使用远程文件而不是本地文件(js html 等)。
例如:
清单.json:
"content_scripts": [{
"matches": ["https://www.site2rumyourextension.com/*"],
"js": ["jquery-2.1.4.min.js", "YourJS.js"],
"run_at": "document_end"
}],
你的JS.js:
var imported = document.createElement('script');
imported.src = 'https://code.yourdomain.com/yourAllwaysUpdatedJS.js';
document.head.appendChild(imported);
这样,您无需重新加载即可更新扩展代码,或者在所有浏览器中同步它!
注意:我不确定您是否可以将在线 js url 直接放在清单上,但这种方式肯定有效。
答案2
OP 通过本地驱动器加载了解压的扩展,但谷歌不会跟踪该扩展,因此不会同步。谷歌只同步网络商店扩展,这就是同步功能不起作用的原因。