فرمت فایل مانیفست

هر برنامه افزودنی باید یک فایل 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"]
}

کلیدهای مانیفست

در زیر لیستی از همه کلیدهای مانیفست پشتیبانی شده است.

کلیدهای مورد نیاز پلتفرم Extensions

"manifest_version"
یک عدد صحیح که نسخه قالب فایل مانیفست را که پسوند شما استفاده می‌کند، مشخص می‌کند. تنها مقدار پشتیبانی شده 3 است.
"name"
رشته‌ای که افزونه را در فروشگاه وب Chrome ، گفتگوی نصب و صفحه برنامه‌های افزودنی Chrome کاربر ( chrome://extensions ) شناسایی می‌کند. حداکثر طول 75 کاراکتر است. برای اطلاعات در مورد استفاده از نام‌های محلی خاص، بین‌المللی‌سازی را ببینید.
"version"
رشته ای که شماره نسخه برنامه افزودنی را مشخص می کند. برای اطلاعات در مورد قالب بندی شماره نسخه، به نسخه مراجعه کنید.

کلیدهای مورد نیاز فروشگاه وب Chrome

"description"
رشته‌ای که افزونه را هم در فروشگاه وب Chrome و هم در صفحه مدیریت برنامه‌های افزودنی کاربر توصیف می‌کند. حداکثر طول 132 کاراکتر است. برای اطلاعات در مورد بومی سازی توضیحات، بین المللی سازی را ببینید.
"icons"
یک یا چند نماد که نمایانگر برنامه افزودنی شما هستند. برای اطلاعات در مورد بهترین شیوه‌ها، نمادها را ببینید.

کلیدهای اختیاری

"action"
ظاهر و رفتار نماد برنامه افزودنی را در نوار ابزار گوگل تعریف می کند. برای اطلاعات بیشتر، 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 Cross-Origin-Opener-Opener-Policy مشخص می کند، که به شما امکان می دهد اطمینان حاصل کنید که یک صفحه برنامه افزودنی سطح بالا یک گروه زمینه مرور را با اسناد متقاطع به اشتراک نمی گذارد.
"declarative_net_request"
قوانین ایستا را برای DeclarativeNetRequest API تعریف می کند، که اجازه مسدود کردن و اصلاح درخواست های شبکه را می دهد.
"default_locale"
رشته‌ای که زبان پیش‌فرض افزونه‌ای را تعریف می‌کند که از چندین منطقه پشتیبانی می‌کند. به عنوان مثال عبارتند از "en" و "pt_BR". این کلید در برنامه های افزودنی بومی سازی شده مورد نیاز است و نباید در برنامه های افزودنی که بومی سازی نشده اند استفاده شود. برای اطلاعات بیشتر، بین المللی سازی را ببینید.
"devtools_page"
صفحاتی را تعریف می کند که از API های DevTools استفاده می کنند.
"export"
اجازه می دهد تا منابع از برنامه افزودنی صادر شوند. برای اطلاعات بیشتر، صادرات را ببینید.
"externally_connectable"
مشخص می کند چه صفحات و برنامه های افزودنی دیگری می توانند به برنامه های افزودنی شما متصل شوند. برای اطلاعات بیشتر، "externally_connectable" را ببینید.
"homepage_url"
رشته ای که URL را برای صفحه اصلی برنامه افزودنی مشخص می کند. اگر این مورد تعریف نشده باشد، صفحه اصلی به طور پیش‌فرض روی صفحه فروشگاه وب Chrome برنامه افزودنی است. این فیلد مخصوصاً زمانی مفید است که افزونه را در سایت خود میزبانی کنید.
"host_permissions"
صفحات وب را فهرست می کند که برنامه افزودنی شما مجاز است با آنها تعامل داشته باشد که با استفاده از الگوهای مطابقت URL تعریف شده اند. اجازه کاربر برای این سایت ها در زمان نصب درخواست می شود. برای اطلاعات بیشتر، به مجوزهای میزبان مراجعه کنید.
"import"
اجازه می دهد تا منابع به برنامه افزودنی وارد شوند. برای اطلاعات بیشتر، وارد کردن را ببینید.
"incognito"
نحوه رفتار برنامه افزودنی در حالت ناشناس را مشخص می کند. مقادیر پشتیبانی شده عبارتند از "spanning" ، "split" و "not_allowed" . برای اطلاعات بیشتر، به حالت ناشناس مراجعه کنید.
"key"
شناسه برنامه افزودنی شما را برای موارد استفاده مختلف توسعه مشخص می کند. برای اطلاعات بیشتر، کلید را ببینید.
"minimum_chrome_version"
قدیمی ترین نسخه کروم را که می تواند افزونه شما را نصب کند، تعریف می کند. مقدار باید زیر رشته‌ای از یک رشته نسخه موجود مرورگر Chrome باشد، مانند "107" یا "107.0.5304.87" . کاربرانی که نسخه‌های Chrome قدیمی‌تر از حداقل نسخه دارند، هشدار «سازگار نیست» را در فروشگاه وب Chrome مشاهده می‌کنند و نمی‌توانند برنامه افزودنی شما را نصب کنند. اگر این مورد را به یک برنامه افزودنی موجود اضافه کنید، کاربرانی که نسخه Chrome آنها قدیمی‌تر است، به‌روزرسانی خودکار برنامه افزودنی شما را دریافت نخواهند کرد. این شامل کاربران تجاری در حالت زودگذر می شود.
"oauth2"
استفاده از شناسه امنیتی OAuth 2.0 را می دهد. مقدار این کلید باید یک شی با ویژگی های "client_id" و "scopes" باشد. برای جزئیات، به آموزش OAuth 2.0 مراجعه کنید.
"omnibox"
به برنامه افزودنی اجازه می دهد کلمه کلیدی را در نوار آدرس کروم ثبت کند. برای اطلاعات بیشتر، Omnibox را ببینید.
"optional_host_permissions"
مجوزهای میزبان اختیاری را برای برنامه افزودنی شما اعلام می کند.
"optional_permissions"
مجوزهای اختیاری را برای برنامه افزودنی شما اعلام می کند.
"options_page"
مسیری را به فایل options.html برای استفاده از پسوند به عنوان صفحه گزینه ها مشخص می کند. برای اطلاعات بیشتر، به گزینه‌های ارائه به کاربران مراجعه کنید.
"options_ui"
مسیری را برای فایل HTML مشخص می‌کند که به کاربر امکان می‌دهد گزینه‌های برنامه افزودنی را از صفحه برنامه‌های افزودنی Chrome تغییر دهد. برای اطلاعات بیشتر، گزینه‌های جاسازی شده را ببینید.
"permissions"
استفاده از APIهای برنامه افزودنی خاص را فعال می کند. برای توضیح کلی به مجوزها مراجعه کنید. صفحات مرجع برای APIهای منفرد مجوزهای مورد نیاز آنها را فهرست می کنند.
"requirements"
فن آوری های مورد نیاز برای استفاده از برنامه افزودنی را فهرست می کند. برای فهرستی از الزامات پشتیبانی شده، به الزامات مراجعه کنید.
"sandbox"
مجموعه ای از صفحات افزونه را تعریف می کند که به APIهای برنامه افزودنی دسترسی ندارند یا به صفحات غیر جعبه ایمنی دسترسی مستقیم ندارند. برای اطلاعات بیشتر، Sandbox را ببینید.
"short_name"
رشته ای حاوی یک نسخه کوتاه شده از نام برنامه افزودنی برای استفاده زمانی که فضای کاراکتر محدود است. حداکثر طول 12 کاراکتر است. اگر این تعریف نشده باشد، یک نسخه کوتاه شده از کلید "name" به جای آن نمایش داده می شود.
"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"
استفاده از Input Method Editor API را می دهد. برای اطلاعات بیشتر، به input_components مراجعه کنید.