ब्यौरा
chrome.privacy एपीआई का इस्तेमाल करके, Chrome की उन सुविधाओं के इस्तेमाल को कंट्रोल किया जा सकता है जिनसे उपयोगकर्ता की निजता पर असर पड़ सकता है. यह एपीआई, 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 रिपॉज़िटरी से इंस्टॉल करें.
टाइप
AutofillBlockedType
ऑटोमैटिक तरीके से जानकारी भरने की सुविधा के डेटा की कैटगरी.
Enum
"contact_info"
"payments"
"identity_docs"
"travel"
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, 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पर सेट करने की कोशिश की जाती है, तो गड़बड़ी का मैसेज दिखेगा.