chrome.proxy

الوصف

استخدِم واجهة برمجة التطبيقات chrome.proxy لإدارة إعدادات الخادم الوكيل في Chrome. تعتمد واجهة برمجة التطبيقات هذه على النموذج الأولي لإعداد Chromeإعداد لنوع واجهة برمجة التطبيقات للحصول على ضبط الخادم الوكيل وإعداده.

الأذونات

proxy

يجب تعريف إذن "الخادم الوكيل" في بيان الإضافة لاستخدام واجهة برمجة التطبيقات لإعدادات الخادم الوكيل. مثال:

{
  "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 مختلف عن عدم ضبط إعدادات للخادم الوكيل. في الحالة الثانية، يعود Chrome إلى إعدادات النظام فقط إذا لم تؤثر خيارات سطر الأوامر في إعدادات الخادم الوكيل.

قواعد الخادم الوكيل

يمكن أن يحتوي العنصر proxy.ProxyRules إما على السمة singleProxy أو مجموعة فرعية من proxyForHttp وproxyForHttps وproxyForFtp وfallbackProxy.

في الحالة الأولى، يتم إنشاء خادم وكيل لعدد زيارات HTTP وHTTPS وبروتوكول نقل الملفات من خلال الخادم الوكيل المحدد. يتم إرسال زيارات أخرى مباشرة. في الحالة الثانية، يكون السلوك أكثر دقة إلى حد ما: في حال ضبط خادم وكيل من أجل HTTP أو HTTPS أو FTP، يتم إنشاء خادم وكيل لحركة المرور المعنية من خلال الخادم المحدّد. إذا لم يتم تحديد مثل هذا الخادم الوكيل أو كانت حركة البيانات تستخدم بروتوكولاً مختلفًا عن HTTP أو HTTPS أو FTP، يتم استخدام fallbackProxy. إذا لم يتم تحديد fallbackProxy، يتم إرسال عدد الزيارات مباشرةً بدون خادم وكيل.

كائنات الخادم الوكيل

تم ضبط خادم وكيل في عنصر proxy.ProxyServer. عند الاتصال بالخادم الوكيل، يتم استخدام البروتوكول المحدَّد في السمة scheme (الذي تحدّده السمة host). إذا لم يتم تحديد scheme، يتم ضبط اتصال الخادم الوكيل تلقائيًا على http.

في حال عدم تحديد port في عنصر proxy.ProxyServer، يتم اشتقاق المنفذ من المخطط. المنافذ التلقائية هي:

المخططالمنفذ
http80
https443
socks41080
socks51080

قائمة الاستثناءات

قد يتم استبعاد خوادم فردية من إنشاء خادم وكيل باستخدام 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]

مطابقة عناوين URL التي تمثّل القيم الحرفية لعناوين 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() {}
);

يطلب المقتطف التالي إعدادات الخادم الوكيل الفعالة الحالية. يمكن تحديد إعدادات الخادم الوكيل الفعالة من خلال إضافة أخرى أو من خلال إحدى السياسات. راجِع مستندات Types API للحصول على التفاصيل.

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

يُرجى العِلم أنّ عنصر value الذي تم تمريره إلى set() لا يتطابق مع الكائن value الذي تم تمريره إلى دالة معاودة الاتصال في get(). وسيحتوي العنصر الثاني على عنصر rules.proxyForHttp.port.

الأنواع

Mode

Chrome 54 والإصدارات الأحدث

التعداد

"auto_detect"

"pac_script"

"fixed_servers"

"system"

PacScript

عنصر يتضمن معلومات الإعداد التلقائي للخادم الوكيل. يجب أن يكون أحد الحقول غير فارغ.

أماكن إقامة

  • البيانات

    سلسلة اختيارية

    نص برمجي PAC

  • إلزامي

    منطقية اختيارية

    في حال ضبط هذه السياسة على "صحيح"، سيمنع نص برمجي PAC غير صالح حزمة الشبكة من العودة إلى الاتصالات المباشرة. يكون الإعداد التلقائي بالقيمة "خطأ".

  • url

    سلسلة اختيارية

    عنوان URL لملف PAC المراد استخدامه.

ProxyConfig

يشير ذلك المصطلح إلى كائن يحتوي على إعدادات كاملة للخادم الوكيل.

أماكن إقامة

  • الوضع

    'direct' = عدم استخدام خادم وكيل مطلقًا 'auto_detect' = اكتشاف إعدادات الخادم الوكيل تلقائيًا 'pac_script' = استخدام نص PAC محدد 'fixed_servers' = تحديد خوادم الوكيل يدويًا 'system' = استخدام إعدادات الخادم الوكيل للنظام

  • pacScript

    PacScript اختيارية

    النص البرمجي للضبط التلقائي للخادم الوكيل (PAC) لهذه الإعدادات. استخدم هذا الوضع في وضع "pac_script".

  • القواعد

    ProxyRules اختيارية

    قواعد الخادم الوكيل التي تصف هذه الإعدادات. استخدِم هذا الوضع في وضع "fixed_servers".

ProxyRules

يشير ذلك المصطلح إلى كائن يغلف مجموعة قواعد الخادم الوكيل لجميع البروتوكولات. يمكنك استخدام "singleProxy" أو (مجموعة فرعية من) "proxyForHttp" و"proxyForHttps" و"proxyForFtp" و"fallbackProxy".

أماكن إقامة

  • bypassList

    سلسلة[] اختيارية

    قائمة بالخوادم المطلوب الاتصال بها بدون خادم وكيل.

  • fallbackProxy

    ProxyServer اختياري

    الخادم الوكيل الذي سيتم استخدامه في أي شيء آخر أو في حال عدم تحديد أي خادم وكيل تابع محدد...

  • proxyForFtp

    ProxyServer اختياري

    الخادم الوكيل المراد استخدامه لطلبات بروتوكول نقل الملفات (FTP).

  • proxyForHttp

    ProxyServer اختياري

    الخادم الوكيل المراد استخدامه لطلبات HTTP.

  • proxyForHttps

    ProxyServer اختياري

    الخادم الوكيل الذي سيتم استخدامه لطلبات HTTPS

  • singleProxy

    ProxyServer اختياري

    الخادم الوكيل المراد استخدامه لجميع الطلبات لكل عنوان URL (أي http وhttps وftp).

ProxyServer

كائن يغلف مواصفات خادم وكيل واحد.

أماكن إقامة

  • مضيف

    سلسلة

    اسم المضيف أو عنوان IP للخادم الوكيل. يجب أن تكون أسماء المضيفين بتنسيق ASCII (بتنسيق Punycode). إنّ معرّف الهوية الشخصية (IDNA) غير متاح حتى الآن.

  • المنفذ

    الرقم اختياري

    منفذ الخادم الوكيل ويتم تعيينها تلقائيًا على منفذ يعتمد على المخطط.

  • المخطط

    المخطط اختياري

    مخطط (البروتوكول) للخادم الوكيل نفسه. يكون الإعداد التلقائي هو "http".

Scheme

Chrome 54 والإصدارات الأحدث

التعداد

"http"

"https"

"quic"

"socks4"

"socks5"

أماكن إقامة

settings

إعدادات الخادم الوكيل التي سيتم استخدامها. وتكون قيمة هذا الإعداد كائن ProxyConfig.

فعاليات

onProxyError

chrome.proxy.onProxyError.addListener(
  callback: function,
)

إرسال إشعار بشأن أخطاء الخادم الوكيل

المَعلمات

  • معاودة الاتصال

    الوظيفة

    تبدو معلَمة callback على النحو التالي:

    (details: object)=>void

    • التفاصيل

      كائن

      • التفاصيل

        سلسلة

        تفاصيل إضافية حول الخطأ، مثل خطأ وقت تشغيل JavaScript.

      • خطأ

        سلسلة

        وصف الخطأ

      • fatal

        boolean

        إذا كانت القيمة صحيحة، يعني هذا أنّ الخطأ كان خطيرًا وتم إلغاء معاملة الشبكة. وفي حال عدم وجودها، يتم استخدام اتصال مباشر بدلاً من ذلك.