לכל תוסף צריך להיות קובץ 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"- סמל אחד או יותר שמייצגים את התוסף. מידע על שיטות מומלצות זמין במאמר בנושא Icons.
מפתחות אופציונליים
"action"- הגדרת המראה וההתנהגות של סמל התוסף בסרגל הכלים של Google. מידע נוסף זמין במאמר
chrome.action. "background"- המדיניות מציינת את קובץ ה-JavaScript שמכיל את ה-Service Worker של התוסף, שפועל כמטפל באירועים. מידע נוסף זמין במאמר מידע על קובצי שירות (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_opener_policy"- מציינת ערך לכותרת ה-HTTP של מדיניות חלונות קופצים ממקורות שונים, שמאפשרת לוודא שדף של תוסף ברמה העליונה לא משתף קבוצת הקשר של גלישה עם מסמכים ממקורות שונים.
"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"- מציין את מזהה התוסף שלכם לתרחישי שימוש שונים בפיתוח. מידע נוסף זמין במאמר בנושא מפתח.
"mime_types_handler"
- Registers the extension as a handler for supported MIME types, such as
application/pdf. מידע נוסף זמין במאמר בנושא mimeHandler API. "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"- רושם את התוסף כמנוע המרת טקסט לדיבור. מידע נוסף זמין במאמר בנושא ttsEngine API.
"update_url"- מחרוזת שמכילה את כתובת ה-URL של דף העדכונים של התוסף. משתמשים במפתח הזה אם מאחסנים את התוסף מחוץ לחנות האינטרנט של Chrome.
"version_name"- מחרוזת שמתארת את גרסת התוסף. לדוגמה,
"1.0 beta"ו-"build rc2". אם לא מציינים את הערך הזה, הערך של 'גרסה' מוצג בדף ניהול התוספים. "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.