为 Firefox 添加 PAC 代理规则
2017-09-21 12:35 misc
Firefox 更新之后, 之前的代理扩展越来越不好用了, 索性就把它移除了, 然后用自动代理脚本来 实现智能代理和广告过滤.
但是, 找了一些资料, 关于 PAC 的具体实现, 并没有太多说明. 后来就去 firefox 源代码里面
找了找. Firefox 对 PAC 的支持是在 netwerk/base/ProxyAutoConfig.cpp
里面实现的.
有 PAC 脚本上下文里面, 插入了一些本地的辅助函数, 其中:
- alert(msg), 用来打印调试信息的, 内容会输出到 Firefox 的 Web Console 里.
- myIpAddress(),
- dnsResolve(), 用于解析 DNS 记录.
Firefox 在读取用户自己的 PAC 脚本之后, 会先声明一些别的函数, 具体放在了 sPacUtils
这个
常量里面, 可以参考附件.
另外, 过滤广告的做法也很简单, 只需要针对相应的广告域名返回一个空白的无效的代理就可以了. 与 原先的 Adblock Plus 扩展相比, 这个效率要很多了.