ब्यौरा
Chrome की उन सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए chrome.privacy API का इस्तेमाल करें जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. यह एपीआई, Chrome का कॉन्फ़िगरेशन पाने और सेट करने के लिए, टाइप एपीआई के ChromeSetting प्रोटोटाइप पर निर्भर करता है.
अनुमतियां
privacyएपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "निजता" अनुमति का एलान करना होगा. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
कॉन्सेप्ट और इस्तेमाल
Chrome की सेटिंग की मौजूदा वैल्यू को पढ़ना आसान है. आपको सबसे पहले वह प्रॉपर्टी ढूंढनी होगी जिसमें आपकी दिलचस्पी है. इसके बाद, उस ऑब्जेक्ट पर get() को कॉल करके, उसकी मौजूदा वैल्यू और अपने एक्सटेंशन के कंट्रोल लेवल को वापस पाया जा सकता है. उदाहरण के लिए, यह पता लगाने के लिए कि Chrome में क्रेडिट कार्ड की जानकारी अपने-आप भरने की सुविधा चालू है या नहीं, आपको यह लिखना होगा:
chrome.privacy.services.autofillCreditCardEnabled.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.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillCreditCardEnabled.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.autofillCreditCardEnabled.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 के नेटवर्क कनेक्शन मैनेज करने के तरीके पर असर पड़ता है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
-
networkPredictionEnabled
types.ChromeSetting<boolean>
अगर यह सुविधा चालू है, तो Chrome आपके वेब ब्राउज़िंग अनुभव को तेज़ करने की कोशिश करता है. इसके लिए, वह डीएनएस एंट्री को पहले से हल करता है और सर्वर के लिए टीसीपी और एसएसएल कनेक्शन पहले से खोलता है. इस सेटिंग का असर सिर्फ़ Chrome की अनुमान लगाने वाली इंटरनल सेवा की कार्रवाइयों पर पड़ता है. इससे, वेबपेज से शुरू की गई प्रीफ़ेच या प्रीकनेक्ट पर कोई असर नहीं पड़ता. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
webRTCIPHandlingPolicyChrome 48 और उसके बाद के वर्शन
उपयोगकर्ताओं को मीडिया की परफ़ॉर्मेंस/निजता के बीच के समझौते की जानकारी देने की अनुमति दें. इससे यह तय होता है कि WebRTC ट्रैफ़िक को कैसे रूट किया जाएगा और लोकल पते की कितनी जानकारी ज़ाहिर की जाएगी. इस प्राथमिकता की वैल्यू, IPHandlingPolicy टाइप की होती है. यह डिफ़ॉल्ट रूप से
defaultपर सेट होती है.
services
ऐसी सेटिंग जो उन सुविधाओं को चालू या बंद करती हैं जिनके लिए Google और आपकी डिफ़ॉल्ट सर्च सेवा देने वाली कंपनी की तीसरे पक्ष की नेटवर्क सेवाओं की ज़रूरत होती है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
अगर यह सेटिंग चालू है, तो नेविगेशन से जुड़ी गड़बड़ियों को ठीक करने के लिए, Chrome किसी वेब सेवा का इस्तेमाल करता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70 और उसके बाद के वर्शनअगर यह सेटिंग चालू है, तो Chrome आपके पते और फ़ॉर्म का अन्य डेटा अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70 और उसके बाद के वर्शनअगर यह सुविधा चालू है, तो Chrome क्रेडिट कार्ड के फ़ॉर्म अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
autofillEnabled
types.ChromeSetting<boolean>
Chrome 70 से अमान्य हैकृपया privacy.services.autofillAddressEnabled और privacy.services.autofillCreditCardEnabled का इस्तेमाल करें. यह सुविधा, इस रिलीज़ में पुराने सिस्टम के साथ काम करने के लिए बनी हुई है. इसे आने वाले समय में हटा दिया जाएगा.
इस सुविधा के चालू होने पर, Chrome फ़ॉर्म में जानकारी अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
passwordSavingEnabled
types.ChromeSetting<boolean>
अगर यह सुविधा चालू है, तो पासवर्ड मैनेजर आपसे पूछेगा कि आपको पासवर्ड सेव करने हैं या नहीं. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
अगर यह सुविधा चालू है, तो Chrome आपकी सुरक्षा के लिए पूरी कोशिश करता है. इससे आपको फ़िशिंग और मैलवेयर से बचाया जा सकता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
अगर यह सुविधा चालू है, तो SafeBrowsing किसी पेज को ब्लॉक करने पर, Chrome Google को ज़्यादा जानकारी भेजेगा. जैसे, ब्लॉक किए गए पेज का कॉन्टेंट. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
falseपर सेट होती है. -
searchSuggestEnabled
types.ChromeSetting<boolean>
अगर यह सेटिंग चालू है, तो Chrome आपके डिफ़ॉल्ट सर्च इंजन को, ओमनीबॉक्स में टाइप किया गया टेक्स्ट भेजता है. इससे, आपको वेबसाइटों और खोज के लिए ऐसे सुझाव मिलते हैं जो आपके टाइप किए गए टेक्स्ट से मिलते-जुलते होते हैं. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है. -
spellingServiceEnabled
types.ChromeSetting<boolean>
अगर यह सेटिंग चालू है, तो वर्तनी की गड़बड़ियों को ठीक करने के लिए, Chrome किसी वेब सेवा का इस्तेमाल करता है. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
falseपर सेट होती है. -
translationServiceEnabled
types.ChromeSetting<boolean>
अगर यह सुविधा चालू है, तो Chrome ऐसे पेजों का अनुवाद करने की सुविधा देता है जो आपकी भाषा में नहीं हैं. इस प्राथमिकता की वैल्यू बूलियन होती है, जो डिफ़ॉल्ट रूप से
trueपर सेट होती है.
websites
ये सेटिंग तय करती हैं कि Chrome, वेबसाइटों के लिए कौनसी जानकारी उपलब्ध कराता है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
-
adMeasurementEnabled
types.ChromeSetting<boolean>
Chrome 111 और उसके बाद के वर्शनबंद होने पर, Attribution Reporting API और Private Aggregation API बंद हो जाते हैं. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इन एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इन एपीआई कोtrueपर सेट करने पर, आपको गड़बड़ी का मैसेज दिखेगा. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 और उसके बाद के वर्शनअगर यह सेटिंग चालू है, तो Chrome आपके अनुरोधों के साथ 'निगरानी न करें' (
DNT: 1) हेडर भेजता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यूfalseहोती है. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 और उसके बाद के वर्शनबंद होने पर, Fledge API बंद हो जाता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, आपको गड़बड़ी का मैसेज दिखेगा. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
अगर यह सेटिंग चालू है, तो Chrome किसी वेबसाइट (
<a ping>) के अनुरोध करने पर, ऑडिटिंग पिंग भेजता है. इस सेटिंग की वैल्यू बूलियन टाइप की होती है और डिफ़ॉल्ट वैल्यूtrueहोती है. -
protectedContentEnabled
types.ChromeSetting<boolean>
सिर्फ़ Windows और ChromeOS पर उपलब्ध है: अगर यह सुविधा चालू है, तो Chrome, सुरक्षित कॉन्टेंट चलाने के लिए प्लग इन को एक यूनीक आईडी देता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. -
referrersEnabled
types.ChromeSetting<boolean>
अगर यह सेटिंग चालू है, तो Chrome आपके अनुरोधों के साथ
refererहेडर भेजता है. हां, इस प्राथमिकता का नाम, गलती से लिखे गए हेडर से मेल नहीं खाता. नहीं, हम इसे नहीं बदलेंगे. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यूtrueहोती है. -
types.ChromeSetting<boolean>
Chrome 121 और उसके बाद के वर्शनबंद होने पर, मिलती-जुलती वेबसाइट के सेट बंद हो जाते हैं. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, आपको गड़बड़ी का मैसेज दिखेगा. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
बंद होने पर, Chrome तीसरे पक्ष की साइटों को कुकी सेट करने से रोकता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. ऐसा हो सकता है कि एक्सटेंशन, गुप्त मोड में इस एपीआई को चालू न कर पाएं. गुप्त मोड में, तीसरे पक्ष की कुकी ब्लॉक रहती हैं और उन्हें सिर्फ़ साइट लेवल पर अनुमति दी जा सकती है. अगर गुप्त मोड में इस एपीआई को 'सही है' पर सेट करने की कोशिश की जाती है, तो आपको गड़बड़ी का मैसेज दिखेगा.ध्यान दें: अगर इस एपीआई से
falseमिलता है, तो भी अलग-अलग साइटें तीसरे पक्ष की कुकी ऐक्सेस कर सकती हैं. ऐसा तब होगा, जब उनके पास मान्य छूट हो या वे स्टोरेज ऐक्सेस एपीआई का इस्तेमाल करें. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 और उसके बाद के वर्शनबंद होने पर, Topics API बंद हो जाता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है और इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, आपको गड़बड़ी का मैसेज दिखेगा.