chrome.action

תיאור

אפשר להשתמש ב-chrome.action API כדי לשלוט בסמל התוסף בסרגל הכלים של Google Chrome.

סמלי הפעולות מוצגים בסרגל הכלים של הדפדפן לצד תיבת הכתובת. אחרי ההתקנה, הם מופיעים בתפריט התוספים (סמל חלקי הפאזל). המשתמשים יכולים להצמיד את סמל התוסף לסרגל הכלים.

זמינות

Chrome 88 ואילך MV3 ואילך

מניפסט

כדי להשתמש ב-API הזה, צריך להצהיר על המפתחות הבאים במניפסט.

"action"

כדי להשתמש ב-chrome.action API, צריך לציין "manifest_version" של 3 ולכלול את המפתח "action" בקובץ המניפסט.

{
  "name": "Action Extension",
  ...
  "action": {
    "default_icon": {              // optional
      "16": "images/icon16.png",   // optional
      "24": "images/icon24.png",   // optional
      "32": "images/icon32.png"    // optional
    },
    "default_title": "Click Me",   // optional, shown in tooltip
    "default_popup": "popup.html"  // optional
  },
  ...
}

המפתח "action" (יחד עם רכיבי הצאצא שלו) הוא אופציונלי. גם אם התוסף לא נכלל, הוא עדיין מוצג בסרגל הכלים כדי לספק גישה לתפריט של התוסף. לכן, מומלץ תמיד לכלול לפחות את המפתחות "action" ו-"default_icon".

מושגים ושימוש

חלקי ממשק המשתמש

סמל

הסמל הוא התמונה הראשית בסרגל הכלים של התוסף, והוא מוגדר על ידי המפתח "default_icon" במפתח "action" של המניפסט. הסמלים צריכים להיות ברוחב ובגובה של 16 פיקסלים עצמאיים ממכשיר (DIP).

המפתח "default_icon" הוא מילון של גדלים ונתיבי תמונות. ‫Chrome משתמש בסמלים האלה כדי לבחור את קנה המידה של התמונה שבה ישתמש. אם לא נמצאה התאמה מדויקת, Chrome בוחר את התמונה הכי קרובה שזמינה ומשנה את הגודל שלה כך שתתאים לתמונה, מה שעשוי להשפיע על איכות התמונה.

מכשירים עם גורמי קנה מידה פחות נפוצים כמו 1.5x או 1.2x הופכים לנפוצים יותר, ולכן מומלץ לספק כמה גדלים של סמלים. בנוסף, כך מוודאים שהתוסף ימשיך לפעול גם אם יהיו שינויים בגודל הסמלים שמוצגים. עם זאת, אם מספקים רק גודל אחד, אפשר להגדיר את המפתח "default_icon" גם כמחרוזת עם הנתיב לסמל יחיד במקום מילון.

אפשר גם להתקשר אל action.setIcon() כדי להגדיר את סמל התוסף באופן פרוגרמטי על ידי ציון נתיב תמונה שונה או על ידי מתן סמל שנוצר באופן דינמי באמצעות רכיב HTML canvas, או, אם ההגדרה מתבצעת מתוך service worker של תוסף, באמצעות API של offscreen canvas.

const canvas = new OffscreenCanvas(16, 16);
const context = canvas.getContext('2d');
context.clearRect(0, 0, 16, 16);
context.fillStyle = '#00FF00';  // Green
context.fillRect(0, 0, 16, 16);
const imageData = context.getImageData(0, 0, 16, 16);
chrome.action.setIcon({imageData: imageData}, () => { /* ... */ });

במקרה של תוספים ארוזים (שהותקנו מקובץ ‎ .crx), התמונות יכולות להיות ברוב הפורמטים שמנוע העיבוד של Blink יכול להציג, כולל PNG,‏ JPEG,‏ BMP,‏ ICO ועוד. אין תמיכה ב-SVG. תוספים לא ארוזים חייבים להשתמש בתמונות PNG.

הסבר קצר (שם)

ההסבר הקצר או הכותרת מופיעים כשמעבירים את סמן העכבר מעל סמל התוסף בסרגל הכלים. הוא נכלל גם בטקסט הנגיש שמוקרא על ידי קוראי מסך כשהלחצן מקבל מיקוד.

הטולטיפ שמוגדר כברירת מחדל מוגדר באמצעות השדה "default_title" של המפתח "action" ב-manifest.json. אפשר גם להגדיר אותו באופן פרוגרמטי על ידי קריאה ל-action.setTitle().

תג

אפשר להציג 'תג' בפעולות – קטע טקסט שמוצג מעל הסמל. כך תוכלו לעדכן את הפעולה כדי להציג כמות קטנה של מידע על מצב התוסף, כמו מונה. התג כולל רכיב טקסט וצבע רקע. מכיוון שהמקום מוגבל, מומלץ להשתמש בטקסט של התג בארבעה תווים או פחות.

כדי ליצור תג, צריך להגדיר אותו באופן פרוגרמטי על ידי שליחת קריאה אל action.setBadgeBackgroundColor() ו-action.setBadgeText(). אין הגדרת תג ברירת מחדל במניפסט. ערכי הצבע של התג יכולים להיות מערך של ארבעה מספרים שלמים בין 0 ל-255 שמרכיבים את צבע ה-RGBA של התג, או מחרוזת עם ערך של צבע CSS.

chrome.action.setBadgeBackgroundColor(
  {color: [0, 255, 0, 0]},  // Green
  () => { /* ... */ },
);

chrome.action.setBadgeBackgroundColor(
  {color: '#00FF00'},  // Also green
  () => { /* ... */ },
);

chrome.action.setBadgeBackgroundColor(
  {color: 'green'},  // Also, also green
  () => { /* ... */ },
);

החלון הקופץ של פעולה מוצג כשמשתמש לוחץ על לחצן הפעולה של התוסף בסרגל הכלים. החלון הקופץ יכול להכיל כל תוכן HTML שרוצים, והגודל שלו יותאם אוטומטית לתוכן. הגודל של החלון הקופץ צריך להיות בין 25x25 ל-800x600 פיקסלים.

החלון הקופץ מוגדר בהתחלה על ידי המאפיין "default_popup" במפתח "action" בקובץ manifest.json. אם המאפיין הזה קיים, הוא צריך להצביע על נתיב יחסי בתוך ספריית התוסף. אפשר גם לעדכן אותו באופן דינמי כך שיצביע על נתיב יחסי אחר באמצעות השיטה action.setPopup().

תרחישים לדוגמה

מצב לכל כרטיסייה

לפעולות של תוספים יכולים להיות מצבים שונים בכל כרטיסייה. כדי להגדיר ערך לכרטיסייה ספציפית, משתמשים במאפיין tabId בשיטות ההגדרה של action API. לדוגמה, כדי להגדיר את הטקסט של התג לכרטיסייה ספציפית, אפשר לעשות משהו כזה:

function getTabId() { /* ... */}
function getTabBadge() { /* ... */}

chrome.action.setBadgeText(
  {
    text: getTabBadge(tabId),
    tabId: getTabId(),
  },
  () => { ... }
);

אם לא מציינים את המאפיין tabId, ההגדרה נחשבת להגדרה גלובלית. הגדרות ספציפיות לכרטיסייה מקבלות עדיפות על פני הגדרות גלובליות.

מצב מופעל

כברירת מחדל, הפעולות בסרגל הכלים מופעלות (אפשר ללחוץ עליהן) בכל כרטיסייה. אפשר לשנות את ברירת המחדל הזו על ידי הגדרת המאפיין default_state במפתח action של קובץ המניפסט. אם default_state מוגדר כ-"disabled", הפעולה מושבתת כברירת מחדל וצריך להפעיל אותה באופן פרוגרמטי כדי שיהיה אפשר ללחוץ עליה. אם default_state מוגדר כ-"enabled" (ברירת המחדל), הפעולה מופעלת וניתן ללחוץ עליה כברירת מחדל.

אפשר לשלוט במצב באופן פרוגרמטי באמצעות ה-methods‏ action.enable() ו-action.disable(). ההגדרה הזו משפיעה רק על השליחה של החלון הקופץ (אם יש כזה) או של אירוע action.onClicked לתוסף, ולא על הנוכחות של הפעולה בסרגל הכלים.

דוגמאות

בדוגמאות הבאות מוצגות כמה דרכים נפוצות לשימוש בפעולות בתוספים. כדי לנסות את ה-API הזה, צריך להתקין את הדוגמה של Action API ממאגר chrome-extension-samples.

הצגת חלון קופץ

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

// manifest.json
{
  "name": "Action popup demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to view a popup",
    "default_popup": "popup.html"
  }
}
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
  <style>
    html {
      min-height: 5em;
      min-width: 10em;
      background: salmon;
    }
  </style>
</head>
<body>
  <p>Hello, world!</p>
</body>
</html>

החדרת סקריפט תוכן בלחיצה

דפוס נפוץ של תוספים הוא לחשוף את התכונה העיקרית שלהם באמצעות הפעולה של התוסף. הדוגמה הבאה מדגימה את התבנית הזו. כשהמשתמש לוחץ על הפעולה, התוסף מזריק סקריפט תוכן לדף הנוכחי. לאחר מכן, סקריפט התוכן מציג התראה כדי לוודא שהכול פעל כמצופה.

// manifest.json
{
  "name": "Action script injection demo",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_title": "Click to show an alert"
  },
  "permissions": ["activeTab", "scripting"],
  "background": {
    "service_worker": "background.js"
  }
}
// background.js
chrome.action.onClicked.addListener((tab) => {
  chrome.scripting.executeScript({
    target: {tabId: tab.id},
    files: ['content.js']
  });
});
// content.js
alert('Hello, world!');

הדמיית פעולות באמצעות declarativeContent

בדוגמה הזו אפשר לראות איך הלוגיקה ברקע של תוסף יכולה (א) להשבית פעולה כברירת מחדל ו-(ב) להשתמש ב-declarativeContent כדי להפעיל את הפעולה באתרים ספציפיים.

// service-worker.js

// Wrap in an onInstalled callback to avoid unnecessary work
// every time the service worker is run
chrome.runtime.onInstalled.addListener(() => {
  // Page actions are disabled by default and enabled on select tabs
  chrome.action.disable();

  // Clear all rules to ensure only our expected rules are set
  chrome.declarativeContent.onPageChanged.removeRules(undefined, () => {
    // Declare a rule to enable the action on example.com pages
    let exampleRule = {
      conditions: [
        new chrome.declarativeContent.PageStateMatcher({
          pageUrl: {hostSuffix: '.example.com'},
        })
      ],
      actions: [new chrome.declarativeContent.ShowAction()],
    };

    // Finally, apply our new array of rules
    let rules = [exampleRule];
    chrome.declarativeContent.onPageChanged.addRules(rules);
  });
});

סוגים

OpenPopupOptions

Chrome 99 ואילך

מאפיינים

  • windowId

    מספר אופציונלי

    המזהה של החלון שבו ייפתח החלון הקופץ של הפעולה. אם לא מציינים ערך, ברירת המחדל היא החלון הפעיל הנוכחי.

TabDetails

מאפיינים

  • tabId

    מספר אופציונלי

    המזהה של הכרטיסייה שרוצים לשאול לגבי המצב שלה. אם לא מצוינת כרטיסייה, מוחזר המצב שלא ספציפי לכרטיסייה.

UserSettings

Chrome 91 ואילך

אוסף ההגדרות שהמשתמש מציין לגבי הפעולה של התוסף.

מאפיינים

  • isOnToolbar

    בוליאני

    האם סמל הפעולה של התוסף גלוי בסרגל הכלים ברמה העליונה של חלונות הדפדפן (כלומר, האם המשתמש 'הצמיד' את התוסף).

UserSettingsChange

Chrome 130 ואילך

מאפיינים

  • isOnToolbar

    ‫boolean אופציונלי

    האם סמל הפעולה של התוסף גלוי בסרגל הכלים ברמה העליונה של חלונות הדפדפן (כלומר, האם המשתמש 'הצמיד' את התוסף).

Methods

disable()

Promise
chrome.action.disable(
  tabId?: number,
  callback?: function,
)
: Promise<void>

משבית את הפעולה בכרטיסייה.

פרמטרים

  • tabId

    מספר אופציונלי

    המזהה של הכרטיסייה שרוצים לשנות את הפעולה שלה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

enable()

Promise
chrome.action.enable(
  tabId?: number,
  callback?: function,
)
: Promise<void>

ההרשאה מאפשרת לבצע פעולה בכרטיסייה. הפעולות מופעלות כברירת מחדל.

פרמטרים

  • tabId

    מספר אופציונלי

    המזהה של הכרטיסייה שרוצים לשנות את הפעולה שלה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

getBadgeBackgroundColor()

Promise
chrome.action.getBadgeBackgroundColor(
  details: TabDetails,
  callback?: function,
)
: Promise<extensionTypes.ColorArray>

מחזירה את צבע הרקע של הפעולה.

פרמטרים

  • פרטים
  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (result: ColorArray) => void

החזרות

getBadgeText()

Promise
chrome.action.getBadgeText(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

מחזירה את הטקסט של התג של הפעולה. אם לא מצוינת כרטיסייה, מוחזר טקסט התג שלא ספציפי לכרטיסייה. אם האפשרות displayActionCountAsBadgeText מופעלת, יוחזר טקסט placeholder אלא אם ההרשאה declarativeNetRequestFeedback קיימת או שסופק טקסט ספציפי לתג לכרטיסייה.

פרמטרים

  • פרטים
  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (result: string) => void

    • תוצאה

      מחרוזת

החזרות

  • Promise<string>

getBadgeTextColor()

Promise Chrome 110 ואילך
chrome.action.getBadgeTextColor(
  details: TabDetails,
  callback?: function,
)
: Promise<extensionTypes.ColorArray>

מחזירה את צבע הטקסט של הפעולה.

פרמטרים

  • פרטים
  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (result: ColorArray) => void

החזרות

getPopup()

Promise
chrome.action.getPopup(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

מחזירה את מסמך ה-HTML שהוגדר כחלון הקופץ לפעולה הזו.

פרמטרים

  • פרטים
  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (result: string) => void

    • תוצאה

      מחרוזת

החזרות

  • Promise<string>

getTitle()

Promise
chrome.action.getTitle(
  details: TabDetails,
  callback?: function,
)
: Promise<string>

מחזירה את השם של הפעולה.

פרמטרים

  • פרטים
  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (result: string) => void

    • תוצאה

      מחרוזת

החזרות

  • Promise<string>

getUserSettings()

Promise Chrome 91 ואילך
chrome.action.getUserSettings(
  callback?: function,
)
: Promise<UserSettings>

מחזירה את ההגדרות שצוינו על ידי המשתמש שקשורות לפעולה של תוסף.

פרמטרים

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (userSettings: UserSettings) => void

החזרות

isEnabled()

Promise Chrome 110 ואילך
chrome.action.isEnabled(
  tabId?: number,
  callback?: function,
)
: Promise<boolean>

התנאי מציין אם פעולת התוסף מופעלת בכרטיסייה (או באופן גלובלי אם לא צוין tabId). פעולות שמופעלות באמצעות declarativeContent בלבד תמיד מחזירות ערך שקר.

פרמטרים

  • tabId

    מספר אופציונלי

    המזהה של הכרטיסייה שרוצים לבדוק את הסטטוס שלה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    (isEnabled: boolean) => void

    • isEnabled

      בוליאני

      הערך יהיה True אם הפעולה של התוסף מופעלת.

החזרות

  • Promise<boolean>

openPopup()

Promise Chrome 127+
chrome.action.openPopup(
  options?: OpenPopupOptions,
  callback?: function,
)
: Promise<void>

פתיחת החלון הקופץ של התוסף. בין גרסה 118 לגרסה 126 של Chrome, האפשרות הזו זמינה רק לתוספים שהותקנו באמצעות מדיניות.

פרמטרים

  • options

    OpenPopupOptions אופציונלי

    מציינים את האפשרויות לפתיחת החלון הקופץ.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

setBadgeBackgroundColor()

Promise
chrome.action.setBadgeBackgroundColor(
  details: object,
  callback?: function,
)
: Promise<void>

הגדרת צבע הרקע של התג.

פרמטרים

  • פרטים

    אובייקט

    • צבע

      מחרוזת | ColorArray

      מערך של ארבעה מספרים שלמים בטווח [0,255] שמרכיבים את צבע ה-RGBA של התג. לדוגמה, אדום אטום הוא [255, 0, 0, 255]. יכול להיות גם מחרוזת עם ערך CSS, למשל #FF0000 או #F00 לאדום אטום.

    • tabId

      מספר אופציונלי

      השינוי יחול רק כשהכרטיסייה הספציפית נבחרת. ההגדרה מתאפסת אוטומטית כשסוגרים את הכרטיסייה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

setBadgeText()

Promise
chrome.action.setBadgeText(
  details: object,
  callback?: function,
)
: Promise<void>

הגדרת הטקסט של התג לפעולה. התג מוצג מעל הסמל.

פרמטרים

  • פרטים

    אובייקט

    • tabId

      מספר אופציונלי

      השינוי יחול רק כשהכרטיסייה הספציפית נבחרת. ההגדרה מתאפסת אוטומטית כשסוגרים את הכרטיסייה.

    • text

      מחרוזת אופציונלי

      אפשר להעביר כל מספר של תווים, אבל רק ארבעה בערך יכולים להיכנס לרווח. אם מועברת מחרוזת ריקה (''), הטקסט בתג נמחק. אם מציינים את tabId והערך של text הוא null, הטקסט של הכרטיסייה שצוינה נמחק ומוגדר כברירת מחדל לטקסט התג הגלובלי.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

setBadgeTextColor()

Promise Chrome 110 ואילך
chrome.action.setBadgeTextColor(
  details: object,
  callback?: function,
)
: Promise<void>

מגדיר את צבע הטקסט של התג.

פרמטרים

  • פרטים

    אובייקט

    • צבע

      מחרוזת | ColorArray

      מערך של ארבעה מספרים שלמים בטווח [0,255] שמרכיבים את צבע ה-RGBA של התג. לדוגמה, אדום אטום הוא [255, 0, 0, 255]. יכול להיות גם מחרוזת עם ערך CSS, למשל #FF0000 או #F00 לאדום אטום. אם לא מגדירים את הערך הזה, המערכת בוחרת באופן אוטומטי צבע שיהיה בניגוד לצבע הרקע של התג, כדי שהטקסט יהיה גלוי. צבעים עם ערכי אלפא ששווים ל-0 לא יוגדרו ותוחזר שגיאה.

    • tabId

      מספר אופציונלי

      השינוי יחול רק כשהכרטיסייה הספציפית נבחרת. ההגדרה מתאפסת אוטומטית כשסוגרים את הכרטיסייה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

setIcon()

Promise
chrome.action.setIcon(
  details: object,
  callback?: function,
)
: Promise<void>

הגדרת הסמל של הפעולה. אפשר לציין את הסמל כנתיב לקובץ תמונה, כנתוני פיקסלים מרכיב canvas או כמילון של אחד מהם. צריך לציין את המאפיין path או את המאפיין imageData.

פרמטרים

  • פרטים

    אובייקט

    • imageData

      ImageData | object optional

      אובייקט ImageData או מילון {גודל -> ImageData} שמייצג את הסמל שצריך להגדיר. אם הסמל מוגדר כמילון, התמונה בפועל שתשמש תלויה בצפיפות הפיקסלים של המסך. אם מספר הפיקסלים של התמונה שמתאימים ליחידת שטח אחת במסך שווה ל-scale, התמונה בגודל scale * n תיבחר, כאשר n הוא גודל הסמל בממשק המשתמש. צריך לציין לפחות תמונה אחת. הערה: המחרוזת 'details.imageData = foo' שקולה למחרוזת 'details.imageData = {'16': foo}'

    • נתיב

      מחרוזת | אובייקט אופציונלי

      נתיב יחסי לתמונה או מילון {גודל -> נתיב יחסי לתמונה} שמצביע על הסמל שרוצים להגדיר. אם הסמל מוגדר כמילון, התמונה בפועל שתשמש תלויה בצפיפות הפיקסלים של המסך. אם מספר הפיקסלים של התמונה שמתאימים ליחידת שטח אחת במסך שווה ל-scale, התמונה בגודל scale * n תיבחר, כאשר n הוא גודל הסמל בממשק המשתמש. צריך לציין לפחות תמונה אחת. הערה: המחרוזת details.path = foo שקולה למחרוזת details.path = {'16': foo}

    • tabId

      מספר אופציונלי

      השינוי יחול רק כשהכרטיסייה הספציפית נבחרת. ההגדרה מתאפסת אוטומטית כשסוגרים את הכרטיסייה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

    Chrome 96 ואילך

setPopup()

Promise
chrome.action.setPopup(
  details: object,
  callback?: function,
)
: Promise<void>

מגדיר את מסמך ה-HTML שייפתח כחלון קופץ כשהמשתמש לוחץ על סמל הפעולה.

פרמטרים

  • פרטים

    אובייקט

    • פריט קופץ

      מחרוזת

      הנתיב היחסי לקובץ ה-HTML שיוצג בחלון קופץ. אם המדיניות מוגדרת למחרוזת ריקה (''), לא מוצג חלון קופץ.

    • tabId

      מספר אופציונלי

      השינוי יחול רק כשהכרטיסייה הספציפית נבחרת. ההגדרה מתאפסת אוטומטית כשסוגרים את הכרטיסייה.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

setTitle()

Promise
chrome.action.setTitle(
  details: object,
  callback?: function,
)
: Promise<void>

הגדרת השם של הפעולה. ההסבר הקצר הזה יופיע כשמעבירים את העכבר מעל התמונה.

פרמטרים

  • פרטים

    אובייקט

    • tabId

      מספר אופציונלי

      השינוי יחול רק כשהכרטיסייה הספציפית נבחרת. ההגדרה מתאפסת אוטומטית כשסוגרים את הכרטיסייה.

    • title

      מחרוזת

      המחרוזת שהפעולה צריכה להציג כשמעבירים מעליה את העכבר.

  • callback

    פונקציה אופציונלית

    הפרמטר callback נראה כך:

    () => void

החזרות

  • Promise<void>

אירועים

onClicked

chrome.action.onClicked.addListener(
  callback: function,
)

מופעל כשלוחצים על סמל של פעולה. האירוע הזה לא יופעל אם הפעולה כוללת חלון קופץ.

פרמטרים

  • callback

    פונקציה

    הפרמטר callback נראה כך:

    (tab: tabs.Tab) => void

onUserSettingsChanged

Chrome 130 ואילך
chrome.action.onUserSettingsChanged.addListener(
  callback: function,
)

מופעל כשמשתמש משנה הגדרות שקשורות לפעולה של תוסף.

פרמטרים