বিবরণ
ইনস্টলের সময়ের পরিবর্তে রান টাইমে ঘোষিত ঐচ্ছিক অনুমতির অনুরোধ করতে chrome.permissions API ব্যবহার করুন, যাতে ব্যবহারকারীরা বুঝতে পারেন কেন অনুমতিগুলি প্রয়োজন এবং শুধুমাত্র প্রয়োজনীয় অনুমতিগুলিই প্রদান করেন।
সংক্ষিপ্ত বিবরণ
একটি API দ্বারা প্রদত্ত ক্ষমতা বর্ণনা করার জন্য অনুমতি সতর্কতা বিদ্যমান, কিন্তু এই সতর্কতাগুলির মধ্যে কিছু স্পষ্ট নাও হতে পারে। অনুমতি API ডেভেলপারদের অনুমতি সতর্কতা ব্যাখ্যা করতে এবং ধীরে ধীরে নতুন বৈশিষ্ট্যগুলি প্রবর্তন করতে দেয় যা ব্যবহারকারীদের এক্সটেনশনের ঝুঁকিমুক্ত ভূমিকা দেয়। এইভাবে, ব্যবহারকারীরা নির্দিষ্ট করতে পারেন যে তারা কতটা অ্যাক্সেস দিতে ইচ্ছুক এবং কোন বৈশিষ্ট্যগুলি সক্ষম করতে চান।
উদাহরণস্বরূপ, ঐচ্ছিক অনুমতি এক্সটেনশনের মূল কার্যকারিতা নতুন ট্যাব পৃষ্ঠাকে ওভাররাইড করছে। একটি বৈশিষ্ট্য হল ব্যবহারকারীর দিনের লক্ষ্য প্রদর্শন করা। এই বৈশিষ্ট্যটির জন্য শুধুমাত্র স্টোরেজ অনুমতি প্রয়োজন, যার মধ্যে কোনও সতর্কতা অন্তর্ভুক্ত নেই। এক্সটেনশনটিতে একটি অতিরিক্ত বৈশিষ্ট্য রয়েছে, যা ব্যবহারকারীরা নিম্নলিখিত বোতামে ক্লিক করে সক্ষম করতে পারেন:

ব্যবহারকারীর সেরা সাইটগুলি প্রদর্শনের জন্য topSites-এর অনুমতি প্রয়োজন, যেখানে নিম্নলিখিত সতর্কতা রয়েছে।

ঐচ্ছিক অনুমতি বাস্তবায়ন করা
ধাপ ১: কোন অনুমতি প্রয়োজন এবং কোনটি ঐচ্ছিক তা নির্ধারণ করুন
একটি এক্সটেনশন প্রয়োজনীয় এবং ঐচ্ছিক উভয় অনুমতিই ঘোষণা করতে পারে। সাধারণভাবে, আপনার উচিত:
- আপনার এক্সটেনশনের মৌলিক কার্যকারিতার জন্য প্রয়োজনীয় অনুমতিগুলি ব্যবহার করুন।
- আপনার এক্সটেনশনের ঐচ্ছিক বৈশিষ্ট্যগুলির জন্য যখন ঐচ্ছিক অনুমতিগুলির প্রয়োজন হয় তখন সেগুলি ব্যবহার করুন।
প্রয়োজনীয় অনুমতির সুবিধা:
- কম প্রম্পট: একটি এক্সটেনশন ব্যবহারকারীকে একবারই সমস্ত অনুমতি গ্রহণ করতে অনুরোধ করতে পারে।
- সহজতর উন্নয়ন: প্রয়োজনীয় অনুমতি নিশ্চিতভাবে উপস্থিত থাকবে।
ঐচ্ছিক অনুমতির সুবিধা:
- উন্নত নিরাপত্তা: এক্সটেনশনগুলি কম অনুমতিতে চলে কারণ ব্যবহারকারীরা কেবল প্রয়োজনীয় অনুমতিগুলিই সক্ষম করে।
- ব্যবহারকারীদের জন্য আরও ভালো তথ্য: একটি এক্সটেনশন ব্যাখ্যা করতে পারে যে ব্যবহারকারী যখন প্রাসঙ্গিক বৈশিষ্ট্যটি সক্ষম করে তখন কেন একটি নির্দিষ্ট অনুমতির প্রয়োজন হয়।
- সহজ আপগ্রেড: যখন আপনি আপনার এক্সটেনশন আপগ্রেড করবেন, তখন আপগ্রেডে প্রয়োজনীয় অনুমতির পরিবর্তে ঐচ্ছিক অনুমতি যোগ করা হলে Chrome আপনার ব্যবহারকারীদের জন্য এটি অক্ষম করবে না।
ধাপ ২: ম্যানিফেস্টে ঐচ্ছিক অনুমতি ঘোষণা করুন
optional_permissions কী ব্যবহার করে আপনার এক্সটেনশন ম্যানিফেস্টে ঐচ্ছিক অনুমতি ঘোষণা করুন, অনুমতি ক্ষেত্রের মতো একই ফর্ম্যাট ব্যবহার করে:
{
"name": "My extension",
...
"optional_permissions": ["tabs"],
"optional_host_permissions": ["https://www.google.com/"],
...
}
যদি আপনি এমন হোস্টের অনুরোধ করতে চান যা আপনি কেবল রানটাইমে আবিষ্কার করেন, তাহলে আপনার এক্সটেনশনের optional_host_permissions ফিল্ডে "https://*/*" অন্তর্ভুক্ত করুন। এটি আপনাকে Permissions.origins- এ যেকোনো origin নির্দিষ্ট করতে দেয় যতক্ষণ না এর একটি মিলিত স্কিম থাকে।
ঐচ্ছিক হিসাবে নির্দিষ্ট করা যাবে না এমন অনুমতি
নিম্নলিখিত ব্যতিক্রমগুলি ছাড়া, বেশিরভাগ Chrome এক্সটেনশন অনুমতি ঐচ্ছিক হিসাবে নির্দিষ্ট করা যেতে পারে।
| অনুমতি | বিবরণ |
|---|---|
"debugger" | chrome.debugger API Chrome এর রিমোট ডিবাগিং প্রোটোকলের জন্য একটি বিকল্প পরিবহন হিসেবে কাজ করে। |
"declarativeNetRequest" | এক্সটেনশনটিকে chrome.declarativeNetRequest API-তে অ্যাক্সেস দেয়। |
"devtools" | এক্সটেনশনকে Chrome DevTools কার্যকারিতা প্রসারিত করার অনুমতি দেয়। |
"experimental" | শুধুমাত্র ক্যানারি এবং ডেভ চ্যানেল । এক্সটেনশনটিকে chrome.experimental API-তে অ্যাক্সেস দেয়। |
"geolocation" | এক্সটেনশনটিকে HTML5 জিওলোকেশন API ব্যবহার করার অনুমতি দেয়। |
"mdns" | এক্সটেনশনটিকে chrome.mdns API-তে অ্যাক্সেস দেয়। |
"proxy" | Chrome এর প্রক্সি সেটিংস পরিচালনা করার জন্য chrome.proxy API-তে এক্সটেনশন অ্যাক্সেস মঞ্জুর করে। |
"tts" | chrome.tts API সিন্থেসাইজড টেক্সট-টু-স্পিচ (TTS) চালায়। |
"ttsEngine" | chrome.ttsEngine API একটি এক্সটেনশন ব্যবহার করে একটি টেক্সট-টু-স্পিচ (TTS) ইঞ্জিন প্রয়োগ করে। |
"wallpaper" | শুধুমাত্র ChromeOS । ChromeOS ওয়ালপেপার পরিবর্তন করার জন্য chrome.wallpaper API ব্যবহার করুন। |
উপলব্ধ অনুমতি এবং তাদের সতর্কতা সম্পর্কে আরও তথ্যের জন্য অনুমতি ঘোষণা করুন এবং ব্যবহারকারীদের সতর্ক করুন দেখুন।
ধাপ ৩: ঐচ্ছিক অনুমতির অনুরোধ করুন
permissions.request() ব্যবহার করে ব্যবহারকারীর অঙ্গভঙ্গির মধ্যে থেকে অনুমতিগুলির অনুরোধ করুন:
document.querySelector('#my-button').addEventListener('click', (event) => {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, (granted) => {
// The callback argument will be true if the user granted the permissions.
if (granted) {
doSomething();
} else {
doSomethingElse();
}
});
});
যদি অনুমতি যোগ করার ফলে ব্যবহারকারী ইতিমধ্যেই দেখেছেন এবং গ্রহণ করেছেন তার চেয়ে ভিন্ন সতর্কতা বার্তা আসে, তাহলে Chrome ব্যবহারকারীকে প্রম্পট করে। উদাহরণস্বরূপ, পূর্ববর্তী কোডটি এই ধরণের প্রম্পট দেখাতে পারে:

ধাপ ৪: এক্সটেনশনের বর্তমান অনুমতিগুলি পরীক্ষা করুন
আপনার এক্সটেনশনের কোন নির্দিষ্ট অনুমতি বা অনুমতির সেট আছে কিনা তা পরীক্ষা করতে, permission.contains() ব্যবহার করুন:
chrome.permissions.contains({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, (result) => {
if (result) {
// The extension has the permissions.
} else {
// The extension doesn't have the permissions.
}
});
ধাপ ৫: অনুমতিগুলি সরান
যখন আপনার আর অনুমতির প্রয়োজন হবে না, তখন সেগুলি সরিয়ে ফেলা উচিত। অনুমতি সরানোর পরে, permissions.request() কল করার মাধ্যমে সাধারণত ব্যবহারকারীকে অনুরোধ না করেই অনুমতিটি আবার যোগ করা হয়।
chrome.permissions.remove({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, (removed) => {
if (removed) {
// The permissions have been removed.
} else {
// The permissions have not been removed (e.g., you tried to remove
// required permissions).
}
});
প্রকারভেদ
Permissions
বৈশিষ্ট্য
- উৎপত্তি
স্ট্রিং[] ঐচ্ছিক
হোস্ট অনুমতিগুলির তালিকা, ম্যানিফেস্টে
optional_permissionsবাpermissionsকীগুলিতে নির্দিষ্ট করা এবং Content Scripts এর সাথে সম্পর্কিত অনুমতিগুলি সহ। - অনুমতি
স্ট্রিং[] ঐচ্ছিক
নামযুক্ত অনুমতিগুলির তালিকা (হোস্ট বা অরিজিন অন্তর্ভুক্ত নয়)।
পদ্ধতি
contains()
chrome.permissions.contains(
permissions: Permissions,
callback?: function,
): Promise<boolean>
এক্সটেনশনটির নির্দিষ্ট অনুমতি আছে কিনা তা পরীক্ষা করে।
পরামিতি
- অনুমতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(result: boolean) => void
- ফলাফল
বুলিয়ান
যদি এক্সটেনশনের নির্দিষ্ট অনুমতি থাকে তবে সত্য। যদি কোনও অরিজিনকে ঐচ্ছিক অনুমতি এবং একটি কন্টেন্ট স্ক্রিপ্ট ম্যাচ প্যাটার্ন উভয় হিসাবে নির্দিষ্ট করা হয়, তাহলে উভয় অনুমতি মঞ্জুর না করা হলে এটি
falseফেরত দেবে।
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getAll()
chrome.permissions.getAll(
callback?: function,
): Promise<Permissions>
এক্সটেনশনের বর্তমান অনুমতিগুলির সেট পায়।
পরামিতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(permissions: Permissions) => void
- অনুমতি
এক্সটেনশনের সক্রিয় অনুমতি। মনে রাখবেন যে
originsসম্পত্তিতেpermissionsএবংoptional_permissionsকীগুলিতে নির্দিষ্ট করা এবং Content Scripts এর সাথে সম্পর্কিত কীগুলি থেকে প্রাপ্ত granted origins থাকবে।
রিটার্নস
প্রতিশ্রুতি < অনুমতি >
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
remove()
chrome.permissions.remove(
permissions: Permissions,
callback?: function,
): Promise<boolean>
নির্দিষ্ট অনুমতিগুলিতে অ্যাক্সেস সরিয়ে দেয়। অনুমতিগুলি সরাতে কোনও সমস্যা হলে, প্রতিশ্রুতি প্রত্যাখ্যান করা হবে।
পরামিতি
- অনুমতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(removed: boolean) => void
- সরানো হয়েছে
বুলিয়ান
যদি অনুমতিগুলি সরানো হয় তবে সত্য।
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
request()
chrome.permissions.request(
permissions: Permissions,
callback?: function,
): Promise<boolean>
নির্দিষ্ট অনুমতিগুলিতে অ্যাক্সেসের অনুরোধ করে, প্রয়োজনে ব্যবহারকারীকে একটি প্রম্পট প্রদর্শন করে। এই অনুমতিগুলি হয় ম্যানিফেস্টের optional_permissions ক্ষেত্রে সংজ্ঞায়িত করতে হবে অথবা ব্যবহারকারী দ্বারা আটকে রাখা প্রয়োজনীয় অনুমতি হতে হবে। অরিজিন প্যাটার্নের পাথগুলি উপেক্ষা করা হবে। আপনি ঐচ্ছিক অরিজিন অনুমতিগুলির উপসেটগুলির জন্য অনুরোধ করতে পারেন; উদাহরণস্বরূপ, যদি আপনি ম্যানিফেস্টের optional_permissions বিভাগে *://*\/* নির্দিষ্ট করেন, তাহলে আপনি http://example.com/ অনুরোধ করতে পারেন। অনুমতিগুলির অনুরোধ করতে কোনও সমস্যা হলে, প্রতিশ্রুতি প্রত্যাখ্যান করা হবে।
পরামিতি
- অনুমতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(granted: boolean) => void
- মঞ্জুর করা হয়েছে
বুলিয়ান
ব্যবহারকারী যদি নির্দিষ্ট অনুমতি প্রদান করে থাকেন তাহলে সত্য।
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
ইভেন্টগুলি
onAdded
chrome.permissions.onAdded.addListener(
callback: function,
)
এক্সটেনশনটি নতুন অনুমতি পেলে চালু হয়।
পরামিতি
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(permissions: Permissions) => void
- অনুমতি
onRemoved
chrome.permissions.onRemoved.addListener(
callback: function,
)
এক্সটেনশন থেকে অনুমতির অ্যাক্সেস সরানো হলে চালু করা হয়।
পরামিতি
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(permissions: Permissions) => void
- অনুমতি
বিবরণ
ইনস্টলের সময়ের পরিবর্তে রান টাইমে ঘোষিত ঐচ্ছিক অনুমতির অনুরোধ করতে chrome.permissions API ব্যবহার করুন, যাতে ব্যবহারকারীরা বুঝতে পারেন কেন অনুমতিগুলি প্রয়োজন এবং শুধুমাত্র প্রয়োজনীয় অনুমতিগুলিই প্রদান করেন।
সংক্ষিপ্ত বিবরণ
একটি API দ্বারা প্রদত্ত ক্ষমতা বর্ণনা করার জন্য অনুমতি সতর্কতা বিদ্যমান, কিন্তু এই সতর্কতাগুলির মধ্যে কিছু স্পষ্ট নাও হতে পারে। অনুমতি API ডেভেলপারদের অনুমতি সতর্কতা ব্যাখ্যা করতে এবং ধীরে ধীরে নতুন বৈশিষ্ট্যগুলি প্রবর্তন করতে দেয় যা ব্যবহারকারীদের এক্সটেনশনের ঝুঁকিমুক্ত ভূমিকা দেয়। এইভাবে, ব্যবহারকারীরা নির্দিষ্ট করতে পারেন যে তারা কতটা অ্যাক্সেস দিতে ইচ্ছুক এবং কোন বৈশিষ্ট্যগুলি সক্ষম করতে চান।
উদাহরণস্বরূপ, ঐচ্ছিক অনুমতি এক্সটেনশনের মূল কার্যকারিতা নতুন ট্যাব পৃষ্ঠাকে ওভাররাইড করছে। একটি বৈশিষ্ট্য হল ব্যবহারকারীর দিনের লক্ষ্য প্রদর্শন করা। এই বৈশিষ্ট্যটির জন্য শুধুমাত্র স্টোরেজ অনুমতি প্রয়োজন, যার মধ্যে কোনও সতর্কতা অন্তর্ভুক্ত নেই। এক্সটেনশনটিতে একটি অতিরিক্ত বৈশিষ্ট্য রয়েছে, যা ব্যবহারকারীরা নিম্নলিখিত বোতামে ক্লিক করে সক্ষম করতে পারেন:

ব্যবহারকারীর সেরা সাইটগুলি প্রদর্শনের জন্য topSites-এর অনুমতি প্রয়োজন, যেখানে নিম্নলিখিত সতর্কতা রয়েছে।

ঐচ্ছিক অনুমতি বাস্তবায়ন করা
ধাপ ১: কোন অনুমতি প্রয়োজন এবং কোনটি ঐচ্ছিক তা নির্ধারণ করুন
একটি এক্সটেনশন প্রয়োজনীয় এবং ঐচ্ছিক উভয় অনুমতিই ঘোষণা করতে পারে। সাধারণভাবে, আপনার উচিত:
- আপনার এক্সটেনশনের মৌলিক কার্যকারিতার জন্য প্রয়োজনীয় অনুমতিগুলি ব্যবহার করুন।
- আপনার এক্সটেনশনের ঐচ্ছিক বৈশিষ্ট্যগুলির জন্য যখন ঐচ্ছিক অনুমতিগুলির প্রয়োজন হয় তখন সেগুলি ব্যবহার করুন।
প্রয়োজনীয় অনুমতির সুবিধা:
- কম প্রম্পট: একটি এক্সটেনশন ব্যবহারকারীকে একবারই সমস্ত অনুমতি গ্রহণ করতে অনুরোধ করতে পারে।
- সহজতর উন্নয়ন: প্রয়োজনীয় অনুমতি নিশ্চিতভাবে উপস্থিত থাকবে।
ঐচ্ছিক অনুমতির সুবিধা:
- উন্নত নিরাপত্তা: এক্সটেনশনগুলি কম অনুমতিতে চলে কারণ ব্যবহারকারীরা কেবল প্রয়োজনীয় অনুমতিগুলিই সক্ষম করে।
- ব্যবহারকারীদের জন্য আরও ভালো তথ্য: একটি এক্সটেনশন ব্যাখ্যা করতে পারে যে ব্যবহারকারী যখন প্রাসঙ্গিক বৈশিষ্ট্যটি সক্ষম করে তখন কেন একটি নির্দিষ্ট অনুমতির প্রয়োজন হয়।
- সহজ আপগ্রেড: যখন আপনি আপনার এক্সটেনশন আপগ্রেড করবেন, তখন আপগ্রেডে প্রয়োজনীয় অনুমতির পরিবর্তে ঐচ্ছিক অনুমতি যোগ করা হলে Chrome আপনার ব্যবহারকারীদের জন্য এটি অক্ষম করবে না।
ধাপ ২: ম্যানিফেস্টে ঐচ্ছিক অনুমতি ঘোষণা করুন
optional_permissions কী ব্যবহার করে আপনার এক্সটেনশন ম্যানিফেস্টে ঐচ্ছিক অনুমতি ঘোষণা করুন, অনুমতি ক্ষেত্রের মতো একই ফর্ম্যাট ব্যবহার করে:
{
"name": "My extension",
...
"optional_permissions": ["tabs"],
"optional_host_permissions": ["https://www.google.com/"],
...
}
যদি আপনি এমন হোস্টের অনুরোধ করতে চান যা আপনি কেবল রানটাইমে আবিষ্কার করেন, তাহলে আপনার এক্সটেনশনের optional_host_permissions ফিল্ডে "https://*/*" অন্তর্ভুক্ত করুন। এটি আপনাকে Permissions.origins- এ যেকোনো origin নির্দিষ্ট করতে দেয় যতক্ষণ না এর একটি মিলিত স্কিম থাকে।
ঐচ্ছিক হিসাবে নির্দিষ্ট করা যাবে না এমন অনুমতি
নিম্নলিখিত ব্যতিক্রমগুলি ছাড়া, বেশিরভাগ Chrome এক্সটেনশন অনুমতি ঐচ্ছিক হিসাবে নির্দিষ্ট করা যেতে পারে।
| অনুমতি | বিবরণ |
|---|---|
"debugger" | chrome.debugger API Chrome এর রিমোট ডিবাগিং প্রোটোকলের জন্য একটি বিকল্প পরিবহন হিসেবে কাজ করে। |
"declarativeNetRequest" | এক্সটেনশনটিকে chrome.declarativeNetRequest API-তে অ্যাক্সেস দেয়। |
"devtools" | এক্সটেনশনকে Chrome DevTools কার্যকারিতা প্রসারিত করার অনুমতি দেয়। |
"experimental" | শুধুমাত্র ক্যানারি এবং ডেভ চ্যানেল । এক্সটেনশনটিকে chrome.experimental API-তে অ্যাক্সেস দেয়। |
"geolocation" | এক্সটেনশনটিকে HTML5 জিওলোকেশন API ব্যবহার করার অনুমতি দেয়। |
"mdns" | এক্সটেনশনটিকে chrome.mdns API-তে অ্যাক্সেস দেয়। |
"proxy" | Chrome এর প্রক্সি সেটিংস পরিচালনা করার জন্য chrome.proxy API-তে এক্সটেনশন অ্যাক্সেস মঞ্জুর করে। |
"tts" | chrome.tts API সিন্থেসাইজড টেক্সট-টু-স্পিচ (TTS) চালায়। |
"ttsEngine" | chrome.ttsEngine API একটি এক্সটেনশন ব্যবহার করে একটি টেক্সট-টু-স্পিচ (TTS) ইঞ্জিন প্রয়োগ করে। |
"wallpaper" | শুধুমাত্র ChromeOS । ChromeOS ওয়ালপেপার পরিবর্তন করার জন্য chrome.wallpaper API ব্যবহার করুন। |
উপলব্ধ অনুমতি এবং তাদের সতর্কতা সম্পর্কে আরও তথ্যের জন্য অনুমতি ঘোষণা করুন এবং ব্যবহারকারীদের সতর্ক করুন দেখুন।
ধাপ ৩: ঐচ্ছিক অনুমতির অনুরোধ করুন
permissions.request() ব্যবহার করে ব্যবহারকারীর অঙ্গভঙ্গির মধ্যে থেকে অনুমতিগুলির অনুরোধ করুন:
document.querySelector('#my-button').addEventListener('click', (event) => {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, (granted) => {
// The callback argument will be true if the user granted the permissions.
if (granted) {
doSomething();
} else {
doSomethingElse();
}
});
});
যদি অনুমতি যোগ করার ফলে ব্যবহারকারী ইতিমধ্যেই দেখেছেন এবং গ্রহণ করেছেন তার চেয়ে ভিন্ন সতর্কতা বার্তা আসে, তাহলে Chrome ব্যবহারকারীকে প্রম্পট করে। উদাহরণস্বরূপ, পূর্ববর্তী কোডটি এই ধরণের প্রম্পট দেখাতে পারে:

ধাপ ৪: এক্সটেনশনের বর্তমান অনুমতিগুলি পরীক্ষা করুন
আপনার এক্সটেনশনের কোন নির্দিষ্ট অনুমতি বা অনুমতির সেট আছে কিনা তা পরীক্ষা করতে, permission.contains() ব্যবহার করুন:
chrome.permissions.contains({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, (result) => {
if (result) {
// The extension has the permissions.
} else {
// The extension doesn't have the permissions.
}
});
ধাপ ৫: অনুমতিগুলি সরান
যখন আপনার আর অনুমতির প্রয়োজন হবে না, তখন সেগুলি সরিয়ে ফেলা উচিত। অনুমতি সরানোর পরে, permissions.request() কল করার মাধ্যমে সাধারণত ব্যবহারকারীকে অনুরোধ না করেই অনুমতিটি আবার যোগ করা হয়।
chrome.permissions.remove({
permissions: ['tabs'],
origins: ['https://www.google.com/']
}, (removed) => {
if (removed) {
// The permissions have been removed.
} else {
// The permissions have not been removed (e.g., you tried to remove
// required permissions).
}
});
প্রকারভেদ
Permissions
বৈশিষ্ট্য
- উৎপত্তি
স্ট্রিং[] ঐচ্ছিক
হোস্ট অনুমতিগুলির তালিকা, ম্যানিফেস্টে
optional_permissionsবাpermissionsকীগুলিতে নির্দিষ্ট করা এবং Content Scripts এর সাথে সম্পর্কিত অনুমতিগুলি সহ। - অনুমতি
স্ট্রিং[] ঐচ্ছিক
নামযুক্ত অনুমতিগুলির তালিকা (হোস্ট বা অরিজিন অন্তর্ভুক্ত নয়)।
পদ্ধতি
contains()
chrome.permissions.contains(
permissions: Permissions,
callback?: function,
): Promise<boolean>
এক্সটেনশনটির নির্দিষ্ট অনুমতি আছে কিনা তা পরীক্ষা করে।
পরামিতি
- অনুমতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(result: boolean) => void
- ফলাফল
বুলিয়ান
যদি এক্সটেনশনের নির্দিষ্ট অনুমতি থাকে তবে সত্য। যদি কোনও অরিজিনকে ঐচ্ছিক অনুমতি এবং একটি কন্টেন্ট স্ক্রিপ্ট ম্যাচ প্যাটার্ন উভয় হিসাবে নির্দিষ্ট করা হয়, তাহলে উভয় অনুমতি মঞ্জুর না করা হলে এটি
falseফেরত দেবে।
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
getAll()
chrome.permissions.getAll(
callback?: function,
): Promise<Permissions>
এক্সটেনশনের বর্তমান অনুমতিগুলির সেট পায়।
পরামিতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(permissions: Permissions) => void
- অনুমতি
এক্সটেনশনের সক্রিয় অনুমতি। মনে রাখবেন যে
originsসম্পত্তিতেpermissionsএবংoptional_permissionsকীগুলিতে নির্দিষ্ট করা এবং Content Scripts এর সাথে সম্পর্কিত কীগুলি থেকে প্রাপ্ত granted origins থাকবে।
রিটার্নস
প্রতিশ্রুতি < অনুমতি >
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
remove()
chrome.permissions.remove(
permissions: Permissions,
callback?: function,
): Promise<boolean>
নির্দিষ্ট অনুমতিগুলিতে অ্যাক্সেস সরিয়ে দেয়। অনুমতিগুলি সরাতে কোনও সমস্যা হলে, প্রতিশ্রুতি প্রত্যাখ্যান করা হবে।
পরামিতি
- অনুমতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(removed: boolean) => void
- সরানো হয়েছে
বুলিয়ান
যদি অনুমতিগুলি সরানো হয় তবে সত্য।
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
request()
chrome.permissions.request(
permissions: Permissions,
callback?: function,
): Promise<boolean>
নির্দিষ্ট অনুমতিগুলিতে অ্যাক্সেসের অনুরোধ করে, প্রয়োজনে ব্যবহারকারীকে একটি প্রম্পট প্রদর্শন করে। এই অনুমতিগুলি হয় ম্যানিফেস্টের optional_permissions ক্ষেত্রে সংজ্ঞায়িত করতে হবে অথবা ব্যবহারকারী দ্বারা আটকে রাখা প্রয়োজনীয় অনুমতি হতে হবে। অরিজিন প্যাটার্নের পাথগুলি উপেক্ষা করা হবে। আপনি ঐচ্ছিক অরিজিন অনুমতিগুলির উপসেটগুলির জন্য অনুরোধ করতে পারেন; উদাহরণস্বরূপ, যদি আপনি ম্যানিফেস্টের optional_permissions বিভাগে *://*\/* নির্দিষ্ট করেন, তাহলে আপনি http://example.com/ অনুরোধ করতে পারেন। অনুমতিগুলির অনুরোধ করতে কোনও সমস্যা হলে, প্রতিশ্রুতি প্রত্যাখ্যান করা হবে।
পরামিতি
- অনুমতি
- কলব্যাক
ঐচ্ছিক ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(granted: boolean) => void
- মঞ্জুর করা হয়েছে
বুলিয়ান
ব্যবহারকারী যদি নির্দিষ্ট অনুমতি প্রদান করে থাকেন তাহলে সত্য।
রিটার্নস
প্রতিশ্রুতি<বুলিয়ান>
ক্রোম ৯৬+প্রতিশ্রুতিগুলি কেবল ম্যানিফেস্ট V3 এবং পরবর্তী সংস্করণগুলির জন্য সমর্থিত, অন্যান্য প্ল্যাটফর্মগুলিকে কলব্যাক ব্যবহার করতে হবে।
ইভেন্টগুলি
onAdded
chrome.permissions.onAdded.addListener(
callback: function,
)
এক্সটেনশনটি নতুন অনুমতি পেলে চালু হয়।
পরামিতি
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(permissions: Permissions) => void
- অনুমতি
onRemoved
chrome.permissions.onRemoved.addListener(
callback: function,
)
এক্সটেনশন থেকে অনুমতির অ্যাক্সেস সরানো হলে চালু করা হয়।
পরামিতি
- কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এরকম:(permissions: Permissions) => void
- অনুমতি