如何从chrome扩展获取系统代理设置?

时间:2017-02-16 14:05:56

标签: google-chrome-extension proxy

我需要为Chrome扩展程序设置自定义代理设置,以便特定域的流量通过代理服务器,而所有其他(用户)流量通常使用默认系统设置。根据chrome API文档,唯一的方法是使用pac_script(如果我错了,请纠正我)。因此,代码将是这样的:

var config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n" +
    "  if (dnsDomainIs(host, 'mydomain.com') )\n" +
    "    return 'SOCKS5 10.0.0.1:1234';\n" +
    "  return 'DIRECT';\n" +
    "}"
}};
chrome.proxy.settings.set({value: config, scope: 'regular'});

但是,pac_script没有使用系统代理设置路由流量的选项(只有' DIRECT'这意味着它将跳过系统设置)。我想使用chrome.proxy.settings.get获取系统代理设置,但是此函数返回一个mode = system没有有用信息的对象。

有谁知道如何从扩展程序获取系统代理设置?或者有处理原始问题的建议?

1 个答案:

答案 0 :(得分:0)

你可以用

获得它
chrome.proxy.settings.get(
      {'incognito': false},
      function(config) {
          console.log(JSON.stringify(config));
      });

它应该显示如下:

{
  "levelOfControl":"controlled_by_this_extension",
  "value":
   {
    "mode":"pac_script",
    "pacScript": {
                   "data": "function FindProxyForURL(url, host) {\n     
                               return \"PROXY 10.0.0.1:1234;\";\n}",
                   "mandatory": false
     }
    }
}

阅读文档以获取更详细的信息 https://developer.chrome.com/extensions/proxy