مانیفست را به روز کنید

مانیفست V2 را به مانیفست V3 تبدیل کنید

فایل manifest.json برای Manifest V3 به فرمت کمی متفاوت از Manifest V2 نیاز دارد. این صفحه تغییراتی را توضیح می دهد که فقط بر فایل manifest.json تأثیر می گذارد. اما بسیاری از تغییرات در اسکریپت ها و صفحات نیز به تغییراتی در مانیفست نیاز دارند. این تغییرات با وظایف مهاجرتی که به آنها نیاز دارند پوشش داده می شوند.

شماره نسخه مانیفست را تغییر دهید

مقدار فیلد "manifest_version" را از 2 به 3 تغییر دهید.

مانیفست V2
{
  ...
  "manifest_version": 2
  ...
}
مانیفست V3
{
  ...
  "manifest_version": 3
  ...
}

مجوزهای میزبان را به روز کنید

مجوزهای میزبان در Manifest V3 یک فیلد جداگانه است. شما آنها را در "permissions" یا "optional_permissions" مشخص نمی کنید.

اسکریپت های محتوا در زیر "content_scripts.matches" باقی می مانند. برای اطلاعات مربوط به "content_scripts.matches" به Inject with static اعلان ها مراجعه کنید.

مانیفست V2
{
  ...
  "permissions": [
    "tabs",
    "bookmarks",
    "https://www.blogger.com/",
  ],
  "optional_permissions": [
    "unlimitedStorage",
    "*://*/*",
  ]
  ...
}
مانیفست V3
{
  ...
  "permissions": [
    "tabs",
    "bookmarks"
  ],
  "optional_permissions": [
    "unlimitedStorage"
  ],
  "host_permissions": [
    "https://www.blogger.com/",
  ],
  "optional_host_permissions": [
    "*://*/*",
  ]
  ...
}

منابع قابل دسترس وب را به روز کنید

منابع قابل دسترسی وب فایل‌هایی هستند که در داخل یک برنامه افزودنی قرار دارند و توسط صفحات وب یا سایر برنامه‌های افزودنی قابل دسترسی هستند. همانطور که در Manifest V2 پیاده سازی شد، فیلد "web_accessible_resources" افزونه ها را توسط وب سایت ها و مهاجمان در صورتی که برنامه افزودنی تصمیم به افشای منابع داشته باشد، قابل شناسایی می کند. این امر فرصت هایی را برای اثر انگشت یا دسترسی ناخواسته به منابع ایجاد کرد.

Manifest V3 با محدود کردن وب‌سایت‌ها و برنامه‌های افزودنی که می‌توانند به منابع موجود در برنامه افزودنی شما دسترسی داشته باشند، نوردهی را محدود می‌کند. به‌جای ارائه فهرستی از فایل‌ها مانند قبل، اکنون آرایه‌ای از اشیاء را ارائه می‌دهید که هر کدام مجموعه‌ای از منابع را به مجموعه‌ای از URLها یا شناسه‌های برنامه افزودنی نگاشت می‌کنند.

مثال زیر منابع قابل دسترسی وب را بین Manifest V2 و Manifest V3 مقایسه می کند. در Manifest V2، منابع مشخص شده به طور پیش فرض برای همه وب سایت ها قابل دسترسی بودند. در کد Manifest V3 نشان داده شده در زیر، این منابع فقط برای https://example.com در دسترس هستند، در حالی که فقط تصاویر خاصی برای همه وب سایت ها در دسترس هستند.

برای اطلاعات بیشتر، به منابع قابل دسترسی وب و الگوهای مطابقت مراجعه کنید.

مانیفست V2
{
  ...
  "web_accessible_resources": [
    "images/*",
    "style/extension.css",
    "script/extension.js"
  ],
  ...
}
مانیفست V3
{
  ...
    "web_accessible_resources": [
    {
      "resources": [
        "images/*"
      ],
      "matches": [
        "*://*/*"
      ]
    },
    {
      "resources": [
        "style/extension.css",
        "script/extension.js"
      ],
      "matches": [
        "https://example.com/*"
      ]
    }
  ],
  ...
}