תיאור
צריך להשתמש ב-API chrome.proxy כדי לנהל את ההגדרות של Chrome לשרת ה-proxy. ה-API הזה מסתמך על אב הטיפוס ChromeSetting של סוג ה-API כדי לקבל את ההגדרות של שרת ה-proxy ולהגדיר אותן.
הרשאות
proxyמניפסט
עליך להצהיר על "שרת proxy" במניפסט של התוסף לשימוש בהגדרות לשרת ה-proxy API. לדוגמה:
{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}
אובייקטים ומאפיינים
ההגדרות לשרת proxy מוגדרות באובייקט proxy.ProxyConfig. בהתאם להגדרות של Chrome לשרת ה-proxy,
ההגדרות עשויות להכיל proxy.ProxyRules או proxy.PacScript.
מצבי שרת proxy
המאפיין mode של אובייקט ProxyConfig קובע את ההתנהגות הכוללת של Chrome ביחס
שימוש בשרת proxy. הוא יכול לקבל את הערכים הבאים:
- direct
- במצב direct, כל החיבורים נוצרים ישירות, ללא צורך בשרת proxy. המצב הזה מאפשר אין פרמטרים נוספים באובייקטProxyConfig.
- auto_detect
- במצב auto_detect, ההגדרה של שרת ה-proxy נקבעת באמצעות סקריפט PAC שניתן להוריד בכתובת http://wpad/wpad.dat. במצב הזה לא ניתן להוסיף פרמטרים נוספים באובייקטProxyConfig.
- pac_script
- במצב pac_script, ההגדרה של שרת ה-proxy נקבעת על ידי סקריפט PAC שמאוחזר מכתובת ה-URL שצוינה באובייקטproxy.PacScriptאו שנלקחה פשוט מהרכיבdataשמצוינים באובייקטproxy.PacScript. מלבד זאת, המצב הזה לא מאפשר פרמטרים נוספים באובייקטProxyConfig.
- fixed_servers
- במצב fixed_servers, ההגדרות של שרת ה-proxy מקודדות באובייקטproxy.ProxyRules. שלו מתואר בכללים לשרת proxy. מלבד זאת, מצבfixed_serversלא מאפשר באובייקטProxyConfig.
- system
- במצב system, ההגדרה של שרת ה-proxy נלקחת ממערכת ההפעלה. במצב הזה לא ניתן פרמטרים נוספים באובייקטProxyConfig. חשוב לזכור שהמצבsystemשונה מהמצב הזה אין הגדרה של שרת proxy. במקרה השני, Chrome חוזר להגדרות המערכת רק אם אף אפשרויות של שורת פקודה לא משפיעות על התצורה של שרת ה-proxy.
כללים לשרת proxy
האובייקט proxy.ProxyRules יכול להכיל מאפיין singleProxy או קבוצת משנה של
proxyForHttp, proxyForHttps, proxyForFtp וגם fallbackProxy.
במקרה הראשון, תעבורת הנתונים ב-HTTP, ב-HTTPS וב-FTP מועברת דרך שרת proxy דרך שרת ה-proxy שצוין. המלצות אחרות
התנועה נשלחת ישירות. במקרה השני, ההתנהגות קצת יותר עדינה: אם שרת proxy
מוגדר לפרוטוקול HTTP, HTTPS או FTP, התעבורה המתאימה עוברת דרך שרת proxy
השרת שצוין. אם לא צוין שרת proxy כזה, או שהתנועה משתמשת בפרוטוקול שונה מ-
HTTP, HTTPS או FTP, נעשה שימוש בfallbackProxy. אם לא מציינים ערך של fallbackProxy, התנועה נשלחת
ישירות ללא שרת proxy.
אובייקטים של שרת ה-proxy
שרת proxy מוגדר באובייקט proxy.ProxyServer. החיבור לשרת ה-proxy
(מוגדר על ידי המאפיין host) משתמש בפרוטוקול המוגדר במאפיין scheme. אם לא
צוין scheme. ברירת המחדל של החיבור לשרת ה-Proxy היא http.
אם לא מוגדר port באובייקט proxy.ProxyServer, היציאה נגזרת מסכימה.
יציאות ברירת המחדל הן:
| Scheme | יציאה | 
|---|---|
| http | 80 | 
| https | 443 | 
| socks4 | 1080 | 
| socks5 | 1080 | 
רשימת העקיפה
יכול להיות ששרתים ספציפיים לא ייכללו בשרת proxy עם 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>"
דוגמאות
הקוד הבא מגדיר שרת proxy 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() {}
);
קטע הקוד הבא שולח שאילתה על ההגדרות האפקטיביות כרגע של שרת proxy. ההגדרות האפקטיביות של שרת proxy יכולות שנקבעת באמצעות הרחבה אחרת או באמצעות מדיניות. פרטים נוספים זמינים במסמכים בנושא Types API.
chrome.proxy.settings.get(
  {'incognito': false},
  function(config) {
    console.log(JSON.stringify(config));
  }
);
חשוב לשים לב שהאובייקט value שמועבר אל set() לא זהה לאובייקט value שמועבר אל
פונקציית קריאה חוזרת של get(). המסנן הזה יכיל רכיב rules.proxyForHttp.port.
סוגים
Mode
Enum
"direct" 
 
"auto_detect" 
 
"pac_script" 
 
"fixed_servers" 
 
"מערכת" 
 
PacScript
אובייקט שמכיל פרטי הגדרה אוטומטית של שרת proxy. בדיוק אחד מהשדות לא יכול להיות ריק.
מאפיינים
- 
    נתוניםמחרוזת אופציונלי סקריפט PAC. 
- 
    חובהערך בוליאני אופציונלי אם הערך הוא True, סקריפט PAC לא תקין ימנע ממקבץ הרשת לחזור לחיבורים ישירים. ברירת המחדל היא False. 
- 
    כתובת אתרמחרוזת אופציונלי כתובת ה-URL של קובץ ה-PAC לשימוש. 
ProxyConfig
אובייקט שמכסה הגדרה מלאה של שרת proxy.
מאפיינים
- 
    מצב'ישיר' = לעולם לא להשתמש בשרת proxy 'auto_detect' = זיהוי אוטומטי של הגדרות לשרת proxy 'pac_script' = השתמש בסקריפט ה-PAC שצוין 'fixed_servers' = ציון שרתי proxy באופן ידני 'מערכת' = שימוש בהגדרות שרת proxy של המערכת 
- 
    pacScriptPacScript אופציונלי סקריפט התצורה האוטומטית של שרת ה-proxy (PAC) להגדרה הזו. יש להשתמש בשדה הזה עבור 'pac_script' במצב תצוגה. 
- 
    כלליםProxyRules אופציונלי הכללים לשרתי proxy שמתארים את ההגדרה הזו. משתמשים בשדה הזה עבור 'fixed_servers' במצב תצוגה. 
ProxyRules
אובייקט שמכסה את קבוצת הכללים של שרת proxy לכל הפרוטוקולים. יש להשתמש ב-'singleProxy' או (קבוצת משנה של) 'proxyForHttp', 'proxyForHttps', 'proxyForFtp' ו-'fallbackProxy'.
מאפיינים
- 
    bypassListstring[] אופציונלי רשימת שרתים שצריך להתחבר אליהם ללא שרת proxy. 
- 
    fallbackProxyProxyServer אופציונלי שרת ה-proxy שישמש לכל דבר אחר או אם לא צוין שרת proxy ספציפי ל.... 
- 
    proxyForFtpProxyServer אופציונלי שרת ה-proxy שישמש לבקשות FTP. 
- 
    proxyForHttpProxyServer אופציונלי שרת ה-proxy שישמש לבקשות HTTP. 
- 
    proxyForHttpsProxyServer אופציונלי שרת ה-proxy שישמש לבקשות HTTPS. 
- 
    singleProxyProxyServer אופציונלי שרת ה-proxy שישמש לכל הבקשות לכתובת URL (כלומר http, https ו-ftp). 
ProxyServer
אובייקט שמקיף את המפרט של שרת proxy יחיד.
מאפיינים
- 
    מארחמחרוזת שם המארח או כתובת ה-IP של שרת ה-proxy. שמות המארחים חייבים להיות בפורמט ASCII (בפורמט Funycode). עדיין אין תמיכה ב-IDNA. 
- 
    יציאהמספר אופציונלי היציאה של שרת ה-Proxy. ברירת המחדל היא יציאה שתלויה בסכמה. 
- 
    סכמהסכמה אופציונלי הסכימה (פרוטוקול) של שרת ה-proxy עצמו. ברירת המחדל היא 'http'. 
Scheme
Enum
"http" 
 
"https" 
 
"quic" 
 
"socks4" 
 
"socks5" 
 
מאפיינים
settings
הגדרות לשרת proxy שבהן יש להשתמש. הערך של ההגדרה הזו הוא אובייקט ProxyConfig.
סוג
types.ChromeSetting<ProxyConfig>
אירועים
onProxyError
chrome.proxy.onProxyError.addListener(
callback: function,
)
מתקבלת התראה על שגיאות בשרת proxy.
פרמטרים
- 
    קריאה חוזרת (callback)פונקציה הפרמטר callbackנראה כך:(details: object) => void - 
    פרטיםאובייקט - 
    פרטיםמחרוזת פרטים נוספים על השגיאה, כמו שגיאת זמן ריצה של JavaScript. 
- 
    errorמחרוזת תיאור השגיאה. 
- 
    fatalבוליאני אם הערך הוא True, השגיאה הייתה חמורה והעסקה ברשת בוטלה. אחרת, צריך להשתמש בחיבור ישיר. 
 
- 
    
 
-