chrome.proxy

ब्यौरा

Chrome की प्रॉक्सी सेटिंग मैनेज करने के लिए, chrome.proxy एपीआई का इस्तेमाल करें. यह एपीआई, प्रॉक्सी कॉन्फ़िगरेशन पाने और सेट करने के लिए, एपीआई टाइप के ChromeSettings प्रोटोटाइप का इस्तेमाल करता है.

अनुमतियां

proxy

मेनिफ़ेस्ट

आपको "प्रॉक्सी" का एलान करना होगा एक्सटेंशन मेनिफ़ेस्ट में प्रॉक्सी सेटिंग का इस्तेमाल करने की अनुमति एपीआई. उदाहरण के लिए:

{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}

ऑब्जेक्ट और प्रॉपर्टी

प्रॉक्सी सेटिंग, proxy.ProxyConfig ऑब्जेक्ट में तय की जाती हैं. Chrome की प्रॉक्सी सेटिंग के हिसाब से, सेटिंग में proxy.ProxyRules या proxy.PacScript हो सकता है.

प्रॉक्सी मोड

प्रॉक्सी कॉन्फ़िगरेशन ऑब्जेक्ट का mode एट्रिब्यूट, प्रॉक्सी का इस्तेमाल. इसमें नीचे दी गई वैल्यू हो सकती हैं:

direct
direct मोड में, सभी कनेक्शन सीधे तौर पर बनाए जाते हैं. इनमें कोई प्रॉक्सी शामिल नहीं होता. इस मोड में, आपको ProxyConfig ऑब्जेक्ट में कोई और पैरामीटर नहीं है.
auto_detect
auto_detect मोड में, प्रॉक्सी कॉन्फ़िगरेशन को एक पीएसी स्क्रिप्ट से तय किया जाता है, जिसे डाउनलोड किया जा सकता है http://wpad/wpad.dat पर जाएं. यह मोड, ProxyConfig ऑब्जेक्ट में किसी और पैरामीटर की अनुमति नहीं देता है.
pac_script
pac_script मोड में, प्रॉक्सी कॉन्फ़िगरेशन को उस पीएसी स्क्रिप्ट से तय किया जाता है जिसे या तो वापस लाया गया है 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.

पहले मामले में, एचटीटीपी, एचटीटीपीएस, और एफ़टीपी ट्रैफ़िक, बताए गए प्रॉक्सी सर्वर से प्रॉक्सी किया जाता है. किसी और तरीके से को ट्रैफ़िक सीधे भेजा जाता है. बाद वाले मामले में व्यवहार कुछ सामान्य होता है: अगर कोई प्रॉक्सी सर्वर को एचटीटीपी, एचटीटीपीएस या एफ़टीपी प्रोटोकॉल के लिए कॉन्फ़िगर किया जाता है और उससे जुड़े ट्रैफ़िक को बताया गया सर्वर. अगर ऐसा कोई प्रॉक्सी सर्वर तय नहीं किया गया है या ट्रैफ़िक इससे किसी दूसरे प्रोटोकॉल का इस्तेमाल करता है एचटीटीपी, एचटीटीपीएस या एफ़टीपी, fallbackProxy का इस्तेमाल किया जाता है. अगर कोई fallbackProxy तय नहीं की गई है, तो ट्रैफ़िक भेजा जाएगा बिना किसी प्रॉक्सी सर्वर के.

प्रॉक्सी सर्वर ऑब्जेक्ट

प्रॉक्सी सर्वर को proxy.ProxyServer ऑब्जेक्ट में कॉन्फ़िगर किया गया है. प्रॉक्सी सर्वर से कनेक्शन (host एट्रिब्यूट से तय किया गया) scheme एट्रिब्यूट में बताए गए प्रोटोकॉल का इस्तेमाल करता है. अगर नहीं scheme तय किया गया है, प्रॉक्सी कनेक्शन डिफ़ॉल्ट रूप से http है.

अगर proxy.ProxyServer ऑब्जेक्ट में कोई port तय नहीं किया गया है, तो पोर्ट को स्कीम से लिया जाता है. ये डिफ़ॉल्ट पोर्ट होते हैं:

स्कीमपोर्ट
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]

वे यूआरएल मैच करें जो आईपी पते की लिटरल वैल्यू हैं. सैद्धांतिक तौर पर यह पहले मामले की तरह ही है, लेकिन का इस्तेमाल खास मामलों में किया जाता है. उदाहरण के लिए, "[0:0:0::1]" से मैचिंग "[::1]" पर मिलान करने के समान है क्योंकि आईपीवी6 के कैननिकल होने की प्रक्रिया अंदरूनी तौर पर की जाती है.

उदाहरण: 127.0.1, [0:0::1], [::1]:80, https://[::1]:443

IP_LITERAL/PREFIX_LENGTH_IN_BITS

ऐसे किसी भी यूआरएल का मिलान करें जिसमें दिए गए आईपी लिटरल (IP_LITERAL) में आईपी हो रेंज. IP श्रेणी (PREFIX_LENGTH_IN_BITS) को सीआईडीआर (सीआईडीआर) का इस्तेमाल करके तय किया गया है नोटेशन.

दी गई रेंज में मौजूद ऐसे किसी भी यूआरएल का मिलान करें जिसमें आईपी लिटरल हो. आईपी रेंज, सीआईडीआर का इस्तेमाल करके तय की गई है नोटेशन. उदाहरण: "192.168.1.1/16", "fefe:13::abc/33"

<local>

लिटरल स्ट्रिंग <local>, सामान्य होस्टनेम से मैच करती है. सामान्य होस्टनेम वह होता है जिसमें कोई डॉट हैं और यह एक IP लिटरल नहीं है. उदाहरण के लिए, example और localhost सामान्य होस्टनेम हैं, जबकि example.com, example., और [::1] नहीं हैं.

उदाहरण: "<local>"

उदाहरण

नीचे दिया गया कोड, foobar.com को छोड़कर सभी सर्वर पर एचटीटीपी कनेक्शन के लिए SOCKS 5 प्रॉक्सी सेट करता है और डायरेक्ट कनेक्शन. सेटिंग नियमित और गुप्त विंडो पर इस तरह लागू होती हैं गुप्त विंडो, नियमित विंडो से सेटिंग इनहेरिट करती हैं. कृपया 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() {}
);

नीचे दिया गया कोड, कस्टम पीएसी स्क्रिप्ट सेट करता है.

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));
  }
);

ध्यान दें कि set() को पास किया गया value ऑब्जेक्ट, यहां दिए गए value ऑब्जेक्ट के समान नहीं है get() का कॉलबैक फ़ंक्शन. बाद वाले एलिमेंट में rules.proxyForHttp.port एलिमेंट शामिल होगा.

टाइप

Mode

Chrome 54 और उसके बाद वाले वर्शन के लिए

Enum

"डायरेक्ट"

"auto_detect"

"pac_script"

"Fixed_servers"

"सिस्टम"

PacScript

किसी ऑब्जेक्ट में प्रॉक्सी ऑटो-कॉन्फ़िगरेशन की जानकारी होती है. कोई एक फ़ील्ड खाली नहीं होना चाहिए.

प्रॉपर्टी

  • डेटा

    स्ट्रिंग ज़रूरी नहीं

    पीएसी स्क्रिप्ट.

  • ज़रूरी है

    बूलियन ज़रूरी नहीं

    अगर सही है, तो अमान्य PAC स्क्रिप्ट, नेटवर्क स्टैक को डायरेक्ट कनेक्शन में वापस जाने से रोकेगी. डिफ़ॉल्ट तौर पर, 'गलत' पर सेट होती है.

  • url

    स्ट्रिंग ज़रूरी नहीं

    इस्तेमाल की जाने वाली PAC फ़ाइल का यूआरएल.

ProxyConfig

एक ऑब्जेक्ट, जिसमें पूरा प्रॉक्सी कॉन्फ़िगरेशन शामिल है.

प्रॉपर्टी

  • मोड

    'डायरेक्ट' = प्रॉक्सी का कभी भी इस्तेमाल न करें 'auto_detect' = प्रॉक्सी सेटिंग का अपने आप पता लगाएं 'पैक_स्क्रिप्ट' = दी गई PAC स्क्रिप्ट का इस्तेमाल करें 'फ़िक्स्ड_सर्वर' = मैन्युअल रूप से प्रॉक्सी सर्वर दर्ज करें 'सिस्टम' = सिस्टम प्रॉक्सी सेटिंग का उपयोग करें

  • pacScript

    PacScript ज़रूरी नहीं

    इस कॉन्फ़िगरेशन के लिए प्रॉक्सी ऑटो-कॉन्फ़िगरेशन (PAC) स्क्रिप्ट. 'pac_script' के लिए इसका इस्तेमाल करें मोड.

  • नियम

    ProxyRules वैकल्पिक

    इस कॉन्फ़िगरेशन के बारे में बताने वाले प्रॉक्सी नियम. इसे 'fixed_servers' के लिए इस्तेमाल करें मोड.

ProxyRules

एक ऑब्जेक्ट, जिसमें सभी प्रोटोकॉल के लिए प्रॉक्सी नियमों के सेट को इनकैप्सुलेट किया जाता है. 'सिंगलप्रॉक्सी' में से किसी एक का इस्तेमाल करें या 'ProxyForHttp', 'प्रॉक्सीForHttps', 'ProxyForFtp' का (इसका सबसेट) और 'फ़ॉलबैकप्रॉक्सी' का इस्तेमाल करना चाहिए.

प्रॉपर्टी

  • bypassList

    स्ट्रिंग[] ज़रूरी नहीं

    बिना किसी प्रॉक्सी सर्वर के कनेक्ट करने वाले सर्वर की सूची.

  • fallbackProxy

    ProxyServer ज़रूरी नहीं

    किसी भी अन्य चीज़ के लिए उपयोग किया जाने वाला प्रॉक्सी सर्वर या यदि कोई विशिष्ट प्रॉक्सी सर्वर... निर्दिष्ट नहीं किया गया है.

  • proxyForFtp

    ProxyServer ज़रूरी नहीं

    एफ़टीपी अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

  • proxyForHttp

    ProxyServer ज़रूरी नहीं

    एचटीटीपी अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

  • proxyForHttps

    ProxyServer ज़रूरी नहीं

    एचटीटीपीएस अनुरोधों के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

  • singleProxy

    ProxyServer ज़रूरी नहीं

    हर यूआरएल के लिए सभी अनुरोधों (जो कि एचटीटीपी, एचटीटीपीएस, और एफ़टीपी) के लिए इस्तेमाल किया जाने वाला प्रॉक्सी सर्वर.

ProxyServer

ऐसा ऑब्जेक्ट जिसमें एक प्रॉक्सी सर्वर की खास जानकारी शामिल होती है.

प्रॉपर्टी

  • होस्ट

    स्ट्रिंग

    प्रॉक्सी सर्वर का होस्टनेम या आईपी पता. होस्टनेम, ASCII (Puycode फ़ॉर्मैट में) में होने चाहिए. IDNA की सुविधा अभी काम नहीं कर रही है.

  • पोर्ट

    नंबर वैकल्पिक

    प्रॉक्सी सर्वर का पोर्ट. यह डिफ़ॉल्ट रूप से, स्कीम के हिसाब से पोर्ट को डिफ़ॉल्ट तौर पर सेट हो जाता है.

  • स्कीम

    स्कीम ज़रूरी नहीं

    प्रॉक्सी सर्वर की स्कीम (प्रोटोकॉल). डिफ़ॉल्ट तौर पर यह 'http' पर सेट होता है.

Scheme

Chrome 54 और उसके बाद वाले वर्शन के लिए

Enum

"http"

"https"

"क्विक"

"socks4"

"socks5"

प्रॉपर्टी

settings

इस्तेमाल की जाने वाली प्रॉक्सी सेटिंग. इस सेटिंग की वैल्यू एक प्रॉक्सी कॉन्फ़िगरेशन ऑब्जेक्ट है.

टाइप

इवेंट

onProxyError

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

प्रॉक्सी गड़बड़ियों के बारे में सूचना देता है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर ऐसा दिखता है:

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      • विवरण

        स्ट्रिंग

        JavaScript रनटाइम गड़बड़ी जैसी गड़बड़ी के बारे में ज़्यादा जानकारी.

      • गड़बड़ी

        स्ट्रिंग

        गड़बड़ी की जानकारी.

      • fatal

        बूलियन

        अगर सही था, तो गड़बड़ी गंभीर थी और नेटवर्क ट्रांज़ैक्शन रद्द कर दिया गया था. अगर ऐसा नहीं है, तो सीधे कनेक्शन का इस्तेमाल किया जाता है.