ब्यौरा
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 रिपॉज़िटरी से privacy API example इंस्टॉल करें.
टाइप
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होती है. -
autofillOtherDatatypesEnabled
types.ChromeSetting<boolean>
मंज़ूरी मिलना बाकी हैइस सेटिंग के चालू होने पर, Chrome अन्य तरह के डेटा को अपने-आप भरने का विकल्प देता है. इसमें यात्रा और पहचान से जुड़े दस्तावेज़ शामिल हैं. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, इसकी वैल्यू
trueहोती है. -
passwordSavingEnabled
types.ChromeSetting<boolean>
इस सेटिंग को चालू करने पर, पासवर्ड मैनेजर आपसे पूछेगा कि क्या आपको पासवर्ड सेव करने हैं. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, इसकी वैल्यू
trueहोती है. -
safeBrowsingEnabled
types.ChromeSetting<boolean>
इस मोड को चालू करने पर, Chrome आपको फ़िशिंग और मैलवेयर से बचाने की पूरी कोशिश करता है. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, इसकी वैल्यू
trueहोती है. -
safeBrowsingExtendedReportingEnabled
types.ChromeSetting<boolean>
इस सेटिंग के चालू होने पर, Chrome उस पेज के बारे में ज़्यादा जानकारी Google को भेजेगा जिसे SafeBrowsing ने ब्लॉक किया है. जैसे, ब्लॉक किए गए पेज का कॉन्टेंट. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, इसकी वैल्यू
falseहोती है. -
searchSuggestEnabled
types.ChromeSetting<boolean>
इस सुविधा के चालू होने पर, Chrome, Omnibox में टाइप किए गए टेक्स्ट को आपके डिफ़ॉल्ट सर्च इंजन को भेजता है. इससे, आपके टाइप किए गए टेक्स्ट के आधार पर, वेबसाइटों और खोजों के अनुमानित नतीजे मिलते हैं. इस प्राथमिकता की वैल्यू बूलियन होती है. डिफ़ॉल्ट रूप से, इसकी वैल्यू
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मिलता है, तो भी कुछ साइटें तीसरे पक्ष की कुकी को ऐक्सेस कर सकती हैं. ऐसा तब होता है, जब उनके पास छूट का मान्य अनुरोध हो या वे Storage Access API का इस्तेमाल करती हों. -
topicsEnabled
types.ChromeSetting<boolean>
Chrome 111 या इसके बाद का वर्शनअगर यह सुविधा बंद है, तो Topics API बंद हो जाता है. इस प्राथमिकता की वैल्यू बूलियन टाइप की होती है. इसकी डिफ़ॉल्ट वैल्यू
trueहोती है. एक्सटेंशन, इस एपीआई को सिर्फ़falseपर सेट करके बंद कर सकते हैं. इस एपीआई कोtrueपर सेट करने की कोशिश करने पर, गड़बड़ी का मैसेज दिखेगा.