一些开发 Chrome 扩展的槽点和 发布到 Chrome 扩展商店的要点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
gzlock

一些开发 Chrome 扩展的槽点和 发布到 Chrome 扩展商店的要点

  •  
  •   gzlock Aug 27, 2019 1920 views
    This topic created in 2438 days ago, the information mentioned may be changed or developed.

    屏幕快照 2019-08-27 15.37.43.png

    前情提要:第一次开发 Chrome 扩展,需要宽泛网域权限和 Cookies 切换功能,商店链接 | 介绍扩展的帖子 | 源码

    ps:

    • 扩展的所有 UI 都改为使用 element-ui 了(如上图),那个介绍的帖子是老版本了

    • 英文水平有限,英文内容都很渣

    • 第一次开发扩展,本帖的内容有可能是不正确的,仅作为参考

    印象最深刻的两个坑:

    1. chrome.cookies.set

      当浏览器第一次启动,我的扩展将用户保存的 cookies 回填到 Chrome 必须要用到的一个接口

      当需要一次填入很多 cookies 的时候,这个接口就丢链子了

      表现在每次冷启动浏览器后极大几率只会填入 6 个网站的 cookies,清空浏览器 cookies 后禁用再启用扩展反而可以成功回填所有 cookies

      后来用async 的 queue队列解决了,代码在这

      ~~队列 自己写是不可能的,这辈子都不可能自己写的亚子~~

    2. chrome.contextMenus,网页右键菜单,文档

      没有原生的 event 通知扩展在显示右键菜单前更新网页菜单

      这样造成的问题是,只有两个方法通知扩展更新网页菜单

      • 使用 content-script,将代码注入网页绑定菜单事件,通知扩展更新菜单内容,相关的问答

      (我很抗拒注入代码,因为网页原本的内容可能会导致注入的代码失效,存在不确定性)

      • 我正在使用的方法,使用 chrome.tabs 的一些 event 去更新菜单项目,代码在这

      这个方法有一个问题:一个 tab 从创建到关闭,用户可能都不会去使用右键菜单,这就很浪费了

      所以 Chrome 应该设立一个原生的 event 例如 chrome.contextMenus.onBeforeDisplay 之类的,通知扩展更新菜单项目就完美了

    上架 Chrome 扩展商店的一些要点

    1. 涉及敏感数据的权限(例如 cookies,宽泛网域),扩展要带隐私说明,并且要在安装扩展后在用户使用扩展前让用户看到

      • 曾经只在商店说明放上了 github 仓库的隐私说明,通过审核后一天被下架
      • 然后想办法在扩展的 options,popup 页面展示隐私说明入口,同意隐私说明后才能使用扩展,通过审核
    2. 使用宽泛网域权限的扩展,审核时间会很长,长达几天。

      所以应该所有功能都测试成功后再上架,不然看到不完善的扩展版本挂在商店上会很痛苦。

    3. 针对宽泛网域权限,有个替代功能叫 optional_permissions,不过每个新域名都要弹一次询问,这就很烦人了

    4 replies    2019-08-28 02:06:18 +08:00
    gzlock
        1
    gzlock  
    OP
       Aug 27, 2019
    @livid markdown 的删除线格式失效了
    mara1
        2
    mara1  
       Aug 27, 2019
    上架扩展,审核要多久,我上周放上去了个,到今天 4 个工作日了还是待审核
    gzlock
        3
    gzlock  
    OP
       Aug 27, 2019
    @mara1 #2 可以配合 github 项目的最后 commit 时间来观察,这次我这个扩展的审核时间花了 6 天
    Livid
        4
    Livid  
    MOD
    PRO
       Aug 28, 2019
    @gzlock 我们应该是从来没有支持过 strikethrough
    About     Help     Advertise     Blog     API     FAQ     Solana     835 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 21:50 PVG 05:50 LAX 14:50 JFK 17:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86