ब्यौरा
Chrome में मौजूद उन सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए, chrome.privacy एपीआई का इस्तेमाल करें जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. यह एपीआई, Chrome के कॉन्फ़िगरेशन को पाने और सेट करने के लिए, टाइप एपीआई के ChromeSetting प्रोटोटाइप पर निर्भर करता है.
अनुमतियां
privacyएपीआई का इस्तेमाल करने के लिए, आपको अपने एक्सटेंशन के मेनिफ़ेस्ट में "निजता" की अनुमति का एलान करना होगा. उदाहरण के लिए:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
कॉन्सेप्ट और इस्तेमाल
Chrome की किसी सेटिंग की मौजूदा वैल्यू को पढ़ना आसान है. सबसे पहले, आपको अपनी पसंद की प्रॉपर्टी ढूंढनी होगी. इसके बाद, उस ऑब्जेक्ट पर get() को कॉल करना होगा, ताकि उसकी मौजूदा वैल्यू और एक्सटेंशन के कंट्रोल का लेवल वापस पाया जा सके. उदाहरण के लिए, यह पता लगाने के लिए कि Chrome में क्रेडिट कार्ड की जानकारी ऑटोमैटिक तरीके से भरने की सुविधा चालू है या नहीं, यह लिखें:
browser.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() को सिर्फ़ तब कॉल करें, जब आपका एक्सटेंशन सेटिंग पर कंट्रोल हासिल कर सके. अगर आपका एक्सटेंशन सेटिंग को कंट्रोल नहीं कर सकता, तो उपयोगकर्ता के भ्रम को कम करने के लिए, सुविधा को विज़ुअल तौर पर बंद करना एक अच्छा आइडिया है:
browser.privacy.services.autofillCreditCardEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
browser.privacy.services.autofillCreditCardEnabled.set({ value: true }, function() {
if (browser.runtime.lastError === undefined) {
console.log("Hooray, it worked!");
} else {
console.log("Sadness!", browser.runtime.lastError);
}
});
}
});
अगर आपको किसी सेटिंग की वैल्यू में हुए बदलावों के बारे में जानना है, तो उसके onChange इवेंट में एक लिसनर जोड़ें. इसके अलावा, इस इवेंट का इस्तेमाल करके उपयोगकर्ता को यह चेतावनी दी जा सकती है कि हाल ही में इंस्टॉल किया गया कोई एक्सटेंशन, किसी सेटिंग को कंट्रोल कर रहा है या एंटरप्राइज़ नीति आपके कंट्रोल को बदल रही है. क्रेडिट कार्ड की जानकारी अपने-आप भरने की सुविधा की स्थिति में होने वाले बदलावों को सुनने के लिए, उदाहरण के तौर पर यह कोड काफ़ी होगा:
browser.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 रिपॉज़िटरी से privacy API example इंस्टॉल करें.
टाइप
AutofillBlockedType
ऑटोमैटिक तरीके से भरने की सुविधा के डेटा की कैटगरी.
Enum
"contact_info"
"पेमेंट"
"identity_docs"
"travel"
"all"
IPHandlingPolicy
WebRTC के आईपी मैनेज करने की नीति.
Enum
"default"
"default_public_and_private_interfaces"
"default_public_interface_only"
"disable_non_proxied_udp"
प्रॉपर्टी
network
ऐसी सेटिंग जो आम तौर पर, Chrome के इंटरनेट कनेक्शन को मैनेज करने के तरीके पर असर डालती हैं.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
-
networkPredictionEnabled
types.ChromeSetting<boolean>
अगर यह नीति चालू है, तो Chrome आपके वेब ब्राउज़िंग अनुभव को बेहतर बनाने की कोशिश करता है. इसके लिए, वह डीएनएस एंट्री को पहले से रिज़ॉल्व करता है, सर्वर के लिए टीसीपी और एसएसएल कनेक्शन को पहले से खोलता है, और पेजों को पहले से लोड करता है. इस सेटिंग को बंद करने पर, साइट के मालिकों के पास अनुमान के हिसाब से यूआरएल लोड होने की सुविधा नहीं रहती. जैसे, Speculation Rules API की मदद से, कॉन्टेंट को पहले से फ़ेच या प्रीरेंडर करना. इससे वेबपेज से शुरू किए गए प्रीकनेक्ट या डीएनएस प्रीफ़ेच पर कोई असर नहीं पड़ता. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, यह
trueपर सेट होती है. -
webRTCIPHandlingPolicyChrome 48+ Chrome 148 के बाद से browser.*
उपयोगकर्ताओं को मीडिया की परफ़ॉर्मेंस/निजता के बीच संतुलन बनाने की अनुमति दें. इससे यह तय होता है कि WebRTC ट्रैफ़िक को कैसे रूट किया जाएगा और स्थानीय पते की कितनी जानकारी ज़ाहिर की जाएगी. इस प्राथमिकता की वैल्यू, IPHandlingPolicy टाइप की है. यह डिफ़ॉल्ट रूप से
defaultपर सेट होती है.
services
ऐसी सेटिंग जो उन सुविधाओं को चालू या बंद करती हैं जिनके लिए Google और डिफ़ॉल्ट सर्च इंजन की सुविधा देने वाली कंपनी की ओर से उपलब्ध कराई गई, तीसरे पक्ष की नेटवर्क सेवाओं की ज़रूरत होती है.
टाइप
ऑब्जेक्ट
प्रॉपर्टी
-
alternateErrorPagesEnabled
types.ChromeSetting<boolean>
अगर यह नीति चालू है, तो Chrome नेविगेशन की गड़बड़ियों को ठीक करने के लिए, किसी वेब सेवा का इस्तेमाल करता है. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, यह
trueपर सेट होती है. -
autofillAddressEnabled
types.ChromeSetting<boolean>
Chrome 70+ Chrome 148 से browser.*अगर यह सेटिंग चालू है, तो Chrome, पते और फ़ॉर्म का अन्य डेटा अपने-आप भरने की सुविधा देता है. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, यह
trueपर सेट होती है. -
autofillCreditCardEnabled
types.ChromeSetting<boolean>
Chrome 70+ browser.* Chrome 148 सेअगर यह सुविधा चालू है, तो 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>
अगर यह सेटिंग चालू है, तो सुरक्षित ब्राउज़िंग की सुविधा से किसी पेज को ब्लॉक किए जाने पर, 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+ browser.* Chrome 148 सेअगर यह सेटिंग बंद है, तो Attribution Reporting API और Private Aggregation API भी बंद हो जाते हैं. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इन एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. अगर इन एपीआई कोtrueपर सेट करने की कोशिश की जाती है, तो गड़बड़ी का मैसेज दिखेगा. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65+ Chrome 148 से browser.*अगर यह सुविधा चालू है, तो Chrome आपके अनुरोधों के साथ 'Do Not Track' (
DNT: 1) हेडर भेजता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यूfalseहोती है. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111+ browser.* Chrome 148 सेअगर इसे बंद किया जाता है, तो Fledge API बंद हो जाता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. अगर इस एपीआई कोtrueपर सेट करने की कोशिश की जाती है, तो गड़बड़ी का मैसेज दिखेगा. -
hyperlinkAuditingEnabled
types.ChromeSetting<boolean>
अगर यह नीति चालू है, तो किसी वेबसाइट (
<a ping>) के अनुरोध करने पर, Chrome ऑडिटिंग पिंग भेजता है. इस सेटिंग की वैल्यू बूलियन टाइप की होती है. इसकी डिफ़ॉल्ट वैल्यूtrueपर सेट होती है. -
protectedContentEnabled
types.ChromeSetting<boolean>
सिर्फ़ Windows और ChromeOS पर उपलब्ध है: अगर यह सेटिंग चालू है, तो Chrome सुरक्षित कॉन्टेंट चलाने के लिए प्लग इन को एक यूनीक आईडी देता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. -
referrersEnabled
types.ChromeSetting<boolean>
अगर यह सेटिंग चालू है, तो Chrome आपके अनुरोधों के साथ
refererहेडर भेजता है. हां, इस प्राथमिकता का नाम, गलत स्पेलिंग वाले हेडर से मेल नहीं खाता. नहीं, हम इसे नहीं बदलेंगे. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यूtrueहोती है. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
अगर यह सेटिंग बंद है, तो Chrome तीसरे पक्ष की साइटों को कुकी सेट करने से रोकता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. ऐसा हो सकता है कि एक्सटेंशन, गुप्त मोड में इस एपीआई को चालू न कर पाएं. गुप्त मोड में, तीसरे पक्ष की कुकी ब्लॉक होती हैं और उन्हें सिर्फ़ साइट लेवल पर अनुमति दी जा सकती है. अगर गुप्त मोड में इस एपीआई को 'सही है' पर सेट करने की कोशिश की जाती है, तो गड़बड़ी का मैसेज दिखेगा.ध्यान दें: अगर इस एपीआई से
falseमिलता है, तो भी अलग-अलग साइटें तीसरे पक्ष की कुकी ऐक्सेस कर सकती हैं. ऐसा तब होता है, जब उनके पास छूट हो या वे Storage Access API का इस्तेमाल करती हों. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111+ browser.* Chrome 148 सेअगर यह सेटिंग बंद है, तो Topics API बंद हो जाता है. इस प्राथमिकता की वैल्यू, बूलियन टाइप की होती है. साथ ही, इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. अगर इस एपीआई कोtrueपर सेट करने की कोशिश की जाती है, तो गड़बड़ी का मैसेज दिखेगा.