פורמט קובץ המניפסט

לכל תוסף צריך להיות קובץ 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, בתיבת הדו-שיח להתקנה ובדף התוספים של Chrome של המשתמש (chrome://extensions). האורך המקסימלי הוא 75 תווים. מידע נוסף על שימוש בשמות ספציפיים לאזור זמין במאמר התאמה לשוק המקומי.
"version"
מחרוזת שמזהה את מספר הגרסה של התוסף. מידע על הפורמט של מספרי גרסה זמין במאמר גרסה.

מפתחות שנדרשים על ידי חנות האינטרנט של Chrome

"description"
מחרוזת שמתארת את התוסף גם בחנות האינטרנט של Chrome וגם בדף ניהול התוספים של המשתמש. האורך המקסימלי הוא 132 תווים. למידע על התאמה של תיאורים לשוק המקומי, ראו התאמה לשוק המקומי.
"icons"
סמל אחד או יותר שמייצגים את התוסף. מידע נוסף על שיטות מומלצות זמין במאמר סמלים.

מפתחות אופציונליים

"action"
הגדרת המראה וההתנהגות של סמל התוסף בסרגל הכלים של Google. מידע נוסף זמין במאמר chrome.action.
"author"
מציינת את כתובת האימייל של החשבון ששימש ליצירת התוסף.
"background"
מציין את קובץ ה-JavaScript שמכיל את ה-service worker של התוסף, שמשמש כמתן טיפול באירועים. מידע נוסף זמין במאמר מידע על קובצי שירות של תוספים.
"chrome_settings_overrides"
הגדרת שינויים בהגדרות נבחרות של Chrome. למידע נוסף, ראו שינוי הגדרות Chrome.
"chrome_url_overrides"
הגדרת שינויים מברירת המחדל לדפי Chrome. מידע נוסף זמין במאמר שינוי של דפי Chrome.
"commands"
הגדרת מקשי קיצור בתוסף. מידע נוסף זמין במאמר chrome.commands.
"content_scripts"
מציין קובצי JavaScript או CSS שישמשו כשהמשתמש יפתח דפי אינטרנט מסוימים. מידע נוסף זמין במאמר סקריפטים של תוכן.
"content_security_policy"
הגדרת הגבלות על הסקריפטים, הסגנונות והמשאבים האחרים שבהם התוסף יכול להשתמש. מידע נוסף זמין במאמר מדיניות אבטחת התוכן.
"cross_origin_embedder_policy"
מציין ערך לכותרת ה-HTTP Cross-Origin-Embedder-Policy, שמגדירה הטמעה של משאבים ממקורות שונים בדף התוסף.
"cross_origin_opener_policy"
מציין ערך לכותרת ה-HTTP Cross-Origin-Opener-Policy, שמאפשר לוודא שדף התוסף ברמה העליונה לא משתף קבוצת הקשר גלישה עם מסמכים ממקורות שונים.
"declarative_net_request"
הגדרת כללים סטטיים ל-API declarativeNetRequest, שמאפשרים חסימה ושינוי של בקשות רשת.
"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 הישנה ביותר שאפשר להתקין בה את התוסף. הערך חייב להיות מחרוזת משנה של מחרוזת קיימת של גרסת דפדפן Chrome, למשל "107" או "107.0.5304.87". משתמשים עם גרסאות של Chrome ישנות יותר מהגרסה המינימלית יראו אזהרה 'לא תואם' בחנות האינטרנט של Chrome ולא יוכלו להתקין את התוסף. אם תוסיפו את הקוד הזה לתוסף קיים, משתמשים עם גרסת Chrome ישנה יותר לא יקבלו עדכונים אוטומטיים לתוסף. הדבר כולל משתמשים עסקיים במצב זמני.
"oauth2"
מאפשרת להשתמש במזהה אבטחה של OAuth 2.0. הערך של המפתח הזה חייב להיות אובייקט עם המאפיינים "client_id" ו-"scopes". פרטים נוספים זמינים במדריך בנושא OAuth 2.0.
"omnibox"
הרשאה לתוסף לרשום מילת מפתח בסרגל הכתובות של Chrome. למידע נוסף, ראו סרגל הכתובות.
"optional_host_permissions"
הצהרה על הרשאות מארחים אופציונליות לתוסף.
"optional_permissions"
הצהרה על הרשאות אופציונליות לתוסף.
"options_page"
מציין נתיב לקובץ options.html שמשמש את התוסף כדף אפשרויות. מידע נוסף זמין במאמר מתן אפשרויות למשתמשים.
"options_ui"
מציין נתיב לקובץ HTML שמאפשר למשתמש לשנות את אפשרויות התוסף מדף התוספים של Chrome. מידע נוסף זמין במאמר אפשרויות להטמעה.
"permissions"
מאפשרת להשתמש בממשקי API מסוימים של תוספים. הסבר כללי זמין במאמר הרשאות. בדפי העזרה של ממשקי API נפרדים מפורטות ההרשאות הנדרשות.
"requirements"
רשימת הטכנולוגיות הנדרשות לשימוש בתוסף. כאן תוכלו למצוא רשימה של הדרישות הנתמכות.
"sandbox"
מגדיר קבוצה של דפי תוספים שאין להם גישה לממשקי API של תוספים או גישה ישירה לדפים שלא נמצאים בארגז החול. מידע נוסף זמין במאמר ארגז חול.
"short_name"
מחרוזת שמכילה גרסה מקוצרת של שם התוסף, לשימוש במקומות שבהם יש מגבלה על מספר התווים. האורך המקסימלי הוא 12 תווים. אם הערך לא מוגדר, יוצג במקום זאת גרסה מקוצרת של המפתח name.
"side_panel"
מזהה קובץ HTML שמוצג בsidePanel.
"storage"
הצהרה על סכימה של JSON לאזור האחסון המנוהל. מידע נוסף זמין במאמר מניפסט לאזורי אחסון.
"tts_engine"
רישום התוסף כמנוע להמרת טקסט לדיבור. למידע נוסף, ראו את ה-API של ttsEngine.
"update_url"
מחרוזת שמכילה את כתובת ה-URL של דף העדכונים של התוסף. משתמשים במפתח הזה אם מארחים את התוסף מחוץ לחנות האינטרנט של Chrome.
"version_name"
מחרוזת שמתארת את גרסת התוסף. לדוגמה, "1.0 beta" ו-"build rc2". אם לא מציינים את הערך הזה, הערך 'version' יוצג בדף ניהול התוסף במקום זאת.
"web_accessible_resources"
הגדרת קבצים בתוך התוסף שאפשר לגשת אליהם מדפי אינטרנט או מתוספים אחרים. מידע נוסף זמין במאמר משאבים שזמינים באינטרנט.

מקשים אופציונליים של ChromeOS

"file_browser_handlers"
מספק גישה לממשק ה-API של fileBrowserHandler, שמאפשר לתוספים לגשת לדפדפן הקבצים של ChromeOS.
"file_handlers"
הגדרת סוגי הקבצים שאפשר לטפל בהם באמצעות תוספים ל-ChromeOS. למידע נוסף, ראו file_handlers.
"file_system_provider_capabilities"
מאפשרת גישה לממשק ה-API של fileSystemProvider, שמאפשר לתוספים ליצור מערכות קבצים שמערכת ChromeOS יכולה להשתמש בהן.
"input_components"
מאפשרת להשתמש ב-Input Method Editor API. מידע נוסף זמין במאמר input_components.