ब्यौरा
Chrome की उन सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए chrome.privacy API का इस्तेमाल करें जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. यह एपीआई, Chrome का कॉन्फ़िगरेशन पाने और सेट करने के लिए, टाइप एपीआई के ChromeSetting प्रोटोटाइप पर निर्भर करता है.
अनुमतियां
privacyमेनिफ़ेस्ट
एपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "निजता" अनुमति का एलान करना होगा. उदाहरण के लिए:
{
  "name": "My extension",
  ...
  "permissions": [
    "privacy"
  ],
  ...
}
इस्तेमाल
Chrome की सेटिंग की मौजूदा वैल्यू को पढ़ना आसान है. आपको सबसे पहले वह प्रॉपर्टी ढूंढनी होगी जिसमें आपकी दिलचस्पी है. इसके बाद, उस ऑब्जेक्ट पर get() को कॉल करके, उसकी मौजूदा वैल्यू और अपने एक्सटेंशन के कंट्रोल लेवल को वापस पाया जा सकता है. उदाहरण के लिए, यह पता लगाने के लिए कि Chrome में ऑटोमैटिक भरने की सुविधा चालू है या नहीं, आपको यह लिखना होगा:
chrome.privacy.services.autofillEnabled.get({}, function(details) {
  if (details.value) {
    console.log('Autofill is on!');
  } else {
    console.log('Autofill is off!');
  }
});
किसी सेटिंग की वैल्यू बदलना थोड़ा मुश्किल है. इसकी वजह यह है कि आपको पहले यह पुष्टि करनी होगी कि आपका एक्सटेंशन, सेटिंग को कंट्रोल कर सकता है या नहीं. अगर आपका एक्सटेंशन किसी ऐसी सेटिंग को टॉगल करता है जिसे एंटरप्राइज़ नीतियां किसी खास वैल्यू पर लॉक करती हैं, तो उपयोगकर्ता को अपनी सेटिंग में कोई बदलाव नहीं दिखेगा. इसके लिए, levelOfControl को "not_controllable" पर सेट किया जाएगा. इसके अलावा, अगर कोई दूसरा एक्सटेंशन वैल्यू को कंट्रोल कर रहा है, तो levelOfControl को "controlled_by_other_extensions" पर सेट किया जाएगा. set() कॉल पूरा हो जाएगा, लेकिन सेटिंग तुरंत बदल जाएगी. यह भ्रम पैदा कर सकता है. इसलिए, हमारा सुझाव है कि अगर उपयोगकर्ता ने जो सेटिंग चुनी हैं वे काम की नहीं हैं, तो उन्हें इसकी चेतावनी दें.
इसका मतलब है कि आपको ऐक्सेस लेवल तय करने के लिए, get() तरीके का इस्तेमाल करना चाहिए. इसके बाद, अगर आपका एक्सटेंशन सेटिंग को कंट्रोल कर सकता है, तो ही set() को कॉल करें. अगर आपका एक्सटेंशन सेटिंग को कंट्रोल नहीं कर सकता, तो उपयोगकर्ता को भ्रम से बचाने के लिए, फ़ंक्शन को विज़ुअल तौर पर बंद करना एक अच्छा विचार है:
chrome.privacy.services.autofillEnabled.get({}, function(details) {
  if (details.levelOfControl === 'controllable_by_this_extension') {
    chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
      if (chrome.runtime.lastError === undefined) {
        console.log("Hooray, it worked!");
      } else {
        console.log("Sadness!", chrome.runtime.lastError);
      }
    });
  }
});
अगर आपको किसी सेटिंग की वैल्यू में होने वाले बदलावों के बारे में जानना है, तो उसके onChange इवेंट में एक लिसनर जोड़ें. इसकी मदद से, उपयोगकर्ता को चेतावनी दी जा सकती है. जैसे, अगर हाल ही में इंस्टॉल किया गया कोई एक्सटेंशन, किसी सेटिंग को कंट्रोल करता है या एंटरप्राइज़ नीति आपके कंट्रोल को बदलती है. उदाहरण के लिए, ऑटोमैटिक भरने की सुविधा के स्टेटस में होने वाले बदलावों को सुनने के लिए, यह कोड काफ़ी है:
chrome.privacy.services.autofillEnabled.onChange.addListener(
  function (details) {
    // The new value is stored in `details.value`, the new level of control
    // in `details.levelOfControl`, and `details.incognitoSpecific` will be
    // `true` if the value is specific to Incognito mode.
  }
);
उदाहरण
इस एपीआई को आज़माने के लिए, chrome-extension-samples रिपॉज़िटरी से प्राइवसी एपीआई का उदाहरण इंस्टॉल करें.
टाइप
IPHandlingPolicy
WebRTC के आईपी मैनेज करने की नीति.
Enum
"default" 
 
"default_public_and_private_interfaces" 
 
"default_public_interface_only" 
 
"disable_non_proxied_udp" 
 
प्रॉपर्टी
network
ऐसी सेटिंग जिनसे Chrome के नेटवर्क कनेक्शन मैनेज करने के तरीके पर असर पड़ता है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
- 
    networkPredictionEnabledtypes.ChromeSetting<boolean> अगर यह सुविधा चालू है, तो Chrome आपके वेब ब्राउज़िंग अनुभव को तेज़ करने की कोशिश करता है. इसके लिए, वह डीएनएस एंट्री को पहले से हल करता है और सर्वर के लिए टीसीपी और एसएसएल कनेक्शन पहले से खोलता है. इस सेटिंग का असर सिर्फ़ Chrome की अनुमान लगाने वाली इंटरनल सेवा की कार्रवाइयों पर पड़ता है. इससे, वेबपेज से शुरू की गई प्रीफ़ेच या प्रीकनेक्ट पर कोई असर नहीं पड़ता. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    webRTCIPHandlingPolicyChrome 48 और उसके बाद के वर्शनउपयोगकर्ताओं को मीडिया की परफ़ॉर्मेंस/निजता के बीच के समझौते की जानकारी देने की अनुमति दें. इससे यह तय होता है कि WebRTC ट्रैफ़िक को कैसे रूट किया जाएगा और लोकल पते की कितनी जानकारी ज़ाहिर की जाएगी. इस प्राथमिकता की वैल्यू, IPHandlingPolicy टाइप की होती है. यह डिफ़ॉल्ट रूप से defaultपर सेट होती है.
services
ऐसी सेटिंग जो उन सुविधाओं को चालू या बंद करती हैं जिनके लिए Google और डिफ़ॉल्ट सर्च प्रोवाइडर की ओर से दी जाने वाली तीसरे पक्ष की नेटवर्क सेवाओं की ज़रूरत होती है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
- 
    alternateErrorPagesEnabledtypes.ChromeSetting<boolean> अगर यह सेटिंग चालू है, तो नेविगेशन से जुड़ी गड़बड़ियों को ठीक करने के लिए, Chrome किसी वेब सेवा का इस्तेमाल करता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    autofillAddressEnabledtypes.ChromeSetting<boolean> Chrome 70 और उसके बाद के वर्शनअगर यह सेटिंग चालू है, तो Chrome आपके पते और फ़ॉर्म का अन्य डेटा अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    autofillCreditCardEnabledtypes.ChromeSetting<boolean> Chrome 70 और उसके बाद के वर्शनअगर यह सुविधा चालू है, तो Chrome क्रेडिट कार्ड के फ़ॉर्म अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    autofillEnabledtypes.ChromeSetting<boolean> Chrome 70 से अमान्य हैकृपया privacy.services.autofillAddressEnabled और privacy.services.autofillCreditCardEnabled का इस्तेमाल करें. यह सुविधा, इस रिलीज़ में पुराने सिस्टम के साथ काम करने के लिए बनी हुई है. इसे आने वाले समय में हटा दिया जाएगा. इस सुविधा के चालू होने पर, Chrome फ़ॉर्म में जानकारी अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    passwordSavingEnabledtypes.ChromeSetting<boolean> अगर यह सुविधा चालू है, तो पासवर्ड मैनेजर आपसे पूछेगा कि आपको पासवर्ड सेव करने हैं या नहीं. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    safeBrowsingEnabledtypes.ChromeSetting<boolean> अगर यह सुविधा चालू है, तो Chrome आपकी सुरक्षा के लिए पूरी कोशिश करता है. इससे आपको फ़िशिंग और मैलवेयर से बचाया जा सकता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    safeBrowsingExtendedReportingEnabledtypes.ChromeSetting<boolean> अगर यह सुविधा चालू है, तो SafeBrowsing किसी पेज को ब्लॉक करने पर, Chrome Google को ज़्यादा जानकारी भेजेगा. जैसे, ब्लॉक किए गए पेज का कॉन्टेंट. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से falseपर सेट होती है.
- 
    searchSuggestEnabledtypes.ChromeSetting<boolean> अगर यह सेटिंग चालू है, तो Chrome आपके डिफ़ॉल्ट सर्च इंजन को, ओमनीबॉक्स में टाइप किया गया टेक्स्ट भेजता है. इससे, आपको वेबसाइटों और खोज के लिए ऐसे सुझाव मिलते हैं जो आपके टाइप किए गए टेक्स्ट से मिलते-जुलते होते हैं. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
- 
    spellingServiceEnabledtypes.ChromeSetting<boolean> अगर यह सेटिंग चालू है, तो वर्तनी की गड़बड़ियों को ठीक करने के लिए, Chrome किसी वेब सेवा का इस्तेमाल करता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से falseपर सेट होती है.
- 
    translationServiceEnabledtypes.ChromeSetting<boolean> अगर यह सुविधा चालू है, तो Chrome ऐसे पेजों का अनुवाद करने की सुविधा देता है जो आपकी भाषा में नहीं हैं. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से trueपर सेट होती है.
websites
ये सेटिंग तय करती हैं कि Chrome, वेबसाइटों के लिए कौनसी जानकारी उपलब्ध कराता है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
- 
    adMeasurementEnabledtypes.ChromeSetting<boolean> Chrome 111 और उसके बाद के वर्शनबंद होने पर, Attribution Reporting API और Private Aggregation API बंद हो जाते हैं. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू trueहोती है. एक्सटेंशन, इन एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इन एपीआई कोtrueपर सेट करने पर, आपको गड़बड़ी का मैसेज दिखेगा.
- 
    doNotTrackEnabledtypes.ChromeSetting<boolean> Chrome 65 और उसके बाद के वर्शनअगर यह सेटिंग चालू है, तो Chrome आपके अनुरोधों के साथ 'निगरानी न करें' ( DNT: 1) हेडर भेजता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यूfalseहोती है.
- 
    fledgeEnabledtypes.ChromeSetting<boolean> Chrome 111 और उसके बाद के वर्शनबंद होने पर, Fledge API बंद हो जाता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, आपको गड़बड़ी का मैसेज दिखेगा.
- 
    hyperlinkAuditingEnabledtypes.ChromeSetting<boolean> अगर यह सेटिंग चालू है, तो Chrome किसी वेबसाइट ( <a ping>) के अनुरोध करने पर, ऑडिटिंग पिंग भेजता है. इस सेटिंग की वैल्यू बूलियन टाइप की होती है और डिफ़ॉल्ट वैल्यूtrueहोती है.
- 
    protectedContentEnabledtypes.ChromeSetting<boolean> सिर्फ़ Windows और ChromeOS पर उपलब्ध है: अगर यह सुविधा चालू है, तो Chrome, सुरक्षित कॉन्टेंट चलाने के लिए प्लग इन को एक यूनीक आईडी देता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू trueहोती है.
- 
    referrersEnabledtypes.ChromeSetting<boolean> अगर यह सेटिंग चालू है, तो Chrome आपके अनुरोधों के साथ refererहेडर भेजता है. हां, इस प्राथमिकता का नाम, गलती से लिखे गए हेडर से मेल नहीं खाता. नहीं, हम इसे नहीं बदलेंगे. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यूtrueहोती है.
- 
    types.ChromeSetting<boolean> Chrome 121 और उसके बाद के वर्शनबंद होने पर, मिलती-जुलती वेबसाइट के सेट बंद हो जाते हैं. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, आपको गड़बड़ी का मैसेज दिखेगा.
- 
    thirdPartyCookiesAllowedtypes.ChromeSetting<boolean> बंद होने पर, Chrome तीसरे पक्ष की साइटों को कुकी सेट करने से रोकता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू trueहोती है. ऐसा हो सकता है कि एक्सटेंशन, गुप्त मोड में इस एपीआई को चालू न कर पाएं. गुप्त मोड में, तीसरे पक्ष की कुकी ब्लॉक रहती हैं और उन्हें सिर्फ़ साइट लेवल पर अनुमति दी जा सकती है. अगर गुप्त मोड में इस एपीआई को 'सही है' पर सेट करने की कोशिश की जाती है, तो आपको गड़बड़ी का मैसेज दिखेगा.ध्यान दें: अगर इस एपीआई से falseमिलता है, तो भी अलग-अलग साइटें तीसरे पक्ष की कुकी ऐक्सेस कर सकती हैं. ऐसा तब होगा, जब उनके पास मान्य छूट हो या वे स्टोरेज ऐक्सेस एपीआई का इस्तेमाल करें.
- 
    topicsEnabledtypes.ChromeSetting<boolean> Chrome 111 और उसके बाद के वर्शनबंद होने पर, Topics API बंद हो जाता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, आपको गड़बड़ी का मैसेज दिखेगा.