ম্যানিফেস্ট ফাইল ফরম্যাট

প্রতিটি এক্সটেনশনের রুট ডিরেক্টরিতে একটি manifest.json ফাইল থাকতে হবে যা সেই এক্সটেনশনের গঠন এবং আচরণ সম্পর্কে গুরুত্বপূর্ণ তথ্য তালিকাভুক্ত করে। এই পৃষ্ঠাটি এক্সটেনশন ম্যানিফেস্টের গঠন এবং তারা যে বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে পারে তা ব্যাখ্যা করে৷

উদাহরণ

নিম্নলিখিত উদাহরণগুলি আপনার নিজস্ব ম্যানিফেস্ট তৈরি করার প্রাথমিক বিন্দু হিসাবে মৌলিক ম্যানিফেস্ট কাঠামো এবং কিছু সাধারণভাবে ব্যবহৃত বৈশিষ্ট্যগুলি দেখায়:

ন্যূনতম প্রকাশ

{
  "manifest_version": 3,
  "name": "Minimal Manifest",
  "version": "1.0.0",
  "description": "A basic example extension with only required keys",
  "icons": {
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
}

একটি বিষয়বস্তু স্ক্রিপ্ট নিবন্ধন করুন

{
  "manifest_version": 3,
  "name": "Run script automatically",
  "description": "Runs a script on www.example.com automatically when user installs the extension",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "content_scripts": [
    {
      "js": [
        "content-script.js"
      ],
      "matches": [
        "http://*.example.com//"
      ]
    }
  ]
}

একটি বিষয়বস্তু স্ক্রিপ্ট ইনজেক্ট করুন

{
  "manifest_version": 3,
  "name": "Click to run",
  "description": "Runs a script when the user clicks the action toolbar icon.",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png",
      "48": "images/icon-48.png",
      "128": "images/icon-128.png"
    }
  },
  "permissions": ["scripting", "activeTab"]
}
{
  "manifest_version": 3,
  "name": "Popup extension that requests permissions",
  "description": "Extension that includes a popup and requests host permissions and storage permissions .",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "host_permissions": [
    "https://*.example.com/"
  ],
  "permissions": [
    "storage"
  ]
}

সাইড প্যানেল

{
  "manifest_version": 3,
  "name": "Side panel extension",
  "version": "1.0",
  "description": "Extension with a default side panel.",
  "icons": {
    "16": "images/icon-16.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "permissions": ["sidePanel"]
}

ম্যানিফেস্ট কী

নিম্নলিখিত সমস্ত সমর্থিত ম্যানিফেস্ট কীগুলির একটি তালিকা রয়েছে৷

এক্সটেনশন প্ল্যাটফর্মের জন্য প্রয়োজনীয় কী

"manifest_version"
আপনার এক্সটেনশন ব্যবহার করে ম্যানিফেস্ট ফাইল ফর্ম্যাটের সংস্করণ নির্দিষ্ট করে একটি পূর্ণসংখ্যা৷ একমাত্র সমর্থিত মান হল 3
"name"
একটি স্ট্রিং যা ক্রোম ওয়েব স্টোর , ইনস্টল ডায়ালগ এবং ব্যবহারকারীর ক্রোম এক্সটেনশন পৃষ্ঠা ( chrome://extensions ) এ এক্সটেনশন সনাক্ত করে৷ সর্বাধিক দৈর্ঘ্য 75 অক্ষর। স্থানীয়-নির্দিষ্ট নাম ব্যবহার করার তথ্যের জন্য, আন্তর্জাতিকীকরণ দেখুন।
"version"
একটি স্ট্রিং যা এক্সটেনশনের সংস্করণ নম্বর সনাক্ত করে৷ সংস্করণ নম্বর বিন্যাস সংক্রান্ত তথ্যের জন্য, সংস্করণ দেখুন।

Chrome ওয়েব স্টোরের জন্য প্রয়োজনীয় কীগুলি৷

"description"
একটি স্ট্রিং যা Chrome ওয়েব স্টোর এবং ব্যবহারকারীর এক্সটেনশন পরিচালনা পৃষ্ঠা উভয়ের এক্সটেনশন বর্ণনা করে৷ সর্বাধিক দৈর্ঘ্য 132 অক্ষর। স্থানীয়করণের বর্ণনা সম্পর্কে তথ্যের জন্য, আন্তর্জাতিকীকরণ দেখুন।
"icons"
এক বা একাধিক আইকন যা আপনার এক্সটেনশনের প্রতিনিধিত্ব করে। সর্বোত্তম অনুশীলন সম্পর্কে তথ্যের জন্য, আইকনগুলি দেখুন।

ঐচ্ছিক কী

"action"
Google টুলবারে এক্সটেনশনের আইকনের চেহারা এবং আচরণ সংজ্ঞায়িত করে। আরও তথ্যের জন্য, chrome.action দেখুন।
"author"
এক্সটেনশন তৈরি করতে ব্যবহৃত অ্যাকাউন্টের ইমেল ঠিকানা নির্দিষ্ট করে।
"background"
এক্সটেনশনের পরিষেবা কর্মী ধারণকারী জাভাস্ক্রিপ্ট ফাইলটি নির্দিষ্ট করে, যা একটি ইভেন্ট হ্যান্ডলার হিসাবে কাজ করে। আরও তথ্যের জন্য, এক্সটেনশন পরিষেবা কর্মীদের সম্পর্কে দেখুন।
"chrome_settings_overrides"
নির্বাচিত Chrome সেটিংসের জন্য ওভাররাইড সংজ্ঞায়িত করে। আরও তথ্যের জন্য, Chrome সেটিংস ওভাররাইডিং দেখুন।
"chrome_url_overrides"
ডিফল্ট Chrome পৃষ্ঠাগুলির জন্য ওভাররাইড সংজ্ঞায়িত করে। আরও তথ্যের জন্য, Chrome পৃষ্ঠাগুলি ওভাররাইড দেখুন।
"commands"
এক্সটেনশনের মধ্যে কীবোর্ড শর্টকাট সংজ্ঞায়িত করে। আরও তথ্যের জন্য, chrome.commands দেখুন।
"content_scripts"
ব্যবহারকারী নির্দিষ্ট ওয়েব পেজ খোলে জাভাস্ক্রিপ্ট বা CSS ফাইল ব্যবহার করার জন্য নির্দিষ্ট করে। আরও তথ্যের জন্য, বিষয়বস্তু স্ক্রিপ্ট দেখুন।
"content_security_policy"
একটি এক্সটেনশন ব্যবহার করতে পারে এমন স্ক্রিপ্ট, শৈলী এবং অন্যান্য সংস্থানগুলির উপর বিধিনিষেধ সংজ্ঞায়িত করে৷ আরও তথ্যের জন্য, বিষয়বস্তু নিরাপত্তা নীতি দেখুন।
"cross_origin_embedder_policy"
Cross-Origin-Embedder-Policy HTTP হেডারের জন্য একটি মান নির্দিষ্ট করে, যা একটি এক্সটেনশন পৃষ্ঠায় ক্রস-অরিজিন রিসোর্সের এমবেডিং কনফিগার করে।
"cross_origin_opener_policy"
ক্রস-অরিজিন-ওপেনার-পলিসি HTTP হেডারের জন্য একটি মান নির্দিষ্ট করে, যা আপনাকে নিশ্চিত করতে দেয় যে একটি শীর্ষ-স্তরের এক্সটেনশন পৃষ্ঠা ক্রস-অরিজিন নথিগুলির সাথে একটি ব্রাউজিং প্রসঙ্গ গোষ্ঠী ভাগ করে না।
"declarative_net_request"
declarativeNetRequest API-এর জন্য স্ট্যাটিক নিয়মগুলি সংজ্ঞায়িত করে, যা নেটওয়ার্ক অনুরোধগুলিকে ব্লক এবং সংশোধন করার অনুমতি দেয়।
"default_locale"
একটি স্ট্রিং যা একটি এক্সটেনশনের ডিফল্ট ভাষা সংজ্ঞায়িত করে যা একাধিক লোকেল সমর্থন করে। উদাহরণ "en" এবং "pt_BR" অন্তর্ভুক্ত। এই কী স্থানীয় এক্সটেনশনে প্রয়োজন, এবং স্থানীয়করণ করা হয়নি এমন এক্সটেনশনগুলিতে ব্যবহার করা উচিত নয়৷ আরও তথ্যের জন্য, আন্তর্জাতিকীকরণ দেখুন।
"devtools_page"
DevTools API ব্যবহার করে এমন পৃষ্ঠাগুলিকে সংজ্ঞায়িত করে৷
"export"
এক্সটেনশন থেকে সম্পদ রপ্তানি করার অনুমতি দেয়। আরও তথ্যের জন্য, রপ্তানি দেখুন।
"externally_connectable"
অন্যান্য পৃষ্ঠা এবং এক্সটেনশনগুলি আপনার এক্সটেনশনগুলির সাথে সংযোগ করতে পারে তা নির্দিষ্ট করে৷ আরও তথ্যের জন্য, "externally_connectable" দেখুন।
"homepage_url"
এক্সটেনশনের হোমপেজের জন্য একটি URL নির্দিষ্ট করে এমন একটি স্ট্রিং। যদি এটি অনির্ধারিত থাকে, হোমপেজটি এক্সটেনশনের Chrome ওয়েব স্টোর পৃষ্ঠায় ডিফল্ট হয়৷ এই ক্ষেত্রটি বিশেষভাবে উপযোগী যদি আপনি নিজের সাইটে এক্সটেনশন হোস্ট করেন
"host_permissions"
আপনার এক্সটেনশনের সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেওয়া ওয়েব পৃষ্ঠাগুলিকে তালিকাভুক্ত করে, URL ম্যাচ প্যাটার্ন ব্যবহার করে সংজ্ঞায়িত করা হয়। এই সাইটগুলির জন্য ব্যবহারকারীর অনুমতি ইনস্টল করার সময় অনুরোধ করা হয়। আরও তথ্যের জন্য, হোস্ট অনুমতি দেখুন।
"import"
সম্পদগুলিকে এক্সটেনশনে আমদানি করার অনুমতি দেয়। আরও তথ্যের জন্য, আমদানি দেখুন।
"incognito"
ছদ্মবেশী মোডে এক্সটেনশন কীভাবে আচরণ করে তা নির্ধারণ করে। সমর্থিত মানগুলি হল "spanning" , "split" , এবং "not_allowed" । আরও তথ্যের জন্য, ছদ্মবেশী দেখুন।
"key"
বিভিন্ন ডেভেলপমেন্ট ব্যবহারের ক্ষেত্রে আপনার এক্সটেনশনের আইডি নির্দিষ্ট করে। আরও তথ্যের জন্য, কী দেখুন।
"minimum_chrome_version"
আপনার এক্সটেনশন ইনস্টল করতে পারে এমন প্রাচীনতম Chrome সংস্করণটিকে সংজ্ঞায়িত করে৷ মানটি অবশ্যই বিদ্যমান Chrome ব্রাউজার সংস্করণ স্ট্রিং এর একটি সাবস্ট্রিং হতে হবে, যেমন "107" বা "107.0.5304.87" । ন্যূনতম সংস্করণের চেয়ে পুরানো Chrome এর সংস্করণের ব্যবহারকারীরা Chrome ওয়েব দোকানে একটি "সামঞ্জস্যপূর্ণ নয়" সতর্কতা দেখতে পান এবং আপনার এক্সটেনশন ইনস্টল করতে অক্ষম৷ আপনি যদি এটি একটি বিদ্যমান এক্সটেনশনে যোগ করেন, যে ব্যবহারকারীদের Chrome সংস্করণ পুরানো তারা আপনার এক্সটেনশনে স্বয়ংক্রিয় আপডেট পাবেন না৷ এটি ক্ষণস্থায়ী মোডে ব্যবসা ব্যবহারকারীদের অন্তর্ভুক্ত করে।
"oauth2"
একটি OAuth 2.0 নিরাপত্তা আইডি ব্যবহারের অনুমতি দেয়৷ এই কীটির মান অবশ্যই "client_id" এবং "scopes" বৈশিষ্ট্য সহ একটি বস্তু হতে হবে। বিস্তারিত জানার জন্য, OAuth 2.0 টিউটোরিয়াল দেখুন।
"omnibox"
এক্সটেনশনটিকে Chrome এর ঠিকানা বারে একটি কীওয়ার্ড নিবন্ধনের অনুমতি দেয়৷ আরও তথ্যের জন্য, Omnibox দেখুন।
"optional_host_permissions"
আপনার এক্সটেনশনের জন্য ঐচ্ছিক হোস্ট অনুমতি ঘোষণা করে।
"optional_permissions"
আপনার এক্সটেনশনের জন্য ঐচ্ছিক অনুমতি ঘোষণা করে।
"options_page"
একটি বিকল্প পৃষ্ঠা হিসাবে ব্যবহার করার জন্য এক্সটেনশনের জন্য একটি options.html ফাইলের একটি পথ নির্দিষ্ট করে৷ আরও তথ্যের জন্য, ব্যবহারকারীদের বিকল্প দিন দেখুন।
"options_ui"
একটি HTML ফাইলের একটি পথ নির্দিষ্ট করে যা ব্যবহারকারীকে Chrome এক্সটেনশন পৃষ্ঠা থেকে এক্সটেনশন বিকল্পগুলি পরিবর্তন করতে দেয়৷ আরও তথ্যের জন্য, এমবেডেড বিকল্পগুলি দেখুন।
"permissions"
নির্দিষ্ট এক্সটেনশন API-এর ব্যবহার সক্ষম করে। একটি সাধারণ ব্যাখ্যার জন্য অনুমতি দেখুন। পৃথক API-এর জন্য রেফারেন্স পৃষ্ঠাগুলি তাদের প্রয়োজনীয় অনুমতিগুলি তালিকাভুক্ত করে।
"requirements"
এক্সটেনশন ব্যবহার করার জন্য প্রয়োজনীয় প্রযুক্তির তালিকা করে। সমর্থিত প্রয়োজনীয়তার তালিকার জন্য, প্রয়োজনীয়তা দেখুন।
"sandbox"
এক্সটেনশন পৃষ্ঠাগুলির একটি সেট সংজ্ঞায়িত করে যেগুলির এক্সটেনশন APIগুলিতে অ্যাক্সেস নেই বা অ-স্যান্ডবক্সযুক্ত পৃষ্ঠাগুলিতে সরাসরি অ্যাক্সেস নেই৷ আরও তথ্যের জন্য, স্যান্ডবক্স দেখুন।
"short_name"
অক্ষর স্থান সীমিত হলে ব্যবহার করার জন্য এক্সটেনশনের নামের একটি সংক্ষিপ্ত সংস্করণ ধারণকারী একটি স্ট্রিং৷ সর্বাধিক দৈর্ঘ্য 12 অক্ষর। যদি এটি অনির্ধারিত হয়, তাহলে "নাম" কীটির একটি ছেঁটে যাওয়া সংস্করণ এর পরিবর্তে প্রদর্শিত হবে।
"side_panel"
সাইডপ্যানেলে প্রদর্শনের জন্য একটি HTML ফাইল সনাক্ত করে।
"storage"
পরিচালিত স্টোরেজ এলাকার জন্য একটি JSON স্কিমা ঘোষণা করে। আরও তথ্যের জন্য, স্টোরেজ এলাকার জন্য ম্যানিফেস্ট দেখুন।
"tts_engine"
টেক্সট টু স্পিচ ইঞ্জিন হিসেবে এক্সটেনশন নিবন্ধন করে। আরও তথ্যের জন্য, ttsEngine API দেখুন।
"update_url"
এক্সটেনশনের আপডেট পৃষ্ঠার URL ধারণকারী একটি স্ট্রিং। আপনি যদি Chrome ওয়েব স্টোরের বাইরে আপনার এক্সটেনশন হোস্ট করেন তবে এই কীটি ব্যবহার করুন৷
"version_name"
এক্সটেনশনের সংস্করণ বর্ণনাকারী একটি স্ট্রিং। উদাহরণগুলির মধ্যে রয়েছে "1.0 beta" এবং "build rc2" । যদি এটি অনির্দিষ্ট হয়, "সংস্করণ" মান পরিবর্তে এক্সটেনশন পরিচালনা পৃষ্ঠায় প্রদর্শিত হবে৷
"web_accessible_resources"
এক্সটেনশনের মধ্যে ফাইলগুলিকে সংজ্ঞায়িত করে যা ওয়েব পৃষ্ঠা বা অন্যান্য এক্সটেনশন দ্বারা অ্যাক্সেস করা যেতে পারে। আরও তথ্যের জন্য, ওয়েব অ্যাক্সেসযোগ্য সম্পদ দেখুন।

ঐচ্ছিক ChromeOS কী

"file_browser_handlers"
fileBrowserHandler API-এ অ্যাক্সেস প্রদান করে, যা এক্সটেনশনগুলিকে ChromeOS ফাইল ব্রাউজার অ্যাক্সেস করতে দেয়।
"file_handlers"
হ্যান্ডেল করার জন্য ChromeOS এক্সটেনশনগুলির জন্য ফাইলের প্রকারগুলি নির্দিষ্ট করে৷ আরও তথ্যের জন্য, file_handlers দেখুন।
"file_system_provider_capabilities"
fileSystemProvider API-এ অ্যাক্সেসের অনুমতি দেয়, যা এক্সটেনশনগুলিকে ফাইল সিস্টেম তৈরি করতে দেয় যা ChromeOS ব্যবহার করতে পারে৷
"input_components"
ইনপুট মেথড এডিটর API ব্যবহার করার অনুমতি দেয়। আরও তথ্যের জন্য, input_components দেখুন।