refresh date: 2026-09-25 robots: noindex
বিবরণ
ইনস্টল করার সময়ের পরিবর্তে রান টাইমে ঘোষিত ঐচ্ছিক অনুমতির অনুরোধ করতে chrome.permissions API ব্যবহার করুন, যাতে ব্যবহারকারীরা বুঝতে পারেন যে কেন অনুমতি প্রয়োজন এবং শুধুমাত্র প্রয়োজনীয় অনুমতি প্রদান করেন।
এক নজরে
API-এর মাধ্যমে মঞ্জুর করা ক্ষমতা বর্ণনা করার জন্য অনুমতি সংক্রান্ত সতর্কতা থাকে, তবে এর মধ্যে কিছু সতর্কতা স্পষ্ট নাও হতে পারে। Permissions API ডেভেলপারদের অনুমতি সংক্রান্ত সতর্কতা ব্যাখ্যা করতে এবং ধীরে ধীরে নতুন ফিচার চালু করতে দেয়, যা ব্যবহারকারীদের এক্সটেনশনের সাথে ঝুঁকি-মুক্ত পরিচয় প্রদান করে। এইভাবে, ব্যবহারকারীরা কতটা অ্যাক্সেস দিতে ইচ্ছুক এবং কোন কোন ফিচার চালু করতে চান তা নির্দিষ্ট করতে পারবেন।
যেমন, ঐচ্ছিক অনুমতি এক্সটেনশনের মূল কার্যকারিতা নতুন ট্যাব পৃষ্ঠাকে ওভাররাইড করছে। একটি ফিচার ব্যবহারকারীর দিনের লক্ষ্য দেখাচ্ছে। এই ফিচারের জন্য শুধুমাত্র স্টোরেজ সংক্রান্ত অনুমতি প্রয়োজন, যার মধ্যে কোনও সতর্কতা অন্তর্ভুক্ত থাকে না। এক্সটেনশনে একটি অতিরিক্ত ফিচার আছে, যা ব্যবহারকারীরা নিম্নলিখিত বোতামে ক্লিক করে চালু করতে পারেন:

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

ঐচ্ছিক অনুমতি প্রয়োগ করা হচ্ছে
ধাপ ১: কোন কোন অনুমতি প্রয়োজন এবং কোনগুলি ঐচ্ছিক তা ঠিক করুন
একটি এক্সটেনশন প্রয়োজনীয় ও ঐচ্ছিক, দুই ধরনের অনুমতির কথাই ঘোষণা করতে পারে। সাধারণত, আপনাকে এগুলি করতে হবে:
- আপনার এক্সটেনশনের প্রাথমিক কার্যকারিতার জন্য যখন প্রয়োজন হবে তখন প্রয়োজনীয় অনুমতি ব্যবহার করুন।
- আপনার এক্সটেনশনে ঐচ্ছিক ফিচারের জন্য প্রয়োজন হলে ঐচ্ছিক অনুমতি ব্যবহার করুন।
প্রয়োজনীয় অনুমতি দেওয়ার সুবিধা:
- কম প্রম্পট: কোনও এক্সটেনশন সব অনুমতি গ্রহণ করার জন্য ব্যবহারকারীকে একবার প্রম্পট করতে পারে।
- সহজ ডেভেলপমেন্ট: প্রয়োজনীয় অনুমতি যে আছে তা নিশ্চিত করা হয়।
ঐচ্ছিক অনুমতির সুবিধা:
- আরও ভালো নিরাপত্তা: এক্সটেনশন কম অনুমতি নিয়ে কাজ করে, কারণ ব্যবহারকারী শুধুমাত্র প্রয়োজনীয় অনুমতিই চালু করেন।
- ব্যবহারকারীদের জন্য আরও ভালো তথ্য: ব্যবহারকারী প্রাসঙ্গিক ফিচার চালু করলে, কোনও এক্সটেনশন ব্যাখ্যা করতে পারে যে কেন এটির একটি নির্দিষ্ট অনুমতির প্রয়োজন।
- সহজে আপগ্রেড করা: আপনার এক্সটেনশন আপগ্রেড করার সময়, Chrome আপনার ব্যবহারকারীদের জন্য এটি বন্ধ করবে না যদি আপগ্রেডটি প্রয়োজনীয় অনুমতির পরিবর্তে ঐচ্ছিক অনুমতি যোগ করে।
ধাপ ২: ম্যানিফেস্টে ঐচ্ছিক অনুমতি ঘোষণা করা
অনুমতি ফিল্ডের মতো একই ফর্ম্যাট ব্যবহার করে,
optional_permissions কী সহ আপনার এক্সটেনশন ম্যানিফেস্টে ঐচ্ছিক অনুমতি ঘোষণা করুন:
{
"name": "My extension",
...
"optional_permissions": ["tabs"],
"optional_host_permissions": ["https://www.google.com/"],
...
}
আপনি যদি রানটাইমে খুঁজে পাওয়া হোস্টের জন্য অনুরোধ করতে চান, তাহলে আপনার এক্সটেনশনের optional_host_permissions ফিল্ডে "https://*/*" অন্তর্ভুক্ত করুন। এটি আপনাকে Permissions.origins-এ যেকোনও অরিজিন নির্দিষ্ট করতে দেয়, যতক্ষণ না পর্যন্ত এটির একটি ম্যাচিং
স্কিম থাকে।
যেসব অনুমতি ঐচ্ছিক হিসেবে উল্লেখ করা যাবে না
Chrome এক্সটেনশনের বেশিরভাগ অনুমতি ঐচ্ছিক হিসেবে নির্দিষ্ট করা যেতে পারে, তবে নিম্নলিখিত ব্যতিক্রমগুলি রয়েছে।
| অনুমতি | বিবরণ |
|---|---|
"debugger" |
chrome.debugger API, Chrome-এর রিমোট ডিবাগিং প্রোটোকল-এর বিকল্প ট্রান্সপোর্ট হিসেবে কাজ করে। |
"declarativeNetRequest" |
এক্সটেনশনকে chrome.declarativeNetRequest API অ্যাক্সেস করার অনুমতি দেয়। |
"devtools" |
এক্সটেনশনকে Chrome DevTools-এর কার্যকারিতা বাড়ানোর অনুমতি দেয়। |
"experimental" |
শুধুমাত্র Canary এবং Dev চ্যানেল। এক্সটেনশনকে 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) ইঞ্জিন প্রয়োগ করে। |
উপলভ্য অনুমতি ও সেগুলির সতর্কতা সম্পর্কে আরও তথ্য পেতে অনুমতি ঘোষণা করা ও ব্যবহারকারীদের সতর্ক করা দেখুন।
ধাপ ৩: ঐচ্ছিক অনুমতির জন্য অনুরোধ করা
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
প্রপার্টি
-
উৎস
string[] ঐচ্ছিক
হোস্ট অনুমতির তালিকা, যার মধ্যে ম্যানিফেস্টে
optional_permissionsবাpermissionsকীতে নির্দিষ্ট করা এবং কন্টেন্ট স্ক্রিপ্ট-এর সাথে সম্পর্কিত অনুমতি অন্তর্ভুক্ত। -
অনুমতি
string[] ঐচ্ছিক
নামযুক্ত অনুমতির তালিকা (হোস্ট বা উৎস অন্তর্ভুক্ত করে না)।
পদ্ধতি
contains()
chrome.permissions.contains(
permissions: Permissions,
callback?: function,
): Promise<boolean>
এক্সটেনশনের নির্দিষ্ট অনুমতি আছে কিনা তা চেক করে।
প্যারামিটারগুলি
-
অনুমতি
-
কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(result: boolean) => void
-
ফলাফল
বুলিয়ান
এক্সটেনশনের নির্দিষ্ট অনুমতি থাকলে, এটি সত্য। যদি কোনও অরিজিনকে ঐচ্ছিক অনুমতি এবং কন্টেন্ট স্ক্রিপ্ট ম্যাচ প্যাটার্ন, দু'ভাবেই নির্দিষ্ট করা হয়, তাহলে দুটি অনুমতিই না দেওয়া পর্যন্ত এটি
falseরিটার্ন করবে।
-
রিটার্ন
-
Promise<boolean>
Chrome 96+Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।
getAll()
chrome.permissions.getAll(
callback?: function,
): Promise<Permissions>
এক্সটেনশনের বর্তমান অনুমতির সেট পায়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(permissions: Permissions) => void
-
অনুমতি
এক্সটেনশনের অ্যাক্টিভ অনুমতি। মনে রাখবেন যে
originsপ্রপার্টিতে ম্যানিফেস্টেরpermissionsএবংoptional_permissionsকীতে নির্দিষ্ট করা এবং কন্টেন্ট স্ক্রিপ্ট-এর সাথে সম্পর্কিত অনুমোদিত অরিজিন থাকবে।
-
রিটার্ন
-
Promise<Permissions>
Chrome 96+Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।
remove()
chrome.permissions.remove(
permissions: Permissions,
callback?: function,
): Promise<boolean>
নির্দিষ্ট করা অনুমতির অ্যাক্সেস সরিয়ে দেয়। অনুমতি সরানোর ক্ষেত্রে কোনও সমস্যা হলে, প্রমিস বাতিল করা হবে।
প্যারামিটারগুলি
-
অনুমতি
-
কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(removed: boolean) => void
-
সরানো হয়েছে
বুলিয়ান
অনুমতি সরিয়ে দেওয়া হলে ট্রু।
-
রিটার্ন
-
Promise<boolean>
Chrome 96+Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।
request()
chrome.permissions.request(
permissions: Permissions,
callback?: function,
): Promise<boolean>
প্রয়োজন হলে ব্যবহারকারীকে প্রম্পট দেখিয়ে, নির্দিষ্ট অনুমতির জন্য অ্যাক্সেসের অনুরোধ করে। এইসব অনুমতি ম্যানিফেস্টের optional_permissions ফিল্ডে উল্লেখ করা থাকতে হবে অথবা ব্যবহারকারীর দ্বারা উইথহোল্ড করা প্রয়োজনীয় অনুমতি হতে হবে। অরিজিন প্যাটার্নের পাথ এড়িয়ে যাওয়া হবে। আপনি ঐচ্ছিক অরিজিন অনুমতির সাবসেটের জন্য অনুরোধ করতে পারেন; যেমন, আপনি ম্যানিফেস্টের optional_permissions বিভাগে *://*\/* উল্লেখ করলে, http://example.com/-এর জন্য অনুরোধ করতে পারবেন। অনুমতির অনুরোধ করার ক্ষেত্রে কোনও সমস্যা হলে, প্রমিস বাতিল করা হবে।
প্যারামিটারগুলি
-
অনুমতি
-
কলব্যাক
ফাংশন ঐচ্ছিক
callbackপ্যারামিটারটি দেখতে এইরকম:(granted: boolean) => void
-
অনুমোদিত
বুলিয়ান
ব্যবহারকারী নির্দিষ্ট অনুমতি দিলে ট্রু।
-
রিটার্ন
-
Promise<boolean>
Chrome 96+Manifest V3 এবং তার পরবর্তী ভার্সনের জন্য শুধু প্রমিস কাজ করে, অন্যান্য প্ল্যাটফর্মকে কলব্যাক ব্যবহার করতে হবে।
ইভেন্ট
onAdded
chrome.permissions.onAdded.addListener(
callback: function,
)
এক্সটেনশন নতুন অনুমতি পেলে ফায়ার করা হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(permissions: Permissions) => void
-
অনুমতি
-
onRemoved
chrome.permissions.onRemoved.addListener(
callback: function,
)
এক্সটেনশন থেকে অনুমতির অ্যাক্সেস সরিয়ে দেওয়া হলে ফায়ার করা হয়।
প্যারামিটারগুলি
-
কলব্যাক
ফাংশন
callbackপ্যারামিটারটি দেখতে এইরকম:(permissions: Permissions) => void
-
অনুমতি
-