全面迁移到微软Edge

因为公司IT全面推广微软的New Edge,我也得以顺便了解了下,过程中,就像我偶尔发过的几次感慨,微软这次,实在是太放得下身段了;为了能够最大程度的吸收Chrome的用户群体和踏上当前主要方向,它硬是把自己的下一代浏览器做成了当年国内一众Chromium换皮产品的兼容程度,这实在是让我作为chrome的重度用户狂喜不已。

简单说,Edge可以毫无障碍的直接安装chrome的扩展,而其对于chrome的扩展API的支持,也是非常彻底。彻底到什么程度呢?就是作为开发者去移植的时候,就代码本身几乎一行不改。需要改的部分,当然也有,这个不妨留在后面再说。

为什么要换Edge

毕竟是十多年一见的选择变化,就像以前我从火狐跳Chrome一样,值得稍微写一点。

对于中重度用户,要换浏览器,首先要解决扩展的问题,也是可以直接用Edge在Chrome的store直接安装扩展的,这点,我觉得Google一定也是吃了苍蝇一样难受吧;而Edge针对Chrome来说的优点也很是明显:

  • Edge和微软本身其他服务的整合程度:特别是考虑到这几年微软转型成功,自己的Office、onedriver等等服务给人的观感和早年真的是大不相同,更不用说在企业办公这块microsoft exchange这块对邮件服务的压倒性优势;

  • (尤其这点)相比于中国国内用户在Google Service上各种被动被堵的糟心体验来说,微软的云服务虽然有时候也有着网速不稳定的时候,但是终究有着质的区别;除了官方扩展库的内容还没有达到google的水准,尚需要去隔壁蹭一蹭之外,其余并没有什么明显不足;

  • 微软自身的一些小改进,比如集锦啊,主观上更让我喜欢的统一UI风格啊都体现出大公司的水平;但是我要特别一提的是,依靠Edge和Win10的家庭控制功能的完美整合,对于家里有熊孩子的家庭来说,实在是太方便了:屏幕时长控制、应用记录等等这些都是常规操作了,就连浏览器搜索历史纪录也可以云端汇总,不受本地控制的影响。不要怪杀鸡用牛刀,实在是时代的进步对家长提出了更高的要求(吧?)

对于普通用户

所以,作为用户,我果断的跳了船,直接把缺省浏览器设置成为了Edge,然后试着扫了一圈现有扩展的Edge官方版本,试图全部都替换掉。因为,虽然chrome store的也可以安装,但是这些扩展是无法通过Edge自己同步安装的,这已经有点体验不佳了,而对于国内用户,更要命的是脱离了VPN,就连安装也麻烦,所以,既然船都跳了,自然要一下跳到位。幸运的是,大部分的重要扩展,已经在微软的商店里有了,少数的,也不是不能忍(或者继续用Google Store的顶着);

当然,最重要的动作之一,就是要及时登陆微软账号,特别是Windows用户,微软全家桶先入坑了。

对于开发者

然后,对我自己少数自用自开发的扩展,一方面是因为作为开发者,各种维护也离不开VPN,终究不方便;另一方面是,Google渐渐收严的一些API的Policy和变化不断却越来越让我吐槽的开发者中心,早让我有了‘贰心’。这次终于让我有兴趣认真的移植了。

微软开发者中心 入口在此,就相当于google的开发者信息中心(Dashboard),如果是Google Chrome扩展开发者,一定不会陌生,操作上其实没有任何复杂的,姑且列一下自己的几个感受:

  1. 在传包逻辑上,微软要聪明一点,不像Google(最近不知道是不是已经改进了),即使还没有提交,但是两次上传压缩包的版本号如果相同,就会报错被拒。这个愚蠢的设定,导致我从前不知道传过多少毫无意义的小版本,改了多少次Manifest;而Edge这边,只要没有提交审核,版本号是可以重复的;

  2. 设计一些认证,特别是Oauth2类的有回调地址之类的应用,是需要针对APP/Extension在不同的平台上被分配的appid调整的,如果跨浏览器移植,记得在代码里识别对应不同的id来设置不同的security id和client id(也是主要针对Oauth2);

  3. 除了上面这点,目前我没有发现什么需要改的,但是Manifest和提交界面的那些描述中,不能‘Promote other browsers’,简单说,记得把以前Google Store的那些链接和描述也‘一致’移植成微软的,否则会被拒;

  4. 微软对于Privacy Info这块看的特别严,虽然在提交的界面说了,可以选择‘No’来声明并未收集用户个人数据从而不强制提供所谓的‘Privacy Policy Statement’的链接页面信息,但是实测没用;我半年前试图提交时,做了各种努力在提交信息中反复强调我的扩展并没有任何隐私数据或者用户信息收集,但是却一次次收到了系统拒信。直到最近我下决心搞清楚到底怎样才能过审才发现,还是不如直接提交一个Privacy Info Url算了,方法可以参考:

    • 我在github上看到了有一位设计者,也是同样遭遇之后,在扩展中,提交了一个privacy.md的文件,在里面简单大写强调‘本程序不做任何个人信息收集’,然后直接把privacy info url填了privacy.md;或者
    • 像我一样,干脆点就写一个在线页面 ,这样算是一了百了,至于内容,做戏做全套,我找了个模板,然后半搞笑的把所有章节都填了。之后
    • 事实证明,第一种方法,有概率成功,取决于不同审核人的个人理解; 第二种方法,全部成功,应该算是相当正式,无懈可击的解法了。

这样一来,总算是把平台迁移成功了,唯一还要预警一下的是,微软的扩展审核的速度和当年Google早期比起来还是差了很远的,虽然有快有慢,但是基本预期大概是两个工作日左右;比起Mozzila那边动辄一周当然好很多,但是我依然怀念以前Google那种恨不得所见即所得的高效(或者说不加管控?)时代——虽然,现在Google那边现在的速度估计也差不多和微软差不多了,算是野蛮生长时期的特殊吧。

(另一个小吐槽,微软的dashboard用的前端技术有点小小的不讲究。点进某一个扩展之后,应该是后台在获取服务器的数据,但是并没有明显的指示让用户知道此时其实页面还没准备好,反而是会停留在前一次访问的其他的扩展管理页面,导致我困惑了好久以为是个Bug,反复的后退、点击、刷新、后退,直到最后发现你必须要耐心等待页面自己刷新好,这么低级的问题,只能说前端开发和后端服务器测试的时候网络很好,而且也没考虑到大lag的情况,对于微软这个级别的玩家,有点意外。不过到底只是Beta)。

28 Jun 2020 , 写毕。