Mozilla

火狐社区

登录    注册

QQ互联

通过mac mobileconfig安装的扩展升级问题

Builder 社区新人 发表于 2020-2-24 15:18:03 | 只看该作者 [复制链接] 打印 上一主题 下一主题
7 5948
跳转到指定楼层
plist文件配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>EnterprisePoliciesEnabled</key>
    <true/>
    <key>ExtensionUpdate</key>
    <false/>
    <key>DisablePrivateBrowsing</key>
    <true/>
    <key>InstallAddonsPermission</key>
    <dict>
        <key>Default</key>
        <true/>
    </dict>
    <key>Extensions</key>
    <dict>
        <key>Install</key>
        <array>
            <string>http://127.0.0.1/firefox/test.xpi</string>
        </array>
        <key>Locked</key>
        <array>
            <string>test111@qq.com</string>
        </array>
        <key>Uninstall</key>
        <array>
            <string>test111@qq.com</string>
        </array>
    </dict>
</dict>
</plist>


目前遇到的问题是:只要不修改Install中的url字符串,就无法重新安装或者升级相同ID的插件。进一步跟踪发现该url被保存在了prefs.js中的browser.policies.runOncePerModification.extensionsInstall配置项,只有当plist中的url与prefs.js的runOncePerModification配置项不相等时才会更新扩展,而不是根据扩展manifest.json中的version进行判断。这样就会导致当用户手动删除了扩展,由于prefs.js中的配置项url没有被清空的原因,只要plist中的url不变就永远装不上或者更新该扩展了。

最后搜了一下官方的buglist,果然发现了相关bug描述:bugId=1495749 [链接] 。根据bug修改的建议,只需要在plist文件的Extensions中添加Uninstall并指明扩展的id列表,就可以每次运行firefox时先卸载Uninstall中指定id的扩展,再安装Install中指定url的扩展。并且还提到了在windows下已经进行了验证:This is verified fixed using Firefox 64.0b10 (BuildId:20181115150739) on Windows 10 64bit.


但是我在mac环境下(firefox版本73.0.1 64bit)并没有测试成功,难道mac环境下的firefox仍然没有同步修复该bug?






xuyuehang 千年狐妖
沙发
发表于 2020-2-25 11:58:53 | 只看该作者
我认为这个bug已经修复了,你重新安装的错误是什么,应该是其他问题导致
Builder 社区新人
板凳
发表于 2020-2-25 14:38:33 | 只看该作者
双击mobileconfig配置文件重新安装(install url没有改变,但指向的xpi文件已经升级了),firefox重启,仍然是原有的扩展在生效
Builder 社区新人
地板
发表于 2020-2-25 14:45:52 | 只看该作者
重装后,旧的插件仍然生效,firefox能正常运行,没有明显的错误提示。
Builder 社区新人
5#
发表于 2020-2-25 15:28:07 | 只看该作者
我再次在一台干净的虚拟机上进行了测试:
环境:
macos 10.15
firefox 73.0.1 (64 bit)
步骤:
1. 安装mobileconfig->重启firefox->webservice后台有xpi下载请求->xpi 3.5.1正常运行。
2. 将后台的xpi 3.5.2修改为xpi 3.5.1,确保url不变的情况下,将xpi进行升级
3. 重启firefox(或者重新安装mobileconfig再重启)->webservice后台没有xpi的下载请求->firefox中的3.5.1(正常应该是3.5.2)正常运行。

初步怀疑是Uninstall失败了,导致reinstall没生效,请问怎么查看扩展的log?
xuyuehang 千年狐妖
6#
发表于 2020-2-26 16:11:59 | 只看该作者
Builder 发表于 2020-2-25 15:28
我再次在一台干净的虚拟机上进行了测试:
环境:
macos 10.15



开发者选项里启用附加组件调试,然后在浏览器控制台可以看到。
扩展本身的升级正常么,理论上,你在服务器部署后扩展可以自身检测到升级吧


Builder 社区新人
7#
发表于 2020-2-26 16:34:15 | 只看该作者
xuyuehang 发表于 2020-2-26 16:11
开发者选项里启用附加组件调试,然后在浏览器控制台可以看到。
扩展本身的升级正常么,理论上,你在服 ...

启用了这个调试功能,但不知道怎么通过 mobileconfig 重新 reinstall 扩展,目前我只知道重启firefox,但是一旦重启firefox就无法在控制台上看到扩展的uninstall 和install过程。

另外,服务器是我自己的本地测试服务器,还是一样的效果:install url不变的话,服务器端没有收到xpi下载的请求。
Builder 社区新人
8#
发表于 2020-2-26 16:44:03 | 只看该作者
目前没有在扩展内部集成升级功能,我们希望通过只修改xpi文件,install url不变的情况下,重新运行相同的mobilecnnfig配置实现升级,firefox能做到吧? chrome是完全可以的,而且更进了一步:卸载mobileconfig时能将扩展完全删除。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表