一起来聊聊 浏览器插件

193 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

前言

书接上一回,上回说到 如何写一个浏览器插件,自动收集掘金的Bug,今天来聊聊

  • 浏览器插件能干啥
  • 我用浏览器插件的初衷
  • 顺便请教个问题:浏览器插件 是不是真的不能截获 Websocket 的消息内容。有大哥能截获,我立马给他磕一个

正文

浏览器插件的作用

作用无它,方便开发,方便生活,方便摸鱼。

我想大部分人最早听说浏览器插件,应该是“油猴”吧,去广告、看视频跳过VIP,真的是上天入地,无所不能。

说白了,浏览器插件就是个前端应用。如果真的想知道到具体底能干啥,听我说不如去逛一逛 Chrome插件商店。如果你访问不了,可以来这里看看 www.extfans.com/

我为什么选择浏览器插件

我想搞一个无侵入式的可视化插件

其实对于“自动收集掘金的Bug”,自己写一个插件有点浪费表情了。

正如上篇文章有个老哥说的:“可以是可以,但重了。 建议你试试chrome插件 Automa ,我只用了几分钟就实现了你所有的功能,还带定时执行。”

老哥说的没毛病。其实更简单的方法还是直接调用掘金的api,全程服务自己跑,别说自动收集bug了,什么自动玩掘金游戏赚矿石的都有。而且 Github 上把掘金接口给你列的明明白白的,想咋搞咋搞。


言归正传。去年秋天给公司开发了个二方库,用于衔接Web前端和其他部门的服务端。

这一年下来,随着对接的前端越来越多,来找我定位问题的频率也是越来越高。

  • “哎?你这个咋登录不上了?”
  • “帮我看看这个错误码是啥意思?”
  • “为啥呼叫又不好使了?”
  • 调用你接口为什么 401 了? (我,,,大哥401是你没登录啊,这不常识么)

其中 95% 都是配置错误、参数类型传错了等等。 文档我真的都写得明明白白,但是你架不住人家不看,不愿意思考啊,出问题了找你解决多方便。


所以我想写一个浏览器插件

  1. 部分关键的文档(例如错误码)放到插件里,也包括 http 的 Status Code
  2. 通过消息抓取的形式,可视化的展示出来

浏览器插件,如何获取 Websocket 消息

  1. 我试过插件开发中的 background 和 devtools,能获取 http 的请求内容,但无法获取 websocket 的消息内容,最多也就能获取到 websocket 建立时的握手消息
  2. 我也发现了浏览器的一个实验功能 Protocol Monitor,里面能显示出 websocket 的消息内容,但是我拿不到 image.png
  3. 离目标最近的一次,我看到了神光老哥的文章,其实F12的开发者工具就是Web实现的,通过 websocket 等通信拿到数据,然后展示出来。 所以我了解到了 cdp,通过它,我可以像开发者工具一样,与chrome通信拿到数据。但这有个前提,我需要以特定的方式启动 chrome.exe,这有悖我最初的“无侵入式”的前提。

希望有大神能指点一二,感激不尽。