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

时间:2017-05-03 04:30:20

标签: 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() {});

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

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

1 个答案:

答案 0 :(得分:1)

根据documentation,您只能拥有:

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

但你不能同时拥有两者或两者。

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

TL; DR:如果您不想更改用户的其他代理设置,则无法实现。