الوصف
استخدِم واجهة برمجة التطبيقات chrome.proxy لإدارة إعدادات الخادم الوكيل في Chrome. تعتمد واجهة برمجة التطبيقات هذه على نموذج ChromeSetting الأوّلي لنوع API من أجل الحصول على إعدادات الخادم الوكيل وضبطها.
الأذونات
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 وFTP عبر خادم وكيل محدّد. ويتم إرسال أنواع حركة المرور الأخرى مباشرةً. في الحالة الأخيرة، يكون السلوك أكثر دقة قليلاً: إذا تم ضبط خادم وكيل لبروتوكول HTTP أو HTTPS أو FTP، سيتم توجيه حركة البيانات المعنية عبر الخادم المحدّد. في حال عدم تحديد خادم وكيل من هذا النوع أو إذا كانت الزيارات تستخدم بروتوكولاً مختلفًا عن HTTP أو HTTPS أو FTP، يتم استخدام fallbackProxy. إذا لم يتم تحديد سمة fallbackProxy، يتم إرسال حركة البيانات مباشرةً بدون خادم وكيل.
عناصر الخادم الوكيل
يتم إعداد خادم وكيل في عنصر proxy.ProxyServer. يستخدم الاتصال بالخادم الوكيل (المحدّد بواسطة السمة host) البروتوكول المحدّد في السمة scheme. إذا لم يتم تحديد scheme، يكون الإعداد التلقائي لاتصال الخادم الوكيل هو http.
إذا لم يتم تحديد port في عنصر proxy.ProxyServer، يتم استخلاص المنفذ من المخطط.
المنافذ التلقائية هي:
| المخطط | المنفذ |
|---|---|
| http | 80 |
| https | 443 |
| socks4 | 1080 |
| socks5 | 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]مطابقة عناوين URL التي تكون قيمًا ثابتة لعناوين IP وهذا يشبه الحالة الأولى من الناحية النظرية، ولكن مع حالات خاصة للتعامل مع تحديد عنوان URL الأساسي الحرفي لبروتوكول الإنترنت. على سبيل المثال، التطابق مع "[0:0:0::1]" هو نفسه التطابق مع "[::1]" لأنّ عملية تحديد عنوان URL الأساسي لعنوان الإصدار السادس من بروتوكول الإنترنت (IPv6) تتم داخليًا.
أمثلة:
127.0.1،[0:0::1]،[::1]:80،https://[::1]:443IP_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
تعداد
"direct"
"auto_detect"
"pac_script"
"fixed_servers"
"system"
PacScript
عنصر يحتوي على معلومات الضبط التلقائي للخادم الوكيل. يجب أن يكون أحد الحقلَين غير فارغ.
الخصائص
-
البيانات
سلسلة اختيارية
نص برمجي لملف PAC
-
إلزامي
boolean اختياري
إذا كانت القيمة صحيحة، سيمنع نص 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
string[] اختياري
قائمة الخوادم التي يمكن الاتصال بها بدون خادم وكيل
-
fallbackProxy
ProxyServer اختياري
خادم الوكيل الذي سيتم استخدامه في كل ما عدا ذلك أو إذا لم يتم تحديد أي من الخوادم الوكيلة الخاصة بـ proxyFor....
-
proxyForFtp
ProxyServer اختياري
خادم البروكسي الذي سيتم استخدامه لطلبات FTP.
-
proxyForHttp
ProxyServer اختياري
خادم الوكيل الذي سيتم استخدامه لطلبات HTTP
-
proxyForHttps
ProxyServer اختياري
خادم البروكسي الذي سيتم استخدامه لطلبات HTTPS
-
singleProxy
ProxyServer اختياري
خادم وكيل سيتم استخدامه لجميع الطلبات لكل عنوان URL (أي http وhttps وftp).
ProxyServer
عنصر يغلّف مواصفات خادم وكيل واحد.
الخصائص
-
مضيف
سلسلة
اسم المضيف أو عنوان IP للخادم الوكيل يجب أن تكون أسماء المضيفين بتنسيق ASCII (بتنسيق Punycode). لا تتوافق هذه الخدمة مع معيار IDNA بعد.
-
المنفذ
number اختيارية
منفذ الخادم الوكيل يتم تلقائيًا استخدام منفذ يعتمد على المخطط.
-
المخطط
المخطط اختياري
مخطط (بروتوكول) الخادم الوكيل نفسه القيمة التلقائية هي http.
Scheme
تعداد
"http"
"https"
"quic"
"socks4"
"socks5"
الخصائص
settings
إعدادات الخادم الوكيل التي سيتم استخدامها قيمة هذا الإعداد هي عنصر ProxyConfig.
النوع
الفعاليات
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
يُعلمك بأخطاء الخادم الوكيل.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(details: object) => void
-
التفاصيل
عنصر
-
التفاصيل
سلسلة
تفاصيل إضافية عن الخطأ، مثل خطأ وقت التشغيل في JavaScript
-
خطأ
سلسلة
وصف الخطأ
-
fatal
قيمة منطقية
إذا كانت القيمة صحيحة، يعني ذلك أنّ الخطأ فادح وتم إلغاء معاملة الشبكة. وفي حال عدم توفّرها، سيتم استخدام اتصال مباشر بدلاً من ذلك.
-
-