让其他扩展程序处理代理服务器设置

iml*_*esh 13 javascript google-chrome google-chrome-extension

我需要为一组特定的网址设置代理.该chrome.proxy放行旁通列表,但不是一个白名单(模式只让通过代理某些请求).

以下代码适用于我的情况(使用pac脚本):

var config = {
    mode: "pac_script",
    pacScript: {
        data: "function FindProxyForURL(url, host) { if (shExpMatch(url, '*get_with_proxy*')) return 'PROXY 127.0.0.1:8888'; return DIRECT }"
    }
};
chrome.proxy.settings.set({ value: config, scope: 'regular' },
    function() {});
Run Code Online (Sandbox Code Playgroud)

但问题是,我的很多用户使用其他扩展程序,如Proxy Sharp或Omega Proxy来处理他们的代理需求.如果我使用上面的代码,当他们尝试更改这些其他扩展中的选项时,他们会看到"另一个扩展正在处理代理设置".

由于我只需要几个网址来通过代理,有没有办法我可以让其他扩展处理非匹配网址的代理设置?

小智 1

根据文档,您只能拥有:

  • 个人固定代理服务器
  • 处理使用哪个代理的 PacScript

但你不能同时拥有两者或其中的多个。

您最好的选择是尝试成为配置代理的最后一个扩展,获取代理设置并尝试将它们全部转换为单个 PacScript 代理。

TL;DR:如果您不想更改用户的其他代理设置,这是不可能的。