ब्यौरा
Chrome में मौजूद उन सुविधाओं के इस्तेमाल को कंट्रोल करने के लिए, chrome.privacy API का इस्तेमाल करें जिनसे किसी व्यक्ति की निजता पर असर पड़ सकता है. Chrome के कॉन्फ़िगरेशन को पाने और सेट करने के लिए, यह एपीआई ChromeSetting prototype of the type API पर निर्भर करता है.
अनुमतियां
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 रिपॉज़िटरी से 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पर सेट होती है. -
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पर सेट करने की कोशिश करने पर, गड़बड़ी का मैसेज दिखेगा.