chrome.declarativeNetRequest

תאריך הרענון: 2026-09-25 robots: noindex

תיאור

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

הרשאות

declarativeNetRequest
declarativeNetRequestWithHostAccess

declarativeNetRequestFeedback
host_permissions

זמינות

‫Chrome 84 ואילך

מניפסט

בנוסף להרשאות שמתוארות למעלה, בסוגים מסוימים של ערכות כללים, ובאופן ספציפי בערכות כללים סטטיות, צריך להצהיר על "declarative_net_request" מפתח המניפסט, שצריך להיות מילון עם מפתח יחיד בשם "rule_resources". המפתח הזה הוא מערך שמכיל מילונים מהסוג Ruleset, כמו שמוצג בהמשך. (שימו לב: השם Ruleset לא מופיע ב-JSON של המניפסט כי הוא רק מערך). בהמשך המאמר מוסבר על קבוצות כללים סטטיות.

{
  "name": "My extension",
  ...

  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    }, {
      "id": "ruleset_2",
      "enabled": false,
      "path": "rules_2.json"
    }]
  },
  "permissions": [
    "declarativeNetRequest",
    "declarativeNetRequestFeedback",
  ],
  "host_permissions": [
    "http://www.blogger.com/*",
    "http://*.google.com/*"
  ],
  ...
}

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

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

  • חסימה של בקשה לאחזור מהרשת.
  • שדרוג הסכימה (מ-http ל-https).
  • כדי למנוע חסימה של בקשה, אפשר להוסיף כלל חסימה תואם עם ערך של 'שלילה'.
  • הפניה מחדש של בקשה לאחזור מהרשת.
  • לשנות את הכותרות של הבקשות או התגובות.

יש שלושה סוגים של קבוצות כללים, והניהול שלהן שונה מעט.

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

בקטעים הבאים מוסבר בפירוט על סוגי ערכות הכללים.

קבוצות כללים דינמיות וקבוצות כללים ברמת הסשן

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

  • הכללים הדינמיים נשמרים בסשנים בדפדפן ובשדרוגים של התוסף.
  • כללי הסשן נמחקים כשהדפדפן נסגר וכשמתקינים גרסה חדשה של התוסף.

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

קבוצות כללים סטטיות

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

{
  ...
  "declarative_net_request" : {
    "rule_resources" : [{
      "id": "ruleset_1",
      "enabled": true,
      "path": "rules_1.json"
    },
    ...
    ]
  }
  ...
}

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

הפעלה והשבתה של כללים סטטיים ושל קבוצות כללים

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

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

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

כדי להפעיל או להשבית כללים סטטיים, מתקשרים אל updateStaticRules(). השיטה הזו מקבלת אובייקט UpdateStaticRulesOptions שמכיל מערכים של מזהי כללים להפעלה או להשבתה. המזהים מוגדרים באמצעות המפתח "id" של מילון Ruleset.

כדי להפעיל או להשבית rulesets סטטיים, קוראים ל-updateEnabledRulesets(). השיטה הזו מקבלת אובייקט UpdateRulesetOptions שמכיל מערכים של מזהים של קבוצות כללים להפעלה או להשבתה. המזהים מוגדרים באמצעות המפתח "id" של מילון Ruleset.

יצירת כללים

לא משנה מה הסוג, כל כלל מתחיל עם ארבעה שדות כמו שמוצג בהמשך. המקשים "id" ו-"priority" מקבלים מספר, אבל המקשים "action" ו-"condition" יכולים לספק כמה תנאים לחסימה ולהפניה אוטומטית. הכלל הבא חוסם את כל הבקשות לסקריפטים שמקורן ב-"foo.com" לכל כתובת URL שכוללת את "abc" כמחרוזת משנה.

{
  "id" : 1,
  "priority": 1,
  "action" : { "type" : "block" },
  "condition" : {
    "urlFilter" : "abc";,
    "initiatorDomains" : ["foo.com"],
    "resourceTypes" : ["script"]
  }
}

תווים תואמים של urlFilter

המפתח "condition" של כלל מאפשר למפתח "urlFilter" לפעול על כתובות URL בדומיין שצוין. יוצרים דפוסים באמצעות אסימוני התאמת דפוסים. בהמשך מופיעות כמה דוגמאות.

urlFilter התאמות לא תואם
"abc" https://abcd.com
https://example.com/abcd
https://ab.com
"abc*d" https://abcd.com
https://example.com/abcxyzd
https://abc.com
"||a.example.com" https://a.example.com/
https://b.a.example.com/xyz
https://example.com/
"|https*" https://example.com http://example.com/
http://https.com
"example*^123|" https://example.com/123
http://abc.com/example?123
https://example.com/1234
https://abc.com/example0123

תעדוף כללים

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

  1. העדיפות נקבעת לכללים בתוך תוסף.
  2. אם יותר מתוסף אחד יכול להחיל כלל על בקשה, המערכת קובעת עדיפות לכל התוספים שתואמים לבקשה מסוימת.

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

קביעת עדיפות של כללים בתוסף

בתוך תוסף יחיד, סדר העדיפות נקבע באמצעות התהליך הבא:

  1. הכלל עם העדיפות הגבוהה ביותר שהוגדרה על ידי המפתח (במילים אחרות, השדה "priority") מוחזר.
  2. אם יש יותר מכלל אחד עם העדיפות הכי גבוהה שהוגדרה על ידי המפתח, הכללים מקבלים עדיפות לפי השדה "action", בסדר הבא:

    1. allow
    2. allowAllRequests
    3. block
    4. upgradeScheme
    5. redirect
  3. אם סוג הפעולה הוא לא block או redirect, כל כללי modifyHeaders התואמים נבדקים. חשוב לדעת שאם יש כללים עם עדיפות שהוגדרה על ידי מפתח והיא נמוכה מהעדיפות שצוינה עבור allow ו-allowAllRequests, המערכת מתעלמת מהכללים האלה.

  4. אם כמה כללים משנים את אותו כותר, השינוי נקבע לפי השדה "priority" שהוגדר על ידי המפתח ולפי הפעולות שצוינו.

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

קביעת עדיפות בין כללים של תוספים

אם רק לתוסף אחד יש כלל שתואם לבקשה, הכלל הזה יחול. אבל אם יותר מהרחבה אחת תואמת לבקשה, התהליך הבא יתבצע:

  1. הכללים מקבלים עדיפות באמצעות השדה "action", לפי הסדר הבא:

    1. block
    2. redirect או upgradeScheme
    3. allow או allowAllRequests
  2. אם יש יותר מכלל אחד שתואם, התוסף שהותקן לאחרונה מקבל עדיפות.

מגבלות על כללים

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

כללים סטטיים

כללים סטטיים הם כללים שמוגדרים בקובצי כללים שהוצהרו בקובץ המניפסט. תוסף יכול לציין עד 50 ערכות כללים סטטיות כחלק ממפתח המניפסט "rule_resources", אבל אפשר להפעיל רק 10 מערכות כללים כאלה בכל פעם. האחרון נקרא MAX_NUMBER_OF_ENABLED_STATIC_RULESETS. יחד, מובטחות לפחות 30,000 כללים בערכות הכללים האלה. הפעולה הזו נקראת GUARANTEED_MINIMUM_STATIC_RULES.

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

כללים דינמיים וכללים למודעות בזמן פעילות באפליקציה

המגבלות שחלות על כללים דינמיים וכללים של סשן פשוטות יותר מאלה שחלות על כללים סטטיים. המספר הכולל של שניהם לא יכול להיות יותר מ-5,000. הפעולה הזו נקראת MAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES.

כללים שמשתמשים בביטוי רגולרי (regex)

אפשר להשתמש בביטויים רגולריים בכל סוגי הכללים, אבל המספר הכולל של כללי regex מכל סוג לא יכול להיות יותר מ-1,000. המספר הזה נקרא MAX_NUMBER_OF_REGEX_RULES.

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

rules_1.json: Rule with id 1 specified a more complex regex than allowed
as part of the "regexFilter" key.

אינטראקציות עם Service Workers

השימוש ב-declarativeNetRequest מוגבל לבקשות שמגיעות ל-network stack. התגובות האלה כוללות תגובות ממטמון ה-HTTP, אבל יכול להיות שהן לא כוללות תגובות שעוברות דרך ה-handler של onfetch ב-service worker. ‏declarativeNetRequest לא ישפיע על תגובות שנוצרו על ידי ה-service worker או שאוחזרו מ-CacheStorage, אבל הוא ישפיע על קריאות ל-fetch() שבוצעו ב-service worker.

משאבים שאפשר לגשת אליהם באינטרנט

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

דוגמאות

דוגמאות לקוד

עדכון כללים דינמיים

בדוגמה הבאה אפשר לראות איך מפעילים את updateDynamicRules(). ההליך עבור updateSessionRules() זהה.

// Get arrays containing new and old rules
const newRules = await getNewRules();
const oldRules = await chrome.declarativeNetRequest.getDynamicRules();
const oldRuleIds = oldRules.map(rule => rule.id);

// Use the arrays to update the dynamic rules
await chrome.declarativeNetRequest.updateDynamicRules({
  removeRuleIds: oldRuleIds,
  addRules: newRules
});

עדכון של קבוצות כללים סטטיות

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

async function updateStaticRules(enableRulesetIds, disableCandidateIds) {
  // Create the options structure for the call to updateEnabledRulesets()
  let options = { enableRulesetIds: enableRulesetIds }
  // Get the number of enabled static rules
  const enabledStaticCount = await chrome.declarativeNetRequest.getEnabledRulesets();
  // Compare rule counts to determine if anything needs to be disabled so that
  // new rules can be enabled
  const proposedCount = enableRulesetIds.length;
  if (enabledStaticCount + proposedCount > chrome.declarativeNetRequest.MAX_NUMBER_OF_ENABLED_STATIC_RULESETS) {
    options.disableRulesetIds = disableCandidateIds
  }
  // Update the enabled static rules
  await chrome.declarativeNetRequest.updateEnabledRulesets(options);
}

דוגמאות לכללים

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

המפתח 'priority'

בדוגמאות האלה נדרשת הרשאת מארח ל-*://*.example.com/*.

כדי להבין את העדיפות של כתובת URL מסוימת, צריך לבדוק את המקש "priority" (שמוגדר על ידי המפתח), את המקש "action" ואת המקש "urlFilter". הדוגמאות האלה מתייחסות לקובץ הכללים לדוגמה שמוצג מתחתיהן.

ניווט אל https://google.com
שני כללים חלים על כתובת ה-URL הזו: הכללים עם המזהים 1 ו-4. הכלל עם המזהה 1 חל כי לפעולות "block" יש עדיפות גבוהה יותר מאשר לפעולות "redirect". הכללים הנותרים לא חלים כי הם מיועדים לכתובות URL ארוכות יותר.
ניווט אל https://google.com/1234
בגלל כתובת ה-URL הארוכה יותר, הכלל עם המזהה 2 תואם עכשיו בנוסף לכללים עם המזהים 1 ו-4. הכלל עם המזהה 2 חל כי "allow" בעל עדיפות גבוהה יותר מ-"block" ומ-"redirect".
ניווט אל https://google.com/12345
כל ארבעת הכללים תואמים לכתובת ה-URL הזו. הכלל עם המזהה 3 חל כי העדיפות שלו שהוגדרה על ידי המפתח היא הגבוהה ביותר בקבוצה.
[
  {
    "id": 1,
    "priority": 1,
    "action": { "type": "block" },
    "condition": {"urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 2,
    "priority": 1,
    "action": { "type": "allow" },
    "condition": { "urlFilter": "google.com/123", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 3,
    "priority": 2,
    "action": { "type": "block" },
    "condition": { "urlFilter": "google.com/12345", "resourceTypes": ["main_frame"] }
  },
  {
    "id": 4,
    "priority": 1,
    "action": { "type": "redirect", "redirect": { "url": "https://example.com" } },
    "condition": { "urlFilter": "google.com", "resourceTypes": ["main_frame"] }
  },
]

הפניות אוטומטיות

בדוגמה שלמטה נדרשת הרשאת מארח ל-*://*.example.com/*.

בדוגמה הבאה אפשר לראות איך להפנות בקשה מ-example.com לדף בתוך התוסף עצמו. נתיב התוסף /a.jpg מומר ל-chrome-extension://EXTENSION_ID/a.jpg, כאשר EXTENSION_ID הוא המזהה של התוסף. כדי שהתכונה הזו תפעל, במניפסט צריך להגדיר את /a.jpg כמשאב שנגיש באינטרנט.

{
  "id": 1,
  "priority": 1,
  "action": { "type": "redirect", "redirect": { "extensionPath": "/a.jpg" } },
  "condition": {
    "urlFilter": "https://www.example.com",
    "resourceTypes": ["main_frame"]
  }
}

בדוגמה הבאה נעשה שימוש במפתח "transform" כדי להפנות אוטומטית לתת-דומיין של example.com. נעשה שימוש בעוגן של שם הדומיין ("||") כדי ליירט בקשות עם כל סכימה מ-example.com. המפתח "scheme" ב-"transform" מציין שההפניות האוטומטיות לתת-הדומיין תמיד ישתמשו ב-https.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": { "scheme": "https", "host": "new.example.com" }
    }
  },
  "condition": {
    "urlFilter": "||example.com",
    "resourceTypes": ["main_frame"]
  }
}

בדוגמה הבאה נעשה שימוש בביטויים רגולריים כדי להפנות אוטומטית מ-https://www.abc.xyz.com/path אל https://abc.xyz.com/path. במפתח "regexFilter", שימו לב איך הנקודות מוחרגות ואיך קבוצת הלכידה בוחרת בין abc לבין def. המפתח "regexSubstitution" מציין את ההתאמה הראשונה שהוחזרה של הביטוי הרגולרי באמצעות '\1'. במקרה הזה, הערך 'abc' נלקח מכתובת ה-URL להפניה אוטומטית ומוצב במקומו.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "redirect",
    "redirect": {
      "regexSubstitution": "https://\\1.xyz.com/"
    }
  },
  "condition": {
    "regexFilter": "^https://www\\.(abc|def)\\.xyz\\.com/",
    "resourceTypes": [
      "main_frame"
    ]
  }
}

כותרות

בדוגמה הבאה מוסרים כל קובצי ה-Cookie מפריים ראשי ומכל פריים משני.

{
  "id": 1,
  "priority": 1,
  "action": {
    "type": "modifyHeaders",
    "requestHeaders": [{ "header": "cookie", "operation": "remove" }]
  },
  "condition": { "resourceTypes": ["main_frame", "sub_frame"] }
}

סוגים

DomainType

השדה הזה מתאר אם הבקשה היא של צד ראשון או של צד שלישי ביחס לפריים שממנו היא נשלחה. בקשה נחשבת כבקשה מצד ראשון אם יש לה את אותו הדומיין (eTLD+1) כמו לפריים שממנו הבקשה נשלחה.

ספירה

‫firstParty
בקשת אחזור מהרשת היא צד ראשון לפריים שבו היא נוצרה.

‫thirdParty
בקשה לאחזור מהרשת היא של צד שלישי ביחס למסגרת שממנה היא נשלחה.

ExtensionActionOptions

‫Chrome 88 ואילך

מאפיינים

  • displayActionCountAsBadgeText

    ‫boolean אופציונלי

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

  • tabUpdate

    ‫TabActionCountUpdate אופציונלי

    ‫Chrome 89 ואילך

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

GetDisabledRuleIdsOptions

‫Chrome 111 ואילך

מאפיינים

  • rulesetId

    מחרוזת

    המזהה שמתאים ל-Ruleset סטטי.

GetRulesFilter

‫Chrome 111 ואילך

מאפיינים

  • ruleIds

    ‫number[] אופציונלי

    אם מציינים מזהה, נכללים רק כללים עם מזהים תואמים.

HeaderInfo

‫Chrome 128 ואילך

מאפיינים

  • excludedValues

    string[] אופציונלי

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

  • כותרת

    מחרוזת

    שם הכותרת. התנאי הזה מתאים לשם רק אם לא צוינו values וגם לא excludedValues.

  • ערכים

    string[] אופציונלי

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

    ‫'*' : התאמה לכל מספר של תווים.

    ‫'?' : מתאים לאפס או לתו אחד.

    אפשר להוסיף לתווים '*' ו-'?' קו נטוי הפוך כדי לבטל את המשמעות שלהם, למשל '\*' ו-'\?'.

HeaderOperation

‫Chrome 86 ואילך

כאן מפורטות הפעולות האפשריות לכלל מסוג modifyHeaders.

ספירה

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

‫"set"
מגדיר ערך חדש לכותרת שצוינה, ומסיר כותרות קיימות עם אותו שם.

‫"remove"
מסיר את כל הערכים של הכותרת שצוינה.

IsRegexSupportedResult

‫Chrome 87 ואילך

מאפיינים

  • isSupported

    בוליאני

  • reason

    ‫UnsupportedRegexReason אופציונלי

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

MatchedRule

מאפיינים

  • ruleId

    number

    מזהה של כלל תואם.

  • rulesetId

    מחרוזת

    המזהה של Ruleset שהכלל הזה שייך אליו. אם הכלל נוצר מתוך קבוצת הכללים הדינמיים, הערך יהיה DYNAMIC_RULESET_ID.

MatchedRuleInfo

מאפיינים

  • כלל
  • tabId

    number

    מזהה הכרטיסייה שממנה נשלחה הבקשה, אם הכרטיסייה עדיין פעילה. ‫Else -1.

  • timeStamp

    number

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

MatchedRuleInfoDebug

מאפיינים

MatchedRulesFilter

מאפיינים

  • minTimeStamp

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

    אם מצוין, רק כללים שתואמים אחרי חותמת הזמן שצוינה.

  • tabId

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

    אם מציינים כרטיסייה, רק כללים שמתאימים לכרטיסייה הזו יופעלו. אם הערך הוא ‎-1, הכלל יתאים לכרטיסיות שלא משויכות לכלל פעיל.

ModifyHeaderInfo

‫Chrome 86 ואילך

מאפיינים

  • כותרת

    מחרוזת

    שם הכותרת שרוצים לשנות.

  • פעולה

    הפעולה שתתבצע בכותרת.

  • ערך

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

    הערך החדש של הכותרת. חובה לציין את הערך הזה בפעולות append ו-set.

QueryKeyValue

מאפיינים

  • מקש

    מחרוזת

  • replaceOnly

    ‫boolean אופציונלי

    Chrome 94 ואילך

    אם הערך הוא True, מפתח השאילתה מוחלף רק אם הוא כבר קיים. אחרת, המפתח יתווסף גם אם הוא חסר. ברירת המחדל היא false.

  • ערך

    מחרוזת

QueryTransform

מאפיינים

  • addOrReplaceParams

    ‫QueryKeyValue[] optional

    רשימת צמדי מפתח/ערך של שאילתות שצריך להוסיף או להחליף.

  • removeParams

    string[] אופציונלי

    רשימת מפתחות השאילתות שרוצים להסיר.

Redirect

מאפיינים

  • extensionPath

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

    הנתיב ביחס לספריית התוספים. צריך להתחיל ב-'/'.

  • regexSubstitution

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

    תבנית החלפה לכללים שבהם מצוין regexFilter. ההתאמה הראשונה של regexFilter בכתובת ה-URL תוחלף בתבנית הזו. בתוך regexSubstitution, אפשר להשתמש בספרות עם לוכסן הפוך (\1 עד ‎\9) כדי להוסיף את הקבוצות המתאימות לחילוץ. ‫‎\0 מתייחס לכל הטקסט התואם.

  • ונבצע טרנספורמציה

    ‫URLTransform optional

    טרנספורמציות של כתובות URL לביצוע.

  • url

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

    כתובת ה-URL להפניה אוטומטית. אסור להשתמש בהפניות אוטומטיות לכתובות URL של JavaScript.

RegexOptions

‫Chrome 87 ואילך

מאפיינים

  • isCaseSensitive

    ‫boolean אופציונלי

    האם הביטוי regex שצוין תלוי אותיות רישיות (case-sensitive). ברירת המחדל היא true.

  • ביטוי רגולרי (regex)

    מחרוזת

    הביטוי הרגולרי לבדיקה.

  • requireCapturing

    ‫boolean אופציונלי

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

RequestDetails

מאפיינים

  • documentId

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

    ‫Chrome 106 ואילך

    המזהה הייחודי של מסמך המסגרת, אם הבקשה הזו היא למסגרת.

  • documentLifecycle

    ‫DocumentLifecycle אופציונלי

    ‫Chrome 106 ואילך

    מחזור החיים של המסמך של המסגרת, אם הבקשה הזו היא עבור מסגרת.

  • frameId

    number

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

  • frameType

    ‫FrameType אופציונלי

    ‫Chrome 106 ואילך

    סוג הפריים, אם הבקשה הזו היא לגבי פריים.

  • יוזם הפעילות

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

    המקור שבו נוצרה הבקשה. הערך הזה לא משתנה בהפניות אוטומטיות. אם זהו מקור אטום, המערכת תשתמש במחרוזת 'null'.

  • method

    מחרוזת

    שיטת HTTP רגילה.

  • parentDocumentId

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

    ‫Chrome 106 ואילך

    מזהה ייחודי של מסמך האב של המסגרת, אם הבקשה הזו היא למסגרת ויש לה אב.

  • parentFrameId

    number

    המזהה של המסגרת שעוטפת את המסגרת ששלחה את הבקשה. הערך הוא ‎-1 אם לא קיים פריים אב.

  • requestId

    מחרוזת

    מזהה הבקשה. מזהי הבקשות הם ייחודיים בסשן דפדפן.

  • tabId

    number

    המזהה של הכרטיסייה שבה מתבצעת הבקשה. הערך הוא ‎-1 אם הבקשה לא קשורה לכרטיסייה.

  • סוג

    סוג המשאב של הבקשה.

  • url

    מחרוזת

    כתובת ה-URL של הבקשה.

RequestMethod

‫Chrome 91 ואילך

המאפיין הזה מתאר את שיטת בקשת ה-HTTP של בקשה לאחזור מהרשת.

ספירה

connect

‫delete

‫get

‫'head'

‫options

‫patch

‫post

‫'put'

'אחר'

ResourceType

כאן מתואר סוג המשאב של בקשה לאחזור מהרשת.

ספירה

‫"main_frame"

‫‎"sub_frame"

‫"stylesheet"

‫"script"

‫"image"

‫"font"

‫'object'

‫"xmlhttprequest"

‫'ping'

‫"csp_report"

‫'media'

‫'websocket'

‫'webtransport'

‫"webbundle"

'אחר'

Rule

מאפיינים

  • פעולה

    הפעולה שתתבצע אם נמצאה התאמה לכלל הזה.

  • תנאי

    התנאי שגורם להפעלת הכלל הזה.

  • id [מזהה]

    number

    מזהה ייחודי של כלל. חובה, והערך צריך להיות ‎ >= 1.

  • הקמפיין

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

    עדיפות הכלל. ברירת המחדל היא 1. אם מציינים ערך, הוא צריך להיות גדול מ-1 או שווה לו.

RuleAction

מאפיינים

  • הפניה לכתובת אתר אחרת

    מתארים איך צריך לבצע את ההפניה האוטומטית. התנאי הזה תקף רק לכללי הפניה אוטומטית.

  • requestHeaders

    ‫ModifyHeaderInfo[] optional

    ‫Chrome 86 ואילך

    כותרות הבקשה שרוצים לשנות בבקשה. הערך תקף רק אם RuleActionType הוא modifyHeaders.

  • responseHeaders

    ‫ModifyHeaderInfo[] optional

    ‫Chrome 86 ואילך

    כותרות התגובה שצריך לשנות עבור הבקשה. הערך תקף רק אם RuleActionType הוא modifyHeaders.

  • סוג הפעולה שרוצים לבצע.

RuleActionType

תיאור של סוג הפעולה שיש לבצע אם יש התאמה ל-RuleCondition מסוים.

ספירה

‫block
חסימת בקשה לאחזור מהרשת.

‫redirect
הפניה אוטומטית של בקשה לאחזור מהרשת.

‫allow
מאשרים את בקשה לאחזור מהרשת. הבקשה לא תיחסם אם יש כלל הרשאה שתואם לה.

‫"upgradeScheme"
משדרג את הסכימה של כתובת ה-URL של בקשה לאחזור מהרשת ל-HTTPS אם הבקשה היא HTTP או FTP.

‫"modifyHeaders"
שינוי כותרות של בקשות או תגובות מתוך בקשה לאחזור מהרשת.

‫allowAllRequests
מאפשר את כל הבקשות בהיררכיית מסגרות, כולל בקשת המסגרת עצמה.

RuleCondition

מאפיינים

  • domainType

    ‫DomainType אופציונלי

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

  • דומיינים

    string[] אופציונלי

    הוצא משימוש מאז Chrome 101

    במקום זאת, אפשר להשתמש ב-initiatorDomains

    הכלל יתאים רק לבקשות לאחזור מהרשת שמקורן ברשימה של domains.

  • excludedDomains

    string[] אופציונלי

    הוצא משימוש מאז Chrome 101

    במקום זאת, אפשר להשתמש ב-excludedInitiatorDomains

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

  • excludedInitiatorDomains

    string[] אופציונלי

    ‫Chrome 101 ואילך

    הכלל לא יתאים לבקשות לאחזור מהרשת שמגיעות מרשימת excludedInitiatorDomains. אם הרשימה ריקה או שמשמיטים אותה, לא מוחרגים דומיינים. ההגדרה הזו מקבלת עדיפות על פני initiatorDomains.

    הערות:

    • מותרים גם תת-דומיינים כמו 'a.example.com'.
    • הערכים חייבים לכלול רק תווי ASCII.
    • משתמשים בקידוד Punycode לדומיינים בינלאומיים.
    • ההתאמה מתבצעת מול יוזם הבקשה ולא מול כתובת ה-URL של הבקשה.
    • גם תת-דומיינים של הדומיינים שמפורטים מוחרגים.
  • excludedRequestDomains

    string[] אופציונלי

    ‫Chrome 101 ואילך

    הכלל לא יתאים לבקשות לאחזור מהרשת אם הדומיינים תואמים לאחד מהדומיינים ברשימה של excludedRequestDomains. אם הרשימה ריקה או שהיא לא מוגדרת, לא מוחרגים דומיינים. ההגדרה הזו מקבלת עדיפות על פני requestDomains.

    הערות:

    • מותרים גם תת-דומיינים כמו 'a.example.com'.
    • הערכים חייבים לכלול רק תווי ASCII.
    • משתמשים בקידוד Punycode לדומיינים בינלאומיים.
    • גם תת-דומיינים של הדומיינים שמפורטים מוחרגים.
  • excludedRequestMethods

    ‫RequestMethod[] אופציונלי

    ‫Chrome 91 ואילך

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

  • excludedResourceTypes

    ‫ResourceType[] אופציונלי

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

  • excludedResponseHeaders

    ‫HeaderInfo[] optional

    ‫Chrome 128 ואילך

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

  • excludedTabIds

    ‫number[] אופציונלי

    ‫Chrome 92 ואילך

    רשימה של tabs.Tab.id שהכלל לא אמור להתאים להן. מזהה של tabs.TAB_ID_NONE לא כולל בקשות שלא נוצרו בכרטיסייה. נתמך רק בכללים ברמת הסשן.

  • excludedTopDomains

    string[] אופציונלי

    ‫Chrome 145 ואילך

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

    הערות:

    • מותרים גם תת-דומיינים כמו 'a.example.com'.
    • הערכים חייבים לכלול רק תווי ASCII.
    • משתמשים בקידוד Punycode לדומיינים בינלאומיים.
    • גם תת-דומיינים של הדומיינים שמפורטים מוחרגים.
    • בבקשות ללא מסגרת משויכת ברמה העליונה (למשל בקשות שהופעלו על ידי ServiceWorker), הדומיין של יוזם הבקשה נלקח בחשבון במקום זאת.
  • initiatorDomains

    string[] אופציונלי

    ‫Chrome 101 ואילך

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

    הערות:

    • מותרים גם תת-דומיינים כמו 'a.example.com'.
    • הערכים חייבים לכלול רק תווי ASCII.
    • משתמשים בקידוד Punycode לדומיינים בינלאומיים.
    • ההתאמה מתבצעת מול יוזם הבקשה ולא מול כתובת ה-URL של הבקשה.
    • המערכת תתאים גם תת-דומיינים של הדומיינים שרשומים.
  • isUrlFilterCaseSensitive

    ‫boolean אופציונלי

    האם urlFilter או regexFilter (המאפיין שצוין) תלוי באותיות רישיות. ברירת המחדל היא false.

  • regexFilter

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

    ביטוי רגולרי שיתאים לכתובת ה-URL של בקשה לאחזור מהרשת. התחביר הוא RE2.

    הערה: אפשר לציין רק אחד מהערכים urlFilter או regexFilter.

    הערה: התג regexFilter חייב לכלול רק תווי ASCII. ההתאמה מתבצעת מול כתובת URL שבה המארח מקודד בפורמט punycode (במקרה של דומיינים בינלאומיים), וכל שאר התווים שאינם ASCII מקודדים ב-URL ב-UTF-8.

  • requestDomains

    string[] אופציונלי

    ‫Chrome 101 ואילך

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

    הערות:

    • מותרים גם תת-דומיינים כמו 'a.example.com'.
    • הערכים חייבים לכלול רק תווי ASCII.
    • משתמשים בקידוד Punycode לדומיינים בינלאומיים.
    • המערכת תתאים גם תת-דומיינים של הדומיינים שמופיעים ברשימה.
  • requestMethods

    ‫RequestMethod[] אופציונלי

    ‫Chrome 91 ואילך

    רשימה של שיטות בקשת HTTP שהכלל יכול להתאים להן. אסור להשתמש ברשימה ריקה.

    הערה: אם מציינים תנאי כלל requestMethods, גם בקשות שאינן HTTP(s) ייכללו בהחרגה, אבל אם מציינים excludedRequestMethods, הן לא ייכללו בהחרגה.

  • resourceTypes

    ‫ResourceType[] אופציונלי

    רשימה של סוגי משאבים שהכלל יכול להתאים להם. אסור להשתמש ברשימה ריקה.

    הערה: צריך לציין את זה לכללי allowAllRequests, ואפשר לכלול רק את סוגי המשאבים sub_frame ו-main_frame.

  • responseHeaders

    ‫HeaderInfo[] optional

    ‫Chrome 128 ואילך

    הכלל מתאים אם הבקשה תואמת לתנאי כלשהו של כותרת תגובה ברשימה הזו (אם צוין).

  • tabIds

    ‫number[] אופציונלי

    ‫Chrome 92 ואילך

    רשימה של tabs.Tab.id שהכלל צריך להתאים להן. מזהה של tabs.TAB_ID_NONE תואם לבקשות שלא מגיעות מכרטיסייה. אסור להשתמש ברשימה ריקה. נתמך רק בכללים ברמת הסשן.

  • topDomains

    string[] אופציונלי

    ‫Chrome 145 ואילך

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

    הערות:

    • מותרים גם תת-דומיינים כמו 'a.example.com'.
    • הערכים חייבים לכלול רק תווי ASCII.
    • משתמשים בקידוד Punycode לדומיינים בינלאומיים.
    • המערכת תתאים גם תת-דומיינים של הדומיינים שמופיעים ברשימה.
    • בבקשות ללא מסגרת משויכת ברמה העליונה (למשל בקשות שהופעלו על ידי ServiceWorker), הדומיין של יוזם הבקשה נלקח בחשבון במקום זאת.
  • urlFilter

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

    התבנית שמושוות לכתובת ה-URL של בקשה לאחזור מהרשת. מבנים נתמכים:

    ‫'*' : תו כללי לחיפוש: תואם לכל מספר של תווים.

    ‫'|' : עוגן שמאלי/ימני: אם משתמשים בו באחד מהקצוות של התבנית, הוא מציין את ההתחלה/הסוף של כתובת ה-URL בהתאמה.

    ‫'||' : עוגן של שם דומיין: אם משתמשים בו בתחילת התבנית, הוא מציין את ההתחלה של (תת-)דומיין של כתובת ה-URL.

    ‫'^' : תו מפריד: התו הזה תואם לכל דבר חוץ מאות, ספרה או אחד מהתווים הבאים: _, ‏-, ‏. או %. ההתאמה הזו מתבצעת גם לסוף כתובת ה-URL.

    לכן, urlFilter מורכב מהחלקים הבאים: (עוגן שמאלי/שם דומיין אופציונלי) + תבנית + (עוגן ימני אופציונלי).

    אם לא מציינים כתובת URL, כל כתובות ה-URL תואמות. אסור להשתמש במחרוזת ריקה.

    אסור להשתמש בתבנית שמתחילה ב-||*. במקום זאת, אתם צריכים להשתמש ב-*.

    הערה: אפשר לציין רק אחד מהערכים urlFilter או regexFilter.

    הערה: התג urlFilter חייב לכלול רק תווי ASCII. ההתאמה מתבצעת מול כתובת URL שבה המארח מקודד בפורמט punycode (במקרה של דומיינים בינלאומיים), וכל שאר התווים שאינם ASCII מקודדים ב-URL ב-UTF-8. לדוגמה, אם כתובת ה-URL של הבקשה היא http://abc.рф?q=ф, הביטוי urlFilter יותאם לכתובת ה-URL http://abc.xn--p1ai/?q=%D1%84.

RuleConditionKeys

‫Chrome 145 ואילך

ספירה

‫"urlFilter"

‫"regexFilter"

‪"isUrlFilterCaseSensitive"

‫'initiatorDomains'

‫"excludedInitiatorDomains"

‫requestDomains

‫‎"excludedRequestDomains"‎

‫'topDomains'

‫"excludedTopDomains"

‫domains

‫"excludedDomains"

‫"resourceTypes"

‫"excludedResourceTypes"

‫requestMethods

‫"excludedRequestMethods"

‫"domainType"

‫tabIds

‫"excludedTabIds"

‫"responseHeaders"

‫"excludedResponseHeaders"

Ruleset

מאפיינים

  • פעיל

    בוליאני

    האם קבוצת הכללים מופעלת כברירת מחדל.

  • id [מזהה]

    מחרוזת

    מחרוזת לא ריקה שמזהה באופן ייחודי את קבוצת הכללים. מזהים שמתחילים במקף תחתון ("_") שמורים לשימוש פנימי.

  • נתיב

    מחרוזת

    הנתיב של קובץ ה-JSON של כללי ה-ruleset ביחס לספריית התוסף.

RulesMatchedDetails

מאפיינים

  • rulesMatchedInfo

    כללים שתואמים למסנן שצוין.

TabActionCountUpdate

‫Chrome 89 ואילך

מאפיינים

  • הוסף

    number

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

  • tabId

    number

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

TestMatchOutcomeResult

‫Chrome 103 ואילך

מאפיינים

  • matchedRules

    הכללים (אם יש) שתואמים לבקשה ההיפותטית.

TestMatchRequestDetails

‫Chrome 103 ואילך

מאפיינים

  • יוזם הפעילות

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

    כתובת ה-URL של יוזם הבקשה (אם יש) עבור הבקשה ההיפותטית.

  • method

    ‫RequestMethod אופציונלי

    ה-method הסטנדרטית של ה-HTTP של הבקשה ההיפותטית. ברירת המחדל היא get לבקשות HTTP, והיא מתעלמת מבקשות שאינן HTTP.

  • responseHeaders

    אובייקט אופציונלי

    ‫Chrome 129 ואילך

    הכותרות שמופיעות בתשובה היפותטית אם הבקשה לא נחסמת או מופנית מחדש לפני שהיא נשלחת. מיוצג כאובייקט שממפה שם של כותרת לרשימה של ערכי מחרוזות. אם לא מציינים את הכותרות, התגובה ההיפותטית תחזיר כותרות תגובה ריקות, שיכולות להתאים לכללים שמתאימים לאי-קיום של כותרות. לדוגמה: {"content-type": ["text/html; charset=utf-8", "multipart/form-data"]}

  • tabId

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

    המזהה של הכרטיסייה שבה מתרחשת הבקשה ההיפותטית. לא צריך להתאים למזהה כרטיסייה אמיתי. ברירת המחדל היא ‎-1, כלומר הבקשה לא קשורה לכרטיסייה.

  • topUrl

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

    ‫Chrome 145 ואילך

    כתובת ה-URL של המסגרת המשויכת ברמה העליונה (אם יש כזו) של הבקשה.

  • סוג

    סוג המשאב של הבקשה ההיפותטית.

  • url

    מחרוזת

    כתובת ה-URL של הבקשה ההיפותטית.

UnsupportedRegexReason

‫Chrome 87 ואילך

תיאור הסיבה שבגללה אין תמיכה בביטוי רגולרי מסוים.

ספירה

‫"syntaxError"
הביטוי הרגולרי לא תקין מבחינת התחביר, או שהוא משתמש בתכונות שלא זמינות בתחביר RE2.

‫"memoryLimitExceeded"
הביטוי הרגולרי חורג ממגבלת הזיכרון.

UpdateRuleOptions

‫Chrome 87 ואילך

מאפיינים

  • addRules

    כלל[] אופציונלי

    כללים להוספה.

  • removeRuleIds

    ‫number[] אופציונלי

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

UpdateRulesetOptions

‫Chrome 87 ואילך

מאפיינים

  • disableRulesetIds

    string[] אופציונלי

    קבוצת המזהים שמתאימים ל-Ruleset סטטי שצריך להשבית.

  • enableRulesetIds

    string[] אופציונלי

    קבוצת המזהים שמתאימה ל-Ruleset סטטי שצריך להפעיל.

UpdateStaticRulesOptions

‫Chrome 111 ואילך

מאפיינים

  • disableRuleIds

    ‫number[] אופציונלי

    קבוצת מזהים שמתאימים לכללים ב-Ruleset שצריך להשבית.

  • enableRuleIds

    ‫number[] אופציונלי

    קבוצת מזהים שמתאימים לכללים ב-Ruleset שצריך להפעיל.

  • rulesetId

    מחרוזת

    המזהה שמתאים ל-Ruleset סטטי.

URLTransform

מאפיינים

  • מקטע (fragment)

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

    הקטע החדש של הבקשה. השדה צריך להיות ריק, ואז הקטע הקיים ינוקה, או להתחיל בסימן '#'.

  • מארח

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

    המארח החדש של הבקשה.

  • סיסמה

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

    הסיסמה החדשה לבקשה.

  • נתיב

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

    הנתיב החדש של הבקשה. אם השדה ריק, הנתיב הקיים נמחק.

  • ניוד

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

    היציאה החדשה של הבקשה. אם השדה ריק, הניוד הקיים מבוטל.

  • שאילתה

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

    השאילתה החדשה של הבקשה. המחרוזת צריכה להיות ריקה, ואז השאילתה הקיימת תנוקה, או שהיא צריכה להתחיל בסימן '?'.

  • queryTransform

    ‫QueryTransform אופציונלי

    הוספה, הסרה או החלפה של צמדי מפתח/ערך בשאילתה.

  • סכמה

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

    הסכימה החדשה של הבקשה. הערכים המותרים הם http,‏ https,‏ ftp ו-chrome-extension.

  • שם משתמש

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

    שם המשתמש החדש של הבקשה.

מאפיינים

DYNAMIC_RULESET_ID

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

ערך

‫‎"_dynamic"

GETMATCHEDRULES_QUOTA_INTERVAL

מרווח הזמן שבמהלכו אפשר להתקשר לMAX_GETMATCHEDRULES_CALLS_PER_INTERVAL getMatchedRules, מצוין בדקות. שיחות נוספות ייכשלו באופן מיידי ויוגדר runtime.lastError. הערה: getMatchedRules קריאות שמשויכות לתנועה של המשתמש פטורות מהמכסה.

ערך

‫10

GUARANTEED_MINIMUM_STATIC_RULES

‫Chrome 89 ואילך

המספר המינימלי של כללים סטטיים שמובטח לתוסף בכל מערכי הכללים הסטטיים המופעלים שלו. כל כלל שחורג מהמגבלה הזו ייכלל במגבלת הכללים הסטטיים הגלובלית.

ערך

‫30000

MAX_GETMATCHEDRULES_CALLS_PER_INTERVAL

מספר הפעמים שאפשר להתקשר אל getMatchedRules בתקופה של GETMATCHEDRULES_QUOTA_INTERVAL.

ערך

20

MAX_NUMBER_OF_DYNAMIC_RULES

המספר המקסימלי של כללים דינמיים שתוסף יכול להוסיף.

ערך

‫30000

MAX_NUMBER_OF_ENABLED_STATIC_RULESETS

Chrome 94 ואילך

המספר המקסימלי של Rulesets סטטיים שהתוסף יכול להפעיל בכל זמן נתון.

ערך

‫50

MAX_NUMBER_OF_REGEX_RULES

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

ערך

‫1000

MAX_NUMBER_OF_SESSION_RULES

‫Chrome 120 ואילך

המספר המקסימלי של כללים בהיקף סשן שתוסף יכול להוסיף.

ערך

‫5000

MAX_NUMBER_OF_STATIC_RULESETS

המספר המקסימלי של קבצים סטטיים Rulesets שתוסף יכול לציין כחלק ממפתח המניפסט "rule_resources".

ערך

‫100

MAX_NUMBER_OF_UNSAFE_DYNAMIC_RULES

‫Chrome 120 ואילך

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

ערך

‫5000

MAX_NUMBER_OF_UNSAFE_SESSION_RULES

‫Chrome 120 ואילך

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

ערך

‫5000

SESSION_RULESET_ID

‫Chrome 90 ואילך

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

ערך

‫‎"_session"

Methods

getAvailableStaticRuleCount()

Promise Chrome 89 ואילך
chrome.declarativeNetRequest.getAvailableStaticRuleCount(
  callback?: function,
)
: Promise<number>

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

פרמטרים

  • callback

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

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

    (count: number) =& gt;void

    • ספירה

      number

החזרות

  • Promise<number>

    ‫Chrome 91 ואילך

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getDisabledRuleIds()

Promise Chrome 111+
chrome.declarativeNetRequest.getDisabledRuleIds(
  options: GetDisabledRuleIdsOptions,
  callback?: function,
)
: Promise<number[]>

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

פרמטרים

  • מציין את קבוצת הכללים לשאילתה.

  • callback

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

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

    (disabledRuleIds: number[]) =& gt;void

    • disabledRuleIds

      number[]

החזרות

  • Promise<number[]>

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getDynamicRules()

Promise
chrome.declarativeNetRequest.getDynamicRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

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

פרמטרים

  • סינון

    ‫GetRulesFilter אופציונלי

    ‫Chrome 111 ואילך

    אובייקט לסינון רשימת הכללים שאוחזרו.

  • callback

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

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

    (rules: Rule[]) =& gt;void

החזרות

  • Promise<Rule[]>

    ‫Chrome 91 ואילך

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getEnabledRulesets()

Promise
chrome.declarativeNetRequest.getEnabledRulesets(
  callback?: function,
)
: Promise<string[]>

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

פרמטרים

  • callback

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

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

    (rulesetIds: string[]) =& gt;void

    • rulesetIds

      string[]

החזרות

  • Promise<string[]>

    ‫Chrome 91 ואילך

    הבטחה שמוחזרת עם רשימה של מזהים, כאשר כל מזהה תואם ל-Ruleset סטטי מופעל.

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getMatchedRules()

Promise
chrome.declarativeNetRequest.getMatchedRules(
  filter?: MatchedRulesFilter,
  callback?: function,
)
: Promise<RulesMatchedDetails>

הפונקציה מחזירה את כל הכללים שתואמים לתוסף. המתקשרים יכולים לסנן את רשימת הכללים התואמים על ידי ציון filter. השיטה הזו זמינה רק לתוספים עם הרשאת "declarativeNetRequestFeedback" או עם הרשאת "activeTab" שניתנה ל-tabId שצוין ב-filter. הערה: המערכת לא תחזיר כללים שלא משויכים למסמך פעיל, שהיה להם התאמה לפני יותר מחמש דקות.

פרמטרים

  • סינון

    ‫MatchedRulesFilter אופציונלי

    אובייקט לסינון רשימת הכללים התואמים.

  • callback

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

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

    (details: RulesMatchedDetails) =& gt;void

החזרות

  • ‫Chrome 91 ואילך

    Promise שמוחזר אחרי שליפת רשימת הכללים התואמים. אם תהיה שגיאה, ה-Promise יידחה. יכולות להיות לכך כמה סיבות, למשל: אין לכם הרשאות מספיקות או שחרגתם מהמכסה.

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

getSessionRules()

Promise Chrome 90+
chrome.declarativeNetRequest.getSessionRules(
  filter?: GetRulesFilter,
  callback?: function,
)
: Promise<Rule[]>

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

פרמטרים

  • סינון

    ‫GetRulesFilter אופציונלי

    ‫Chrome 111 ואילך

    אובייקט לסינון רשימת הכללים שאוחזרו.

  • callback

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

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

    (rules: Rule[]) =& gt;void

החזרות

  • Promise<Rule[]>

    ‫Chrome 91 ואילך

    אובייקט promise שמוחזר עם קבוצת הכללים ברמת הסשן.

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

isRegexSupported()

Promise Chrome 87 ואילך
chrome.declarativeNetRequest.isRegexSupported(
  regexOptions: RegexOptions,
  callback?: function,
)
: Promise<IsRegexSupportedResult>

בודק אם הביטוי הרגולרי שצוין ייתמך כתנאי של כלל regexFilter.

פרמטרים

החזרות

  • ‫Chrome 91 ואילך

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

setExtensionActionOptions()

Promise Chrome 88 ואילך
chrome.declarativeNetRequest.setExtensionActionOptions(
  options: ExtensionActionOptions,
  callback?: function,
)
: Promise<void>

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

פרמטרים

  • callback

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

    ‫Chrome 89 ואילך

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

    () =& gt;void

החזרות

  • Promise<void>

    ‫Chrome 91 ואילך

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

testMatchOutcome()

Promise Chrome 103+
chrome.declarativeNetRequest.testMatchOutcome(
  request: TestMatchRequestDetails,
  callback?: function,
)
: Promise<TestMatchOutcomeResult>

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

פרמטרים

החזרות

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

updateDynamicRules()

Promise
chrome.declarativeNetRequest.updateDynamicRules(
  options: UpdateRuleOptions,
  callback?: function,
)
: Promise<void>

משנה את קבוצת הכללים הדינמיים הנוכחית של התוסף. הכללים עם המזהים שמופיעים ב-options.removeRuleIds מוסרים קודם, ואז הכללים שמופיעים ב-options.addRules מתווספים. הערות:

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

פרמטרים

  • ‫Chrome 87 ואילך
  • callback

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

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

    () =& gt;void

החזרות

  • Promise<void>

    ‫Chrome 91 ואילך

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

updateEnabledRulesets()

Promise
chrome.declarativeNetRequest.updateEnabledRulesets(
  options: UpdateRulesetOptions,
  callback?: function,
)
: Promise<void>

הגדרת עדכון של קבוצת הכללים הסטטיים המופעלים עבור התוסף. קודם כל יוסרו קבוצות הכללים עם המזהים שמופיעים ב-options.disableRulesetIds, ואז יתווספו קבוצות הכללים שמופיעות ב-options.enableRulesetIds. שימו לב: קבוצת כללי ה-ruleset הסטטיים המופעלים נשמרת בין סשנים, אבל לא בין עדכוני תוספים. כלומר, מפתח המניפסט rule_resources יקבע את קבוצת כללי ה-ruleset הסטטיים המופעלים בכל עדכון תוסף.

פרמטרים

  • ‫Chrome 87 ואילך
  • callback

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

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

    () =& gt;void

החזרות

  • Promise<void>

    ‫Chrome 91 ואילך

    Promise שמוחזר אחרי שהעדכון מסתיים. במקרה של שגיאה, אובייקט ה-promise יידחה ולא יבוצע שינוי במערכת הכללים המופעלת. יכולות להיות לכך כמה סיבות, למשל: מזהים לא תקינים של קבוצות כללים, חריגה ממגבלת מספר הכללים או שגיאות פנימיות.

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

updateSessionRules()

Promise Chrome 90+
chrome.declarativeNetRequest.updateSessionRules(
  options: UpdateRuleOptions,
  callback?: function,
)
: Promise<void>

משנה את קבוצת הכללים הנוכחית בהיקף הסשן של התוסף. הכללים עם המזהים שמופיעים ב-options.removeRuleIds מוסרים קודם, ואז הכללים שמופיעים ב-options.addRules מתווספים. הערות:

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

פרמטרים

  • callback

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

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

    () =& gt;void

החזרות

  • Promise<void>

    ‫Chrome 91 ואילך

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

updateStaticRules()

Promise Chrome 111+
chrome.declarativeNetRequest.updateStaticRules(
  options: UpdateStaticRulesOptions,
  callback?: function,
)
: Promise<void>

השבתה והפעלה של כללים סטטיים ספציפיים בRuleset. שינויים בכללים ששייכים לRuleset מושבת ייכנסו לתוקף בפעם הבאה שהוא יופעל.

פרמטרים

  • callback

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

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

    () =& gt;void

החזרות

  • Promise<void>

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

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

אירועים

onRuleMatchedDebug

chrome.declarativeNetRequest.onRuleMatchedDebug.addListener(
  callback: function,
)

מופעל כשכלל תואם לבקשה. האפשרות הזו זמינה רק לתוספים מסוג unpacked עם ההרשאה "declarativeNetRequestFeedback", כי היא מיועדת לשימוש למטרות ניפוי באגים בלבד.

פרמטרים