关于插件双系统发展的规划.md 4.0 KB

目前现状

  • windows和uos目前浏览器技术方案是不一样的,所以对于插件而言,实际也是不同的实现。
  • windows是通过cefclient直接修改header,所以所有流量都有header数据。
  • uos使用的标准chrome extension
  • 所以两个平台是不统一,实现是割裂的。

根本原因

  • 当前生产上的windows存在大量的windows8 32位系统
    • win8系统最新能够支持最新的cef版本为-日期:Sep 2020 |版本:4240 |具体信息:86 86 Win 7+, VS2017 15.7.1+, Win 10.0.19041 SDK, Ninja
    • 终端当前使用的版本为81.0.4044
    • 而该版本不适配chrome extension的方式
  • 后续cef版本是支持chrome extension的,但是由于操作系统限制,无法直接替换。

其他影响因素

  • C++弹窗解决。
    • 调试发现,最终为联软载入程序引发的错误
    • 也尝试过无任何改动的cefclient和高版本的cefclient,一样会有这个弹框
    • 弹框时间不固定。
    • 猜测为hook的时间不一致。
    • 非程序内错误,不影响页面的加载和使用。。也不会造成程序崩溃。。就是弹框影响美观和使用。
  • 搜狗输入法适配

想要解决的问题

  • 需要确定插件部分后续的发展方向
  • 想要解决当前cef使用上的其他问题

解决方案对比

解决方案 双系统不同实现方案 windows更换为360 只支持UOS
方案简述 1、windows采用原生win的gui来模拟插件窗口实现。
如,确认/取消弹窗,状态栏展示等。
2、UOS继续使用插件来实现。
win和uos都使用chrome extension插件 因目前只采购uos机器,后续windows不支持其他的插件的功能
优点 与目前双系统方案一致 (1)只需开发一次插件,减少工作量,插件运行行为保持一致性。
(2)能够解决C++弹框问题
(1)只开发UOS插件
(2)Windows部分与目前保持一致
缺点 (1)就插件这一部分,需要不同的实现方案。
(2)就浏览器运行参数和行为,会有不统一,需要两边都重新适配,增加开发量
(3)无法解决C++弹窗问题(可能得通过别的方式解决)
(1)当前webRTC部分向UOS靠拢,也会有UOS部分chrome权限的问题。
不过随UOS部分的解决也一样会解决windows问题。
(2)需验证搜狗输入法在360上的效果。
(1)Windows无法使用其他插件。