Beschrijving
 Gebruik de chrome.proxy API om de proxy-instellingen van Chrome te beheren. Deze API is afhankelijk van het ChromeSetting-prototype van het type API voor het ophalen en instellen van de proxyconfiguratie.
Machtigingen
proxyU moet de machtiging 'proxy' opgeven in het extensiemanifest om de API voor proxy-instellingen te kunnen gebruiken. Bijvoorbeeld:
{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}
Concepten en gebruik
 Proxy-instellingen worden gedefinieerd in een proxy.ProxyConfig -object. Afhankelijk van de proxy-instellingen van Chrome kunnen de instellingen proxy.ProxyRules of een proxy.PacScript bevatten.
Proxy-modi
 mode van een ProxyConfig-object bepaalt het algehele gedrag van Chrome met betrekking tot proxygebruik. Het kan de volgende waarden aannemen:
-  direct
-  In directmodus worden alle verbindingen rechtstreeks tot stand gebracht, zonder dat er een proxy bij betrokken is. In deze modus zijn geen verdere parameters in hetProxyConfigobject toegestaan.
-  auto_detect
-  In auto_detectmodus wordt de proxyconfiguratie bepaald door een PAC-script dat kan worden gedownload op http://wpad/wpad.dat . In deze modus zijn geen verdere parameters in hetProxyConfigobject toegestaan.
-  pac_script
-  In pac_scriptmodus wordt de proxyconfiguratie bepaald door een PAC-script dat wordt opgehaald uit de URL die is opgegeven in hetproxy.PacScript-object, of letterlijk wordt overgenomen uit hetdatadat is opgegeven in hetproxy.PacScriptobject. Daarnaast staat deze modus geen verdere parameters toe in hetProxyConfigobject.
-  fixed_servers
-  In de modus fixed_serverswordt de proxyconfiguratie gecodeerd in eenproxy.ProxyRules-object. De structuur ervan wordt beschreven in Proxyregels . Daarnaast staat defixed_serversmodus geen verdere parameters toe in hetProxyConfigobject.
-  system
-  In systemwordt de proxyconfiguratie overgenomen van het besturingssysteem. In deze modus zijn geen verdere parameters in hetProxyConfigobject toegestaan. Houd er rekening mee dat desystemanders is dan het instellen van geen proxyconfiguratie. In het laatste geval valt Chrome alleen terug op de systeeminstellingen als er geen opdrachtregelopties zijn die de proxyconfiguratie beïnvloeden.
Proxyregels
 Het proxy.ProxyRules -object kan een singleProxy kenmerk of een subset van proxyForHttp , proxyForHttps , proxyForFtp en fallbackProxy bevatten.
 In het eerste geval wordt HTTP-, HTTPS- en FTP-verkeer via de opgegeven proxyserver geproxyd. Ander verkeer wordt direct verzonden. In het laatste geval is het gedrag iets subtieler: als een proxyserver is geconfigureerd voor het HTTP-, HTTPS- of FTP-protocol, wordt het betreffende verkeer via de opgegeven server geproxyd. Als een dergelijke proxyserver niet is opgegeven of als het verkeer een ander protocol gebruikt dan HTTP, HTTPS of FTP, wordt de fallbackProxy gebruikt. Als er geen fallbackProxy is opgegeven, wordt verkeer rechtstreeks verzonden zonder een proxyserver.
Proxyserverobjecten
 Er wordt een proxyserver geconfigureerd in een proxy.ProxyServer object. De verbinding met de proxyserver (gedefinieerd door het host ) maakt gebruik van het protocol dat is gedefinieerd in het scheme . Als er geen scheme is opgegeven, wordt de proxyverbinding standaard ingesteld op http .
 Als er geen port is gedefinieerd in een proxy.ProxyServer -object, wordt de poort afgeleid van het schema. De standaardpoorten zijn:
| Schema | Haven | 
|---|---|
| http | 80 | 
| https | 443 | 
| sokken4 | 1080 | 
| sokken5 | 1080 | 
Lijst omzeilen
 Individuele servers kunnen worden uitgesloten van proxy-ondersteuning met de bypassList . Deze lijst kan de volgende vermeldingen bevatten:
-  [SCHEME://]HOST_PATTERN[:PORT]
- Zorg ervoor dat alle hostnamen overeenkomen die overeenkomen met het patroon - HOST_PATTERN. Een leidende- "."wordt geïnterpreteerd als een- "*.".- Voorbeelden: - "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".- Patroon - Wedstrijden - Komt niet overeen - ".foobar.com"- "www.foobar.com"- "foobar.com"- "*.foobar.com"- "www.foobar.com"- "foobar.com"- "foobar.com"- "foobar.com"- "www.foobar.com"- "*foobar.com"- "foobar.com",- "www.foobar.com",- "foofoobar.com"
-  [SCHEME://]IP_LITERAL[:PORT]
- Match URL's die letterlijke IP-adressen zijn. Conceptueel is dit vergelijkbaar met het eerste geval, maar met speciale gevallen om de letterlijke canonicalisering van IP af te handelen. Matchen op "[0:0:0::1]" is bijvoorbeeld hetzelfde als matchen op "[::1]", omdat de IPv6-canonicalisatie intern wordt uitgevoerd. - Voorbeelden: - 127.0.1,- [0:0::1],- [::1]:80,- https://[::1]:443
-  IP_LITERAL/PREFIX_LENGTH_IN_BITS
- Match elke URL die een letterlijk IP-adres ( - IP_LITERAL) binnen het opgegeven bereik bevat. Het IP-bereik (- PREFIX_LENGTH_IN_BITS) wordt opgegeven met behulp van de CIDR-notatie .
- Match elke URL die een letterlijk IP-adres binnen het opgegeven bereik bevat. Het IP-bereik wordt gespecificeerd met behulp van de CIDR-notatie. Voorbeelden: - "192.168.1.1/16", "fefe:13::abc/33"
-  <local>
- De letterlijke tekenreeks - <local>komt overeen met eenvoudige hostnamen. Een eenvoudige hostnaam is een hostnaam die geen punten bevat en geen IP-letterlijk is.- exampleen- localhostzijn bijvoorbeeld eenvoudige hostnamen, terwijl- example.com- example., en- [::1]zijn dat niet.- Voorbeeld: - "<local>"
Voorbeelden
De volgende code stelt een SOCKS 5-proxy in voor HTTP-verbindingen met alle servers behalve foobar.com en gebruikt directe verbindingen voor alle andere protocollen. De instellingen zijn van toepassing op gewone en incognitovensters, omdat incognitovensters de instellingen overnemen van gewone vensters. Zie ook de Types API- documentatie.
var config = {
  mode: "fixed_servers",
  rules: {
    proxyForHttp: {
      scheme: "socks5",
      host: "1.2.3.4"
    },
    bypassList: ["foobar.com"]
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);
Met de volgende code wordt een aangepast PAC-script ingesteld.
var config = {
  mode: "pac_script",
  pacScript: {
    data: "function FindProxyForURL(url, host) {\n" +
          "  if (host == 'foobar.com')\n" +
          "    return 'PROXY blackhole:80';\n" +
          "  return 'DIRECT';\n" +
          "}"
  }
};
chrome.proxy.settings.set(
  {value: config, scope: 'regular'},
  function() {}
);
Het volgende fragment vraagt naar de huidige effectieve proxy-instellingen. De effectieve proxy-instellingen kunnen worden bepaald door een andere extensie of door een beleid. Zie de Types API- documentatie voor meer informatie.
chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);
 Houd er rekening mee dat het value dat wordt doorgegeven aan set() niet identiek is aan het value dat wordt doorgegeven aan de callback-functie van get() . Deze laatste bevat een element rules.proxyForHttp.port .
Soorten
Mode
Enum
 "direct"   "auto_detect"   "pac_script"   "vaste_servers"   "systeem" 
PacScript
Een object dat proxy-autoconfiguratie-informatie bevat. Precies één van de velden mag niet leeg zijn.
Eigenschappen
- gegevenstekenreeks optioneel Een PAC-script. 
- verplichtBooleaans optioneel Indien waar, zal een ongeldig PAC-script voorkomen dat de netwerkstack terugvalt naar directe verbindingen. Standaard ingesteld op false. 
- URLtekenreeks optioneel URL van het te gebruiken PAC-bestand. 
ProxyConfig
Een object dat een volledige proxyconfiguratie inkapselt.
Eigenschappen
- modus'direct' = Gebruik nooit een proxy 'auto_detect' = Proxy-instellingen automatisch detecteren 'pac_script' = Gebruik het opgegeven PAC-script 'fixed_servers' = Specificeer handmatig proxyservers 'system' = Gebruik systeemproxy-instellingen 
- pacScriptPacScript optioneel Het proxy auto-config (PAC)-script voor deze configuratie. Gebruik dit voor de 'pac_script'-modus. 
- regelsProxyRules optioneel De proxyregels die deze configuratie beschrijven. Gebruik dit voor de 'fixed_servers'-modus. 
ProxyRules
Een object dat de set proxyregels voor alle protocollen inkapselt. Gebruik 'singleProxy' of (een subset van) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' en 'fallbackProxy'.
Eigenschappen
- bypassLijsttekenreeks[] optioneel Lijst met servers waarmee u verbinding kunt maken zonder een proxyserver. 
- fallbackProxyProxyServer optioneel De proxyserver die voor al het andere moet worden gebruikt of als een van de specifieke proxyFor... niet is opgegeven. 
- proxyForFtpProxyServer optioneel De proxyserver die moet worden gebruikt voor FTP-verzoeken. 
- proxyForHttpProxyServer optioneel De proxyserver die moet worden gebruikt voor HTTP-aanvragen. 
- proxyForHttpsProxyServer optioneel De proxyserver die moet worden gebruikt voor HTTPS-verzoeken. 
- enkeleProxyProxyServer optioneel De proxyserver die moet worden gebruikt voor alle verzoeken per URL (dat wil zeggen http, https en ftp). 
ProxyServer
Een object dat de specificatie van een enkele proxyserver inkapselt.
Eigenschappen
- gastheersnaar De hostnaam of het IP-adres van de proxyserver. Hostnamen moeten in ASCII zijn (in Punycode-indeling). IDNA wordt nog niet ondersteund. 
- havennummer optioneel De poort van de proxyserver. Standaard ingesteld op een poort die afhankelijk is van het schema. 
- schemaSchema optioneel Het schema (protocol) van de proxyserver zelf. Standaard ingesteld op 'http'. 
Scheme
Enum
 "http"   "https"   "snel"   "sokken4"   "sokken5" 
Eigenschappen
settings
Proxy-instellingen die moeten worden gebruikt. De waarde van deze instelling is een ProxyConfig-object.
Type
Evenementen
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
Waarschuwt over proxyfouten.
Parameters
- terugbellenfunctie De callbackparameter ziet er als volgt uit:(details: object) => void - detailsvoorwerp - detailssnaar Aanvullende details over de fout, zoals een JavaScript-runtimefout. 
- foutsnaar De foutbeschrijving. 
- fataalBooleaans Indien waar, was de fout fataal en werd de netwerktransactie afgebroken. Anders wordt in plaats daarvan een directe verbinding gebruikt.