বর্ণনা
ক্রোমের যে বৈশিষ্ট্যগুলো ব্যবহারকারীর গোপনীয়তাকে প্রভাবিত করতে পারে, সেগুলোর ব্যবহার নিয়ন্ত্রণ করতে chrome.privacy API ব্যবহার করুন। এই API-টি ক্রোমের কনফিগারেশন পেতে ও সেট করতে type API-এর ChromeSetting প্রোটোটাইপের উপর নির্ভর করে।
অনুমতি
privacyপ্রকাশ
এপিআই ব্যবহার করার জন্য আপনাকে আপনার এক্সটেনশনের ম্যানিফেস্টে 'privacy' পারমিশনটি অবশ্যই ঘোষণা করতে হবে। উদাহরণস্বরূপ:
{
"name": "My extension",
...
"permissions": [
"privacy"
],
...
}
ব্যবহার
ক্রোমের কোনো সেটিংয়ের বর্তমান মান জানা বেশ সহজ। প্রথমে আপনাকে আপনার কাঙ্ক্ষিত প্রপার্টিটি খুঁজে বের করতে হবে, তারপর সেই অবজেক্টের উপর get() কল করে তার বর্তমান মান এবং আপনার এক্সটেনশনের নিয়ন্ত্রণের স্তরটি জানতে হবে। উদাহরণস্বরূপ, ক্রোমের অটোফিল ফিচারটি চালু আছে কিনা তা জানতে, আপনি লিখবেন:
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 রিপোজিটরি থেকে প্রাইভেসি এপিআই উদাহরণটি ইনস্টল করুন।
প্রকারভেদ
IPHandlingPolicy
WebRTC-এর আইপি হ্যান্ডলিং নীতি।
এনাম
'ডিফল্ট' "ডিফল্ট_পাবলিক_এবং_প্রাইভেট_ইন্টারফেস" "ডিফল্ট_পাবলিক_ইন্টারফেস_শুধুমাত্র" "disable_non_proxied_udp"
বৈশিষ্ট্য
network
এমন সব সেটিংস যা সাধারণভাবে নেটওয়ার্ক সংযোগ পরিচালনার ক্ষেত্রে ক্রোমকে প্রভাবিত করে।
প্রকার
বস্তু
বৈশিষ্ট্য
- নেটওয়ার্কপ্রেডিকশনসক্ষম
types.ChromeSetting <boolean>
এটি সক্রিয় করা থাকলে, Chrome আগে থেকেই DNS এন্ট্রি সমাধান করে এবং সার্ভারগুলিতে TCP ও SSL সংযোগ খুলে আপনার ওয়েব ব্রাউজিং অভিজ্ঞতাকে দ্রুততর করার চেষ্টা করে। এই প্রেফারেন্সটি শুধুমাত্র Chrome-এর অভ্যন্তরীণ প্রেডিকশন সার্ভিসের গৃহীত পদক্ষেপগুলিকে প্রভাবিত করে। এটি ওয়েবপেজ দ্বারা শুরু করা প্রিফেকচেজ বা প্রিকানেক্টকে প্রভাবিত করে না। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - webRTCIPHandlingPolicyক্রোম ৪৮+
ব্যবহারকারীদের মিডিয়া পারফরম্যান্স ও গোপনীয়তার মধ্যকার ভারসাম্য নির্দিষ্ট করার সুযোগ দিন, যা ওয়েবআরটিসি (WebRTC) ট্র্যাফিক কীভাবে রাউট করা হবে এবং কী পরিমাণ স্থানীয় ঠিকানার তথ্য প্রকাশ করা হবে তার ওপর প্রভাব ফেলে। এই প্রেফারেন্সটির ভ্যালু IPHandlingPolicy টাইপের এবং এর ডিফল্ট মান হলো
default।
services
এমন সেটিংস যা গুগল এবং আপনার ডিফল্ট সার্চ প্রোভাইডার দ্বারা প্রদত্ত তৃতীয় পক্ষের নেটওয়ার্ক পরিষেবা প্রয়োজন এমন ফিচারগুলো চালু বা বন্ধ করে।
প্রকার
বস্তু
বৈশিষ্ট্য
- বিকল্প ত্রুটি পৃষ্ঠাগুলি সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
এটি সক্রিয় করা থাকলে, নেভিগেশন সংক্রান্ত ত্রুটি সমাধানে সাহায্য করার জন্য ক্রোম একটি ওয়েব পরিষেবা ব্যবহার করে। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - ঠিকানা স্বয়ংক্রিয়ভাবে পূরণ সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
ক্রোম ৭০+এটি চালু করা থাকলে, ক্রোম ঠিকানা এবং ফর্মের অন্যান্য তথ্য স্বয়ংক্রিয়ভাবে পূরণ করার প্রস্তাব দেয়। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - স্বয়ংক্রিয়ভাবে ক্রেডিট কার্ড পূরণ সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
ক্রোম ৭০+এটি চালু করা থাকলে, ক্রোম স্বয়ংক্রিয়ভাবে ক্রেডিট কার্ড ফর্ম পূরণ করার প্রস্তাব দেয়। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - স্বয়ংক্রিয় পূরণ সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
ক্রোম ৭০ থেকে বাতিল করা হয়েছেঅনুগ্রহ করে privacy.services.autofillAddressEnabled এবং privacy.services.autofillCreditCardEnabled ব্যবহার করুন। এই রিলিজে এটি পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্য রক্ষার জন্য রাখা হয়েছে এবং ভবিষ্যতে এটি সরিয়ে ফেলা হবে।
এটি চালু করা থাকলে, ক্রোম স্বয়ংক্রিয়ভাবে ফর্ম পূরণ করার প্রস্তাব দেয়। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - পাসওয়ার্ড সংরক্ষণ সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
এটি চালু করা থাকলে, পাসওয়ার্ড ম্যানেজার আপনাকে পাসওয়ার্ড সংরক্ষণ করতে চান কিনা তা জিজ্ঞাসা করবে। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - নিরাপদ ব্রাউজিং সক্ষম
types.ChromeSetting <boolean>
এটি চালু করা থাকলে, ক্রোম আপনাকে ফিশিং এবং ম্যালওয়্যার থেকে রক্ষা করার জন্য যথাসাধ্য চেষ্টা করে। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - নিরাপদ ব্রাউজিং বর্ধিত রিপোর্টিং সক্ষম
types.ChromeSetting <boolean>
এটি চালু করা থাকলে, সেফব্রাউজিং কোনো পৃষ্ঠা ব্লক করলে ক্রোম গুগলকে অতিরিক্ত তথ্য পাঠাবে, যেমন ব্লক করা পৃষ্ঠাটির বিষয়বস্তু। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো
false। - অনুসন্ধান পরামর্শ সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
এটি চালু করা থাকলে, Chrome আপনার Omnibox-এ টাইপ করা টেক্সট আপনার ডিফল্ট সার্চ ইঞ্জিনে পাঠিয়ে দেয়, যা আপনার টাইপ করা লেখার সম্ভাব্য পূর্ণাঙ্গ ওয়েবসাইট ও সার্চের পূর্বাভাস দেয়। এই প্রেফারেন্সটির ভ্যালু একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'। - বানান পরিষেবা সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
এটি চালু করা থাকলে, ক্রোম বানান ভুল সংশোধনে সাহায্য করার জন্য একটি ওয়েব পরিষেবা ব্যবহার করে। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো
false। - অনুবাদ পরিষেবা সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
এটি চালু করা থাকলে, Chrome এমন পৃষ্ঠাগুলি অনুবাদ করার প্রস্তাব দেয় যা আপনার পড়া ভাষায় নেই। এই প্রেফারেন্সটির মান একটি বুলিয়ান, যার ডিফল্ট মান হলো '
true'।
websites
এমন সেটিংস যা নির্ধারণ করে ক্রোম ওয়েবসাইটগুলোকে কী কী তথ্য সরবরাহ করবে।
প্রকার
বস্তু
বৈশিষ্ট্য
- adMeasurementEnabled
types.ChromeSetting <boolean>
ক্রোম ১১১+নিষ্ক্রিয় করা হলে, অ্যাট্রিবিউশন রিপোর্টিং এপিআই এবং প্রাইভেট অ্যাগ্রিগেশন এপিআই নিষ্ক্রিয় হয়ে যায়। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের, এবং এর ডিফল্ট মান হলো
true'। এক্সটেনশনগুলো শুধুমাত্র এর মান 'falseসেট করার মাধ্যমেই এই এপিআইগুলো নিষ্ক্রিয় করতে পারে। আপনি যদি এই এপিআইগুলোর মান 'trueসেট করার চেষ্টা করেন, তাহলে এটি একটি এরর দেখাবে। - doNotTrackEnabled
types.ChromeSetting <boolean>
ক্রোম ৬৫+এটি সক্রিয় করা থাকলে, Chrome আপনার অনুরোধের সাথে 'Do Not Track' (
DNT: 1) হেডার পাঠায়। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের এবং এর ডিফল্ট মান হলোfalse। - ফ্লেজএনাবলড
types.ChromeSetting <boolean>
ক্রোম ১১১+নিষ্ক্রিয় করা হলে, ফ্লেজ এপিআই (Fledge API) নিষ্ক্রিয় হয়ে যায়। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের, এবং এর ডিফল্ট মান হলো
true'। এক্সটেনশনগুলো শুধুমাত্র এর মান 'falseসেট করার মাধ্যমেই এই এপিআই নিষ্ক্রিয় করতে পারে। আপনি যদি এই এপিআই-এর মানtrueসেট করার চেষ্টা করেন, তাহলে এটি একটি এরর দেখাবে। - হাইপারলিঙ্ক অডিটিং সক্ষম
types.ChromeSetting <boolean>
এটি সক্রিয় করা থাকলে, কোনো ওয়েবসাইট অনুরোধ করলে ক্রোম অডিটিং পিং (
<a ping>) পাঠায়। এই প্রেফারেন্সটির মান বুলিয়ান টাইপের এবং এর ডিফল্ট মান হলোtrue। - সুরক্ষিত বিষয়বস্তু সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
শুধুমাত্র Windows এবং ChromeOS-এ উপলব্ধ : এটি সক্রিয় করা হলে, সুরক্ষিত কন্টেন্ট চালানোর জন্য Chrome প্লাগইনগুলিকে একটি অনন্য আইডি প্রদান করে। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের এবং এর ডিফল্ট মান হলো
true'। - রেফারার সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
সক্রিয় করা থাকলে, Chrome আপনার অনুরোধের সাথে
refererহেডার পাঠায়। হ্যাঁ, এই প্রেফারেন্সটির নামটি ভুল বানানের হেডারের সাথে মেলে না। না, আমরা এটি পরিবর্তন করব না। এই প্রেফারেন্সটির মান বুলিয়ান টাইপের, এবং এর ডিফল্ট মান হলোtrue'। types.ChromeSetting <boolean>
ক্রোম ১২১+নিষ্ক্রিয় করা থাকলে, ‘সম্পর্কিত ওয়েবসাইট সেট’ নিষ্ক্রিয় হয়ে যায়। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের, এবং এর ডিফল্ট মান হলো
true। এক্সটেনশনগুলো শুধুমাত্র এর মানfalseসেট করার মাধ্যমেই এই API-টি নিষ্ক্রিয় করতে পারে। আপনি যদি এই API-টির মানtrueসেট করার চেষ্টা করেন, তাহলে এটি একটি এরর দেখাবে।- তৃতীয় পক্ষের কুকিজ অনুমোদিত
types.ChromeSetting <boolean>
নিষ্ক্রিয় করা থাকলে, ক্রোম তৃতীয় পক্ষের সাইটগুলোকে কুকি সেট করা থেকে ব্লক করে। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের, এবং এর ডিফল্ট মান হলো
true'। এক্সটেনশনগুলো ইনকগনিটো মোডে এই API সক্রিয় করতে পারে না, যেখানে তৃতীয় পক্ষের কুকি ব্লক করা থাকে এবং শুধুমাত্র সাইট লেভেলেই এর অনুমতি দেওয়া যায়। আপনি যদি ইনকগনিটো মোডে এই API-টিকে 'true' সেট করার চেষ্টা করেন, তাহলে এটি একটি এরর দেখাবে।দ্রষ্টব্য: এই API-টি
falseরিটার্ন করলেও, স্বতন্ত্র সাইটগুলি তৃতীয় পক্ষের কুকি অ্যাক্সেস করতে সক্ষম হতে পারে, যদি তাদের কোনো বৈধ ছাড় থাকে অথবা তারা এর পরিবর্তে স্টোরেজ অ্যাক্সেস API ব্যবহার করে। - বিষয়গুলি সক্ষম করা হয়েছে
types.ChromeSetting <boolean>
ক্রোম ১১১+নিষ্ক্রিয় করা হলে, টপিকস এপিআই (Topics API) নিষ্ক্রিয় হয়ে যায়। এই প্রেফারেন্সের মানটি বুলিয়ান টাইপের, এবং এর ডিফল্ট মান হলো
true'। এক্সটেনশনগুলো শুধুমাত্র এর মান 'falseসেট করার মাধ্যমেই এই এপিআই নিষ্ক্রিয় করতে পারে। আপনি যদি এই এপিআই-এর মানtrueসেট করার চেষ্টা করেন, তাহলে এটি একটি এরর দেখাবে।