עדכון המניפסט

המרת מניפסט V2 למניפסט V3

קובץ manifest.json צריך להיות בפורמט שונה במקצת עבור Manifest V3 בהשוואה ל-Manifest V2. בדף הזה מתוארים שינויים שמשפיעים רק על הקובץ manifest.json. עם זאת, רבים מהשינויים בסקריפטים ובדפים מחייבים גם שינויים במניפסט. השינויים האלה מופיעים במשימות ההעברה שבהן הם נדרשים.

שינוי מספר הגרסה של המניפסט

משנים את הערך בשדה "manifest_version" מ-2 ל-3.

Manifest V2
{
  ...
  "manifest_version": 2
  ...
}
מניפסט V3
{
  ...
  "manifest_version": 3
  ...
}

עדכון הרשאות המארח

הרשאות המארח במניפסט מגרסה V3 הן שדה נפרד. לא מציינים אותן ב-"permissions" או ב-"optional_permissions".

סקריפטים של תוכן נשארים בקטע "content_scripts.matches". מידע על "content_scripts.matches" זמין במאמר הזרקה באמצעות הצהרות סטטיות.

Manifest 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" אפשר לאתרים ולתוקפים לזהות תוספים אם התוסף בחר לחשוף משאבים. כך נוצרו הזדמנויות ליצירה של טביעת אצבע דיגיטלית (fingerprinting) או לגישה לא מכוונת למשאבים.

Manifest V3 מגביל את החשיפה על ידי הגבלת האתרים והתוספים שיכולים לגשת למשאבים בתוסף. במקום לספק רשימת קבצים כמו קודם, עכשיו מספקים מערך אובייקטים, שכל אחד מהם ממפה קבוצת משאבים לקבוצה של כתובות URL או מזהי תוספים.

בדוגמה הבאה מוצגת השוואה בין משאבים שזמינים באינטרנט בין Manifest V2 לבין Manifest V3. במניפסט מגרסה V2, המשאבים שצוינו היו נגישים לכל האתרים כברירת מחדל. בקוד של Manifest V3 שמוצג בהמשך, המשאבים האלה זמינים רק ל-https://example.com, בעוד שרק תמונות מסוימות זמינות לכל האתרים.

מידע נוסף זמין במאמרים משאבים שגלויים לאינטרנט ותבניות התאמה.

Manifest 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/*"
      ]
    }
  ],
  ...
}