
Chrome Extension 技术开发
文章平均质量分 84
公司已经上架不下雨上百个谷歌扩展,这里我将所有的谷歌扩展开发的技术都汇总起来形成系统性的教程,帮助想要开发谷歌扩展的开发者更快地开发出复杂的谷歌插件,涉及插件基础知识,JS 打包,逆向,hook 等各种各样的知识
森叶
多年谷歌插件开发、Electron 客户端开发经历 偏前端全栈开发工程师 熟练使用PHP、Python、Javascript、Java 四种语言
王森出品 必属精品
展开
-
【含代码】逆向获取 webpack chunk 下的__webpack_require__ 函数,获悉所有的模块以及模块下的函数
Webpack 打包后的代码是不会直接暴露 __webpack_require__ 函数,目的是为了避免污染全局变量同时也为了保护 webpack 的打包后的模块都隐藏在闭包函数里,达到数据的安全性。而有时我们为了测试某个函数,想直接获取这个内置函数,同时保证这个内置函数能使用其所带的上下文,若单独构建这个函数,创建上下文,难度非常之大,因为这个函数的上下文都在闭包函数里。而__webpack_require__.m 则可以提取所有的模块,所以拿到 __webpack_require__ 是关键。原创 2025-01-21 18:36:11 · 1612 阅读 · 0 评论 -
Webpack 5 混淆插件terser-webpack-plugin生命周期作用时机和使用注意事项
Terser(简要的/简短的) 混淆依据混淆是发生在代码已经 bundle 之后的事情变量或者函数在被引用或赋值时才能被混淆孤立的函数或者变量可能会被移除,但不会被混淆,要通过显式地引用原创 2025-01-14 19:10:37 · 971 阅读 · 0 评论 -
git flow 相关知识 & git rebase 与 merge 合并差异比较
Rebase 冲突:发生在每个提交应用到目标分支的过程中,冲突粒度较小但可能多次出现。Merge 冲突:发生在两个分支合并的整体过程中,冲突粒度较大但只出现一次。两者的冲突处理并没有本质的优劣,关键是根据场景选择合适的合并策略:选择 Rebase:当需要整理历史、保持线性记录时。选择 Merge:当需要保留分支结构、避免篡改历史时。原创 2024-11-25 12:24:02 · 1155 阅读 · 0 评论 -
谷歌插件中级开发程序员必记手册-开发效率/框架介绍/通信/存储/注入脚本生命周期等
这内容适合有一定开发经验的看,主要介绍一些提高开发效率的方式方法,内容很干,需要自己用谷歌去泡开食用消化。原创 2024-07-15 15:33:46 · 752 阅读 · 0 评论 -
关于FingerprintJS生成浏览器指纹UUID,同一浏览器多开下UUID不同造成的问题
实际使用FJ生成指纹ID时发现在同一浏览器多开下,不知道谷歌浏览器多开的,就不要往下看了,没啥意义,就会生成不同的UUID,这和我们的预期不太一样,我们就是为了针对某一个设备而进行的限制,估计没有做多开的连这个问题都没有发现。FJ的组件颗粒度太细,比如谷歌插件的多少也算在里面,多开环境下,每个浏览器安装的插件也可能各不相同,FJ也意识到这个问题,所以允许用户排除一些组件,来降低uuid的唯一性变化。每个人都应该自行探索以下,所以这里并不给出完整版代码,只给出最核心的逻辑,其余大家自行尝试。原创 2024-06-06 10:54:44 · 2235 阅读 · 4 评论