از chrome.proxy API برای مدیریت تنظیمات پروکسی Chrome استفاده کنید. این API برای دریافت و تنظیم پیکربندی پروکسی به نمونه اولیه ChromeSetting از نوع API متکی است.
proxy
برای استفاده از API تنظیمات پروکسی، باید مجوز «پراکسی» را در مانیفست افزونه اعلام کنید. به عنوان مثال:
{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}
 تنظیمات پروکسی در یک شیء proxy.ProxyConfig تعریف شده است. بسته به تنظیمات پروکسی Chrome، تنظیمات ممکن است حاوی proxy.ProxyRules یا یک proxy.PacScript باشد.
 ویژگی mode شیء ProxyConfig رفتار کلی Chrome را در رابطه با استفاده از پروکسی تعیین می کند. می تواند مقادیر زیر را بگیرد:
-  direct
-  در حالت directهمه اتصالات به طور مستقیم و بدون هیچ پروکسی ایجاد می شوند. این حالت هیچ پارامتر دیگری را در شیءProxyConfigاجازه نمی دهد.
-  auto_detect
-  در حالت auto_detect، پیکربندی پراکسی توسط یک اسکریپت PAC تعیین میشود که میتواند در http://wpad/wpad.dat دانلود شود. این حالت هیچ پارامتر دیگری را در شیءProxyConfigاجازه نمی دهد.
-  pac_script
-  در حالت pac_script، پیکربندی پروکسی توسط یک اسکریپت PAC تعیین میشود که یا از URL مشخص شده در شیءproxy.PacScriptبازیابی میشود یا به معنای واقعی کلمه از عنصرdataمشخص شده در شیءproxy.PacScriptگرفته شده است. علاوه بر این، این حالت هیچ پارامتر دیگری را در شیءProxyConfigاجازه نمی دهد.
-  fixed_servers
-  در حالت fixed_servers، پیکربندی پروکسی در یک شیءproxy.ProxyRulesکدگذاری می شود. ساختار آن در قوانین پروکسی توضیح داده شده است. علاوه بر این، حالتfixed_serversاجازه هیچ پارامتر دیگری را در شیءProxyConfigنمی دهد.
-  system
-  در حالت system، پیکربندی پروکسی از سیستم عامل گرفته شده است. این حالت هیچ پارامتر دیگری را در شیءProxyConfigاجازه نمی دهد. توجه داشته باشید که حالتsystemبا تنظیم بدون پیکربندی پروکسی متفاوت است. در مورد دوم، کروم تنها در صورتی به تنظیمات سیستم بازمی گردد که هیچ گزینه خط فرمانی بر پیکربندی پراکسی تأثیری نداشته باشد.
 شیء proxy.ProxyRules می تواند شامل یک ویژگی singleProxy یا زیر مجموعه ای از proxyForHttp ، proxyForHttps ، proxyForFtp و fallbackProxy باشد.
 در حالت اول، ترافیک HTTP، HTTPS و FTP از طریق سرور پراکسی مشخص شده پروکسی می شود. سایر ترافیک ها مستقیما ارسال می شود. در مورد دوم، رفتار کمی ظریفتر است: اگر یک سرور پراکسی برای پروتکل HTTP، HTTPS یا FTP پیکربندی شده باشد، ترافیک مربوطه از طریق سرور مشخص شده پراکسی میشود. اگر چنین سرور پراکسی مشخص نشده باشد یا ترافیک از پروتکلی متفاوت از HTTP، HTTPS یا FTP استفاده کند، از fallbackProxy استفاده می شود. اگر fallbackProxy مشخص نشده باشد، ترافیک مستقیماً بدون سرور پراکسی ارسال می شود.
 یک سرور پراکسی در یک شیء proxy.ProxyServer پیکربندی شده است. اتصال به سرور پروکسی (تعریف شده توسط ویژگی host ) از پروتکل تعریف شده در ویژگی scheme استفاده می کند. اگر هیچ scheme مشخص نشده باشد، اتصال پراکسی به طور پیشفرض روی http است.
 اگر هیچ port در یک شیء proxy.ProxyServer تعریف نشده باشد، پورت از طرح مشتق شده است. پورت های پیش فرض عبارتند از:
| طرح | بندر | 
|---|---|
| http | 80 | 
| https | 443 | 
| جوراب 4 | 1080 | 
| جوراب 5 | 1080 | 
 سرورهای فردی ممکن است از پروکسی شدن با bypassList مستثنی شوند. این لیست ممکن است شامل ورودی های زیر باشد:
-  [SCHEME://]HOST_PATTERN[:PORT]
- همه نامهای میزبانی را که با الگوی - HOST_PATTERNمطابقت دارند مطابقت دهید. پیشرو- "."به عنوان- "*.".- مثالها: - "foobar.com", "*foobar.com", "*.foobar.com", "*foobar.com:99", "https://x.*.y.com:99".- الگو - مسابقات - مطابقت ندارد - ".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]
- نشانیهای اینترنتی را که به معنای واقعی کلمه آدرس IP هستند مطابقت دهید. از نظر مفهومی، این شبیه به مورد اول است، اما با موارد خاص برای مدیریت تحت اللفظی IP. به عنوان مثال، تطبیق در "[0:0:0::1]" مانند تطبیق در "[::1]" است زیرا استانداردسازی IPv6 به صورت داخلی انجام می شود. - مثالها: - 127.0.1،- [0:0::1]،- [::1]:80،- https://[::1]:443
-  IP_LITERAL/PREFIX_LENGTH_IN_BITS
- هر URL حاوی IP تحت اللفظی ( - IP_LITERAL) را در محدوده داده شده مطابقت دهید. محدوده IP (- PREFIX_LENGTH_IN_BITS) با استفاده از نماد CIDR مشخص شده است.
- هر URL حاوی IP تحت اللفظی را در محدوده داده شده مطابقت دهید. محدوده IP با استفاده از نماد CIDR مشخص می شود. مثالها: - "192.168.1.1/16", "fefe:13::abc/33"
-  <local>
- رشته تحت اللفظی - <local>با نام های میزبان ساده مطابقت دارد. یک نام میزبان ساده، نامی است که فاقد نقطه باشد و تحت اللفظی IP نباشد. به عنوان مثال- exampleو- localhostنام هاست ساده هستند، در حالی که- example.com،- example.، و- [::1]نیستند.- مثال: - "<local>"
کد زیر یک پروکسی SOCKS 5 را برای اتصالات HTTP به همه سرورها به جز foobar.com تنظیم می کند و از اتصالات مستقیم برای همه پروتکل های دیگر استفاده می کند. تنظیمات برای پنجرههای معمولی و ناشناس اعمال میشود، زیرا پنجرههای ناشناس تنظیمات را از پنجرههای معمولی به ارث میبرند. لطفاً به اسناد Types API نیز مراجعه کنید.
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() {}
);
کد زیر یک اسکریپت PAC سفارشی را تنظیم می کند.
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() {}
);
قطعه بعدی تنظیمات پراکسی موثر فعلی را جستجو می کند. تنظیمات پراکسی موثر را می توان با برنامه افزودنی دیگر یا یک خط مشی تعیین کرد. برای جزئیات به اسناد API Types مراجعه کنید.
chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);
 توجه داشته باشید که شی value ارسال شده به set() با value ارسال شده به تابع callback get() یکسان نیست. دومی حاوی یک عنصر rules.proxyForHttp.port است.
 "مستقیم"   "تشخیص_خودکار"   "pac_script"   "fixed_servers"   "سیستم" 
یک شی که اطلاعات پیکربندی خودکار پروکسی را در خود دارد. دقیقاً یکی از فیلدها باید خالی نباشد.
- داده هارشته اختیاری یک اسکریپت PAC 
- اجباریبولی اختیاری اگر درست باشد، یک اسکریپت PAC نامعتبر از بازگشت پشته شبکه به اتصالات مستقیم جلوگیری می کند. پیش فرض به نادرست. 
- آدرس اینترنتیرشته اختیاری URL فایل PAC مورد استفاده. 
یک شی که یک پیکربندی کامل پروکسی را در بر می گیرد.
- حالت'direct' = هرگز از پروکسی استفاده نکنید 'auto_detect' = تشخیص خودکار تنظیمات پراکسی 'pac_script' = استفاده از اسکریپت PAC مشخص شده 'fixed_servers' = به صورت دستی سرورهای پراکسی را مشخص کنید 'system' = استفاده از تنظیمات پراکسی سیستم 
- pacScriptPacScript اختیاری است اسکریپت پیکربندی خودکار پروکسی (PAC) برای این پیکربندی. از این برای حالت 'pac_script' استفاده کنید. 
- قوانینProxyRules اختیاری است قوانین پروکسی که این پیکربندی را توصیف می کند. از این برای حالت 'fixed_servers' استفاده کنید. 
یک شی که مجموعه ای از قوانین پروکسی را برای همه پروتکل ها محصور می کند. از «singleProxy» یا (زیر مجموعه ای از) «proxyForHttp»، «proxyForHttps»، «proxyForFtp» و «fallbackProxy» استفاده کنید.
- bypasslistرشته[] اختیاری است لیست سرورهایی که باید بدون سرور پروکسی به آنها متصل شوید. 
- fallbackProxyProxyServer اختیاری است سرور پراکسی که برای هر چیز دیگری استفاده می شود یا اگر هیچ یک از پروکسی برای... مشخص نشده باشد. 
- proxyForFtpProxyServer اختیاری است سرور پروکسی که برای درخواست های FTP استفاده می شود. 
- proxyForHttpProxyServer اختیاری است سرور پروکسی که برای درخواست های HTTP استفاده می شود. 
- proxyForHttpsProxyServer اختیاری است سرور پروکسی که برای درخواست های HTTPS استفاده می شود. 
- تک پروکسیProxyServer اختیاری است سرور پروکسی که برای همه درخواستهای هر URL (یعنی http، https و ftp) استفاده میشود. 
شیئی که مشخصات یک سرور پراکسی واحد را محصور می کند.
- میزبانرشته نام میزبان یا آدرس IP سرور پروکسی. نام هاست باید در ASCII (در قالب Punycode) باشد. IDNA هنوز پشتیبانی نمی شود. 
- بندرشماره اختیاری پورت سرور پروکسی به طور پیش فرض درگاهی که به طرح بستگی دارد. 
- طرحطرح اختیاری طرح (پروتکل) خود سرور پروکسی. پیشفرض «http». 
 "http"   "https"   "سریع"   "جوراب 4"   "جوراب 5" 
تنظیمات پراکسی مورد استفاده قرار گیرد. مقدار این تنظیم یک شی ProxyConfig است.
chrome.proxy.onProxyError.addListener(
callback: function,
)
در مورد خطاهای پروکسی اطلاع می دهد.
- پاسخ به تماستابع پارامتر callbackبه نظر می رسد:(details: object) => void - جزئیاتشی - جزئیاترشته جزئیات بیشتر در مورد خطا مانند خطای زمان اجرا جاوا اسکریپت. 
- خطارشته شرح خطا 
- کشندهبولی اگر درست باشد، خطا کشنده بوده و تراکنش شبکه متوقف شده است. در غیر این صورت، به جای آن از اتصال مستقیم استفاده می شود.