ब्यौरा
Chrome की उन सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए, chrome.privacy
API का इस्तेमाल करें जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. यह एपीआई, Chrome का कॉन्फ़िगरेशन पाने और उसे सेट करने के लिए, एपीआई टाइप के ChromeSettings प्रोटोटाइप पर निर्भर करता है.
अनुमतियां
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
को "Control_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-सैंपल डेटा स्टोर करने की जगह से, privacy API का उदाहरण इंस्टॉल करें.
टाइप
IPHandlingPolicy
WebRTC के आईपी मैनेज करने की नीति.
Enum
"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 ट्रैफ़िक को रूट करने के तरीके और स्थानीय पते की कितनी जानकारी ज़ाहिर की जाएगी, इस पर असर पड़ता है. इस प्राथमिकता की वैल्यू आईपीहैंडलिंग नीति की तरह है, जो डिफ़ॉल्ट रूप से
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 और प्राइवेट एग्रीगेशन एपीआई को बंद कर दिया जाता है. इस प्राथमिकता की वैल्यू बूलियन टाइप की है और डिफ़ॉल्ट वैल्यू
true
है. एक्सटेंशन, वैल्यू कोfalse
पर सेट करके ही इन एपीआई को बंद कर सकते हैं. इन एपीआई कोtrue
पर सेट करने पर, आपको गड़बड़ी का मैसेज दिखेगा. -
doNotTrackEnabled
types.ChromeSetting<boolean>
Chrome 65 और इसके बाद के वर्शनइस सेटिंग के चालू होने पर, Chrome आपके अनुरोधों के साथ 'Do Not Track' (
DNT: 1
) हेडर भेजता है. इस प्राथमिकता की वैल्यू बूलियन टाइप की है और डिफ़ॉल्ट वैल्यूfalse
है. -
fledgeEnabled
types.ChromeSetting<boolean>
Chrome 111 और उसके बाद के वर्शनबंद होने पर, 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
है. -
types.ChromeSetting<boolean>
Chrome 121 और इसके बाद के वर्शनअगर यह सेटिंग बंद होती है, तो मिलती-जुलती वेबसाइट के सेट बंद हो जाते हैं. इस प्राथमिकता की वैल्यू बूलियन टाइप की है और डिफ़ॉल्ट वैल्यू
true
है. एक्सटेंशन इस एपीआई को बंद करने के लिए, सिर्फ़ वैल्यू कोfalse
पर सेट कर सकते हैं. इस एपीआई कोtrue
पर सेट करने पर, आपको गड़बड़ी का मैसेज दिखेगा. -
thirdPartyCookiesAllowed
types.ChromeSetting<boolean>
इस सेटिंग के बंद होने पर, Chrome तीसरे पक्ष की साइटों को कुकी सेट करने से रोकता है. इस प्राथमिकता की वैल्यू बूलियन टाइप की है और डिफ़ॉल्ट वैल्यू
true
है. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 और उसके बाद के वर्शनइसे बंद करने पर, Topics API को बंद कर दिया जाता है. इस प्राथमिकता की वैल्यू बूलियन टाइप की है और डिफ़ॉल्ट वैल्यू
true
है. एक्सटेंशन इस एपीआई को बंद करने के लिए, सिर्फ़ वैल्यू कोfalse
पर सेट कर सकते हैं. इस एपीआई कोtrue
पर सेट करने पर, आपको गड़बड़ी का मैसेज दिखेगा.