অনুমতি ঘোষণা করা

বেশিরভাগ এক্সটেনশন API এবং ফিচার ব্যবহার করতে, আপনাকে ম্যানিফেস্টের অনুমতি ফিল্ডে আপনার এক্সটেনশনের উদ্দেশ্য ঘোষণা করতে হবে। এক্সটেনশন নিম্নলিখিত বিভাগের অনুমতির জন্য অনুরোধ করতে পারে, যা সংশ্লিষ্ট ম্যানিফেস্ট কী ব্যবহার করে নির্দিষ্ট করা হয়:

"permissions"
পরিচিত স্ট্রিংয়ের তালিকা থেকে আইটেম রয়েছে। পরিবর্তন করলে সতর্কতা ট্রিগার হতে পারে।
"optional_permissions"
ইনস্টল করার সময় নয়, রানটাইমে ব্যবহারকারী অনুমতি দিয়েছেন।
"content_scripts.matches"
এতে এক বা একাধিক ম্যাচ প্যাটার্ন আছে যা কন্টেন্ট স্ক্রিপ্টকে এক বা একাধিক হোস্টে ইনজেক্ট করার অনুমতি দেয়। পরিবর্তন করলে সতর্কতা ট্রিগার হতে পারে।
"host_permissions"
এক বা একাধিক ম্যাচ প্যাটার্ন থাকে যা এক বা একাধিক হোস্টকে অ্যাক্সেস দেয়। পরিবর্তন করলে সতর্কতা ট্রিগার হতে পারে।
"optional_host_permissions"
ইনস্টল করার সময় নয়, রানটাইমে ব্যবহারকারীর দ্বারা অনুমোদিত।

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

আপনার এক্সটেনশনের কার্যকারিতা যেখানেই অনুমতি দেয় সেখানে ঐচ্ছিক অনুমতি ব্যবহার করার কথা বিবেচনা করুন, যাতে ব্যবহারকারীদের রিসোর্স এবং ডেটা অ্যাক্সেসের উপর সচেতন নিয়ন্ত্রণ প্রদান করা যায়।

কোনও API-এর জন্য অনুমতির প্রয়োজন হলে, কীভাবে তা ঘোষণা করতে হবে তা এর ডকুমেন্টেশনে ব্যাখ্যা করা থাকে। উদাহরণ হিসেবে, Storage API দেখুন।

ম্যানিফেস্ট

ম্যানিফেস্ট ফাইলের অনুমতি বিভাগের একটি উদাহরণ নিচে দেওয়া হল:

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

হোস্টের অনুমতি

হোস্টের অনুমতি এক্সটেনশনকে URL-এর ম্যাচিং প্যাটার্নের সাথে ইন্টার‍্যাক্ট করার অনুমতি দেয়। কিছু Chrome API-এর নিজস্ব API অনুমতির পাশাপাশি হোস্ট অনুমতির প্রয়োজন হয়, যা প্রতিটি রেফারেন্স পৃষ্ঠায় উল্লেখ করা থাকে। কয়েকটি উদাহরণ দেখুন:

কিছু বিশেষ ক্ষেত্রে, হোস্টের অনুমতির প্রয়োজন হয় না। এর মধ্যে নিম্নলিখিতগুলি অন্তর্ভুক্ত:

  • ট্যাব অ্যাক্সেস ও পরিবর্তন করতে chrome.tabs API ব্যবহার করা, আপনার কাছে tabs অনুমতি থাকলে ট্যাবের URL-এ অ্যাক্সেসও এর মধ্যে অন্তর্ভুক্ত।
  • chrome.debugger API ব্যবহার করে ব্রাউজারের সাথে ইন্টার‍্যাক্ট করা।
  • ম্যানিফেস্টে ঘোষণা করা কন্টেন্ট স্ক্রিপ্ট ইনজেক্ট করার অনুমতি দেওয়া।

সতর্কতা সহ অনুমতি

যখন কোনও এক্সটেনশন একাধিক অনুমতির অনুরোধ করে এবং তাদের মধ্যে অনেকগুলি ইনস্টলেশনের সময় সতর্কতা প্রদর্শন করে, তখন ব্যবহারকারী সতর্কতার একটি তালিকা দেখতে পাবেন, যেমন নিম্নলিখিত উদাহরণে:

ইনস্টল করার সময় এক্সটেনশন সংক্রান্ত অনুমতির সতর্কতা

ব্যবহারকারীরা সীমিত সতর্কতা সহ বা অনুমতি ব্যাখ্যা করা হলে কোনও এক্সটেনশনকে বিশ্বাস করার সম্ভাবনা বেশি। সতর্কতা এড়াতে ঐচ্ছিক অনুমতি বা কম শক্তিশালী API প্রয়োগ করার কথা বিবেচনা করুন। সতর্কতা সংক্রান্ত পেশাদার পদ্ধতির জন্য, অনুমতি সংক্রান্ত সতর্কতার নির্দেশিকা দেখুন। অনুমতি রেফারেন্স তালিকায় নির্দিষ্ট সতর্কতাগুলি সেইসব অনুমতির সাথে তালিকাভুক্ত করা হয় যেগুলির ক্ষেত্রে সেগুলি প্রযোজ্য।

ম্যানিফেস্ট ফাইলের "host_permissions" এবং "content_scripts.matches" ফিল্ডে ম্যাচ প্যাটার্ন যোগ বা পরিবর্তন করলেও সতর্কতা ট্রিগার হবে। আরও জানতে, অনুমতি আপডেট করা দেখুন।

অ্যাক্সেস করার অনুমতি দিন

আপনার এক্সটেনশন যদি file:// URL-এ রান করতে বা ছদ্মবেশী মোডে অপারেট করতে হয়, তাহলে ব্যবহারকারীদের অবশ্যই এক্সটেনশনের বিবরণ পৃষ্ঠায় অ্যাক্সেস দিতে হবে। আপনার এক্সটেনশন ম্যানেজ করুন বিকল্পের অধীনে আপনি বিবরণ পৃষ্ঠা খোলার নির্দেশাবলী খুঁজে পাবেন।

ফাইলের URL এবং ছদ্মবেশী পৃষ্ঠায় অ্যাক্সেসের অনুমতি দিন

  1. Chrome-এ এক্সটেনশন আইকনের উপর মাউস রেখে ডানদিকের বোতামে ক্লিক করুন।
  2. এক্সটেনশন ম্যানেজ করুন বিকল্প বেছে নিন।

    এক্সটেনশন কন্টেক্সট মেনু
    এক্সটেনশন মেনু
  3. ফাইলের URL বা ছদ্মবেশী মোডে অ্যাক্সেস চালু করতে নিচের দিকে স্ক্রল করুন।

    এক্সটেনশনের বিবরণ পৃষ্ঠায় ফাইলের URL ও ছদ্মবেশী মোড চালু করুন
    ফাইলের URL ও ছদ্মবেশী মোডে অ্যাক্সেস চালু করা হয়েছে।

ব্যবহারকারী অ্যাক্সেস করার অনুমতি দিয়েছেন কিনা তা শনাক্ত করতে, আপনি extension.isAllowedIncognitoAccess() অথবা extension.isAllowedFileSchemeAccess()-এ কল করতে পারেন।